diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index bf736f96..36531856 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,32 +1,30 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.222.0/containers/javascript-node
{
- "name": "Node.js",
- "build": {
- "dockerfile": "Dockerfile",
- // Update 'VARIANT' to pick a Node version: 16, 14, 12.
- // Append -bullseye or -buster to pin to an OS version.
- // Use -bullseye variants on local arm64/Apple Silicon.
- "args": { "VARIANT": "16" }
- },
+ "name": "Node.js",
+ "build": {
+ "dockerfile": "Dockerfile",
+ // Update 'VARIANT' to pick a Node version: 16, 14, 12.
+ // Append -bullseye or -buster to pin to an OS version.
+ // Use -bullseye variants on local arm64/Apple Silicon.
+ "args": {"VARIANT": "16"}
+ },
- // Set *default* container specific settings.json values on container create.
- "settings": {},
+ // Set *default* container specific settings.json values on container create.
+ "settings": {},
- // Add the IDs of extensions you want installed when the container is created.
- "extensions": [
- "dbaeumer.vscode-eslint"
- ],
+ // Add the IDs of extensions you want installed when the container is created.
+ "extensions": ["dbaeumer.vscode-eslint"],
- // Use 'forwardPorts' to make a list of ports inside the container available locally.
- // "forwardPorts": [],
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
+ // "forwardPorts": [],
- // Use 'postCreateCommand' to run commands after the container is created.
- // "postCreateCommand": "yarn install",
+ // Use 'postCreateCommand' to run commands after the container is created.
+ // "postCreateCommand": "yarn install",
- // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
- "remoteUser": "node",
- "features": {
- "git": "latest"
- }
+ // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
+ "remoteUser": "node",
+ "features": {
+ "git": "latest"
+ }
}
diff --git a/.eslintrc.js b/.eslintrc.js
index 4f7ea4cb..329ac0be 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,11 +1,11 @@
module.exports = {
root: true,
parserOptions: {
- ecmaVersion: 2020
+ ecmaVersion: 13,
},
env: {
es6: true,
- node: true
+ node: true,
},
extends: [require.resolve('./lib/configs/recommended'), 'plugin:eslint-plugin/all'],
plugins: ['eslint-plugin'],
@@ -15,6 +15,6 @@ module.exports = {
'i18n-text/no-en': 'off',
'eslint-plugin/prefer-placeholders': 'off',
'eslint-plugin/test-case-shorthand-strings': 'off',
- 'eslint-plugin/require-meta-docs-url': 'off'
- }
+ 'eslint-plugin/require-meta-docs-url': 'off',
+ },
}
diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml
index 9e7f4a12..c10d3c22 100644
--- a/.github/workflows/nodejs.yml
+++ b/.github/workflows/nodejs.yml
@@ -12,7 +12,7 @@ jobs:
strategy:
matrix:
- node-version: [12.x, 14.x, 16.x]
+ node-version: [14, 16, 18]
steps:
- uses: actions/checkout@v3
diff --git a/README.md b/README.md
index 6f53657a..46a6b861 100644
--- a/README.md
+++ b/README.md
@@ -54,8 +54,8 @@ For each component, you may specify a `default` and/or `props`. `default` may ma
"settings": {
"github": {
"components": {
- "Box": { "default": "p" },
- "Link": { "props": {"as": { "undefined": "a", "a": "a", "button": "button"}}},
+ "Box": {"default": "p"},
+ "Link": {"props": {"as": {"undefined": "a", "a": "a", "button": "button"}}}
}
}
}
@@ -93,4 +93,4 @@ This config will be interpreted in the following way:
#### Accessibility-focused rules (prefixed with a11y)
-- [No Generic Link Text](./docs/rules/a11y-no-generic-link-text.md)
+- [Role Supports ARIA Props](./docs/rules/role-supports-aria-props.md)
diff --git a/docs/rules/a11y-no-generic-link-text.md b/docs/rules/a11y-no-generic-link-text.md
index 88e1089e..a051d61c 100644
--- a/docs/rules/a11y-no-generic-link-text.md
+++ b/docs/rules/a11y-no-generic-link-text.md
@@ -1,4 +1,6 @@
-# No Generic Link Text
+# No Generic Link Text [Deprecated]
+
+_This rule has been deprecated in favor of `anchor-ambiguous-text` in `eslint-plugin-jsx-a11y`._
## Rule Details
@@ -63,14 +65,18 @@ Please perform browser tests and spot checks:
```
```jsx
-Read more
+
+ Read more
+
```
```jsx
-Read more
+
+ Read more
+
```
-### **Correct** code for this rule 👍
+### **Correct** code for this rule 👍
```jsx
Learn more about GitHub
diff --git a/docs/rules/array-foreach.md b/docs/rules/array-foreach.md
index 523c16fe..ca1d1eef 100644
--- a/docs/rules/array-foreach.md
+++ b/docs/rules/array-foreach.md
@@ -93,6 +93,7 @@ for (const el of els) {
```
Use [`entries()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/entries) to get access to the index:
+
```js
for (const [i, el] of els.entries()) {
el.name = `Element ${i}`
diff --git a/docs/rules/authenticity-token.md b/docs/rules/authenticity-token.md
index ca2795d3..ae8b411e 100644
--- a/docs/rules/authenticity-token.md
+++ b/docs/rules/authenticity-token.md
@@ -33,7 +33,7 @@ on('click', '.js-my-button', function (e) {
fetch(form.action, {
method: form.method,
- body: new FormData(form)
+ body: new FormData(form),
}).then(function () {
alert('Success!')
})
@@ -52,7 +52,7 @@ An alternate, but less preferred approach is to include the a signed CSRF url in
on('click', '.js-my-button', function (e) {
csrfRequest(this.getAttribute('data-url'), {
method: 'PUT',
- body: data
+ body: data,
}).then(function () {
alert('Success!')
})
diff --git a/docs/rules/no-useless-passive.md b/docs/rules/no-useless-passive.md
index edf43ec0..ac98b439 100644
--- a/docs/rules/no-useless-passive.md
+++ b/docs/rules/no-useless-passive.md
@@ -2,7 +2,7 @@
This rule disallows setting `passive: true` for events on which it will have no effect.
-Events where `passive: true` has an effect are: `touchstart`, `touchmove`, `wheel`, and `mousewheel`.
+Events where `passive: true` has an effect are: `touchstart`, `touchmove`, `touchenter`, `touchend`, `touchleave`, `wheel`, and `mousewheel`.
## Rule Details
@@ -21,7 +21,7 @@ window.addEventListener(
() => {
console.log('Scroll event fired!')
},
- {passive: true}
+ {passive: true},
)
```
diff --git a/docs/rules/prefer-observers.md b/docs/rules/prefer-observers.md
index c3216aa4..3afc408a 100644
--- a/docs/rules/prefer-observers.md
+++ b/docs/rules/prefer-observers.md
@@ -34,7 +34,7 @@ window.addEventListener('scroll', () => {
const isIntersecting = checkIfElementIntersects(
element.getBoundingClientRect(),
window.innerHeight,
- document.clientHeight
+ document.clientHeight,
)
element.classList.toggle('intersecting', isIntersecting)
})
diff --git a/docs/rules/require-passive-events.md b/docs/rules/require-passive-events.md
index e94eca86..5248aa76 100644
--- a/docs/rules/require-passive-events.md
+++ b/docs/rules/require-passive-events.md
@@ -1,6 +1,6 @@
# Require Passive Events
-This rule enforces adding `passive: true` to high frequency event listeners (`touchstart`, `touchmove`, `wheel`, `mousewheel`).
+This rule enforces adding `passive: true` to high frequency event listeners (`touchstart`, `touchmove`, `touchenter`, `touchend`, `touchleave`, `wheel`, `mousewheel`).
## Rule Details
@@ -28,7 +28,7 @@ window.addEventListener(
() => {
/* ... */
},
- {passive: true}
+ {passive: true},
)
```
diff --git a/docs/rules/role-supports-aria-props.md b/docs/rules/role-supports-aria-props.md
new file mode 100644
index 00000000..57592028
--- /dev/null
+++ b/docs/rules/role-supports-aria-props.md
@@ -0,0 +1,74 @@
+# Role Supports ARIA Props
+
+## Rule Details
+
+This rule enforces that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`.
+
+For example, this rule aims to discourage common misuse of the `aria-label` and `aria-labelledby` attribute. `aria-label` and `aria-labelledby` support is only guaranteed on interactive elements like `button` or `a`, or on static elements like `div` and `span` with a permitted `role`. This rule will allow `aria-label` and `aria-labelledby` usage on `div` and `span` elements if it set to a role other than the ones listed in [WSC: a list of ARIA roles which cannot be named](https://w3c.github.io/aria/#namefromprohibited). This rule will never permit usage of `aria-label` and `aria-labelledby` on `h1`, `h2`, `h3`, `h4`, `h5`, `h6`, `strong`, `i`, `p`, `b`, or `code`.
+
+### "Help! I'm trying to set a tooltip on a static element and this rule flagged it!"
+
+Please do not use tooltips on static elements. It is a highly discouraged, inaccessible pattern.
+See [Primer: Tooltip alternatives](https://primer.style/design/accessibility/tooltip-alternatives) for what to do instead.
+
+### Resources
+
+- [w3c/aria Consider prohibiting author naming certain roles #833](https://github.com/w3c/aria/issues/833)
+- [Not so short note on aria-label usage - Big Table Edition](https://html5accessibility.com/stuff/2020/11/07/not-so-short-note-on-aria-label-usage-big-table-edition/)
+- [Your tooltips are bogus](https://heydonworks.com/article/your-tooltips-are-bogus/)
+- [Primer: Tooltip alternatives](https://primer.style/design/accessibility/tooltip-alternatives)
+
+### Disclaimer
+
+There are conflicting resources and opinions on what elements should support these naming attributes. For now, this rule will operate under a relatively simple heuristic aimed to minimize false positives. This may have room for future improvements. Learn more at [W3C Name Calcluation](https://w3c.github.io/aria/#namecalculation).
+
+### **Incorrect** code for this rule 👎
+
+```erb
+I am some text.
+```
+
+```erb
+Please be careful of the following.
+```
+
+```erb
+
Goodbye
+```
+
+```erb
+Page title
+```
+
+### **Correct** code for this rule 👍
+
+```erb
+
+
+
+```
+
+```erb
+
+
+
+Add bold text or turn selection into bold text
+```
+
+```erb
+Hello
+```
+
+```erb
+Goodbye
+```
+
+```erb
+Page title
+```
+
+```erb
+
+
Heading
+
+```
diff --git a/lib/configs/browser.js b/lib/configs/browser.js
index c4afa7d6..c9eeffae 100644
--- a/lib/configs/browser.js
+++ b/lib/configs/browser.js
@@ -1,6 +1,6 @@
module.exports = {
env: {
- browser: true
+ browser: true,
},
plugins: ['github', 'escompat'],
extends: ['plugin:escompat/recommended'],
@@ -22,8 +22,8 @@ module.exports = {
'error',
{
selector: "NewExpression[callee.name='URL'][arguments.length=1]",
- message: 'Please pass in `window.location.origin` as the 2nd argument to `new URL()`'
- }
- ]
- }
+ message: 'Please pass in `window.location.origin` as the 2nd argument to `new URL()`',
+ },
+ ],
+ },
}
diff --git a/lib/configs/internal.js b/lib/configs/internal.js
index 8de10865..f42fcf4a 100644
--- a/lib/configs/internal.js
+++ b/lib/configs/internal.js
@@ -3,6 +3,6 @@ module.exports = {
rules: {
'github/authenticity-token': 'error',
'github/js-class-name': 'error',
- 'github/no-d-none': 'error'
- }
+ 'github/no-d-none': 'error',
+ },
}
diff --git a/lib/configs/react.js b/lib/configs/react.js
index c76d66d9..a49ead99 100644
--- a/lib/configs/react.js
+++ b/lib/configs/react.js
@@ -2,12 +2,20 @@ module.exports = {
parserOptions: {
sourceType: 'module',
ecmaFeatures: {
- jsx: true
- }
+ jsx: true,
+ },
},
plugins: ['github', 'jsx-a11y'],
extends: ['plugin:jsx-a11y/recommended'],
rules: {
- 'github/a11y-no-generic-link-text': 'error'
- }
+ 'jsx-a11y/role-supports-aria-props': 'off', // Override with github/role-supports-aria-props until https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/issues/910 is resolved
+ 'github/role-supports-aria-props': 'error',
+ 'jsx-a11y/no-aria-hidden-on-focusable': 'error',
+ 'jsx-a11y/anchor-ambiguous-text': [
+ 'error',
+ {
+ words: ['this', 'more', 'read here', 'read more'],
+ },
+ ],
+ },
}
diff --git a/lib/configs/recommended.js b/lib/configs/recommended.js
index 67233c13..cdbbd450 100644
--- a/lib/configs/recommended.js
+++ b/lib/configs/recommended.js
@@ -1,12 +1,12 @@
module.exports = {
parserOptions: {
ecmaFeatures: {
- ecmaVersion: 6
+ ecmaVersion: 6,
},
- sourceType: 'module'
+ sourceType: 'module',
},
env: {
- es6: true
+ es6: true,
},
plugins: ['github', 'prettier', 'eslint-comments', 'import', 'filenames', 'i18n-text', 'no-only-tests'],
rules: {
@@ -41,8 +41,8 @@ module.exports = {
allowArray: true,
allowArrowFunction: false,
allowLiteral: true,
- allowObject: true
- }
+ allowObject: true,
+ },
],
'import/no-commonjs': 'error',
'import/no-deprecated': 'error',
@@ -89,8 +89,8 @@ module.exports = {
'no-only-tests/no-only-tests': [
'error',
{
- block: ['describe', 'it', 'context', 'test', 'tape', 'fixture', 'serial', 'suite']
- }
+ block: ['describe', 'it', 'context', 'test', 'tape', 'fixture', 'serial', 'suite'],
+ },
],
'no-redeclare': 'error',
'no-regex-spaces': 'error',
@@ -122,13 +122,13 @@ module.exports = {
'use-isnan': 'error',
'valid-typeof': 'error',
camelcase: ['error', {properties: 'always'}],
- eqeqeq: ['error', 'smart']
+ eqeqeq: ['error', 'smart'],
},
settings: {
'import/resolver': {
node: {
- extensions: ['.js', '.ts']
- }
- }
- }
+ extensions: ['.js', '.ts'],
+ },
+ },
+ },
}
diff --git a/lib/configs/typescript.js b/lib/configs/typescript.js
index d39b9485..a13df33f 100644
--- a/lib/configs/typescript.js
+++ b/lib/configs/typescript.js
@@ -16,6 +16,6 @@ module.exports = {
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/no-unused-vars': 'error',
- '@typescript-eslint/explicit-module-boundary-types': 'off'
- }
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
+ },
}
diff --git a/lib/formatters/stylish-fixes.js b/lib/formatters/stylish-fixes.js
index 3cde74c8..cba77ded 100644
--- a/lib/formatters/stylish-fixes.js
+++ b/lib/formatters/stylish-fixes.js
@@ -65,7 +65,7 @@ module.exports = function (results) {
', ',
warnings,
pluralize(' warning', warnings),
- ')\n'
+ ')\n',
].join('')
}
diff --git a/lib/index.js b/lib/index.js
index 8ed725f9..025b23ff 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -17,14 +17,15 @@ module.exports = {
'no-then': require('./rules/no-then'),
'no-useless-passive': require('./rules/no-useless-passive'),
'prefer-observers': require('./rules/prefer-observers'),
+ 'role-supports-aria-props': require('./rules/role-supports-aria-props'),
'require-passive-events': require('./rules/require-passive-events'),
- 'unescaped-html-literal': require('./rules/unescaped-html-literal')
+ 'unescaped-html-literal': require('./rules/unescaped-html-literal'),
},
configs: {
browser: require('./configs/browser'),
internal: require('./configs/internal'),
recommended: require('./configs/recommended'),
typescript: require('./configs/typescript'),
- react: require('./configs/react')
- }
+ react: require('./configs/react'),
+ },
}
diff --git a/lib/rules/a11y-no-generic-link-text.js b/lib/rules/a11y-no-generic-link-text.js
index 832ca8b0..732eb4ec 100644
--- a/lib/rules/a11y-no-generic-link-text.js
+++ b/lib/rules/a11y-no-generic-link-text.js
@@ -16,9 +16,9 @@ module.exports = {
meta: {
docs: {
description: 'disallow generic link text',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -46,13 +46,13 @@ module.exports = {
context.report({
node,
message:
- 'Avoid setting generic link text like `Here`, `Click here`, `Read more`. Make sure that your link text is both descriptive and concise.'
+ 'Avoid setting generic link text like `Here`, `Click here`, `Read more`. Make sure that your link text is both descriptive and concise.',
})
}
if (cleanTextContent && !cleanAriaLabelValue.includes(cleanTextContent)) {
context.report({
node,
- message: 'When using ARIA to set a more descriptive text, it must fully contain the visible label.'
+ message: 'When using ARIA to set a more descriptive text, it must fully contain the visible label.',
})
}
} else {
@@ -61,11 +61,11 @@ module.exports = {
context.report({
node: jsxTextNode,
message:
- 'Avoid setting generic link text like `Here`, `Click here`, `Read more`. Make sure that your link text is both descriptive and concise.'
+ 'Avoid setting generic link text like `Here`, `Click here`, `Read more`. Make sure that your link text is both descriptive and concise.',
})
}
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/array-foreach.js b/lib/rules/array-foreach.js
index 279e9687..1d133db7 100644
--- a/lib/rules/array-foreach.js
+++ b/lib/rules/array-foreach.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'suggestion',
docs: {
description: 'enforce `for..of` loops over `Array.forEach`',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -14,7 +14,7 @@ module.exports = {
if (node.callee.property && node.callee.property.name === 'forEach') {
context.report({node, message: 'Prefer for...of instead of Array.forEach'})
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/async-currenttarget.js b/lib/rules/async-currenttarget.js
index d96c43ba..d2115b40 100644
--- a/lib/rules/async-currenttarget.js
+++ b/lib/rules/async-currenttarget.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'problem',
docs: {
description: 'disallow `event.currentTarget` calls inside of async functions',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -22,7 +22,7 @@ module.exports = {
context.report({node, message: 'event.currentTarget inside an async function is error prone'})
}
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/async-preventdefault.js b/lib/rules/async-preventdefault.js
index 208d99a6..51adc77c 100644
--- a/lib/rules/async-preventdefault.js
+++ b/lib/rules/async-preventdefault.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'problem',
docs: {
description: 'disallow `event.preventDefault` calls inside of async functions',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -22,7 +22,7 @@ module.exports = {
context.report({node, message: 'event.preventDefault() inside an async function is error prone'})
}
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/authenticity-token.js b/lib/rules/authenticity-token.js
index cccd881a..77a9c757 100644
--- a/lib/rules/authenticity-token.js
+++ b/lib/rules/authenticity-token.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'problem',
docs: {
description: 'disallow usage of CSRF tokens in JavaScript',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -14,7 +14,7 @@ module.exports = {
context.report({
node,
message:
- 'Form CSRF tokens (authenticity tokens) should not be created in JavaScript and their values should not be used directly for XHR requests.'
+ 'Form CSRF tokens (authenticity tokens) should not be created in JavaScript and their values should not be used directly for XHR requests.',
})
}
}
@@ -24,7 +24,7 @@ module.exports = {
if (typeof node.value === 'string') {
checkAuthenticityTokenUsage(node, node.value)
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/get-attribute.js b/lib/rules/get-attribute.js
index 0dd553d8..611b8bb1 100644
--- a/lib/rules/get-attribute.js
+++ b/lib/rules/get-attribute.js
@@ -22,10 +22,10 @@ module.exports = {
type: 'problem',
docs: {
description: 'disallow wrong usage of attribute names',
- url: require('../url')(module)
+ url: require('../url')(module),
},
fixable: 'code',
- schema: []
+ schema: [],
},
create(context) {
return {
@@ -44,10 +44,10 @@ module.exports = {
message: 'Attributes should be lowercase and hyphen separated, or part of the SVG whitelist.',
fix(fixer) {
return fixer.replaceText(attributeNameNode, `'${attributeNameNode.value.toLowerCase()}'`)
- }
+ },
})
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/js-class-name.js b/lib/rules/js-class-name.js
index f4fe8580..6de759ab 100644
--- a/lib/rules/js-class-name.js
+++ b/lib/rules/js-class-name.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'suggestion',
docs: {
description: 'enforce a naming convention for js- prefixed classes',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -51,7 +51,7 @@ module.exports = {
checkStringEndsWithJSClassName(quasi, quasi.value.raw)
}
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/no-blur.js b/lib/rules/no-blur.js
index 1d979d4c..775d2e93 100644
--- a/lib/rules/no-blur.js
+++ b/lib/rules/no-blur.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'problem',
docs: {
description: 'disallow usage of `Element.prototype.blur()`',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
return {
@@ -13,7 +13,7 @@ module.exports = {
if (node.callee.property && node.callee.property.name === 'blur') {
context.report({node, message: 'Do not use element.blur(), instead restore the focus of a previous element.'})
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/no-d-none.js b/lib/rules/no-d-none.js
index 7513f2e1..64667f40 100644
--- a/lib/rules/no-d-none.js
+++ b/lib/rules/no-d-none.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'problem',
docs: {
description: 'disallow usage the `d-none` CSS class',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
return {
@@ -21,11 +21,11 @@ module.exports = {
if (invalidArgument) {
context.report({
node,
- message: 'Prefer hidden property to d-none class'
+ message: 'Prefer hidden property to d-none class',
})
}
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/no-dataset.js b/lib/rules/no-dataset.js
index e3c0ab4b..948b8732 100644
--- a/lib/rules/no-dataset.js
+++ b/lib/rules/no-dataset.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'problem',
docs: {
description: 'enforce usage of `Element.prototype.getAttribute` instead of `Element.prototype.datalist`',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -14,7 +14,7 @@ module.exports = {
if (node.property && node.property.name === 'dataset') {
context.report({node, message: "Use getAttribute('data-your-attribute') instead of dataset."})
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/no-dynamic-script-tag.js b/lib/rules/no-dynamic-script-tag.js
index ef494b8b..7e5513d2 100644
--- a/lib/rules/no-dynamic-script-tag.js
+++ b/lib/rules/no-dynamic-script-tag.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'suggestion',
docs: {
description: 'disallow creating dynamic script tags',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -15,15 +15,15 @@ module.exports = {
context.report({
node: node.arguments[0],
- message: "Don't create dynamic script tags, add them in the server template instead."
+ message: "Don't create dynamic script tags, add them in the server template instead.",
})
},
'AssignmentExpression[left.property.name="type"][right.value="text/javascript"]': function (node) {
context.report({
node: node.right,
- message: "Don't create dynamic script tags, add them in the server template instead."
+ message: "Don't create dynamic script tags, add them in the server template instead.",
})
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/no-implicit-buggy-globals.js b/lib/rules/no-implicit-buggy-globals.js
index 4a3af069..68fd95a6 100644
--- a/lib/rules/no-implicit-buggy-globals.js
+++ b/lib/rules/no-implicit-buggy-globals.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'problem',
docs: {
description: 'disallow implicit global variables',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -29,7 +29,7 @@ module.exports = {
}
}
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/no-inner-html.js b/lib/rules/no-inner-html.js
index 8e6c30d1..570e1269 100644
--- a/lib/rules/no-inner-html.js
+++ b/lib/rules/no-inner-html.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'problem',
docs: {
description: 'disallow `Element.prototype.innerHTML` in favor of `Element.prototype.textContent`',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -13,9 +13,9 @@ module.exports = {
'MemberExpression[property.name=innerHTML]': function (node) {
context.report({
node: node.property,
- message: 'Using innerHTML poses a potential security risk and should not be used. Prefer using textContent.'
+ message: 'Using innerHTML poses a potential security risk and should not be used. Prefer using textContent.',
})
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/no-innerText.js b/lib/rules/no-innerText.js
index b1396d77..daf80491 100644
--- a/lib/rules/no-innerText.js
+++ b/lib/rules/no-innerText.js
@@ -3,10 +3,10 @@ module.exports = {
type: 'problem',
docs: {
description: 'disallow `Element.prototype.innerText` in favor of `Element.prototype.textContent`',
- url: require('../url')(module)
+ url: require('../url')(module),
},
fixable: 'code',
- schema: []
+ schema: [],
},
create(context) {
@@ -15,16 +15,16 @@ module.exports = {
if (node.property && node.property.name === 'innerText') {
context.report({
meta: {
- fixable: 'code'
+ fixable: 'code',
},
node: node.property,
message: 'Prefer textContent to innerText',
fix(fixer) {
return fixer.replaceText(node.property, 'textContent')
- }
+ },
})
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/no-then.js b/lib/rules/no-then.js
index 76656245..e1767145 100644
--- a/lib/rules/no-then.js
+++ b/lib/rules/no-then.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'suggestion',
docs: {
description: 'enforce using `async/await` syntax over Promises',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -16,7 +16,7 @@ module.exports = {
} else if (node.property && node.property.name === 'catch') {
context.report({node: node.property, message: 'Prefer async/await to Promise.catch()'})
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/no-useless-passive.js b/lib/rules/no-useless-passive.js
index d53b2047..5e771884 100644
--- a/lib/rules/no-useless-passive.js
+++ b/lib/rules/no-useless-passive.js
@@ -1,4 +1,12 @@
-const passiveEventListenerNames = new Set(['touchstart', 'touchmove', 'wheel', 'mousewheel'])
+const passiveEventListenerNames = new Set([
+ 'touchstart',
+ 'touchmove',
+ 'touchenter',
+ 'touchend',
+ 'touchleave',
+ 'wheel',
+ 'mousewheel',
+])
const propIsPassiveTrue = prop => prop.key && prop.key.name === 'passive' && prop.value && prop.value.value === true
@@ -7,10 +15,10 @@ module.exports = {
type: 'suggestion',
docs: {
description: 'disallow marking a event handler as passive when it has no effect',
- url: require('../url')(module)
+ url: require('../url')(module),
},
fixable: 'code',
- schema: []
+ schema: [],
},
create(context) {
@@ -42,10 +50,10 @@ module.exports = {
}
}
return removals.map(t => fixer.remove(t))
- }
+ },
})
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/prefer-observers.js b/lib/rules/prefer-observers.js
index 961c75f7..00abd41a 100644
--- a/lib/rules/prefer-observers.js
+++ b/lib/rules/prefer-observers.js
@@ -1,15 +1,15 @@
const observerMap = {
scroll: 'IntersectionObserver',
- resize: 'ResizeObserver'
+ resize: 'ResizeObserver',
}
module.exports = {
meta: {
type: 'suggestion',
docs: {
description: 'disallow poorly performing event listeners',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -20,9 +20,9 @@ module.exports = {
if (!(name.value in observerMap)) return
context.report({
node,
- message: `Avoid using "${name.value}" event listener. Consider using ${observerMap[name.value]} instead`
+ message: `Avoid using "${name.value}" event listener. Consider using ${observerMap[name.value]} instead`,
})
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/require-passive-events.js b/lib/rules/require-passive-events.js
index bce8787b..f55044b6 100644
--- a/lib/rules/require-passive-events.js
+++ b/lib/rules/require-passive-events.js
@@ -1,4 +1,12 @@
-const passiveEventListenerNames = new Set(['touchstart', 'touchmove', 'wheel', 'mousewheel'])
+const passiveEventListenerNames = new Set([
+ 'touchstart',
+ 'touchmove',
+ 'touchenter',
+ 'touchend',
+ 'touchleave',
+ 'wheel',
+ 'mousewheel',
+])
const propIsPassiveTrue = prop => prop.key && prop.key.name === 'passive' && prop.value && prop.value.value === true
@@ -7,9 +15,9 @@ module.exports = {
type: 'suggestion',
docs: {
description: 'enforce marking high frequency event handlers as passive',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -21,7 +29,7 @@ module.exports = {
if (!passiveEventListenerNames.has(name.value)) return
if (options && options.type === 'ObjectExpression' && options.properties.some(propIsPassiveTrue)) return
context.report({node, message: `High Frequency Events like "${name.value}" should be \`passive: true\``})
- }
+ },
}
- }
+ },
}
diff --git a/lib/rules/role-supports-aria-props.js b/lib/rules/role-supports-aria-props.js
new file mode 100644
index 00000000..55644c1f
--- /dev/null
+++ b/lib/rules/role-supports-aria-props.js
@@ -0,0 +1,101 @@
+// @ts-check
+const {aria, elementRoles, roles} = require('aria-query')
+const {getProp, getPropValue, propName} = require('jsx-ast-utils')
+const {getElementType} = require('../utils/get-element-type')
+const ObjectMap = require('../utils/object-map')
+
+// Clean-up `elementRoles` from `aria-query`
+const elementRolesMap = new ObjectMap()
+for (const [key, value] of elementRoles.entries()) {
+ // - Remove unused `constraints` key
+ delete key.constraints
+ key.attributes = key.attributes?.filter(attribute => !('constraints' in attribute))
+ // - Remove empty `attributes` key
+ if (!key.attributes || key.attributes?.length === 0) {
+ delete key.attributes
+ }
+ elementRolesMap.set(key, value)
+}
+// - Remove insufficiently-disambiguated `menuitem` entry
+elementRolesMap.delete({name: 'menuitem'})
+// - Disambiguate `menuitem` and `menu` roles by `type`
+elementRolesMap.set({name: 'menuitem', attributes: [{name: 'type', value: 'command'}]}, ['menuitem'])
+elementRolesMap.set({name: 'menuitem', attributes: [{name: 'type', value: 'radio'}]}, ['menuitemradio'])
+elementRolesMap.set({name: 'menuitem', attributes: [{name: 'type', value: 'toolbar'}]}, ['toolbar'])
+elementRolesMap.set({name: 'menu', attributes: [{name: 'type', value: 'toolbar'}]}, ['toolbar'])
+
+module.exports = {
+ meta: {
+ docs: {
+ description:
+ 'Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`.',
+ url: require('../url')(module),
+ },
+ schema: [],
+ },
+
+ create(context) {
+ return {
+ JSXOpeningElement(node) {
+ // Assemble a key for looking-up the element’s role in the `elementRolesMap`
+ // - Get the element’s name
+ const key = {name: getElementType(context, node)}
+ // - Get the element’s disambiguating attributes
+ for (const prop of ['aria-expanded', 'type', 'size', 'role', 'href', 'multiple', 'scope']) {
+ // - Only provide `aria-expanded` when it’s required for disambiguation
+ if (prop === 'aria-expanded' && key.name !== 'summary') continue
+ const value = getPropValue(getProp(node.attributes, prop))
+ if (value) {
+ if (!('attributes' in key)) {
+ key.attributes = []
+ }
+ if (prop === 'href') {
+ key.attributes.push({name: prop})
+ } else {
+ key.attributes.push({name: prop, value})
+ }
+ }
+ }
+ // Get the element’s explicit or implicit role
+ const role = getPropValue(getProp(node.attributes, 'role')) ?? elementRolesMap.get(key)?.[0]
+
+ // Return early if role could not be determined
+ if (!role) return
+
+ // Get allowed ARIA attributes:
+ // - From the role itself
+ let allowedProps = Object.keys(roles.get(role)?.props || {})
+ // - From parent roles
+ for (const parentRole of roles.get(role)?.superClass.flat() ?? []) {
+ allowedProps = allowedProps.concat(Object.keys(roles.get(parentRole)?.props || {}))
+ }
+ // Dedupe, for performance
+ allowedProps = Array.from(new Set(allowedProps))
+
+ // Get prohibited ARIA attributes:
+ // - From the role itself
+ let prohibitedProps = roles.get(role)?.prohibitedProps || []
+ // - From parent roles
+ for (const parentRole of roles.get(role)?.superClass.flat() ?? []) {
+ prohibitedProps = prohibitedProps.concat(roles.get(parentRole)?.prohibitedProps || [])
+ }
+ // - From comparing allowed vs all ARIA attributes
+ prohibitedProps = prohibitedProps.concat(aria.keys().filter(x => !allowedProps.includes(x)))
+ // Dedupe, for performance
+ prohibitedProps = Array.from(new Set(prohibitedProps))
+
+ for (const prop of node.attributes) {
+ // Return early if prohibited ARIA attribute is set to an ignorable value
+ if (getPropValue(prop) == null || prop.type === 'JSXSpreadAttribute') return
+
+ if (prohibitedProps?.includes(propName(prop))) {
+ context.report({
+ node,
+ message: `The attribute ${propName(prop)} is not supported by the role ${role}.`,
+ })
+ }
+ }
+ },
+ }
+ },
+}
diff --git a/lib/rules/unescaped-html-literal.js b/lib/rules/unescaped-html-literal.js
index 530af8b6..b69dbf08 100644
--- a/lib/rules/unescaped-html-literal.js
+++ b/lib/rules/unescaped-html-literal.js
@@ -3,9 +3,9 @@ module.exports = {
type: 'problem',
docs: {
description: 'disallow unescaped HTML literals',
- url: require('../url')(module)
+ url: require('../url')(module),
},
- schema: []
+ schema: [],
},
create(context) {
@@ -18,7 +18,7 @@ module.exports = {
context.report({
node,
- message
+ message,
})
},
TemplateLiteral(node) {
@@ -27,10 +27,10 @@ module.exports = {
if (!node.parent.tag || node.parent.tag.name !== 'html') {
context.report({
node,
- message
+ message,
})
}
- }
+ },
}
- }
+ },
}
diff --git a/lib/utils/object-map.js b/lib/utils/object-map.js
new file mode 100644
index 00000000..5c54a8bf
--- /dev/null
+++ b/lib/utils/object-map.js
@@ -0,0 +1,58 @@
+// @ts-check
+const {isDeepStrictEqual} = require('util')
+
+/**
+ * ObjectMap extends Map, but determines key equality using Node.js’ `util.isDeepStrictEqual` rather than using [SameValueZero](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#key_equality). This makes using objects as keys a bit simpler.
+ */
+module.exports = class ObjectMap extends Map {
+ #data
+
+ constructor(iterable = []) {
+ super()
+ this.#data = iterable
+ }
+
+ clear() {
+ this.#data = []
+ }
+
+ delete(key) {
+ if (!this.has(key)) {
+ return false
+ }
+ this.#data = this.#data.filter(([existingKey]) => !isDeepStrictEqual(existingKey, key))
+ return true
+ }
+
+ entries() {
+ return this.#data[Symbol.iterator]()
+ }
+
+ forEach(cb) {
+ for (const [key, value] of this.#data) {
+ cb(value, key, this.#data)
+ }
+ }
+
+ get(key) {
+ return this.#data.find(([existingKey]) => isDeepStrictEqual(existingKey, key))?.[1]
+ }
+
+ has(key) {
+ return this.#data.findIndex(([existingKey]) => isDeepStrictEqual(existingKey, key)) !== -1
+ }
+
+ keys() {
+ return this.#data.map(([key]) => key)[Symbol.iterator]()
+ }
+
+ set(key, value) {
+ this.delete(key)
+ this.#data.push([key, value])
+ return this
+ }
+
+ values() {
+ return this.#data.map(([, value]) => value)[Symbol.iterator]()
+ }
+}
diff --git a/package-lock.json b/package-lock.json
index 4728daee..bf13fc03 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,13 +12,14 @@
"@github/browserslist-config": "^1.0.0",
"@typescript-eslint/eslint-plugin": "^5.1.0",
"@typescript-eslint/parser": "^5.1.0",
+ "aria-query": "^5.1.3",
"eslint-config-prettier": ">=8.0.0",
"eslint-plugin-escompat": "^3.3.3",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-filenames": "^1.3.2",
"eslint-plugin-i18n-text": "^1.0.1",
"eslint-plugin-import": "^2.25.2",
- "eslint-plugin-jsx-a11y": "^6.6.0",
+ "eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-no-only-tests": "^3.0.0",
"eslint-plugin-prettier": "^4.0.0",
"eslint-rule-documentation": ">=1.0.0",
@@ -30,7 +31,7 @@
"eslint-ignore-errors": "bin/eslint-ignore-errors.js"
},
"devDependencies": {
- "@github/prettier-config": "0.0.4",
+ "@github/prettier-config": "0.0.6",
"chai": "^4.3.6",
"eslint": "^8.0.1",
"eslint-plugin-eslint-plugin": "^5.0.0",
@@ -41,37 +42,25 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
- "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz",
+ "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==",
"dependencies": {
- "regenerator-runtime": "^0.13.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/runtime-corejs3": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz",
- "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==",
- "dependencies": {
- "core-js-pure": "^3.20.2",
- "regenerator-runtime": "^0.13.4"
+ "regenerator-runtime": "^0.13.11"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@eslint/eslintrc": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
- "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
+ "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.4.0",
- "globals": "^13.15.0",
+ "globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@@ -91,19 +80,19 @@
"integrity": "sha512-gIhjdJp/c2beaIWWIlsXdqXVRUz3r2BxBCpfz/F3JXHvSAQ1paMYjLH+maEATtENg+k5eLV7gA+9yPp762ieuw=="
},
"node_modules/@github/prettier-config": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/@github/prettier-config/-/prettier-config-0.0.4.tgz",
- "integrity": "sha512-ZOJ+U771Mw68qp2GPbcqPt2Xg0LEl0YwiIFHXwVLAFm2TgDnsgcCHhXO8PIxOWPqSFO4S7xIMD9CBobfaWGASA==",
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/@github/prettier-config/-/prettier-config-0.0.6.tgz",
+ "integrity": "sha512-Sdb089z+QbGnFF2NivbDeaJ62ooPlD31wE6Fkb/ESjAOXSjNJo+gjqzYYhlM7G3ERJmKFZRUJYMlsqB7Tym8lQ==",
"dev": true
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.6",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz",
- "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==",
+ "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==",
"dependencies": {
"@humanwhocodes/object-schema": "^1.2.1",
"debug": "^4.1.1",
- "minimatch": "^3.0.4"
+ "minimatch": "^3.0.5"
},
"engines": {
"node": ">=10.10.0"
@@ -174,14 +163,15 @@
"integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw=="
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz",
- "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz",
+ "integrity": "sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==",
"dependencies": {
- "@typescript-eslint/scope-manager": "5.45.0",
- "@typescript-eslint/type-utils": "5.45.0",
- "@typescript-eslint/utils": "5.45.0",
+ "@typescript-eslint/scope-manager": "5.51.0",
+ "@typescript-eslint/type-utils": "5.51.0",
+ "@typescript-eslint/utils": "5.51.0",
"debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"natural-compare-lite": "^1.4.0",
"regexpp": "^3.2.0",
@@ -206,13 +196,13 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz",
- "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz",
+ "integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==",
"dependencies": {
- "@typescript-eslint/scope-manager": "5.45.0",
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/typescript-estree": "5.45.0",
+ "@typescript-eslint/scope-manager": "5.51.0",
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/typescript-estree": "5.51.0",
"debug": "^4.3.4"
},
"engines": {
@@ -232,12 +222,12 @@
}
},
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz",
- "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz",
+ "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==",
"dependencies": {
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/visitor-keys": "5.45.0"
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/visitor-keys": "5.51.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -248,9 +238,9 @@
}
},
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz",
- "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz",
+ "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -260,12 +250,12 @@
}
},
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz",
- "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz",
+ "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==",
"dependencies": {
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/visitor-keys": "5.45.0",
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/visitor-keys": "5.51.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -286,11 +276,11 @@
}
},
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz",
- "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz",
+ "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==",
"dependencies": {
- "@typescript-eslint/types": "5.45.0",
+ "@typescript-eslint/types": "5.51.0",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -310,12 +300,12 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz",
- "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz",
+ "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==",
"dependencies": {
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/visitor-keys": "5.45.0"
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/visitor-keys": "5.51.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -326,12 +316,12 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz",
- "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz",
+ "integrity": "sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==",
"dependencies": {
- "@typescript-eslint/typescript-estree": "5.45.0",
- "@typescript-eslint/utils": "5.45.0",
+ "@typescript-eslint/typescript-estree": "5.51.0",
+ "@typescript-eslint/utils": "5.51.0",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
},
@@ -352,9 +342,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz",
- "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz",
+ "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -364,12 +354,12 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz",
- "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz",
+ "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==",
"dependencies": {
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/visitor-keys": "5.45.0",
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/visitor-keys": "5.51.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -390,15 +380,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz",
- "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.51.0.tgz",
+ "integrity": "sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==",
"dependencies": {
"@types/json-schema": "^7.0.9",
"@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.45.0",
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/typescript-estree": "5.45.0",
+ "@typescript-eslint/scope-manager": "5.51.0",
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/typescript-estree": "5.51.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0",
"semver": "^7.3.7"
@@ -415,11 +405,11 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz",
- "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz",
+ "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==",
"dependencies": {
- "@typescript-eslint/types": "5.45.0",
+ "@typescript-eslint/types": "5.51.0",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -439,9 +429,9 @@
}
},
"node_modules/acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
"bin": {
"acorn": "bin/acorn"
},
@@ -522,26 +512,22 @@
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
+ "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
"dependencies": {
- "@babel/runtime": "^7.10.2",
- "@babel/runtime-corejs3": "^7.10.2"
- },
- "engines": {
- "node": ">=6.0"
+ "deep-equal": "^2.0.5"
}
},
"node_modules/array-includes": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
- "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5",
- "get-intrinsic": "^1.1.1",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
"is-string": "^1.0.7"
},
"engines": {
@@ -560,13 +546,31 @@
}
},
"node_modules/array.prototype.flat": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
- "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
+ "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==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "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==",
+ "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"
@@ -589,18 +593,32 @@
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
"integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
},
+ "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==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/axe-core": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz",
- "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.2.tgz",
+ "integrity": "sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg==",
"engines": {
"node": ">=4"
}
},
"node_modules/axobject-query": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
- "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA=="
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz",
+ "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==",
+ "dependencies": {
+ "deep-equal": "^2.0.5"
+ }
},
"node_modules/balanced-match": {
"version": "1.0.2",
@@ -852,16 +870,6 @@
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
- "node_modules/core-js-pure": {
- "version": "3.23.5",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.5.tgz",
- "integrity": "sha512-8t78LdpKSuCq4pJYCYk8hl7XEkAX+BP16yRIwL3AanTksxuEf7CM83vRyctmiEL8NDZ3jpUcv56fk9/zG3aIuw==",
- "hasInstallScript": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -920,6 +928,31 @@
"node": ">=6"
}
},
+ "node_modules/deep-equal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz",
+ "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "es-get-iterator": "^1.1.2",
+ "get-intrinsic": "^1.1.3",
+ "is-arguments": "^1.1.1",
+ "is-date-object": "^1.0.5",
+ "is-regex": "^1.1.4",
+ "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.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -983,33 +1016,43 @@
"dev": true
},
"node_modules/es-abstract": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz",
- "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dependencies": {
+ "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.1",
+ "get-intrinsic": "^1.1.3",
"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.3",
- "is-callable": "^1.2.4",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
+ "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.0",
+ "object-inspect": "^1.12.2",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
+ "object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "safe-regex-test": "^1.0.0",
+ "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"
@@ -1018,6 +1061,45 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es-get-iterator": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
+ "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.0",
+ "has-symbols": "^1.0.1",
+ "is-arguments": "^1.1.0",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.5",
+ "isarray": "^2.0.5"
+ },
+ "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==",
+ "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==",
+ "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",
@@ -1054,12 +1136,12 @@
}
},
"node_modules/eslint": {
- "version": "8.29.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz",
- "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==",
+ "version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz",
+ "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==",
"dependencies": {
- "@eslint/eslintrc": "^1.3.3",
- "@humanwhocodes/config-array": "^0.11.6",
+ "@eslint/eslintrc": "^1.4.1",
+ "@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.10.0",
@@ -1078,7 +1160,7 @@
"file-entry-cache": "^6.0.1",
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
- "globals": "^13.15.0",
+ "globals": "^13.19.0",
"grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
@@ -1109,9 +1191,9 @@
}
},
"node_modules/eslint-config-prettier": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
- "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz",
+ "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==",
"bin": {
"eslint-config-prettier": "bin/cli.js"
},
@@ -1120,12 +1202,13 @@
}
},
"node_modules/eslint-import-resolver-node": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
- "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
+ "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
"dependencies": {
"debug": "^3.2.7",
- "resolve": "^1.20.0"
+ "is-core-module": "^2.11.0",
+ "resolve": "^1.22.1"
}
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
@@ -1137,15 +1220,19 @@
}
},
"node_modules/eslint-module-utils": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz",
- "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==",
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
+ "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==",
"dependencies": {
- "debug": "^3.2.7",
- "find-up": "^2.1.0"
+ "debug": "^3.2.7"
},
"engines": {
"node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
}
},
"node_modules/eslint-module-utils/node_modules/debug": {
@@ -1194,13 +1281,13 @@
}
},
"node_modules/eslint-plugin-eslint-plugin": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-5.0.3.tgz",
- "integrity": "sha512-GcJO7etUAql3mvw2pyEuIFRTR0i+b3W44hcxE1JOTPrf+bbkRtgeNfL+DFBGeYCe25hzMfuRvd0FmqHBtLmdcg==",
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-5.0.8.tgz",
+ "integrity": "sha512-bxPMZ3L/+5YypErWQMKUI9XdkLpgqOOO0CgbtHjk5Zxzcg4EVsWYPy8duvGSLxSyR60LBIoXNzVMueEZ3/j0AQ==",
"dev": true,
"dependencies": {
"eslint-utils": "^3.0.0",
- "estraverse": "^5.2.0"
+ "estraverse": "^5.3.0"
},
"engines": {
"node": "^14.17.0 || ^16.0.0 || >= 18.0.0"
@@ -1241,22 +1328,24 @@
}
},
"node_modules/eslint-plugin-import": {
- "version": "2.26.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
- "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
+ "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==",
"dependencies": {
- "array-includes": "^3.1.4",
- "array.prototype.flat": "^1.2.5",
- "debug": "^2.6.9",
+ "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.6",
- "eslint-module-utils": "^2.7.3",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.7.4",
"has": "^1.0.3",
- "is-core-module": "^2.8.1",
+ "is-core-module": "^2.11.0",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
- "object.values": "^1.1.5",
- "resolve": "^1.22.0",
+ "object.values": "^1.1.6",
+ "resolve": "^1.22.1",
+ "semver": "^6.3.0",
"tsconfig-paths": "^3.14.1"
},
"engines": {
@@ -1267,11 +1356,11 @@
}
},
"node_modules/eslint-plugin-import/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dependencies": {
- "ms": "2.0.0"
+ "ms": "^2.1.1"
}
},
"node_modules/eslint-plugin-import/node_modules/doctrine": {
@@ -1285,28 +1374,34 @@
"node": ">=0.10.0"
}
},
- "node_modules/eslint-plugin-import/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "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==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
},
"node_modules/eslint-plugin-jsx-a11y": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz",
- "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==",
- "dependencies": {
- "@babel/runtime": "^7.18.9",
- "aria-query": "^4.2.2",
- "array-includes": "^3.1.5",
+ "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==",
+ "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.4.3",
- "axobject-query": "^2.2.0",
+ "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.2",
- "language-tags": "^1.0.5",
+ "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": {
@@ -1496,9 +1591,9 @@
}
},
"node_modules/espree": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
- "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
"dependencies": {
"acorn": "^8.8.0",
"acorn-jsx": "^5.3.2",
@@ -1649,17 +1744,6 @@
"node": ">=8"
}
},
- "node_modules/find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dependencies": {
- "locate-path": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/flat": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
@@ -1686,6 +1770,14 @@
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz",
"integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA=="
},
+ "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==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -1754,13 +1846,13 @@
}
},
"node_modules/get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
- "has-symbols": "^1.0.1"
+ "has-symbols": "^1.0.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -1812,9 +1904,9 @@
}
},
"node_modules/globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "version": "13.19.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+ "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -1825,6 +1917,20 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "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",
@@ -1844,6 +1950,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/grapheme-splitter": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
@@ -1887,6 +2004,17 @@
"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==",
+ "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",
@@ -1967,11 +2095,11 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/internal-slot": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
- "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
+ "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
"dependencies": {
- "get-intrinsic": "^1.1.0",
+ "get-intrinsic": "^1.1.3",
"has": "^1.0.3",
"side-channel": "^1.0.4"
},
@@ -1979,6 +2107,34 @@
"node": ">= 0.4"
}
},
+ "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==",
+ "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.1",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz",
+ "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-typed-array": "^1.1.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-bigint": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
@@ -2018,9 +2174,9 @@
}
},
"node_modules/is-callable": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
- "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"engines": {
"node": ">= 0.4"
},
@@ -2029,9 +2185,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
- "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
"dependencies": {
"has": "^1.0.3"
},
@@ -2072,6 +2228,14 @@
"node": ">=0.10.0"
}
},
+ "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==",
+ "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",
@@ -2137,6 +2301,14 @@
"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==",
+ "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",
@@ -2176,6 +2348,24 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "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==",
+ "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-unicode-supported": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
@@ -2188,6 +2378,14 @@
"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==",
+ "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",
@@ -2199,6 +2397,23 @@
"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==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ },
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -2231,9 +2446,9 @@
"integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
},
"node_modules/json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dependencies": {
"minimist": "^1.2.0"
},
@@ -2278,18 +2493,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dependencies": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/lodash.camelcase": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
@@ -2388,9 +2591,9 @@
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"node_modules/mocha": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz",
- "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==",
+ "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",
@@ -2588,6 +2791,21 @@
"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==",
+ "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",
@@ -2597,9 +2815,9 @@
}
},
"node_modules/object.assign": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.3.tgz",
- "integrity": "sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==",
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
@@ -2613,14 +2831,43 @@
"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==",
+ "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==",
+ "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.values": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
- "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
},
"engines": {
"node": ">= 0.4"
@@ -2653,36 +2900,6 @@
"node": ">= 0.8.0"
}
},
- "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==",
- "dependencies": {
- "p-try": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dependencies": {
- "p-limit": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -2694,14 +2911,6 @@
"node": ">=6"
}
},
- "node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -2765,9 +2974,9 @@
}
},
"node_modules/prettier": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz",
- "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==",
+ "version": "2.8.4",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz",
+ "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==",
"bin": {
"prettier": "bin-prettier.js"
},
@@ -2838,9 +3047,9 @@
}
},
"node_modules/regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
},
"node_modules/regexp.prototype.flags": {
"version": "1.4.3",
@@ -2879,11 +3088,11 @@
}
},
"node_modules/resolve": {
- "version": "1.22.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
- "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
"dependencies": {
- "is-core-module": "^2.8.1",
+ "is-core-module": "^2.9.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -2967,6 +3176,19 @@
}
]
},
+ "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==",
+ "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/semver": {
"version": "7.3.7",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
@@ -3031,26 +3253,26 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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==",
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
+ "es-abstract": "^1.20.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
+ "es-abstract": "^1.20.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -3194,6 +3416,19 @@
"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==",
+ "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/typescript": {
"version": "4.7.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz",
@@ -3283,6 +3518,39 @@
"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==",
+ "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-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==",
+ "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/word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
@@ -3435,31 +3703,22 @@
},
"dependencies": {
"@babel/runtime": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
- "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@babel/runtime-corejs3": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz",
- "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz",
+ "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==",
"requires": {
- "core-js-pure": "^3.20.2",
- "regenerator-runtime": "^0.13.4"
+ "regenerator-runtime": "^0.13.11"
}
},
"@eslint/eslintrc": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
- "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
+ "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.4.0",
- "globals": "^13.15.0",
+ "globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@@ -3473,19 +3732,19 @@
"integrity": "sha512-gIhjdJp/c2beaIWWIlsXdqXVRUz3r2BxBCpfz/F3JXHvSAQ1paMYjLH+maEATtENg+k5eLV7gA+9yPp762ieuw=="
},
"@github/prettier-config": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/@github/prettier-config/-/prettier-config-0.0.4.tgz",
- "integrity": "sha512-ZOJ+U771Mw68qp2GPbcqPt2Xg0LEl0YwiIFHXwVLAFm2TgDnsgcCHhXO8PIxOWPqSFO4S7xIMD9CBobfaWGASA==",
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/@github/prettier-config/-/prettier-config-0.0.6.tgz",
+ "integrity": "sha512-Sdb089z+QbGnFF2NivbDeaJ62ooPlD31wE6Fkb/ESjAOXSjNJo+gjqzYYhlM7G3ERJmKFZRUJYMlsqB7Tym8lQ==",
"dev": true
},
"@humanwhocodes/config-array": {
- "version": "0.11.6",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz",
- "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==",
+ "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==",
"requires": {
"@humanwhocodes/object-schema": "^1.2.1",
"debug": "^4.1.1",
- "minimatch": "^3.0.4"
+ "minimatch": "^3.0.5"
}
},
"@humanwhocodes/module-importer": {
@@ -3537,14 +3796,15 @@
"integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw=="
},
"@typescript-eslint/eslint-plugin": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz",
- "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz",
+ "integrity": "sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==",
"requires": {
- "@typescript-eslint/scope-manager": "5.45.0",
- "@typescript-eslint/type-utils": "5.45.0",
- "@typescript-eslint/utils": "5.45.0",
+ "@typescript-eslint/scope-manager": "5.51.0",
+ "@typescript-eslint/type-utils": "5.51.0",
+ "@typescript-eslint/utils": "5.51.0",
"debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"natural-compare-lite": "^1.4.0",
"regexpp": "^3.2.0",
@@ -3553,37 +3813,37 @@
}
},
"@typescript-eslint/parser": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz",
- "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz",
+ "integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==",
"requires": {
- "@typescript-eslint/scope-manager": "5.45.0",
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/typescript-estree": "5.45.0",
+ "@typescript-eslint/scope-manager": "5.51.0",
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/typescript-estree": "5.51.0",
"debug": "^4.3.4"
},
"dependencies": {
"@typescript-eslint/scope-manager": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz",
- "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz",
+ "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==",
"requires": {
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/visitor-keys": "5.45.0"
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/visitor-keys": "5.51.0"
}
},
"@typescript-eslint/types": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz",
- "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA=="
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz",
+ "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw=="
},
"@typescript-eslint/typescript-estree": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz",
- "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz",
+ "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==",
"requires": {
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/visitor-keys": "5.45.0",
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/visitor-keys": "5.51.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -3592,11 +3852,11 @@
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz",
- "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz",
+ "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==",
"requires": {
- "@typescript-eslint/types": "5.45.0",
+ "@typescript-eslint/types": "5.51.0",
"eslint-visitor-keys": "^3.3.0"
}
},
@@ -3608,37 +3868,37 @@
}
},
"@typescript-eslint/scope-manager": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz",
- "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz",
+ "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==",
"requires": {
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/visitor-keys": "5.45.0"
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/visitor-keys": "5.51.0"
}
},
"@typescript-eslint/type-utils": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz",
- "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz",
+ "integrity": "sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==",
"requires": {
- "@typescript-eslint/typescript-estree": "5.45.0",
- "@typescript-eslint/utils": "5.45.0",
+ "@typescript-eslint/typescript-estree": "5.51.0",
+ "@typescript-eslint/utils": "5.51.0",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
}
},
"@typescript-eslint/types": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz",
- "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA=="
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz",
+ "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw=="
},
"@typescript-eslint/typescript-estree": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz",
- "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz",
+ "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==",
"requires": {
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/visitor-keys": "5.45.0",
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/visitor-keys": "5.51.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -3647,26 +3907,26 @@
}
},
"@typescript-eslint/utils": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz",
- "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.51.0.tgz",
+ "integrity": "sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==",
"requires": {
"@types/json-schema": "^7.0.9",
"@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.45.0",
- "@typescript-eslint/types": "5.45.0",
- "@typescript-eslint/typescript-estree": "5.45.0",
+ "@typescript-eslint/scope-manager": "5.51.0",
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/typescript-estree": "5.51.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0",
"semver": "^7.3.7"
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.45.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz",
- "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz",
+ "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==",
"requires": {
- "@typescript-eslint/types": "5.45.0",
+ "@typescript-eslint/types": "5.51.0",
"eslint-visitor-keys": "^3.3.0"
},
"dependencies": {
@@ -3678,9 +3938,9 @@
}
},
"acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA=="
},
"acorn-jsx": {
"version": "5.3.2",
@@ -3734,23 +3994,22 @@
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
+ "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
"requires": {
- "@babel/runtime": "^7.10.2",
- "@babel/runtime-corejs3": "^7.10.2"
+ "deep-equal": "^2.0.5"
}
},
"array-includes": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
- "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5",
- "get-intrinsic": "^1.1.1",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
"is-string": "^1.0.7"
}
},
@@ -3760,13 +4019,25 @@
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
},
"array.prototype.flat": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
- "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
+ "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==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "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==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
}
},
"assertion-error": {
@@ -3780,15 +4051,23 @@
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
"integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
},
+ "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=="
+ },
"axe-core": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz",
- "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w=="
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.2.tgz",
+ "integrity": "sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg=="
},
"axobject-query": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
- "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA=="
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz",
+ "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==",
+ "requires": {
+ "deep-equal": "^2.0.5"
+ }
},
"balanced-match": {
"version": "1.0.2",
@@ -3965,11 +4244,6 @@
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
- "core-js-pure": {
- "version": "3.23.5",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.5.tgz",
- "integrity": "sha512-8t78LdpKSuCq4pJYCYk8hl7XEkAX+BP16yRIwL3AanTksxuEf7CM83vRyctmiEL8NDZ3jpUcv56fk9/zG3aIuw=="
- },
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -4008,6 +4282,28 @@
"type-detect": "^4.0.0"
}
},
+ "deep-equal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz",
+ "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-get-iterator": "^1.1.2",
+ "get-intrinsic": "^1.1.3",
+ "is-arguments": "^1.1.1",
+ "is-date-object": "^1.0.5",
+ "is-regex": "^1.1.4",
+ "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.8"
+ }
+ },
"deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -4056,33 +4352,76 @@
"dev": true
},
"es-abstract": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz",
- "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"requires": {
+ "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.1",
+ "get-intrinsic": "^1.1.3",
"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.3",
- "is-callable": "^1.2.4",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
+ "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.0",
+ "object-inspect": "^1.12.2",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
+ "object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "safe-regex-test": "^1.0.0",
+ "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-get-iterator": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
+ "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.0",
+ "has-symbols": "^1.0.1",
+ "is-arguments": "^1.1.0",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.5",
+ "isarray": "^2.0.5"
+ }
+ },
+ "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==",
+ "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==",
+ "requires": {
+ "has": "^1.0.3"
}
},
"es-to-primitive": {
@@ -4106,12 +4445,12 @@
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
},
"eslint": {
- "version": "8.29.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz",
- "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==",
+ "version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz",
+ "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==",
"requires": {
- "@eslint/eslintrc": "^1.3.3",
- "@humanwhocodes/config-array": "^0.11.6",
+ "@eslint/eslintrc": "^1.4.1",
+ "@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.10.0",
@@ -4130,7 +4469,7 @@
"file-entry-cache": "^6.0.1",
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
- "globals": "^13.15.0",
+ "globals": "^13.19.0",
"grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
@@ -4211,18 +4550,19 @@
}
},
"eslint-config-prettier": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
- "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz",
+ "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==",
"requires": {}
},
"eslint-import-resolver-node": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
- "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
+ "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
"requires": {
"debug": "^3.2.7",
- "resolve": "^1.20.0"
+ "is-core-module": "^2.11.0",
+ "resolve": "^1.22.1"
},
"dependencies": {
"debug": {
@@ -4236,12 +4576,11 @@
}
},
"eslint-module-utils": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz",
- "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==",
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
+ "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==",
"requires": {
- "debug": "^3.2.7",
- "find-up": "^2.1.0"
+ "debug": "^3.2.7"
},
"dependencies": {
"debug": {
@@ -4279,13 +4618,13 @@
}
},
"eslint-plugin-eslint-plugin": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-5.0.3.tgz",
- "integrity": "sha512-GcJO7etUAql3mvw2pyEuIFRTR0i+b3W44hcxE1JOTPrf+bbkRtgeNfL+DFBGeYCe25hzMfuRvd0FmqHBtLmdcg==",
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-5.0.8.tgz",
+ "integrity": "sha512-bxPMZ3L/+5YypErWQMKUI9XdkLpgqOOO0CgbtHjk5Zxzcg4EVsWYPy8duvGSLxSyR60LBIoXNzVMueEZ3/j0AQ==",
"dev": true,
"requires": {
"eslint-utils": "^3.0.0",
- "estraverse": "^5.2.0"
+ "estraverse": "^5.3.0"
},
"dependencies": {
"estraverse": {
@@ -4314,31 +4653,33 @@
"requires": {}
},
"eslint-plugin-import": {
- "version": "2.26.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
- "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
+ "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==",
"requires": {
- "array-includes": "^3.1.4",
- "array.prototype.flat": "^1.2.5",
- "debug": "^2.6.9",
+ "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.6",
- "eslint-module-utils": "^2.7.3",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.7.4",
"has": "^1.0.3",
- "is-core-module": "^2.8.1",
+ "is-core-module": "^2.11.0",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
- "object.values": "^1.1.5",
- "resolve": "^1.22.0",
+ "object.values": "^1.1.6",
+ "resolve": "^1.22.1",
+ "semver": "^6.3.0",
"tsconfig-paths": "^3.14.1"
},
"dependencies": {
"debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"requires": {
- "ms": "2.0.0"
+ "ms": "^2.1.1"
}
},
"doctrine": {
@@ -4349,30 +4690,33 @@
"esutils": "^2.0.2"
}
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
}
}
},
"eslint-plugin-jsx-a11y": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz",
- "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==",
- "requires": {
- "@babel/runtime": "^7.18.9",
- "aria-query": "^4.2.2",
- "array-includes": "^3.1.5",
+ "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==",
+ "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.4.3",
- "axobject-query": "^2.2.0",
+ "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.2",
- "language-tags": "^1.0.5",
+ "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": {
@@ -4429,9 +4773,9 @@
"integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
},
"espree": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
- "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
"requires": {
"acorn": "^8.8.0",
"acorn-jsx": "^5.3.2",
@@ -4551,14 +4895,6 @@
"to-regex-range": "^5.0.1"
}
},
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
"flat": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
@@ -4579,6 +4915,14 @@
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz",
"integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA=="
},
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -4625,13 +4969,13 @@
"dev": true
},
"get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
- "has-symbols": "^1.0.1"
+ "has-symbols": "^1.0.3"
}
},
"get-symbol-description": {
@@ -4665,13 +5009,21 @@
}
},
"globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "version": "13.19.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+ "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
"requires": {
"type-fest": "^0.20.2"
}
},
+ "globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "requires": {
+ "define-properties": "^1.1.3"
+ }
+ },
"globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
@@ -4685,6 +5037,14 @@
"slash": "^3.0.0"
}
},
+ "gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "requires": {
+ "get-intrinsic": "^1.1.3"
+ }
+ },
"grapheme-splitter": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
@@ -4716,6 +5076,11 @@
"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=="
+ },
"has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
@@ -4769,15 +5134,34 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"internal-slot": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
- "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
+ "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
"requires": {
- "get-intrinsic": "^1.1.0",
+ "get-intrinsic": "^1.1.3",
"has": "^1.0.3",
"side-channel": "^1.0.4"
}
},
+ "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==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-typed-array": "^1.1.10"
+ }
+ },
"is-bigint": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
@@ -4805,14 +5189,14 @@
}
},
"is-callable": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
- "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
},
"is-core-module": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
- "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
"requires": {
"has": "^1.0.3"
}
@@ -4838,6 +5222,11 @@
"is-extglob": "^2.1.1"
}
},
+ "is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg=="
+ },
"is-negative-zero": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
@@ -4876,6 +5265,11 @@
"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=="
+ },
"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",
@@ -4900,12 +5294,29 @@
"has-symbols": "^1.0.2"
}
},
+ "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==",
+ "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-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=="
+ },
"is-weakref": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
@@ -4914,6 +5325,20 @@
"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==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ },
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -4943,9 +5368,9 @@
"integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
},
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"requires": {
"minimist": "^1.2.0"
}
@@ -4981,15 +5406,6 @@
"type-check": "~0.4.0"
}
},
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
"lodash.camelcase": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
@@ -5070,9 +5486,9 @@
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"mocha": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz",
- "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==",
+ "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",
@@ -5213,15 +5629,24 @@
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
"integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
},
+ "object-is": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+ "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=="
},
"object.assign": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.3.tgz",
- "integrity": "sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==",
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
@@ -5229,14 +5654,34 @@
"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==",
+ "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==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
"object.values": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
- "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
}
},
"once": {
@@ -5260,27 +5705,6 @@
"word-wrap": "^1.2.3"
}
},
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "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": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "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": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
- },
"parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -5289,11 +5713,6 @@
"callsites": "^3.0.0"
}
},
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
- },
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -5336,9 +5755,9 @@
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
},
"prettier": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz",
- "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA=="
+ "version": "2.8.4",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz",
+ "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw=="
},
"prettier-linter-helpers": {
"version": "1.0.0",
@@ -5377,9 +5796,9 @@
}
},
"regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
},
"regexp.prototype.flags": {
"version": "1.4.3",
@@ -5403,11 +5822,11 @@
"dev": true
},
"resolve": {
- "version": "1.22.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
- "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
"requires": {
- "is-core-module": "^2.8.1",
+ "is-core-module": "^2.9.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
}
@@ -5444,6 +5863,16 @@
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"dev": true
},
+ "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==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ }
+ },
"semver": {
"version": "7.3.7",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
@@ -5490,23 +5919,23 @@
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
},
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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==",
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
+ "es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
+ "es-abstract": "^1.20.4"
}
},
"strip-ansi": {
@@ -5601,6 +6030,16 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
},
+ "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==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ }
+ },
"typescript": {
"version": "4.7.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz",
@@ -5655,6 +6094,30 @@
"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==",
+ "requires": {
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-weakmap": "^2.0.1",
+ "is-weakset": "^2.0.1"
+ }
+ },
+ "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==",
+ "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"
+ }
+ },
"word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
diff --git a/package.json b/package.json
index f5374fc5..bfd64217 100644
--- a/package.json
+++ b/package.json
@@ -28,13 +28,14 @@
"@github/browserslist-config": "^1.0.0",
"@typescript-eslint/eslint-plugin": "^5.1.0",
"@typescript-eslint/parser": "^5.1.0",
+ "aria-query": "^5.1.3",
"eslint-config-prettier": ">=8.0.0",
"eslint-plugin-escompat": "^3.3.3",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-filenames": "^1.3.2",
"eslint-plugin-i18n-text": "^1.0.1",
"eslint-plugin-import": "^2.25.2",
- "eslint-plugin-jsx-a11y": "^6.6.0",
+ "eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-no-only-tests": "^3.0.0",
"eslint-plugin-prettier": "^4.0.0",
"eslint-rule-documentation": ">=1.0.0",
@@ -52,7 +53,7 @@
"lib/*"
],
"devDependencies": {
- "@github/prettier-config": "0.0.4",
+ "@github/prettier-config": "0.0.6",
"chai": "^4.3.6",
"eslint": "^8.0.1",
"eslint-plugin-eslint-plugin": "^5.0.0",
diff --git a/tests/a11y-no-generic-link-text.js b/tests/a11y-no-generic-link-text.js
index 39eeda45..be1ebece 100644
--- a/tests/a11y-no-generic-link-text.js
+++ b/tests/a11y-no-generic-link-text.js
@@ -6,9 +6,9 @@ const ruleTester = new RuleTester({
ecmaVersion: 'latest',
sourceType: 'module',
ecmaFeatures: {
- jsx: true
- }
- }
+ jsx: true,
+ },
+ },
})
const errorMessage =
@@ -27,12 +27,12 @@ ruleTester.run('a11y-no-generic-link-text', rule, {
github: {
components: {
Link: {
- props: {as: {undefined: 'a'}}
- }
- }
- }
- }
- }
+ props: {as: {undefined: 'a'}},
+ },
+ },
+ },
+ },
+ },
],
invalid: [
{
@@ -42,11 +42,11 @@ ruleTester.run('a11y-no-generic-link-text', rule, {
github: {
components: {
ButtonLink: {
- default: 'a'
- }
- }
- }
- }
+ default: 'a',
+ },
+ },
+ },
+ },
},
{
code: ' Read more',
@@ -55,11 +55,11 @@ ruleTester.run('a11y-no-generic-link-text', rule, {
github: {
components: {
Link: {
- props: {as: {undefined: 'a'}}
- }
- }
- }
- }
+ props: {as: {undefined: 'a'}},
+ },
+ },
+ },
+ },
},
{
code: 'Read more ',
@@ -68,15 +68,15 @@ ruleTester.run('a11y-no-generic-link-text', rule, {
github: {
components: {
Test: {
- props: {as: {a: 'a'}}
- }
- }
- }
- }
+ props: {as: {a: 'a'}},
+ },
+ },
+ },
+ },
},
{
code: "Click here ;",
- errors: [{message: errorMessage}]
+ errors: [{message: errorMessage}],
},
{code: 'Click here* ;', errors: [{message: errorMessage}]},
{code: 'Learn more. ;', errors: [{message: errorMessage}]},
@@ -87,9 +87,9 @@ ruleTester.run('a11y-no-generic-link-text', rule, {
code: "Read more! ;",
errors: [
{
- message: 'When using ARIA to set a more descriptive text, it must fully contain the visible label.'
- }
- ]
- }
- ]
+ message: 'When using ARIA to set a more descriptive text, it must fully contain the visible label.',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/array-foreach.js b/tests/array-foreach.js
index 3bfcd924..4bdac2e2 100644
--- a/tests/array-foreach.js
+++ b/tests/array-foreach.js
@@ -7,13 +7,13 @@ ruleTester.run('array-foreach', rule, {
valid: [
{
code: 'for (const el of els) { el }',
- parserOptions: {ecmaVersion: 6}
+ parserOptions: {ecmaVersion: 6},
},
{
code: 'els.map(el => el)',
- parserOptions: {ecmaVersion: 6}
+ parserOptions: {ecmaVersion: 6},
},
- {code: 'forEach()'}
+ {code: 'forEach()'},
],
invalid: [
{
@@ -22,9 +22,9 @@ ruleTester.run('array-foreach', rule, {
errors: [
{
message: 'Prefer for...of instead of Array.forEach',
- type: 'CallExpression'
- }
- ]
- }
- ]
+ type: 'CallExpression',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/async-currenttarget.js b/tests/async-currenttarget.js
index 59e8a5c6..1437f982 100644
--- a/tests/async-currenttarget.js
+++ b/tests/async-currenttarget.js
@@ -6,12 +6,12 @@ const ruleTester = new RuleTester()
ruleTester.run('async-currenttarget', rule, {
valid: [
{
- code: 'document.addEventListener(function(event) { event.currentTarget })'
+ code: 'document.addEventListener(function(event) { event.currentTarget })',
},
{
code: 'document.addEventListener(async function(event) { event.currentTarget; await delay() })',
- parserOptions: {ecmaVersion: 2017}
- }
+ parserOptions: {ecmaVersion: 2017},
+ },
],
invalid: [
{
@@ -20,9 +20,9 @@ ruleTester.run('async-currenttarget', rule, {
errors: [
{
message: 'event.currentTarget inside an async function is error prone',
- type: 'MemberExpression'
- }
- ]
- }
- ]
+ type: 'MemberExpression',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/async-preventdefault.js b/tests/async-preventdefault.js
index 35861f0c..a28bfde0 100644
--- a/tests/async-preventdefault.js
+++ b/tests/async-preventdefault.js
@@ -6,15 +6,15 @@ const ruleTester = new RuleTester()
ruleTester.run('async-preventdefault', rule, {
valid: [
{
- code: 'document.addEventListener(function(event) { event.preventDefault() })'
+ code: 'document.addEventListener(function(event) { event.preventDefault() })',
},
{
- code: 'document.addEventListener(function(event) { event.target })'
+ code: 'document.addEventListener(function(event) { event.target })',
},
{
code: 'document.addEventListener(async function(event) { event.preventDefault() })',
- parserOptions: {ecmaVersion: 2017}
- }
+ parserOptions: {ecmaVersion: 2017},
+ },
],
invalid: [
{
@@ -23,9 +23,9 @@ ruleTester.run('async-preventdefault', rule, {
errors: [
{
message: 'event.preventDefault() inside an async function is error prone',
- type: 'CallExpression'
- }
- ]
- }
- ]
+ type: 'CallExpression',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/authenticity-token.js b/tests/authenticity-token.js
index 3c955871..86bcfeda 100644
--- a/tests/authenticity-token.js
+++ b/tests/authenticity-token.js
@@ -12,9 +12,9 @@ ruleTester.run('authenticity-token', rule, {
{
message:
'Form CSRF tokens (authenticity tokens) should not be created in JavaScript and their values should not be used directly for XHR requests.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: "document.querySelector('input[name=authenticity_token]').value",
@@ -22,9 +22,9 @@ ruleTester.run('authenticity-token', rule, {
{
message:
'Form CSRF tokens (authenticity tokens) should not be created in JavaScript and their values should not be used directly for XHR requests.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: "(new FormData()).append('authenticity_token', 'asdf')",
@@ -32,9 +32,9 @@ ruleTester.run('authenticity-token', rule, {
{
message:
'Form CSRF tokens (authenticity tokens) should not be created in JavaScript and their values should not be used directly for XHR requests.',
- type: 'Literal'
- }
- ]
- }
- ]
+ type: 'Literal',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/get-attribute.js b/tests/get-attribute.js
index 2d29312e..5ae1931d 100644
--- a/tests/get-attribute.js
+++ b/tests/get-attribute.js
@@ -16,7 +16,7 @@ ruleTester.run('get-attribute', rule, {
{code: "el.getAttribute('data-foo1')"},
// some SVG attributes must preserve case
{code: "el.getAttribute('preserveAspectRatio')"},
- {code: "el.getAttribute('viewBox')"}
+ {code: "el.getAttribute('viewBox')"},
],
invalid: [
{
@@ -25,9 +25,9 @@ ruleTester.run('get-attribute', rule, {
errors: [
{
message: 'Attributes should be lowercase and hyphen separated, or part of the SVG whitelist.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: "el.hasAttribute('SRC')",
@@ -35,9 +35,9 @@ ruleTester.run('get-attribute', rule, {
errors: [
{
message: 'Attributes should be lowercase and hyphen separated, or part of the SVG whitelist.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: "el.getAttribute('onClick')",
@@ -45,9 +45,9 @@ ruleTester.run('get-attribute', rule, {
errors: [
{
message: 'Attributes should be lowercase and hyphen separated, or part of the SVG whitelist.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: "el.getAttribute('viewbox')",
@@ -55,9 +55,9 @@ ruleTester.run('get-attribute', rule, {
errors: [
{
message: 'Attributes should be lowercase and hyphen separated, or part of the SVG whitelist.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: "el.getAttribute('preserveaspectratio')",
@@ -65,9 +65,9 @@ ruleTester.run('get-attribute', rule, {
errors: [
{
message: 'Attributes should be lowercase and hyphen separated, or part of the SVG whitelist.',
- type: 'Literal'
- }
- ]
- }
- ]
+ type: 'Literal',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/js-class-name.js b/tests/js-class-name.js
index 1aa829f9..d02cb1c7 100644
--- a/tests/js-class-name.js
+++ b/tests/js-class-name.js
@@ -14,9 +14,9 @@ ruleTester.run('js-class-name', rule, {
{code: "document.querySelector('.js-foo ' + ' > ' + '.js-bar')"},
{
code: 'document.querySelector(`.js-foo`)',
- parserOptions: {ecmaVersion: 6}
+ parserOptions: {ecmaVersion: 6},
},
- {code: "'random textjs-XXX'"}
+ {code: "'random textjs-XXX'"},
],
invalid: [
{
@@ -24,62 +24,62 @@ ruleTester.run('js-class-name', rule, {
errors: [
{
message: 'js- class names should be lowercase and only contain dashes.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: "document.querySelector('#js-Foo')",
errors: [
{
message: 'js- class names should be lowercase and only contain dashes.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: "document.querySelector('.js-foo > .js-Bar')",
errors: [
{
message: 'js- class names should be lowercase and only contain dashes.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: "document.querySelector('.js-' + foo)",
errors: [
{
message: 'js- class names should be lowercase and only contain dashes.',
- type: 'Literal'
+ type: 'Literal',
},
{
message: 'js- class names should be statically defined.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: "document.querySelector('.js-foo-' + foo)",
errors: [
{
message: 'js- class names should be lowercase and only contain dashes.',
- type: 'Literal'
+ type: 'Literal',
},
{
message: 'js- class names should be statically defined.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: "document.querySelector('.js-foo' + idx)",
errors: [
{
message: 'js- class names should be statically defined.',
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: 'document.querySelector(`.js-${foo}`)',
@@ -87,13 +87,13 @@ ruleTester.run('js-class-name', rule, {
errors: [
{
message: 'js- class names should be lowercase and only contain dashes.',
- type: 'TemplateElement'
+ type: 'TemplateElement',
},
{
message: 'js- class names should be statically defined.',
- type: 'TemplateElement'
- }
- ]
+ type: 'TemplateElement',
+ },
+ ],
},
{
code: 'document.querySelector(`.js-foo-${foo}`)',
@@ -101,13 +101,13 @@ ruleTester.run('js-class-name', rule, {
errors: [
{
message: 'js- class names should be lowercase and only contain dashes.',
- type: 'TemplateElement'
+ type: 'TemplateElement',
},
{
message: 'js- class names should be statically defined.',
- type: 'TemplateElement'
- }
- ]
+ type: 'TemplateElement',
+ },
+ ],
},
{
code: 'document.querySelector(`.js-foo${idx}`)',
@@ -115,9 +115,9 @@ ruleTester.run('js-class-name', rule, {
errors: [
{
message: 'js- class names should be statically defined.',
- type: 'TemplateElement'
- }
- ]
- }
- ]
+ type: 'TemplateElement',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/no-blur.js b/tests/no-blur.js
index 086cf2d6..c5e9c380 100644
--- a/tests/no-blur.js
+++ b/tests/no-blur.js
@@ -10,9 +10,9 @@ ruleTester.run('no-blur', rule, {
code: 'el.blur()',
errors: [
{
- message: 'Do not use element.blur(), instead restore the focus of a previous element.'
- }
- ]
- }
- ]
+ message: 'Do not use element.blur(), instead restore the focus of a previous element.',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/no-d-none.js b/tests/no-d-none.js
index ecee4ba7..5078804a 100644
--- a/tests/no-d-none.js
+++ b/tests/no-d-none.js
@@ -6,14 +6,14 @@ const ruleTester = new RuleTester()
ruleTester.run('no-d-none', rule, {
valid: [
{
- code: 'el.classList.add("dnone")'
+ code: 'el.classList.add("dnone")',
},
{
- code: 'el.classList.toggle("responsive-d-none")'
+ code: 'el.classList.toggle("responsive-d-none")',
},
{
- code: '[].pop()'
- }
+ code: '[].pop()',
+ },
],
invalid: [
{
@@ -21,18 +21,18 @@ ruleTester.run('no-d-none', rule, {
errors: [
{
message: 'Prefer hidden property to d-none class',
- type: 'CallExpression'
- }
- ]
+ type: 'CallExpression',
+ },
+ ],
},
{
code: 'el.classList.add("another-class", "d-none")',
errors: [
{
message: 'Prefer hidden property to d-none class',
- type: 'CallExpression'
- }
- ]
- }
- ]
+ type: 'CallExpression',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/no-dataset.js b/tests/no-dataset.js
index d1116dea..2a003b7c 100644
--- a/tests/no-dataset.js
+++ b/tests/no-dataset.js
@@ -7,24 +7,24 @@ ruleTester.run('no-dataset', rule, {
valid: [
{code: "el.getAttribute('data-cool-thing')"},
{code: "var dataset = 'this is cool'"},
- {code: 'function dataset() { }'}
+ {code: 'function dataset() { }'},
],
invalid: [
{
code: 'el.dataset.coolThing',
errors: [
{
- message: "Use getAttribute('data-your-attribute') instead of dataset."
- }
- ]
+ message: "Use getAttribute('data-your-attribute') instead of dataset.",
+ },
+ ],
},
{
code: "el.dataset['cool-thing']",
errors: [
{
- message: "Use getAttribute('data-your-attribute') instead of dataset."
- }
- ]
- }
- ]
+ message: "Use getAttribute('data-your-attribute') instead of dataset.",
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/no-dynamic-script-tag.js b/tests/no-dynamic-script-tag.js
index cd57b217..b86228ad 100644
--- a/tests/no-dynamic-script-tag.js
+++ b/tests/no-dynamic-script-tag.js
@@ -6,14 +6,14 @@ const ruleTester = new RuleTester()
ruleTester.run('no-dynamic-script-tag', rule, {
valid: [
{
- code: 'document.createElement("div")'
+ code: 'document.createElement("div")',
},
{
- code: 'document.createElement("span")'
+ code: 'document.createElement("span")',
},
{
- code: 'document.createElement("span").type = "foo"'
- }
+ code: 'document.createElement("span").type = "foo"',
+ },
],
invalid: [
{
@@ -21,18 +21,18 @@ ruleTester.run('no-dynamic-script-tag', rule, {
errors: [
{
message: "Don't create dynamic script tags, add them in the server template instead.",
- type: 'Literal'
- }
- ]
+ type: 'Literal',
+ },
+ ],
},
{
code: 'document.createElement("span").type = "text/javascript"',
errors: [
{
message: "Don't create dynamic script tags, add them in the server template instead.",
- type: 'Literal'
- }
- ]
- }
- ]
+ type: 'Literal',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/no-implicit-buggy-globals.js b/tests/no-implicit-buggy-globals.js
index a21e739d..8b7bda15 100644
--- a/tests/no-implicit-buggy-globals.js
+++ b/tests/no-implicit-buggy-globals.js
@@ -6,28 +6,28 @@ const ruleTester = new RuleTester()
ruleTester.run('no-implicit-buggy-globals', rule, {
valid: [
{
- code: '(function() { var foo = 1; })();'
+ code: '(function() { var foo = 1; })();',
},
{
code: '(function() { let foo = 1; })();',
- parserOptions: {ecmaVersion: 6}
+ parserOptions: {ecmaVersion: 6},
},
{
code: '(function() { const foo = 1; })();',
- parserOptions: {ecmaVersion: 6}
+ parserOptions: {ecmaVersion: 6},
},
{
code: 'var foo = 1;',
- parserOptions: {sourceType: 'module', ecmaVersion: 2015}
+ parserOptions: {sourceType: 'module', ecmaVersion: 2015},
},
{
code: 'let foo = 1;',
- parserOptions: {sourceType: 'module', ecmaVersion: 2015}
+ parserOptions: {sourceType: 'module', ecmaVersion: 2015},
},
{
code: 'const foo = 1;',
- parserOptions: {sourceType: 'module', ecmaVersion: 2015}
- }
+ parserOptions: {sourceType: 'module', ecmaVersion: 2015},
+ },
],
invalid: [
{
@@ -36,9 +36,9 @@ ruleTester.run('no-implicit-buggy-globals', rule, {
errors: [
{
message: 'Implicit global variable, assign as global property instead.',
- type: 'VariableDeclarator'
- }
- ]
+ type: 'VariableDeclarator',
+ },
+ ],
},
{
code: 'let foo = 1;',
@@ -46,9 +46,9 @@ ruleTester.run('no-implicit-buggy-globals', rule, {
errors: [
{
message: 'Implicit global variable, assign as global property instead.',
- type: 'VariableDeclarator'
- }
- ]
+ type: 'VariableDeclarator',
+ },
+ ],
},
{
code: 'let foo = function() {};',
@@ -56,9 +56,9 @@ ruleTester.run('no-implicit-buggy-globals', rule, {
errors: [
{
message: 'Implicit global variable, assign as global property instead.',
- type: 'VariableDeclarator'
- }
- ]
+ type: 'VariableDeclarator',
+ },
+ ],
},
{
code: 'const foo = function() {};',
@@ -66,9 +66,9 @@ ruleTester.run('no-implicit-buggy-globals', rule, {
errors: [
{
message: 'Implicit global variable, assign as global property instead.',
- type: 'VariableDeclarator'
- }
- ]
+ type: 'VariableDeclarator',
+ },
+ ],
},
{
code: 'class Foo {}',
@@ -76,9 +76,9 @@ ruleTester.run('no-implicit-buggy-globals', rule, {
errors: [
{
message: 'Implicit global variable, assign as global property instead.',
- type: 'ClassDeclaration'
- }
- ]
- }
- ]
+ type: 'ClassDeclaration',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/no-inner-html.js b/tests/no-inner-html.js
index 931e388d..39587be6 100644
--- a/tests/no-inner-html.js
+++ b/tests/no-inner-html.js
@@ -6,11 +6,11 @@ const ruleTester = new RuleTester()
ruleTester.run('no-inner-html', rule, {
valid: [
{
- code: 'document.createElement("js-flash-text").textContent = ""'
+ code: 'document.createElement("js-flash-text").textContent = ""',
},
{
- code: 'document.createElement("js-flash-text").textContent = "foo"'
- }
+ code: 'document.createElement("js-flash-text").textContent = "foo"',
+ },
],
invalid: [
{
@@ -18,27 +18,27 @@ ruleTester.run('no-inner-html', rule, {
errors: [
{
message: 'Using innerHTML poses a potential security risk and should not be used. Prefer using textContent.',
- type: 'Identifier'
- }
- ]
+ type: 'Identifier',
+ },
+ ],
},
{
code: 'document.querySelector("js-flash-text").innerHTML = "code
"',
errors: [
{
message: 'Using innerHTML poses a potential security risk and should not be used. Prefer using textContent.',
- type: 'Identifier'
- }
- ]
+ type: 'Identifier',
+ },
+ ],
},
{
code: 'document.querySelector("js-flash-text").innerHTML = ""',
errors: [
{
message: 'Using innerHTML poses a potential security risk and should not be used. Prefer using textContent.',
- type: 'Identifier'
- }
- ]
- }
- ]
+ type: 'Identifier',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/no-innerText.js b/tests/no-innerText.js
index 3da2cb94..ac38001b 100644
--- a/tests/no-innerText.js
+++ b/tests/no-innerText.js
@@ -6,11 +6,11 @@ const ruleTester = new RuleTester()
ruleTester.run('no-innerText', rule, {
valid: [
{
- code: 'document.createElement("js-flash-text").textContent = "foo"'
+ code: 'document.createElement("js-flash-text").textContent = "foo"',
},
{
- code: 'document.querySelector("js-flash-text").textContent = "bar"'
- }
+ code: 'document.querySelector("js-flash-text").textContent = "bar"',
+ },
],
invalid: [
{
@@ -19,9 +19,9 @@ ruleTester.run('no-innerText', rule, {
errors: [
{
message: 'Prefer textContent to innerText',
- type: 'Identifier'
- }
- ]
+ type: 'Identifier',
+ },
+ ],
},
{
code: 'document.querySelector("js-flash-text").innerText = "bar"',
@@ -29,9 +29,9 @@ ruleTester.run('no-innerText', rule, {
errors: [
{
message: 'Prefer textContent to innerText',
- type: 'Identifier'
- }
- ]
- }
- ]
+ type: 'Identifier',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/no-then.js b/tests/no-then.js
index 7fe6ca37..d1f71fc1 100644
--- a/tests/no-then.js
+++ b/tests/no-then.js
@@ -7,12 +7,12 @@ ruleTester.run('no-then', rule, {
valid: [
{
code: '(async function() { const data = await read(); console.log(data) })()',
- parserOptions: {ecmaVersion: 2017}
+ parserOptions: {ecmaVersion: 2017},
},
{
code: '(async function() { try { await read() } catch(error) { console.error(error) } })()',
- parserOptions: {ecmaVersion: 2017}
- }
+ parserOptions: {ecmaVersion: 2017},
+ },
],
invalid: [
{
@@ -21,9 +21,9 @@ ruleTester.run('no-then', rule, {
errors: [
{
message: 'Prefer async/await to Promise.then()',
- type: 'Identifier'
- }
- ]
+ type: 'Identifier',
+ },
+ ],
},
{
code: '(function() { read().catch(error => console.error(error)) })()',
@@ -31,9 +31,9 @@ ruleTester.run('no-then', rule, {
errors: [
{
message: 'Prefer async/await to Promise.catch()',
- type: 'Identifier'
- }
- ]
- }
- ]
+ type: 'Identifier',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/no-useless-passive.js b/tests/no-useless-passive.js
index 4ecabd3f..4676509b 100644
--- a/tests/no-useless-passive.js
+++ b/tests/no-useless-passive.js
@@ -6,14 +6,14 @@ const ruleTester = new RuleTester()
ruleTester.run('no-useless-passive', rule, {
valid: [
{
- code: 'document.addEventListener("scroll", function(event) {})'
+ code: 'document.addEventListener("scroll", function(event) {})',
},
{
- code: 'document.addEventListener("resize", function(event) {})'
+ code: 'document.addEventListener("resize", function(event) {})',
},
{
- code: 'document.addEventListener("resize", function(event) {}, { passive: false })'
- }
+ code: 'document.addEventListener("resize", function(event) {}, { passive: false })',
+ },
],
invalid: [
{
@@ -22,9 +22,9 @@ ruleTester.run('no-useless-passive', rule, {
errors: [
{
message: '"scroll" event listener is not cancellable and so `passive: true` does nothing.',
- type: 'Property'
- }
- ]
+ type: 'Property',
+ },
+ ],
},
{
code: 'document.addEventListener("scroll", function(event) {}, { passive: true, foo: 1 })',
@@ -32,9 +32,9 @@ ruleTester.run('no-useless-passive', rule, {
errors: [
{
message: '"scroll" event listener is not cancellable and so `passive: true` does nothing.',
- type: 'Property'
- }
- ]
- }
- ]
+ type: 'Property',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/prefer-observers.js b/tests/prefer-observers.js
index 8cdba73a..3d7d26ee 100644
--- a/tests/prefer-observers.js
+++ b/tests/prefer-observers.js
@@ -6,8 +6,8 @@ const ruleTester = new RuleTester()
ruleTester.run('prefer-observers', rule, {
valid: [
{
- code: 'document.addEventListener("touchstart", function(event) {})'
- }
+ code: 'document.addEventListener("touchstart", function(event) {})',
+ },
],
invalid: [
{
@@ -15,18 +15,18 @@ ruleTester.run('prefer-observers', rule, {
errors: [
{
message: 'Avoid using "scroll" event listener. Consider using IntersectionObserver instead',
- type: 'CallExpression'
- }
- ]
+ type: 'CallExpression',
+ },
+ ],
},
{
code: 'document.addEventListener("resize", function(event) {})',
errors: [
{
message: 'Avoid using "resize" event listener. Consider using ResizeObserver instead',
- type: 'CallExpression'
- }
- ]
- }
- ]
+ type: 'CallExpression',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/require-passive-events.js b/tests/require-passive-events.js
index 5d42411c..1c15096f 100644
--- a/tests/require-passive-events.js
+++ b/tests/require-passive-events.js
@@ -6,17 +6,17 @@ const ruleTester = new RuleTester()
ruleTester.run('require-passive-events', rule, {
valid: [
{
- code: 'document.addEventListener("load", function(event) {})'
+ code: 'document.addEventListener("load", function(event) {})',
},
{
- code: 'document.addEventListener("click", function(event) {})'
+ code: 'document.addEventListener("click", function(event) {})',
},
{
- code: 'document.addEventListener("touchstart", function(event) {}, { passive: true })'
+ code: 'document.addEventListener("touchstart", function(event) {}, { passive: true })',
},
{
- code: 'el.addEventListener("touchstart", function(event) {}, { passive: true })'
- }
+ code: 'el.addEventListener("touchstart", function(event) {}, { passive: true })',
+ },
],
invalid: [
{
@@ -24,27 +24,27 @@ ruleTester.run('require-passive-events', rule, {
errors: [
{
message: 'High Frequency Events like "touchstart" should be `passive: true`',
- type: 'CallExpression'
- }
- ]
+ type: 'CallExpression',
+ },
+ ],
},
{
code: 'el.addEventListener("wheel", function(event) {})',
errors: [
{
message: 'High Frequency Events like "wheel" should be `passive: true`',
- type: 'CallExpression'
- }
- ]
+ type: 'CallExpression',
+ },
+ ],
},
{
code: 'document.addEventListener("wheel", function(event) {})',
errors: [
{
message: 'High Frequency Events like "wheel" should be `passive: true`',
- type: 'CallExpression'
- }
- ]
+ type: 'CallExpression',
+ },
+ ],
},
{
// Intentionally misspelled!
@@ -52,18 +52,18 @@ ruleTester.run('require-passive-events', rule, {
errors: [
{
message: 'High Frequency Events like "wheel" should be `passive: true`',
- type: 'CallExpression'
- }
- ]
+ type: 'CallExpression',
+ },
+ ],
},
{
code: 'document.addEventListener("wheel", function(event) {}, { passive: false })',
errors: [
{
message: 'High Frequency Events like "wheel" should be `passive: true`',
- type: 'CallExpression'
- }
- ]
- }
- ]
+ type: 'CallExpression',
+ },
+ ],
+ },
+ ],
})
diff --git a/tests/role-supports-aria-props.js b/tests/role-supports-aria-props.js
new file mode 100644
index 00000000..c0676d6a
--- /dev/null
+++ b/tests/role-supports-aria-props.js
@@ -0,0 +1,512 @@
+// @ts-check
+
+// Tests in this file were adapted from https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/__tests__/src/rules/role-supports-aria-props-test.js, which was authored by Ethan Cohen and is distributed under the MIT license as follows:
+//
+// The MIT License (MIT) Copyright (c) 2016 Ethan Cohen
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+const rule = require('../lib/rules/role-supports-aria-props')
+const RuleTester = require('eslint').RuleTester
+
+const ruleTester = new RuleTester({
+ parserOptions: {
+ ecmaVersion: 'latest',
+ sourceType: 'module',
+ ecmaFeatures: {
+ jsx: true,
+ },
+ },
+})
+
+function getErrorMessage(attribute, role) {
+ return `The attribute ${attribute} is not supported by the role ${role}.`
+}
+
+ruleTester.run('role-supports-aria-props', rule, {
+ valid: [
+ {code: ' '},
+ {code: '
'},
+ {code: '
'},
+ {code: '
'},
+ {code: '
'},
+ {code: ' '},
+ {code: ' '},
+
+ // IMPLICIT ROLE TESTS
+ // A TESTS - implicit role is `link`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+
+ // this will have global
+ {code: ' '},
+
+ // AREA TESTS - implicit role is `link`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+
+ // this will have global
+ {code: ' '},
+
+ // LINK TESTS - implicit role is `link`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+
+ // this will have global
+ {code: ' '},
+
+ // this will have role of `img`
+ {code: ' '},
+
+ // MENU TESTS - implicit role is `toolbar` when `type="toolbar"`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+
+ // MENUITEM TESTS
+ // when `type="command`, the implicit role is `menuitem`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ // when `type="checkbox`, the implicit role is `menuitemcheckbox`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ // when `type="radio`, the implicit role is `menuitemradio`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+
+ // these will have global
+ {code: ' '},
+ {code: ' '},
+
+ // INPUT TESTS
+ // when `type="button"`, the implicit role is `button`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ // when `type="image"`, the implicit role is `button`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ // when `type="reset"`, the implicit role is `button`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ // when `type="submit"`, the implicit role is `button`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ // when `type="checkbox"`, the implicit role is `checkbox`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ // when `type="radio"`, the implicit role is `radio`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ // when `type="range"`, the implicit role is `slider`
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+
+ // these will have role of `textbox`,
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+
+ // Allow null/undefined values regardless of role
+ {code: ' '},
+ {code: ' '},
+
+ // OTHER TESTS
+ {code: ' '},
+ {code: ''},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ' '},
+ {code: ''},
+ {code: ' '},
+ {code: ' '},
+ {code: '
'},
+ {code: '
'},
+ ],
+
+ invalid: [
+ // implicit basic checks
+ {
+ code: ' ',
+ errors: [getErrorMessage('aria-checked', 'link')],
+ },
+ {
+ code: ' ',
+ errors: [getErrorMessage('aria-checked', 'link')],
+ },
+ {
+ code: ' ',
+ errors: [getErrorMessage('aria-checked', 'link')],
+ },
+ {
+ code: ' ',
+ errors: [getErrorMessage('aria-checked', 'img')],
+ },
+ {
+ code: ' ',
+ errors: [getErrorMessage('aria-checked', 'toolbar')],
+ },
+ {
+ code: '',
+ errors: [getErrorMessage('aria-checked', 'complementary')],
+ },
+ {
+ code: '',
+ errors: [getErrorMessage('aria-expanded', 'list')],
+ },
+ {
+ code: ' ',
+ errors: [getErrorMessage('aria-expanded', 'group')],
+ },
+ {
+ code: ' ',
+ errors: [getErrorMessage('aria-expanded', 'dialog')],
+ },
+ {
+ code: '',
+ errors: [getErrorMessage('aria-expanded', 'complementary')],
+ },
+ {
+ code: ' ',
+ errors: [getErrorMessage('aria-expanded', 'article')],
+ },
+ {
+ code: '