diff --git a/fixtures/.eslintrc b/fixtures/.eslintrc
index f3cfb24..03a37d4 100644
--- a/fixtures/.eslintrc
+++ b/fixtures/.eslintrc
@@ -3,6 +3,6 @@
"vitest"
],
"rules": {
- "vitest/expect-expect": "error",
+ "vitest/expect-expect": "error"
}
}
\ No newline at end of file
diff --git a/package.json b/package.json
index a6b8ad4..de5c22d 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
"vitest eslint plugin",
"vitest eslint"
],
- "author": "Verite Mugabo Makuza ",
+ "author": "Verite Mugabo Makuza ",
"main": "./dist/index.cjs",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
@@ -39,9 +39,10 @@
"devDependencies": {
"@babel/types": "^7.22.5",
"@types/mocha": "^10.0.1",
- "@types/node": "^20.4.1",
- "@typescript-eslint/eslint-plugin": "^5.61.0",
- "@typescript-eslint/parser": "^5.61.0",
+ "@types/node": "^20.4.2",
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
+ "@typescript-eslint/parser": "^6.0.0",
+ "@typescript-eslint/rule-tester": "^6.0.0",
"@veritem/eslint-config": "^0.0.11",
"bumpp": "^9.1.1",
"concurrently": "^8.2.0",
@@ -60,9 +61,15 @@
"node": "14.x || >= 16"
},
"peerDependencies": {
- "eslint": ">=8.0.0"
+ "eslint": ">=8.0.0",
+ "vitest": "*"
+ },
+ "peerDependenciesMeta": {
+ "vite": {
+ "optional": true
+ }
},
"dependencies": {
- "@typescript-eslint/utils": "^5.61.0"
+ "@typescript-eslint/utils": "^6.0.0"
}
-}
+}
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index fbc98dd..f00af5d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -2,8 +2,8 @@ lockfileVersion: '6.0'
dependencies:
'@typescript-eslint/utils':
- specifier: ^5.61.0
- version: 5.61.0(eslint@8.44.0)(typescript@5.0.4)
+ specifier: ^6.0.0
+ version: 6.0.0(eslint@8.44.0)(typescript@5.1.6)
devDependencies:
'@babel/types':
@@ -13,17 +13,20 @@ devDependencies:
specifier: ^10.0.1
version: 10.0.1
'@types/node':
- specifier: ^20.4.1
- version: 20.4.1
+ specifier: ^20.4.2
+ version: 20.4.2
'@typescript-eslint/eslint-plugin':
- specifier: ^5.61.0
- version: 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.0.4)
+ specifier: ^6.0.0
+ version: 6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.44.0)(typescript@5.1.6)
'@typescript-eslint/parser':
- specifier: ^5.61.0
- version: 5.61.0(eslint@8.44.0)(typescript@5.0.4)
+ specifier: ^6.0.0
+ version: 6.0.0(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/rule-tester':
+ specifier: ^6.0.0
+ version: 6.0.0(@eslint/eslintrc@2.1.0)(eslint@8.44.0)(typescript@5.1.6)
'@veritem/eslint-config':
specifier: ^0.0.11
- version: 0.0.11(eslint@8.44.0)(typescript@5.0.4)
+ version: 0.0.11(eslint@8.44.0)(typescript@5.1.6)
bumpp:
specifier: ^9.1.1
version: 9.1.1
@@ -35,7 +38,7 @@ devDependencies:
version: 8.44.0
eslint-doc-generator:
specifier: ^1.4.3
- version: 1.4.3(eslint@8.44.0)(typescript@5.0.4)
+ version: 1.4.3(eslint@8.44.0)(typescript@5.1.6)
eslint-plugin-eslint-plugin:
specifier: ^5.1.0
version: 5.1.0(eslint@8.44.0)
@@ -53,7 +56,7 @@ devDependencies:
version: 1.19.1
ts-node:
specifier: ^10.9.1
- version: 10.9.1(@types/node@20.4.1)(typescript@5.0.4)
+ version: 10.9.1(@types/node@20.4.2)(typescript@5.1.6)
unbuild:
specifier: ^1.2.1
version: 1.2.1
@@ -67,132 +70,123 @@ packages:
resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
engines: {node: '>=0.10.0'}
- /@ampproject/remapping@2.2.0:
- resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
+ /@ampproject/remapping@2.2.1:
+ resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
engines: {node: '>=6.0.0'}
dependencies:
- '@jridgewell/gen-mapping': 0.1.1
- '@jridgewell/trace-mapping': 0.3.17
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.18
dev: true
- /@babel/code-frame@7.18.6:
- resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
+ /@babel/code-frame@7.22.5:
+ resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/highlight': 7.18.6
+ '@babel/highlight': 7.22.5
dev: true
- /@babel/code-frame@7.21.4:
- resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/highlight': 7.18.6
- dev: true
-
- /@babel/compat-data@7.21.4:
- resolution: {integrity: sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==}
+ /@babel/compat-data@7.22.9:
+ resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/core@7.21.4:
- resolution: {integrity: sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==}
+ /@babel/core@7.22.9:
+ resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@ampproject/remapping': 2.2.0
- '@babel/code-frame': 7.21.4
- '@babel/generator': 7.21.4
- '@babel/helper-compilation-targets': 7.21.4(@babel/core@7.21.4)
- '@babel/helper-module-transforms': 7.21.2
- '@babel/helpers': 7.21.0
- '@babel/parser': 7.21.4
- '@babel/template': 7.20.7
- '@babel/traverse': 7.21.4
+ '@ampproject/remapping': 2.2.1
+ '@babel/code-frame': 7.22.5
+ '@babel/generator': 7.22.9
+ '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9)
+ '@babel/helpers': 7.22.6
+ '@babel/parser': 7.22.7
+ '@babel/template': 7.22.5
+ '@babel/traverse': 7.22.8
'@babel/types': 7.22.5
convert-source-map: 1.9.0
debug: 4.3.4
gensync: 1.0.0-beta.2
json5: 2.2.3
- semver: 6.3.0
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/generator@7.21.4:
- resolution: {integrity: sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==}
+ /@babel/generator@7.22.9:
+ resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.22.5
- '@jridgewell/gen-mapping': 0.3.2
- '@jridgewell/trace-mapping': 0.3.17
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.18
jsesc: 2.5.2
dev: true
- /@babel/helper-compilation-targets@7.21.4(@babel/core@7.21.4):
- resolution: {integrity: sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==}
+ /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9):
+ resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/compat-data': 7.21.4
- '@babel/core': 7.21.4
- '@babel/helper-validator-option': 7.21.0
- browserslist: 4.21.4
+ '@babel/compat-data': 7.22.9
+ '@babel/core': 7.22.9
+ '@babel/helper-validator-option': 7.22.5
+ browserslist: 4.21.9
lru-cache: 5.1.1
- semver: 6.3.0
+ semver: 6.3.1
dev: true
- /@babel/helper-environment-visitor@7.18.9:
- resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
+ /@babel/helper-environment-visitor@7.22.5:
+ resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-function-name@7.21.0:
- resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==}
+ /@babel/helper-function-name@7.22.5:
+ resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.20.7
+ '@babel/template': 7.22.5
'@babel/types': 7.22.5
dev: true
- /@babel/helper-hoist-variables@7.18.6:
- resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
+ /@babel/helper-hoist-variables@7.22.5:
+ resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.22.5
dev: true
- /@babel/helper-module-imports@7.18.6:
- resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
+ /@babel/helper-module-imports@7.22.5:
+ resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.22.5
dev: true
- /@babel/helper-module-transforms@7.21.2:
- resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==}
+ /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9):
+ resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
dependencies:
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-module-imports': 7.18.6
- '@babel/helper-simple-access': 7.20.2
- '@babel/helper-split-export-declaration': 7.18.6
+ '@babel/core': 7.22.9
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-module-imports': 7.22.5
+ '@babel/helper-simple-access': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
'@babel/helper-validator-identifier': 7.22.5
- '@babel/template': 7.20.7
- '@babel/traverse': 7.21.4
- '@babel/types': 7.22.5
- transitivePeerDependencies:
- - supports-color
dev: true
- /@babel/helper-simple-access@7.20.2:
- resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
+ /@babel/helper-simple-access@7.22.5:
+ resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.22.5
dev: true
- /@babel/helper-split-export-declaration@7.18.6:
- resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
+ /@babel/helper-split-export-declaration@7.22.6:
+ resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.22.5
@@ -203,81 +197,76 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-validator-identifier@7.19.1:
- resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
- engines: {node: '>=6.9.0'}
- dev: true
-
/@babel/helper-validator-identifier@7.22.5:
resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-validator-option@7.21.0:
- resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==}
+ /@babel/helper-validator-option@7.22.5:
+ resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helpers@7.21.0:
- resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==}
+ /@babel/helpers@7.22.6:
+ resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.20.7
- '@babel/traverse': 7.21.4
+ '@babel/template': 7.22.5
+ '@babel/traverse': 7.22.8
'@babel/types': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/highlight@7.18.6:
- resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
+ /@babel/highlight@7.22.5:
+ resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-validator-identifier': 7.19.1
+ '@babel/helper-validator-identifier': 7.22.5
chalk: 2.4.2
js-tokens: 4.0.0
dev: true
- /@babel/parser@7.21.4:
- resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==}
+ /@babel/parser@7.22.7:
+ resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.22.5
dev: true
- /@babel/runtime@7.22.5:
- resolution: {integrity: sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==}
+ /@babel/runtime@7.22.6:
+ resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.13.11
dev: true
- /@babel/standalone@7.21.4:
- resolution: {integrity: sha512-Rw4nGqH/iyVeYxARKcz7iGP+njkPsVqJ45TmXMONoGoxooWjXCAs+CUcLeAZdBGCLqgaPvHKCYvIaDT2Iq+KfA==}
+ /@babel/standalone@7.22.9:
+ resolution: {integrity: sha512-RRUFpN2WiHaczMqIhmy7VoruvSw+c3NSq6BczondQ6elJXtKzr9cAWWsWWZvtZ/rYFQpoQlch5VxQe4aWTt8LA==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/template@7.20.7:
- resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
+ /@babel/template@7.22.5:
+ resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.21.4
- '@babel/parser': 7.21.4
+ '@babel/code-frame': 7.22.5
+ '@babel/parser': 7.22.7
'@babel/types': 7.22.5
dev: true
- /@babel/traverse@7.21.4:
- resolution: {integrity: sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==}
+ /@babel/traverse@7.22.8:
+ resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.21.4
- '@babel/generator': 7.21.4
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.21.0
- '@babel/helper-hoist-variables': 7.18.6
- '@babel/helper-split-export-declaration': 7.18.6
- '@babel/parser': 7.21.4
+ '@babel/code-frame': 7.22.5
+ '@babel/generator': 7.22.9
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/parser': 7.22.7
'@babel/types': 7.22.5
debug: 4.3.4
globals: 11.12.0
@@ -301,8 +290,17 @@ packages:
'@jridgewell/trace-mapping': 0.3.9
dev: true
- /@esbuild/android-arm64@0.17.16:
- resolution: {integrity: sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==}
+ /@esbuild/android-arm64@0.17.19:
+ resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm64@0.18.12:
+ resolution: {integrity: sha512-BMAlczRqC/LUt2P97E4apTBbkvS9JTJnp2DKFbCwpZ8vBvXVbNdqmvzW/OsdtI/+mGr+apkkpqGM8WecLkPgrA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
@@ -310,8 +308,8 @@ packages:
dev: true
optional: true
- /@esbuild/android-arm@0.15.18:
- resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==}
+ /@esbuild/android-arm@0.17.19:
+ resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
@@ -319,8 +317,8 @@ packages:
dev: true
optional: true
- /@esbuild/android-arm@0.17.16:
- resolution: {integrity: sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==}
+ /@esbuild/android-arm@0.18.12:
+ resolution: {integrity: sha512-LIxaNIQfkFZbTLb4+cX7dozHlAbAshhFE5PKdro0l+FnCpx1GDJaQ2WMcqm+ToXKMt8p8Uojk/MFRuGyz3V5Sw==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
@@ -328,8 +326,17 @@ packages:
dev: true
optional: true
- /@esbuild/android-x64@0.17.16:
- resolution: {integrity: sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==}
+ /@esbuild/android-x64@0.17.19:
+ resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64@0.18.12:
+ resolution: {integrity: sha512-zU5MyluNsykf5cOJ0LZZZjgAHbhPJ1cWfdH1ZXVMXxVMhEV0VZiZXQdwBBVvmvbF28EizeK7obG9fs+fpmS0eQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
@@ -337,8 +344,8 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-arm64@0.17.16:
- resolution: {integrity: sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==}
+ /@esbuild/darwin-arm64@0.17.19:
+ resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
@@ -346,8 +353,26 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-x64@0.17.16:
- resolution: {integrity: sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==}
+ /@esbuild/darwin-arm64@0.18.12:
+ resolution: {integrity: sha512-zUZMep7YONnp6954QOOwEBwFX9svlKd3ov6PkxKd53LGTHsp/gy7vHaPGhhjBmEpqXEXShi6dddjIkmd+NgMsA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.17.19:
+ resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.18.12:
+ resolution: {integrity: sha512-ohqLPc7i67yunArPj1+/FeeJ7AgwAjHqKZ512ADk3WsE3FHU9l+m5aa7NdxXr0HmN1bjDlUslBjWNbFlD9y12Q==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
@@ -355,8 +380,8 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-arm64@0.17.16:
- resolution: {integrity: sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==}
+ /@esbuild/freebsd-arm64@0.17.19:
+ resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
@@ -364,8 +389,26 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-x64@0.17.16:
- resolution: {integrity: sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==}
+ /@esbuild/freebsd-arm64@0.18.12:
+ resolution: {integrity: sha512-GIIHtQXqgeOOqdG16a/A9N28GpkvjJnjYMhOnXVbn3EDJcoItdR58v/pGN31CHjyXDc8uCcRnFWmqaJt24AYJg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.17.19:
+ resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.18.12:
+ resolution: {integrity: sha512-zK0b9a1/0wZY+6FdOS3BpZcPc1kcx2G5yxxfEJtEUzVxI6n/FrC2Phsxj/YblPuBchhBZ/1wwn7AyEBUyNSa6g==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
@@ -373,8 +416,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm64@0.17.16:
- resolution: {integrity: sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==}
+ /@esbuild/linux-arm64@0.17.19:
+ resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
@@ -382,8 +425,26 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm@0.17.16:
- resolution: {integrity: sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==}
+ /@esbuild/linux-arm64@0.18.12:
+ resolution: {integrity: sha512-JKgG8Q/LL/9sw/iHHxQyVMoQYu3rU3+a5Z87DxC+wAu3engz+EmctIrV+FGOgI6gWG1z1+5nDDbXiRMGQZXqiw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm@0.17.19:
+ resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm@0.18.12:
+ resolution: {integrity: sha512-y75OijvrBE/1XRrXq1jtrJfG26eHeMoqLJ2dwQNwviwTuTtHGCojsDO6BJNF8gU+3jTn1KzJEMETytwsFSvc+Q==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
@@ -391,8 +452,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ia32@0.17.16:
- resolution: {integrity: sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==}
+ /@esbuild/linux-ia32@0.17.19:
+ resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
@@ -400,8 +461,17 @@ packages:
dev: true
optional: true
- /@esbuild/linux-loong64@0.15.18:
- resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==}
+ /@esbuild/linux-ia32@0.18.12:
+ resolution: {integrity: sha512-yoRIAqc0B4lDIAAEFEIu9ttTRFV84iuAl0KNCN6MhKLxNPfzwCBvEMgwco2f71GxmpBcTtn7KdErueZaM2rEvw==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.17.19:
+ resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
@@ -409,8 +479,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-loong64@0.17.16:
- resolution: {integrity: sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==}
+ /@esbuild/linux-loong64@0.18.12:
+ resolution: {integrity: sha512-qYgt3dHPVvf/MgbIBpJ4Sup/yb9DAopZ3a2JgMpNKIHUpOdnJ2eHBo/aQdnd8dJ21X/+sS58wxHtA9lEazYtXQ==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
@@ -418,8 +488,17 @@ packages:
dev: true
optional: true
- /@esbuild/linux-mips64el@0.17.16:
- resolution: {integrity: sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==}
+ /@esbuild/linux-mips64el@0.17.19:
+ resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.18.12:
+ resolution: {integrity: sha512-wHphlMLK4ufNOONqukELfVIbnGQJrHJ/mxZMMrP2jYrPgCRZhOtf0kC4yAXBwnfmULimV1qt5UJJOw4Kh13Yfg==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
@@ -427,8 +506,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ppc64@0.17.16:
- resolution: {integrity: sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==}
+ /@esbuild/linux-ppc64@0.17.19:
+ resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
@@ -436,8 +515,26 @@ packages:
dev: true
optional: true
- /@esbuild/linux-riscv64@0.17.16:
- resolution: {integrity: sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==}
+ /@esbuild/linux-ppc64@0.18.12:
+ resolution: {integrity: sha512-TeN//1Ft20ZZW41+zDSdOI/Os1bEq5dbvBvYkberB7PHABbRcsteeoNVZFlI0YLpGdlBqohEpjrn06kv8heCJg==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-riscv64@0.17.19:
+ resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-riscv64@0.18.12:
+ resolution: {integrity: sha512-AgUebVS4DoAblBgiB2ACQ/8l4eGE5aWBb8ZXtkXHiET9mbj7GuWt3OnsIW/zX+XHJt2RYJZctbQ2S/mDjbp0UA==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
@@ -445,8 +542,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-s390x@0.17.16:
- resolution: {integrity: sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==}
+ /@esbuild/linux-s390x@0.17.19:
+ resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
@@ -454,8 +551,26 @@ packages:
dev: true
optional: true
- /@esbuild/linux-x64@0.17.16:
- resolution: {integrity: sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==}
+ /@esbuild/linux-s390x@0.18.12:
+ resolution: {integrity: sha512-dJ3Rb3Ei2u/ysSXd6pzleGtfDdc2MuzKt8qc6ls8vreP1G3B7HInX3i7gXS4BGeVd24pp0yqyS7bJ5NHaI9ing==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-x64@0.17.19:
+ resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-x64@0.18.12:
+ resolution: {integrity: sha512-OrNJMGQbPaVyHHcDF8ybNSwu7TDOfX8NGpXCbetwOSP6txOJiWlgQnRymfC9ocR1S0Y5PW0Wb1mV6pUddqmvmQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
@@ -463,8 +578,17 @@ packages:
dev: true
optional: true
- /@esbuild/netbsd-x64@0.17.16:
- resolution: {integrity: sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==}
+ /@esbuild/netbsd-x64@0.17.19:
+ resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-x64@0.18.12:
+ resolution: {integrity: sha512-55FzVCAiwE9FK8wWeCRuvjazNRJ1QqLCYGZVB6E8RuQuTeStSwotpSW4xoRGwp3a1wUsaVCdYcj5LGCASVJmMg==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
@@ -472,8 +596,17 @@ packages:
dev: true
optional: true
- /@esbuild/openbsd-x64@0.17.16:
- resolution: {integrity: sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==}
+ /@esbuild/openbsd-x64@0.17.19:
+ resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-x64@0.18.12:
+ resolution: {integrity: sha512-qnluf8rfb6Y5Lw2tirfK2quZOBbVqmwxut7GPCIJsM8lc4AEUj9L8y0YPdLaPK0TECt4IdyBdBD/KRFKorlK3g==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
@@ -481,8 +614,17 @@ packages:
dev: true
optional: true
- /@esbuild/sunos-x64@0.17.16:
- resolution: {integrity: sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==}
+ /@esbuild/sunos-x64@0.17.19:
+ resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/sunos-x64@0.18.12:
+ resolution: {integrity: sha512-+RkKpVQR7bICjTOPUpkTBTaJ4TFqQBX5Ywyd/HSdDkQGn65VPkTsR/pL4AMvuMWy+wnXgIl4EY6q4mVpJal8Kg==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
@@ -490,8 +632,8 @@ packages:
dev: true
optional: true
- /@esbuild/win32-arm64@0.17.16:
- resolution: {integrity: sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==}
+ /@esbuild/win32-arm64@0.17.19:
+ resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
@@ -499,8 +641,26 @@ packages:
dev: true
optional: true
- /@esbuild/win32-ia32@0.17.16:
- resolution: {integrity: sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==}
+ /@esbuild/win32-arm64@0.18.12:
+ resolution: {integrity: sha512-GNHuciv0mFM7ouzsU0+AwY+7eV4Mgo5WnbhfDCQGtpvOtD1vbOiRjPYG6dhmMoFyBjj+pNqQu2X+7DKn0KQ/Gw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-ia32@0.17.19:
+ resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-ia32@0.18.12:
+ resolution: {integrity: sha512-kR8cezhYipbbypGkaqCTWIeu4zID17gamC8YTPXYtcN3E5BhhtTnwKBn9I0PJur/T6UVwIEGYzkffNL0lFvxEw==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
@@ -508,8 +668,17 @@ packages:
dev: true
optional: true
- /@esbuild/win32-x64@0.17.16:
- resolution: {integrity: sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==}
+ /@esbuild/win32-x64@0.17.19:
+ resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-x64@0.18.12:
+ resolution: {integrity: sha512-O0UYQVkvfM/jO8a4OwoV0mAKSJw+mjWTAd1MJd/1FCX6uiMdLmMRPK/w6e9OQ0ob2WGxzIm9va/KG0Ja4zIOgg==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
@@ -526,8 +695,8 @@ packages:
eslint: 8.44.0
eslint-visitor-keys: 3.4.1
- /@eslint-community/regexpp@4.5.0:
- resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==}
+ /@eslint-community/regexpp@4.5.1:
+ resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
/@eslint/eslintrc@2.1.0:
@@ -537,8 +706,8 @@ packages:
ajv: 6.12.6
debug: 4.3.4
espree: 9.6.0
- globals: 13.19.0
- ignore: 5.2.0
+ globals: 13.20.0
+ ignore: 5.2.4
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
@@ -567,13 +736,6 @@ packages:
/@humanwhocodes/object-schema@1.2.1:
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
- /@jest/schemas@29.0.0:
- resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- dependencies:
- '@sinclair/typebox': 0.24.51
- dev: true
-
/@jest/schemas@29.6.0:
resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -581,25 +743,22 @@ packages:
'@sinclair/typebox': 0.27.8
dev: true
- /@jridgewell/gen-mapping@0.1.1:
- resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
+ /@jridgewell/gen-mapping@0.3.3:
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/set-array': 1.1.2
- '@jridgewell/sourcemap-codec': 1.4.14
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.18
dev: true
- /@jridgewell/gen-mapping@0.3.2:
- resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
+ /@jridgewell/resolve-uri@3.1.0:
+ resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
engines: {node: '>=6.0.0'}
- dependencies:
- '@jridgewell/set-array': 1.1.2
- '@jridgewell/sourcemap-codec': 1.4.14
- '@jridgewell/trace-mapping': 0.3.17
dev: true
- /@jridgewell/resolve-uri@3.1.0:
- resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
+ /@jridgewell/resolve-uri@3.1.1:
+ resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
engines: {node: '>=6.0.0'}
dev: true
@@ -616,8 +775,8 @@ packages:
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
dev: true
- /@jridgewell/trace-mapping@0.3.17:
- resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
+ /@jridgewell/trace-mapping@0.3.18:
+ resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==}
dependencies:
'@jridgewell/resolve-uri': 3.1.0
'@jridgewell/sourcemap-codec': 1.4.14
@@ -626,17 +785,17 @@ packages:
/@jridgewell/trace-mapping@0.3.9:
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
dependencies:
- '@jridgewell/resolve-uri': 3.1.0
- '@jridgewell/sourcemap-codec': 1.4.14
+ '@jridgewell/resolve-uri': 3.1.1
+ '@jridgewell/sourcemap-codec': 1.4.15
dev: true
/@jsdevtools/ez-spawn@3.0.4:
resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==}
engines: {node: '>=10'}
dependencies:
- call-me-maybe: 1.0.1
+ call-me-maybe: 1.0.2
cross-spawn: 7.0.3
- string-argv: 0.3.1
+ string-argv: 0.3.2
type-detect: 4.0.8
dev: true
@@ -668,9 +827,9 @@ packages:
engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.13.0
+ fastq: 1.15.0
- /@rollup/plugin-alias@5.0.0(rollup@3.20.2):
+ /@rollup/plugin-alias@5.0.0(rollup@3.26.2):
resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -679,11 +838,11 @@ packages:
rollup:
optional: true
dependencies:
- rollup: 3.20.2
+ rollup: 3.26.2
slash: 4.0.0
dev: true
- /@rollup/plugin-commonjs@24.1.0(rollup@3.20.2):
+ /@rollup/plugin-commonjs@24.1.0(rollup@3.26.2):
resolution: {integrity: sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -692,16 +851,16 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.0.2(rollup@3.20.2)
+ '@rollup/pluginutils': 5.0.2(rollup@3.26.2)
commondir: 1.0.1
estree-walker: 2.0.2
- glob: 8.0.3
+ glob: 8.1.0
is-reference: 1.2.1
magic-string: 0.27.0
- rollup: 3.20.2
+ rollup: 3.26.2
dev: true
- /@rollup/plugin-json@6.0.0(rollup@3.20.2):
+ /@rollup/plugin-json@6.0.0(rollup@3.26.2):
resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -710,12 +869,12 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.0.2(rollup@3.20.2)
- rollup: 3.20.2
+ '@rollup/pluginutils': 5.0.2(rollup@3.26.2)
+ rollup: 3.26.2
dev: true
- /@rollup/plugin-node-resolve@15.0.2(rollup@3.20.2):
- resolution: {integrity: sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==}
+ /@rollup/plugin-node-resolve@15.1.0(rollup@3.26.2):
+ resolution: {integrity: sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.78.0||^3.0.0
@@ -723,16 +882,16 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.0.2(rollup@3.20.2)
+ '@rollup/pluginutils': 5.0.2(rollup@3.26.2)
'@types/resolve': 1.20.2
- deepmerge: 4.2.2
+ deepmerge: 4.3.1
is-builtin-module: 3.2.1
is-module: 1.0.0
- resolve: 1.22.1
- rollup: 3.20.2
+ resolve: 1.22.2
+ rollup: 3.26.2
dev: true
- /@rollup/plugin-replace@5.0.2(rollup@3.20.2):
+ /@rollup/plugin-replace@5.0.2(rollup@3.26.2):
resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -741,12 +900,12 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.0.2(rollup@3.20.2)
+ '@rollup/pluginutils': 5.0.2(rollup@3.26.2)
magic-string: 0.27.0
- rollup: 3.20.2
+ rollup: 3.26.2
dev: true
- /@rollup/pluginutils@5.0.2(rollup@3.20.2):
+ /@rollup/pluginutils@5.0.2(rollup@3.26.2):
resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -755,14 +914,10 @@ packages:
rollup:
optional: true
dependencies:
- '@types/estree': 1.0.0
+ '@types/estree': 1.0.1
estree-walker: 2.0.2
picomatch: 2.3.1
- rollup: 3.20.2
- dev: true
-
- /@sinclair/typebox@0.24.51:
- resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==}
+ rollup: 3.26.2
dev: true
/@sinclair/typebox@0.27.8:
@@ -781,8 +936,8 @@ packages:
resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
dev: true
- /@tsconfig/node16@1.0.3:
- resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==}
+ /@tsconfig/node16@1.0.4:
+ resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
dev: true
/@types/chai-subset@1.3.3:
@@ -795,29 +950,29 @@ packages:
resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==}
dev: true
- /@types/estree@1.0.0:
- resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
+ /@types/estree@1.0.1:
+ resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==}
dev: true
- /@types/json-schema@7.0.9:
- resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==}
+ /@types/json-schema@7.0.12:
+ resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
/@types/json5@0.0.29:
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
dev: true
- /@types/mdast@3.0.10:
- resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==}
+ /@types/mdast@3.0.12:
+ resolution: {integrity: sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==}
dependencies:
- '@types/unist': 2.0.6
+ '@types/unist': 2.0.7
dev: true
/@types/mocha@10.0.1:
resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==}
dev: true
- /@types/node@20.4.1:
- resolution: {integrity: sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==}
+ /@types/node@20.4.2:
+ resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==}
dev: true
/@types/normalize-package-data@2.4.1:
@@ -828,19 +983,19 @@ packages:
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
dev: true
- /@types/semver@7.3.13:
- resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
+ /@types/semver@7.5.0:
+ resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
- /@types/unist@2.0.6:
- resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
+ /@types/unist@2.0.7:
+ resolution: {integrity: sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==}
dev: true
/@types/yoga-layout@1.9.2:
resolution: {integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==}
dev: true
- /@typescript-eslint/eslint-plugin@5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.0.4):
- resolution: {integrity: sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==}
+ /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.44.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
'@typescript-eslint/parser': ^5.0.0
@@ -850,25 +1005,56 @@ packages:
typescript:
optional: true
dependencies:
- '@eslint-community/regexpp': 4.5.0
- '@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.0.4)
- '@typescript-eslint/scope-manager': 5.61.0
- '@typescript-eslint/type-utils': 5.61.0(eslint@8.44.0)(typescript@5.0.4)
- '@typescript-eslint/utils': 5.61.0(eslint@8.44.0)(typescript@5.0.4)
+ '@eslint-community/regexpp': 4.5.1
+ '@typescript-eslint/parser': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/type-utils': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
+ debug: 4.3.4
+ eslint: 8.44.0
+ graphemer: 1.4.0
+ ignore: 5.2.4
+ natural-compare-lite: 1.4.0
+ semver: 7.5.4
+ tsutils: 3.21.0(typescript@5.1.6)
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/eslint-plugin@6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.44.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@eslint-community/regexpp': 4.5.1
+ '@typescript-eslint/parser': 6.0.0(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/scope-manager': 6.0.0
+ '@typescript-eslint/type-utils': 6.0.0(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/utils': 6.0.0(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/visitor-keys': 6.0.0
debug: 4.3.4
eslint: 8.44.0
+ grapheme-splitter: 1.0.4
graphemer: 1.4.0
- ignore: 5.2.0
+ ignore: 5.2.4
+ natural-compare: 1.4.0
natural-compare-lite: 1.4.0
- semver: 7.5.1
- tsutils: 3.21.0(typescript@5.0.4)
- typescript: 5.0.4
+ semver: 7.5.4
+ ts-api-utils: 1.0.1(typescript@5.1.6)
+ typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/parser@5.61.0(eslint@8.44.0)(typescript@5.0.4):
- resolution: {integrity: sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg==}
+ /@typescript-eslint/parser@5.62.0(eslint@8.44.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -877,25 +1063,73 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 5.61.0
- '@typescript-eslint/types': 5.61.0
- '@typescript-eslint/typescript-estree': 5.61.0(typescript@5.0.4)
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
debug: 4.3.4
eslint: 8.44.0
- typescript: 5.0.4
+ typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/scope-manager@5.61.0:
- resolution: {integrity: sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==}
+ /@typescript-eslint/parser@6.0.0(eslint@8.44.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 6.0.0
+ '@typescript-eslint/types': 6.0.0
+ '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6)
+ '@typescript-eslint/visitor-keys': 6.0.0
+ debug: 4.3.4
+ eslint: 8.44.0
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/rule-tester@6.0.0(@eslint/eslintrc@2.1.0)(eslint@8.44.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-mHB5phLdzK3Kt7Hf9LzkwF+bgDhfdTi3vggSeyl8/jA6TRk9N7N+td40U1seHEN1Kfp1bM6QJlO8ePTXtCzTmQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ '@eslint/eslintrc': '>=2'
+ eslint: '>=8'
+ dependencies:
+ '@eslint/eslintrc': 2.1.0
+ '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6)
+ '@typescript-eslint/utils': 6.0.0(eslint@8.44.0)(typescript@5.1.6)
+ ajv: 6.12.6
+ eslint: 8.44.0
+ lodash.merge: 4.6.2
+ semver: 7.5.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@typescript-eslint/scope-manager@5.62.0:
+ resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- '@typescript-eslint/types': 5.61.0
- '@typescript-eslint/visitor-keys': 5.61.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/visitor-keys': 5.62.0
+ dev: true
+
+ /@typescript-eslint/scope-manager@6.0.0:
+ resolution: {integrity: sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.0.0
+ '@typescript-eslint/visitor-keys': 6.0.0
- /@typescript-eslint/type-utils@5.61.0(eslint@8.44.0)(typescript@5.0.4):
- resolution: {integrity: sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==}
+ /@typescript-eslint/type-utils@5.62.0(eslint@8.44.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '*'
@@ -904,22 +1138,47 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 5.61.0(typescript@5.0.4)
- '@typescript-eslint/utils': 5.61.0(eslint@8.44.0)(typescript@5.0.4)
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
debug: 4.3.4
eslint: 8.44.0
- tsutils: 3.21.0(typescript@5.0.4)
- typescript: 5.0.4
+ tsutils: 3.21.0(typescript@5.1.6)
+ typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/types@5.61.0:
- resolution: {integrity: sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ==}
+ /@typescript-eslint/type-utils@6.0.0(eslint@8.44.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6)
+ '@typescript-eslint/utils': 6.0.0(eslint@8.44.0)(typescript@5.1.6)
+ debug: 4.3.4
+ eslint: 8.44.0
+ ts-api-utils: 1.0.1(typescript@5.1.6)
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/types@5.62.0:
+ resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@typescript-eslint/types@6.0.0:
+ resolution: {integrity: sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
- /@typescript-eslint/typescript-estree@5.61.0(typescript@5.0.4):
- resolution: {integrity: sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw==}
+ /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6):
+ resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: '*'
@@ -927,56 +1186,105 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 5.61.0
- '@typescript-eslint/visitor-keys': 5.61.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/visitor-keys': 5.62.0
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.5.4
+ tsutils: 3.21.0(typescript@5.1.6)
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/typescript-estree@6.0.0(typescript@5.1.6):
+ resolution: {integrity: sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 6.0.0
+ '@typescript-eslint/visitor-keys': 6.0.0
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.5.1
- tsutils: 3.21.0(typescript@5.0.4)
- typescript: 5.0.4
+ semver: 7.5.4
+ ts-api-utils: 1.0.1(typescript@5.1.6)
+ typescript: 5.1.6
transitivePeerDependencies:
- supports-color
- /@typescript-eslint/utils@5.61.0(eslint@8.44.0)(typescript@5.0.4):
- resolution: {integrity: sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==}
+ /@typescript-eslint/utils@5.62.0(eslint@8.44.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
- '@types/json-schema': 7.0.9
- '@types/semver': 7.3.13
- '@typescript-eslint/scope-manager': 5.61.0
- '@typescript-eslint/types': 5.61.0
- '@typescript-eslint/typescript-estree': 5.61.0(typescript@5.0.4)
+ '@types/json-schema': 7.0.12
+ '@types/semver': 7.5.0
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
eslint: 8.44.0
eslint-scope: 5.1.1
- semver: 7.5.1
+ semver: 7.5.4
transitivePeerDependencies:
- supports-color
- typescript
+ dev: true
- /@typescript-eslint/visitor-keys@5.61.0:
- resolution: {integrity: sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg==}
+ /@typescript-eslint/utils@6.0.0(eslint@8.44.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
+ '@types/json-schema': 7.0.12
+ '@types/semver': 7.5.0
+ '@typescript-eslint/scope-manager': 6.0.0
+ '@typescript-eslint/types': 6.0.0
+ '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6)
+ eslint: 8.44.0
+ eslint-scope: 5.1.1
+ semver: 7.5.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ /@typescript-eslint/visitor-keys@5.62.0:
+ resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- '@typescript-eslint/types': 5.61.0
+ '@typescript-eslint/types': 5.62.0
+ eslint-visitor-keys: 3.4.1
+ dev: true
+
+ /@typescript-eslint/visitor-keys@6.0.0:
+ resolution: {integrity: sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.0.0
eslint-visitor-keys: 3.4.1
- /@veritem/eslint-config-base@0.0.11(@typescript-eslint/eslint-plugin@5.61.0)(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.0.4):
+ /@veritem/eslint-config-base@0.0.11(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.44.0)(typescript@5.1.6):
resolution: {integrity: sha512-tmDpz6DheFC4b7n8FxiyG/TCoHgSeiA3sECXvcvJi5ECokHfhubjoTJu4jha6XdE8rReiv5eXFx/CJtanSgpaw==}
peerDependencies:
typescript: '>=4.x'
dependencies:
eslint-plugin-eslint-comments: 3.2.0(eslint@8.44.0)
eslint-plugin-html: 7.1.0
- eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)
+ eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.62.0)(eslint@8.44.0)
eslint-plugin-markdown: 3.0.0(eslint@8.44.0)
eslint-plugin-promise: 6.1.1(eslint@8.44.0)
- eslint-plugin-unicorn: 46.0.0(eslint@8.44.0)
- eslint-plugin-unused-imports: 2.0.0(@typescript-eslint/eslint-plugin@5.61.0)(eslint@8.44.0)
- typescript: 5.0.4
+ eslint-plugin-unicorn: 46.0.1(eslint@8.44.0)
+ eslint-plugin-unused-imports: 2.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.44.0)
+ typescript: 5.1.6
transitivePeerDependencies:
- '@typescript-eslint/eslint-plugin'
- '@typescript-eslint/parser'
@@ -986,12 +1294,12 @@ packages:
- supports-color
dev: true
- /@veritem/eslint-config-react@0.0.11(eslint@8.44.0)(typescript@5.0.4):
+ /@veritem/eslint-config-react@0.0.11(eslint@8.44.0)(typescript@5.1.6):
resolution: {integrity: sha512-s5RbJvdrY5bYPAro3nsw0BWVYCIVyyw7cm6jbXASsqoBrUEkt+ubCm7h3oO0WGoO3ioqu8uBhQCTSZP9U4T/NA==}
peerDependencies:
eslint: '>=8.0.0'
dependencies:
- '@veritem/eslint-config-ts': 0.0.11(eslint@8.44.0)(typescript@5.0.4)
+ '@veritem/eslint-config-ts': 0.0.11(eslint@8.44.0)(typescript@5.1.6)
eslint: 8.44.0
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.44.0)
eslint-plugin-react: 7.32.2(eslint@8.44.0)
@@ -1003,14 +1311,14 @@ packages:
- typescript
dev: true
- /@veritem/eslint-config-ts@0.0.11(eslint@8.44.0)(typescript@5.0.4):
+ /@veritem/eslint-config-ts@0.0.11(eslint@8.44.0)(typescript@5.1.6):
resolution: {integrity: sha512-OZ6GzEtbZlTg0ZwUfPl2kHJKuQJapZ3fZf4/Uhs7xnbONtkUprgBlU4oH20+12XdS2CUQLmUEzvUGpgho/UniA==}
peerDependencies:
eslint: '>=8.0.0'
dependencies:
- '@typescript-eslint/eslint-plugin': 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.0.4)
- '@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.0.4)
- '@veritem/eslint-config-base': 0.0.11(@typescript-eslint/eslint-plugin@5.61.0)(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.0.4)
+ '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/parser': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
+ '@veritem/eslint-config-base': 0.0.11(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.44.0)(typescript@5.1.6)
eslint: 8.44.0
eslint-plugin-n: 15.7.0(eslint@8.44.0)
transitivePeerDependencies:
@@ -1020,10 +1328,10 @@ packages:
- typescript
dev: true
- /@veritem/eslint-config@0.0.11(eslint@8.44.0)(typescript@5.0.4):
+ /@veritem/eslint-config@0.0.11(eslint@8.44.0)(typescript@5.1.6):
resolution: {integrity: sha512-NTESflVjo4gdIab27tSmGaRoAI5rkSEvp24pSXouIULb7Ah7UaIZoGfmZpwhGJlgOafkySiofe0gqzFwrVPO3Q==}
dependencies:
- '@veritem/eslint-config-react': 0.0.11(eslint@8.44.0)(typescript@5.0.4)
+ '@veritem/eslint-config-react': 0.0.11(eslint@8.44.0)(typescript@5.1.6)
transitivePeerDependencies:
- eslint
- eslint-import-resolver-typescript
@@ -1095,18 +1403,6 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
- /acorn@8.8.1:
- resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
- engines: {node: '>=0.4.0'}
- hasBin: true
- dev: true
-
- /acorn@8.8.2:
- resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
- engines: {node: '>=0.4.0'}
- hasBin: true
- dev: true
-
/agent-base@6.0.2:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
engines: {node: '>= 6.0.0'}
@@ -1124,8 +1420,8 @@ packages:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- /ajv@8.11.2:
- resolution: {integrity: sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==}
+ /ajv@8.12.0:
+ resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
dependencies:
fast-deep-equal: 3.1.3
json-schema-traverse: 1.0.0
@@ -1177,10 +1473,17 @@ packages:
/argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
- /aria-query@5.1.3:
- resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
+ /aria-query@5.3.0:
+ resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
dependencies:
- deep-equal: 2.2.0
+ dequal: 2.0.3
+ dev: true
+
+ /array-buffer-byte-length@1.0.0:
+ resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
+ dependencies:
+ call-bind: 1.0.2
+ is-array-buffer: 3.0.2
dev: true
/array-includes@3.1.6:
@@ -1188,9 +1491,9 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.0
- get-intrinsic: 1.1.3
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
+ get-intrinsic: 1.2.1
is-string: 1.0.7
dev: true
@@ -1203,8 +1506,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
es-shim-unscopables: 1.0.0
dev: true
@@ -1213,8 +1516,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
es-shim-unscopables: 1.0.0
dev: true
@@ -1222,10 +1525,10 @@ packages:
resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
es-shim-unscopables: 1.0.0
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.1
dev: true
/assertion-error@1.1.0:
@@ -1251,15 +1554,15 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /axe-core@4.6.2:
- resolution: {integrity: sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg==}
+ /axe-core@4.7.2:
+ resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==}
engines: {node: '>=4'}
dev: true
- /axobject-query@3.1.1:
- resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==}
+ /axobject-query@3.2.1:
+ resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
dependencies:
- deep-equal: 2.2.0
+ dequal: 2.0.3
dev: true
/balanced-match@1.0.2:
@@ -1292,15 +1595,15 @@ packages:
dependencies:
fill-range: 7.0.1
- /browserslist@4.21.4:
- resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==}
+ /browserslist@4.21.9:
+ resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001431
- electron-to-chromium: 1.4.284
- node-releases: 2.0.6
- update-browserslist-db: 1.0.10(browserslist@4.21.4)
+ caniuse-lite: 1.0.30001515
+ electron-to-chromium: 1.4.460
+ node-releases: 2.0.13
+ update-browserslist-db: 1.0.11(browserslist@4.21.9)
dev: true
/builtin-modules@3.3.0:
@@ -1311,7 +1614,7 @@ packages:
/builtins@5.0.1:
resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
dependencies:
- semver: 7.5.1
+ semver: 7.5.4
dev: true
/bumpp@9.1.1:
@@ -1320,29 +1623,29 @@ packages:
hasBin: true
dependencies:
'@jsdevtools/ez-spawn': 3.0.4
- c12: 1.4.1
+ c12: 1.4.2
cac: 6.7.14
- fast-glob: 3.2.12
+ fast-glob: 3.3.0
prompts: 2.4.2
- semver: 7.5.1
+ semver: 7.5.4
transitivePeerDependencies:
- supports-color
dev: true
- /c12@1.4.1:
- resolution: {integrity: sha512-0x7pWfLZpZsgtyotXtuepJc0rZYE0Aw8PwNAXs0jSG9zq6Sl5xmbWnFqfmRY01ieZLHNbvneSFm9/x88CvzAuw==}
+ /c12@1.4.2:
+ resolution: {integrity: sha512-3IP/MuamSVRVw8W8+CHWAz9gKN4gd+voF2zm/Ln6D25C2RhytEZ1ABbC8MjKr4BR9rhoV1JQ7jJA158LDiTkLg==}
dependencies:
chokidar: 3.5.3
defu: 6.1.2
- dotenv: 16.0.3
+ dotenv: 16.3.1
giget: 1.1.2
jiti: 1.19.1
- mlly: 1.2.0
+ mlly: 1.4.0
ohash: 1.1.2
- pathe: 1.1.0
- perfect-debounce: 0.1.3
- pkg-types: 1.0.2
- rc9: 2.1.0
+ pathe: 1.1.1
+ perfect-debounce: 1.0.0
+ pkg-types: 1.0.3
+ rc9: 2.1.1
transitivePeerDependencies:
- supports-color
dev: true
@@ -1356,19 +1659,19 @@ packages:
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
dependencies:
function-bind: 1.1.1
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.1
dev: true
- /call-me-maybe@1.0.1:
- resolution: {integrity: sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==}
+ /call-me-maybe@1.0.2:
+ resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
dev: true
/callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
- /caniuse-lite@1.0.30001431:
- resolution: {integrity: sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==}
+ /caniuse-lite@1.0.30001515:
+ resolution: {integrity: sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==}
dev: true
/chai@4.3.7:
@@ -1400,8 +1703,8 @@ packages:
ansi-styles: 4.3.0
supports-color: 7.2.0
- /chalk@5.2.0:
- resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==}
+ /chalk@5.3.0:
+ resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
dev: true
@@ -1445,8 +1748,8 @@ packages:
resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==}
dev: true
- /ci-info@3.7.1:
- resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==}
+ /ci-info@3.8.0:
+ resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
engines: {node: '>=8'}
dev: true
@@ -1512,12 +1815,12 @@ packages:
/color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
- /colorette@2.0.19:
- resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==}
+ /colorette@2.0.20:
+ resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
dev: true
- /commander@10.0.0:
- resolution: {integrity: sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==}
+ /commander@10.0.1:
+ resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
engines: {node: '>=14'}
dev: true
@@ -1544,8 +1847,9 @@ packages:
yargs: 17.7.2
dev: true
- /consola@3.0.2:
- resolution: {integrity: sha512-o/Wau2FmZKiQgyp3c3IULgN6J5yc0lwYMnoyiZdEpdGxKGBtt2ACbkulBZ6BUsHy1HlSJqoP4YOyPIJLgRJyKQ==}
+ /consola@3.2.3:
+ resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
+ engines: {node: ^14.18.0 || >=16.10.0}
dev: true
/convert-source-map@1.9.0:
@@ -1557,8 +1861,8 @@ packages:
engines: {node: '>= 4'}
dev: true
- /cosmiconfig@8.0.0:
- resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==}
+ /cosmiconfig@8.2.0:
+ resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==}
engines: {node: '>=14'}
dependencies:
import-fresh: 3.3.0
@@ -1587,7 +1891,7 @@ packages:
resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
engines: {node: '>=0.11'}
dependencies:
- '@babel/runtime': 7.22.5
+ '@babel/runtime': 7.22.6
dev: true
/debug@3.2.7:
@@ -1598,7 +1902,7 @@ packages:
supports-color:
optional: true
dependencies:
- ms: 2.1.2
+ ms: 2.1.3
dev: true
/debug@4.3.4:
@@ -1619,38 +1923,16 @@ packages:
type-detect: 4.0.8
dev: true
- /deep-equal@2.2.0:
- resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==}
- dependencies:
- call-bind: 1.0.2
- es-get-iterator: 1.1.3
- get-intrinsic: 1.1.3
- is-arguments: 1.1.1
- is-array-buffer: 3.0.1
- is-date-object: 1.0.5
- is-regex: 1.1.4
- is-shared-array-buffer: 1.0.2
- isarray: 2.0.5
- object-is: 1.1.5
- object-keys: 1.1.1
- object.assign: 4.1.4
- regexp.prototype.flags: 1.4.3
- side-channel: 1.0.4
- which-boxed-primitive: 1.0.2
- which-collection: 1.0.1
- which-typed-array: 1.1.9
- dev: true
-
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
- /deepmerge@4.2.2:
- resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
dev: true
- /define-properties@1.1.4:
- resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==}
+ /define-properties@1.2.0:
+ resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==}
engines: {node: '>= 0.4'}
dependencies:
has-property-descriptors: 1.0.0
@@ -1661,8 +1943,13 @@ packages:
resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==}
dev: true
- /destr@1.2.2:
- resolution: {integrity: sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==}
+ /dequal@2.0.3:
+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /destr@2.0.0:
+ resolution: {integrity: sha512-FJ9RDpf3GicEBvzI3jxc2XhHzbqD8p4ANw/1kPsFBfTvP1b7Gn/Lg1vO7R9J4IVgoMbyUmFrFGZafJ1hPZpvlg==}
dev: true
/diff-sequences@29.4.3:
@@ -1703,373 +1990,182 @@ packages:
dev: true
/domelementtype@2.3.0:
- resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
- dev: true
-
- /domhandler@5.0.3:
- resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
- engines: {node: '>= 4'}
- dependencies:
- domelementtype: 2.3.0
- dev: true
-
- /domutils@3.0.1:
- resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==}
- dependencies:
- dom-serializer: 2.0.0
- domelementtype: 2.3.0
- domhandler: 5.0.3
- dev: true
-
- /dot-prop@7.2.0:
- resolution: {integrity: sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- type-fest: 2.19.0
- dev: true
-
- /dotenv@16.0.3:
- resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==}
- engines: {node: '>=12'}
- dev: true
-
- /electron-to-chromium@1.4.284:
- resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==}
- dev: true
-
- /emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
- dev: true
-
- /emoji-regex@9.2.2:
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
- dev: true
-
- /entities@4.5.0:
- resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
- engines: {node: '>=0.12'}
- dev: true
-
- /error-ex@1.3.2:
- resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
- dependencies:
- is-arrayish: 0.2.1
- dev: true
-
- /es-abstract@1.21.0:
- resolution: {integrity: sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.2
- es-set-tostringtag: 2.0.1
- es-to-primitive: 1.2.1
- function-bind: 1.1.1
- function.prototype.name: 1.1.5
- get-intrinsic: 1.1.3
- get-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.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.2
- object-keys: 1.1.1
- object.assign: 4.1.4
- regexp.prototype.flags: 1.4.3
- 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
- dev: true
-
- /es-get-iterator@1.1.3:
- resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
- dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.1.3
- has-symbols: 1.0.3
- is-arguments: 1.1.1
- is-map: 2.0.2
- is-set: 2.0.2
- is-string: 1.0.7
- isarray: 2.0.5
- stop-iteration-iterator: 1.0.0
- dev: true
-
- /es-set-tostringtag@2.0.1:
- resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
- engines: {node: '>= 0.4'}
- dependencies:
- get-intrinsic: 1.1.3
- has: 1.0.3
- has-tostringtag: 1.0.0
- dev: true
-
- /es-shim-unscopables@1.0.0:
- resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
- dependencies:
- has: 1.0.3
- dev: true
-
- /es-to-primitive@1.2.1:
- resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
- engines: {node: '>= 0.4'}
- dependencies:
- is-callable: 1.2.7
- is-date-object: 1.0.5
- is-symbol: 1.0.4
- dev: true
-
- /esbuild-android-64@0.15.18:
- resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-android-arm64@0.15.18:
- resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-64@0.15.18:
- resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-darwin-arm64@0.15.18:
- resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-64@0.15.18:
- resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-freebsd-arm64@0.15.18:
- resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /esbuild-linux-32@0.15.18:
- resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
dev: true
- optional: true
- /esbuild-linux-64@0.15.18:
- resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
+ /domhandler@5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
+ dependencies:
+ domelementtype: 2.3.0
dev: true
- optional: true
- /esbuild-linux-arm64@0.15.18:
- resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
+ /domutils@3.1.0:
+ resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
dev: true
- optional: true
- /esbuild-linux-arm@0.15.18:
- resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
+ /dot-prop@7.2.0:
+ resolution: {integrity: sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ type-fest: 2.19.0
dev: true
- optional: true
- /esbuild-linux-mips64le@0.15.18:
- resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==}
+ /dotenv@16.3.1:
+ resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==}
engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
dev: true
- optional: true
- /esbuild-linux-ppc64le@0.15.18:
- resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
+ /electron-to-chromium@1.4.460:
+ resolution: {integrity: sha512-kKiHnbrHME7z8E6AYaw0ehyxY5+hdaRmeUbjBO22LZMdqTYCO29EvF0T1cQ3pJ1RN5fyMcHl1Lmcsdt9WWJpJQ==}
dev: true
- optional: true
- /esbuild-linux-riscv64@0.15.18:
- resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
+ /emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
- optional: true
- /esbuild-linux-s390x@0.15.18:
- resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
+ /emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: true
- optional: true
- /esbuild-netbsd-64@0.15.18:
- resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
+ /entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
dev: true
- optional: true
- /esbuild-openbsd-64@0.15.18:
- resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
+ /error-ex@1.3.2:
+ resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+ dependencies:
+ is-arrayish: 0.2.1
dev: true
- optional: true
- /esbuild-sunos-64@0.15.18:
- resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
+ /es-abstract@1.21.3:
+ resolution: {integrity: sha512-ZU4miiY1j3sGPFLJ34VJXEqhpmL+HGByCinGHv4HC+Fxl2fI2Z4yR6tl0mORnDr6PA8eihWo4LmSWDbvhALckg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ array-buffer-byte-length: 1.0.0
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ es-set-tostringtag: 2.0.1
+ es-to-primitive: 1.2.1
+ function.prototype.name: 1.1.5
+ get-intrinsic: 1.2.1
+ get-symbol-description: 1.0.0
+ globalthis: 1.0.3
+ gopd: 1.0.1
+ has: 1.0.3
+ has-property-descriptors: 1.0.0
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ internal-slot: 1.0.5
+ is-array-buffer: 3.0.2
+ is-callable: 1.2.7
+ is-negative-zero: 2.0.2
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.2
+ is-string: 1.0.7
+ is-typed-array: 1.1.10
+ is-weakref: 1.0.2
+ object-inspect: 1.12.3
+ object-keys: 1.1.1
+ object.assign: 4.1.4
+ regexp.prototype.flags: 1.5.0
+ safe-regex-test: 1.0.0
+ string.prototype.trim: 1.2.7
+ string.prototype.trimend: 1.0.6
+ string.prototype.trimstart: 1.0.6
+ typed-array-byte-offset: 1.0.0
+ typed-array-length: 1.0.4
+ unbox-primitive: 1.0.2
+ which-typed-array: 1.1.10
dev: true
- optional: true
- /esbuild-windows-32@0.15.18:
- resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
+ /es-set-tostringtag@2.0.1:
+ resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.1
+ has: 1.0.3
+ has-tostringtag: 1.0.0
dev: true
- optional: true
- /esbuild-windows-64@0.15.18:
- resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
+ /es-shim-unscopables@1.0.0:
+ resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
+ dependencies:
+ has: 1.0.3
dev: true
- optional: true
- /esbuild-windows-arm64@0.15.18:
- resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
+ /es-to-primitive@1.2.1:
+ resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.0.5
+ is-symbol: 1.0.4
dev: true
- optional: true
- /esbuild@0.15.18:
- resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==}
+ /esbuild@0.17.19:
+ resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
- '@esbuild/android-arm': 0.15.18
- '@esbuild/linux-loong64': 0.15.18
- esbuild-android-64: 0.15.18
- esbuild-android-arm64: 0.15.18
- esbuild-darwin-64: 0.15.18
- esbuild-darwin-arm64: 0.15.18
- esbuild-freebsd-64: 0.15.18
- esbuild-freebsd-arm64: 0.15.18
- esbuild-linux-32: 0.15.18
- esbuild-linux-64: 0.15.18
- esbuild-linux-arm: 0.15.18
- esbuild-linux-arm64: 0.15.18
- esbuild-linux-mips64le: 0.15.18
- esbuild-linux-ppc64le: 0.15.18
- esbuild-linux-riscv64: 0.15.18
- esbuild-linux-s390x: 0.15.18
- esbuild-netbsd-64: 0.15.18
- esbuild-openbsd-64: 0.15.18
- esbuild-sunos-64: 0.15.18
- esbuild-windows-32: 0.15.18
- esbuild-windows-64: 0.15.18
- esbuild-windows-arm64: 0.15.18
- dev: true
-
- /esbuild@0.17.16:
- resolution: {integrity: sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==}
+ '@esbuild/android-arm': 0.17.19
+ '@esbuild/android-arm64': 0.17.19
+ '@esbuild/android-x64': 0.17.19
+ '@esbuild/darwin-arm64': 0.17.19
+ '@esbuild/darwin-x64': 0.17.19
+ '@esbuild/freebsd-arm64': 0.17.19
+ '@esbuild/freebsd-x64': 0.17.19
+ '@esbuild/linux-arm': 0.17.19
+ '@esbuild/linux-arm64': 0.17.19
+ '@esbuild/linux-ia32': 0.17.19
+ '@esbuild/linux-loong64': 0.17.19
+ '@esbuild/linux-mips64el': 0.17.19
+ '@esbuild/linux-ppc64': 0.17.19
+ '@esbuild/linux-riscv64': 0.17.19
+ '@esbuild/linux-s390x': 0.17.19
+ '@esbuild/linux-x64': 0.17.19
+ '@esbuild/netbsd-x64': 0.17.19
+ '@esbuild/openbsd-x64': 0.17.19
+ '@esbuild/sunos-x64': 0.17.19
+ '@esbuild/win32-arm64': 0.17.19
+ '@esbuild/win32-ia32': 0.17.19
+ '@esbuild/win32-x64': 0.17.19
+ dev: true
+
+ /esbuild@0.18.12:
+ resolution: {integrity: sha512-XuOVLDdtsDslXStStduT41op21Ytmf4/BDS46aa3xPJ7X5h2eMWBF1oAe3QjUH3bDksocNXgzGUZ7XHIBya6Tg==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
- '@esbuild/android-arm': 0.17.16
- '@esbuild/android-arm64': 0.17.16
- '@esbuild/android-x64': 0.17.16
- '@esbuild/darwin-arm64': 0.17.16
- '@esbuild/darwin-x64': 0.17.16
- '@esbuild/freebsd-arm64': 0.17.16
- '@esbuild/freebsd-x64': 0.17.16
- '@esbuild/linux-arm': 0.17.16
- '@esbuild/linux-arm64': 0.17.16
- '@esbuild/linux-ia32': 0.17.16
- '@esbuild/linux-loong64': 0.17.16
- '@esbuild/linux-mips64el': 0.17.16
- '@esbuild/linux-ppc64': 0.17.16
- '@esbuild/linux-riscv64': 0.17.16
- '@esbuild/linux-s390x': 0.17.16
- '@esbuild/linux-x64': 0.17.16
- '@esbuild/netbsd-x64': 0.17.16
- '@esbuild/openbsd-x64': 0.17.16
- '@esbuild/sunos-x64': 0.17.16
- '@esbuild/win32-arm64': 0.17.16
- '@esbuild/win32-ia32': 0.17.16
- '@esbuild/win32-x64': 0.17.16
+ '@esbuild/android-arm': 0.18.12
+ '@esbuild/android-arm64': 0.18.12
+ '@esbuild/android-x64': 0.18.12
+ '@esbuild/darwin-arm64': 0.18.12
+ '@esbuild/darwin-x64': 0.18.12
+ '@esbuild/freebsd-arm64': 0.18.12
+ '@esbuild/freebsd-x64': 0.18.12
+ '@esbuild/linux-arm': 0.18.12
+ '@esbuild/linux-arm64': 0.18.12
+ '@esbuild/linux-ia32': 0.18.12
+ '@esbuild/linux-loong64': 0.18.12
+ '@esbuild/linux-mips64el': 0.18.12
+ '@esbuild/linux-ppc64': 0.18.12
+ '@esbuild/linux-riscv64': 0.18.12
+ '@esbuild/linux-s390x': 0.18.12
+ '@esbuild/linux-x64': 0.18.12
+ '@esbuild/netbsd-x64': 0.18.12
+ '@esbuild/openbsd-x64': 0.18.12
+ '@esbuild/sunos-x64': 0.18.12
+ '@esbuild/win32-arm64': 0.18.12
+ '@esbuild/win32-ia32': 0.18.12
+ '@esbuild/win32-x64': 0.18.12
dev: true
/escalade@3.1.1:
@@ -2091,26 +2187,26 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- /eslint-doc-generator@1.4.3(eslint@8.44.0)(typescript@5.0.4):
+ /eslint-doc-generator@1.4.3(eslint@8.44.0)(typescript@5.1.6):
resolution: {integrity: sha512-cn9KXE7xuKlxKi/9VbirR3cbz7W1geRObwWzZjJAnpTeNBoqA8Rj+lD8/HHHJ7PnOdaTrRyhhoYdCtxqq3U7Bw==}
engines: {node: ^14.18.0 || ^16.0.0 || >=18.0.0}
hasBin: true
peerDependencies:
eslint: '>= 7'
dependencies:
- '@typescript-eslint/utils': 5.61.0(eslint@8.44.0)(typescript@5.0.4)
- ajv: 8.11.2
+ '@typescript-eslint/utils': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
+ ajv: 8.12.0
boolean: 3.2.0
- commander: 10.0.0
- cosmiconfig: 8.0.0
- deepmerge: 4.2.2
+ commander: 10.0.1
+ cosmiconfig: 8.2.0
+ deepmerge: 4.3.1
dot-prop: 7.2.0
eslint: 8.44.0
- jest-diff: 29.3.1
+ jest-diff: 29.6.1
json-schema-traverse: 1.0.0
markdown-table: 3.0.3
no-case: 3.0.4
- type-fest: 3.2.0
+ type-fest: 3.13.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -2120,14 +2216,14 @@ packages:
resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==}
dependencies:
debug: 3.2.7
- is-core-module: 2.11.0
- resolve: 1.22.1
+ is-core-module: 2.12.1
+ resolve: 1.22.2
transitivePeerDependencies:
- supports-color
dev: true
- /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint@8.44.0):
- resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint@8.44.0):
+ resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
@@ -2147,7 +2243,7 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.0.4)
+ '@typescript-eslint/parser': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
debug: 3.2.7
eslint: 8.44.0
eslint-import-resolver-node: 0.3.7
@@ -2185,7 +2281,7 @@ packages:
dependencies:
escape-string-regexp: 1.0.5
eslint: 8.44.0
- ignore: 5.2.0
+ ignore: 5.2.4
dev: true
/eslint-plugin-eslint-plugin@5.1.0(eslint@8.44.0):
@@ -2205,7 +2301,7 @@ packages:
htmlparser2: 8.0.2
dev: true
- /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.61.0)(eslint@8.44.0):
+ /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.62.0)(eslint@8.44.0):
resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
engines: {node: '>=4'}
peerDependencies:
@@ -2215,7 +2311,7 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.0.4)
+ '@typescript-eslint/parser': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
array-includes: 3.1.6
array.prototype.flat: 1.3.1
array.prototype.flatmap: 1.3.1
@@ -2223,15 +2319,15 @@ packages:
doctrine: 2.1.0
eslint: 8.44.0
eslint-import-resolver-node: 0.3.7
- eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint@8.44.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint@8.44.0)
has: 1.0.3
- is-core-module: 2.11.0
+ is-core-module: 2.12.1
is-glob: 4.0.3
minimatch: 3.1.2
object.values: 1.1.6
- resolve: 1.22.1
- semver: 6.3.0
- tsconfig-paths: 3.14.1
+ resolve: 1.22.2
+ semver: 6.3.1
+ tsconfig-paths: 3.14.2
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -2244,23 +2340,23 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
dependencies:
- '@babel/runtime': 7.22.5
- aria-query: 5.1.3
+ '@babel/runtime': 7.22.6
+ aria-query: 5.3.0
array-includes: 3.1.6
array.prototype.flatmap: 1.3.1
ast-types-flow: 0.0.7
- axe-core: 4.6.2
- axobject-query: 3.1.1
+ axe-core: 4.7.2
+ axobject-query: 3.2.1
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
eslint: 8.44.0
has: 1.0.3
- jsx-ast-utils: 3.3.3
+ jsx-ast-utils: 3.3.4
language-tags: 1.0.5
minimatch: 3.1.2
object.entries: 1.1.6
object.fromentries: 2.0.6
- semver: 6.3.0
+ semver: 6.3.1
dev: true
/eslint-plugin-markdown@3.0.0(eslint@8.44.0):
@@ -2285,11 +2381,11 @@ packages:
eslint: 8.44.0
eslint-plugin-es: 4.1.0(eslint@8.44.0)
eslint-utils: 3.0.0(eslint@8.44.0)
- ignore: 5.2.0
- is-core-module: 2.11.0
+ ignore: 5.2.4
+ is-core-module: 2.12.1
minimatch: 3.1.2
- resolve: 1.22.1
- semver: 7.5.1
+ resolve: 1.22.2
+ semver: 7.5.4
dev: true
/eslint-plugin-node@11.1.0(eslint@8.44.0):
@@ -2301,10 +2397,10 @@ packages:
eslint: 8.44.0
eslint-plugin-es: 3.0.1(eslint@8.44.0)
eslint-utils: 2.1.0
- ignore: 5.2.0
- minimatch: 3.0.4
- resolve: 1.21.0
- semver: 6.3.0
+ ignore: 5.2.4
+ minimatch: 3.1.2
+ resolve: 1.22.2
+ semver: 6.3.1
dev: true
/eslint-plugin-promise@6.1.1(eslint@8.44.0):
@@ -2337,7 +2433,7 @@ packages:
doctrine: 2.1.0
eslint: 8.44.0
estraverse: 5.3.0
- jsx-ast-utils: 3.3.3
+ jsx-ast-utils: 3.3.4
minimatch: 3.1.2
object.entries: 1.1.6
object.fromentries: 2.0.6
@@ -2345,36 +2441,36 @@ packages:
object.values: 1.1.6
prop-types: 15.8.1
resolve: 2.0.0-next.4
- semver: 6.3.0
+ semver: 6.3.1
string.prototype.matchall: 4.0.8
dev: true
- /eslint-plugin-unicorn@46.0.0(eslint@8.44.0):
- resolution: {integrity: sha512-j07WkC+PFZwk8J33LYp6JMoHa1lXc1u6R45pbSAipjpfpb7KIGr17VE2D685zCxR5VL4cjrl65kTJflziQWMDA==}
+ /eslint-plugin-unicorn@46.0.1(eslint@8.44.0):
+ resolution: {integrity: sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==}
engines: {node: '>=14.18'}
peerDependencies:
eslint: '>=8.28.0'
dependencies:
'@babel/helper-validator-identifier': 7.22.5
'@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
- ci-info: 3.7.1
+ ci-info: 3.8.0
clean-regexp: 1.0.0
eslint: 8.44.0
- esquery: 1.4.2
+ esquery: 1.5.0
indent-string: 4.0.0
is-builtin-module: 3.2.1
jsesc: 3.0.2
lodash: 4.17.21
pluralize: 8.0.0
read-pkg-up: 7.0.1
- regexp-tree: 0.1.24
+ regexp-tree: 0.1.27
regjsparser: 0.9.1
safe-regex: 2.1.1
- semver: 7.5.1
+ semver: 7.5.4
strip-indent: 3.0.0
dev: true
- /eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.61.0)(eslint@8.44.0):
+ /eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.44.0):
resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2384,7 +2480,7 @@ packages:
'@typescript-eslint/eslint-plugin':
optional: true
dependencies:
- '@typescript-eslint/eslint-plugin': 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.0.4)
+ '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.44.0)(typescript@5.1.6)
eslint: 8.44.0
eslint-rule-composer: 0.3.0
dev: true
@@ -2404,15 +2500,15 @@ packages:
ts-node:
optional: true
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.5
JSONStream: 1.3.5
chalk: 4.1.2
eslint: 8.44.0
ink: 3.2.0(react@17.0.2)
object-hash: 3.0.0
react: 17.0.2
- simple-git: 3.15.1
- ts-node: 10.9.1(@types/node@20.4.1)(typescript@5.0.4)
+ simple-git: 3.19.1
+ ts-node: 10.9.1(@types/node@20.4.2)(typescript@5.1.6)
transitivePeerDependencies:
- '@types/react'
- bufferutil
@@ -2476,7 +2572,7 @@ packages:
hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
- '@eslint-community/regexpp': 4.5.0
+ '@eslint-community/regexpp': 4.5.1
'@eslint/eslintrc': 2.1.0
'@eslint/js': 8.44.0
'@humanwhocodes/config-array': 0.11.10
@@ -2491,15 +2587,15 @@ packages:
eslint-scope: 7.2.0
eslint-visitor-keys: 3.4.1
espree: 9.6.0
- esquery: 1.4.2
+ esquery: 1.5.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
find-up: 5.0.0
glob-parent: 6.0.2
- globals: 13.19.0
+ globals: 13.20.0
graphemer: 1.4.0
- ignore: 5.2.0
+ ignore: 5.2.4
import-fresh: 3.3.0
imurmurhash: 0.1.4
is-glob: 4.0.3
@@ -2525,8 +2621,8 @@ packages:
acorn-jsx: 5.3.2(acorn@8.10.0)
eslint-visitor-keys: 3.4.1
- /esquery@1.4.2:
- resolution: {integrity: sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==}
+ /esquery@1.5.0:
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
engines: {node: '>=0.10'}
dependencies:
estraverse: 5.3.0
@@ -2556,15 +2652,15 @@ packages:
/fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- /fast-glob@3.2.12:
- resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
+ /fast-glob@3.3.0:
+ resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==}
engines: {node: '>=8.6.0'}
dependencies:
'@nodelib/fs.stat': 2.0.5
'@nodelib/fs.walk': 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
- micromatch: 4.0.4
+ micromatch: 4.0.5
/fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
@@ -2572,8 +2668,8 @@ packages:
/fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
- /fastq@1.13.0:
- resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
+ /fastq@1.15.0:
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
dependencies:
reusify: 1.0.4
@@ -2608,7 +2704,7 @@ packages:
resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
- flatted: 3.2.4
+ flatted: 3.2.7
rimraf: 3.0.2
/flat@5.0.2:
@@ -2616,8 +2712,8 @@ packages:
hasBin: true
dev: true
- /flatted@3.2.4:
- resolution: {integrity: sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==}
+ /flatted@3.2.7:
+ resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
/for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
@@ -2629,7 +2725,7 @@ packages:
resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==}
engines: {node: '>=14.14'}
dependencies:
- graceful-fs: 4.2.8
+ graceful-fs: 4.2.11
jsonfile: 6.1.0
universalify: 2.0.0
dev: true
@@ -2661,8 +2757,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
functions-have-names: 1.2.3
dev: true
@@ -2684,11 +2780,12 @@ packages:
resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
dev: true
- /get-intrinsic@1.1.3:
- resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==}
+ /get-intrinsic@1.2.1:
+ resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
dependencies:
function-bind: 1.1.1
has: 1.0.3
+ has-proto: 1.0.1
has-symbols: 1.0.3
dev: true
@@ -2697,20 +2794,20 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.1
dev: true
/giget@1.1.2:
resolution: {integrity: sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==}
hasBin: true
dependencies:
- colorette: 2.0.19
+ colorette: 2.0.20
defu: 6.1.2
https-proxy-agent: 5.0.1
mri: 1.2.0
- node-fetch-native: 1.0.2
- pathe: 1.1.0
- tar: 6.1.13
+ node-fetch-native: 1.2.0
+ pathe: 1.1.1
+ tar: 6.1.15
transitivePeerDependencies:
- supports-color
dev: true
@@ -2727,8 +2824,8 @@ packages:
dependencies:
is-glob: 4.0.3
- /glob@7.2.0:
- resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
+ /glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
@@ -2737,14 +2834,14 @@ packages:
once: 1.4.0
path-is-absolute: 1.0.1
- /glob@8.0.3:
- resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==}
+ /glob@8.1.0:
+ resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
engines: {node: '>=12'}
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
- minimatch: 5.1.0
+ minimatch: 5.1.6
once: 1.4.0
dev: true
@@ -2753,8 +2850,8 @@ packages:
engines: {node: '>=4'}
dev: true
- /globals@13.19.0:
- resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==}
+ /globals@13.20.0:
+ resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
engines: {node: '>=8'}
dependencies:
type-fest: 0.20.2
@@ -2763,7 +2860,7 @@ packages:
resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
engines: {node: '>= 0.4'}
dependencies:
- define-properties: 1.1.4
+ define-properties: 1.2.0
dev: true
/globby@11.1.0:
@@ -2772,18 +2869,18 @@ packages:
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
- fast-glob: 3.2.12
- ignore: 5.2.0
+ fast-glob: 3.3.0
+ ignore: 5.2.4
merge2: 1.4.1
slash: 3.0.0
- /globby@13.1.4:
- resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==}
+ /globby@13.2.2:
+ resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
dir-glob: 3.0.1
- fast-glob: 3.2.12
- ignore: 5.2.0
+ fast-glob: 3.3.0
+ ignore: 5.2.4
merge2: 1.4.1
slash: 4.0.0
dev: true
@@ -2791,11 +2888,15 @@ packages:
/gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies:
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.1
+ dev: true
+
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
dev: true
- /graceful-fs@4.2.8:
- resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==}
+ /grapheme-splitter@1.0.4:
+ resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
dev: true
/graphemer@1.4.0:
@@ -2817,7 +2918,7 @@ packages:
/has-property-descriptors@1.0.0:
resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
dependencies:
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.1
dev: true
/has-proto@1.0.1:
@@ -2857,7 +2958,7 @@ packages:
dependencies:
domelementtype: 2.3.0
domhandler: 5.0.3
- domutils: 3.0.1
+ domutils: 3.1.0
entities: 4.5.0
dev: true
@@ -2871,8 +2972,8 @@ packages:
- supports-color
dev: true
- /ignore@5.2.0:
- resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
+ /ignore@5.2.4:
+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
engines: {node: '>= 4'}
/import-fresh@3.3.0:
@@ -2922,7 +3023,7 @@ packages:
lodash: 4.17.21
patch-console: 1.0.0
react: 17.0.2
- react-devtools-core: 4.27.1
+ react-devtools-core: 4.28.0
react-reconciler: 0.26.2(react@17.0.2)
scheduler: 0.20.2
signal-exit: 3.0.7
@@ -2939,11 +3040,11 @@ packages:
- utf-8-validate
dev: true
- /internal-slot@1.0.4:
- resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==}
+ /internal-slot@1.0.5:
+ resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.1
has: 1.0.3
side-channel: 1.0.4
dev: true
@@ -2959,19 +3060,11 @@ packages:
is-decimal: 1.0.4
dev: true
- /is-arguments@1.1.1:
- resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.2
- has-tostringtag: 1.0.0
- dev: true
-
- /is-array-buffer@3.0.1:
- resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==}
+ /is-array-buffer@3.0.2:
+ resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
dependencies:
call-bind: 1.0.2
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.1
is-typed-array: 1.1.10
dev: true
@@ -3019,14 +3112,8 @@ packages:
ci-info: 2.0.0
dev: true
- /is-core-module@2.11.0:
- resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
- dependencies:
- has: 1.0.3
- dev: true
-
- /is-core-module@2.8.0:
- resolution: {integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==}
+ /is-core-module@2.12.1:
+ resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==}
dependencies:
has: 1.0.3
dev: true
@@ -3061,10 +3148,6 @@ packages:
resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
dev: true
- /is-map@2.0.2:
- resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
- dev: true
-
/is-module@1.0.0:
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
dev: true
@@ -3092,7 +3175,7 @@ packages:
/is-reference@1.2.1:
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
dependencies:
- '@types/estree': 1.0.0
+ '@types/estree': 1.0.1
dev: true
/is-regex@1.1.4:
@@ -3103,10 +3186,6 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /is-set@2.0.2:
- resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
- dev: true
-
/is-shared-array-buffer@1.0.2:
resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
dependencies:
@@ -3138,42 +3217,27 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /is-weakmap@2.0.1:
- resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
- dev: true
-
/is-weakref@1.0.2:
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
dependencies:
call-bind: 1.0.2
dev: true
- /is-weakset@2.0.2:
- resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
- dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.1.3
- dev: true
-
- /isarray@2.0.5:
- resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
- dev: true
-
/isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
- /jest-diff@29.3.1:
- resolution: {integrity: sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==}
+ /jest-diff@29.6.1:
+ resolution: {integrity: sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
chalk: 4.1.2
diff-sequences: 29.4.3
- jest-get-type: 29.2.0
- pretty-format: 29.3.1
+ jest-get-type: 29.4.3
+ pretty-format: 29.6.1
dev: true
- /jest-get-type@29.2.0:
- resolution: {integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==}
+ /jest-get-type@29.4.3:
+ resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true
@@ -3227,7 +3291,7 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
dependencies:
- minimist: 1.2.7
+ minimist: 1.2.8
dev: true
/json5@2.2.3:
@@ -3245,7 +3309,7 @@ packages:
dependencies:
universalify: 2.0.0
optionalDependencies:
- graceful-fs: 4.2.8
+ graceful-fs: 4.2.11
dev: true
/jsonparse@1.3.1:
@@ -3253,12 +3317,14 @@ packages:
engines: {'0': node >= 0.2.0}
dev: true
- /jsx-ast-utils@3.3.3:
- resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==}
+ /jsx-ast-utils@3.3.4:
+ resolution: {integrity: sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==}
engines: {node: '>=4.0'}
dependencies:
array-includes: 3.1.6
+ array.prototype.flat: 1.3.1
object.assign: 4.1.4
+ object.values: 1.1.6
dev: true
/kleur@3.0.3:
@@ -3328,7 +3394,7 @@ packages:
/lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
dependencies:
- tslib: 2.4.1
+ tslib: 2.6.0
dev: true
/lru-cache@5.1.1:
@@ -3347,14 +3413,7 @@ packages:
resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
engines: {node: '>=12'}
dependencies:
- '@jridgewell/sourcemap-codec': 1.4.14
- dev: true
-
- /magic-string@0.30.0:
- resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==}
- engines: {node: '>=12'}
- dependencies:
- '@jridgewell/sourcemap-codec': 1.4.14
+ '@jridgewell/sourcemap-codec': 1.4.15
dev: true
/magic-string@0.30.1:
@@ -3375,7 +3434,7 @@ packages:
/mdast-util-from-markdown@0.8.5:
resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==}
dependencies:
- '@types/mdast': 3.0.10
+ '@types/mdast': 3.0.12
mdast-util-to-string: 2.0.0
micromark: 2.11.4
parse-entities: 2.0.0
@@ -3401,8 +3460,8 @@ packages:
- supports-color
dev: true
- /micromatch@4.0.4:
- resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==}
+ /micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
engines: {node: '>=8.6'}
dependencies:
braces: 3.0.2
@@ -3418,26 +3477,20 @@ packages:
engines: {node: '>=4'}
dev: true
- /minimatch@3.0.4:
- resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
- dependencies:
- brace-expansion: 1.1.11
- dev: true
-
/minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
brace-expansion: 1.1.11
- /minimatch@5.1.0:
- resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==}
+ /minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
engines: {node: '>=10'}
dependencies:
brace-expansion: 2.0.1
dev: true
- /minimist@1.2.7:
- resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
dev: true
/minipass@3.3.6:
@@ -3447,8 +3500,8 @@ packages:
yallist: 4.0.0
dev: true
- /minipass@4.2.5:
- resolution: {integrity: sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==}
+ /minipass@5.0.0:
+ resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
engines: {node: '>=8'}
dev: true
@@ -3466,7 +3519,7 @@ packages:
hasBin: true
dev: true
- /mkdist@1.2.0(typescript@5.0.4):
+ /mkdist@1.2.0(typescript@5.1.6):
resolution: {integrity: sha512-UTqu/bXmIk/+VKNVgufAeMyjUcNy1dn9Bl7wL1zZlCKVrpDgj/VllmZBeh3ZCC/2HWqUrt6frNFTKt9TRZbNvQ==}
hasBin: true
peerDependencies:
@@ -3479,32 +3532,14 @@ packages:
optional: true
dependencies:
defu: 6.1.2
- esbuild: 0.17.16
+ esbuild: 0.17.19
fs-extra: 11.1.1
- globby: 13.1.4
+ globby: 13.2.2
jiti: 1.19.1
- mlly: 1.2.0
+ mlly: 1.4.0
mri: 1.2.0
- pathe: 1.1.0
- typescript: 5.0.4
- dev: true
-
- /mlly@1.1.1:
- resolution: {integrity: sha512-Jnlh4W/aI4GySPo6+DyTN17Q75KKbLTyFK8BrGhjNP4rxuUjbRWhE6gHg3bs33URWAF44FRm7gdQA348i3XxRw==}
- dependencies:
- acorn: 8.8.2
- pathe: 1.1.0
- pkg-types: 1.0.2
- ufo: 1.1.0
- dev: true
-
- /mlly@1.2.0:
- resolution: {integrity: sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==}
- dependencies:
- acorn: 8.8.2
- pathe: 1.1.0
- pkg-types: 1.0.2
- ufo: 1.1.1
+ pathe: 1.1.1
+ typescript: 5.1.6
dev: true
/mlly@1.4.0:
@@ -3524,8 +3559,12 @@ packages:
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
- /nanoid@3.3.4:
- resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ dev: true
+
+ /nanoid@3.3.6:
+ resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
dev: true
@@ -3541,23 +3580,23 @@ packages:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
dependencies:
lower-case: 2.0.2
- tslib: 2.4.1
+ tslib: 2.6.0
dev: true
- /node-fetch-native@1.0.2:
- resolution: {integrity: sha512-KIkvH1jl6b3O7es/0ShyCgWLcfXxlBrLBbP3rOr23WArC66IMcU4DeZEeYEOwnopYhawLTn7/y+YtmASe8DFVQ==}
+ /node-fetch-native@1.2.0:
+ resolution: {integrity: sha512-5IAMBTl9p6PaAjYCnMv5FmqIF6GcZnawAVnzaCG0rX2aYZJ4CxEkZNtVPuTRug7fL7wyM5BQYTlAzcyMPi6oTQ==}
dev: true
- /node-releases@2.0.6:
- resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
+ /node-releases@2.0.13:
+ resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
dev: true
/normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
dependencies:
hosted-git-info: 2.8.9
- resolve: 1.22.1
- semver: 5.7.1
+ resolve: 1.22.2
+ semver: 5.7.2
validate-npm-package-license: 3.0.4
dev: true
@@ -3576,16 +3615,8 @@ packages:
engines: {node: '>= 6'}
dev: true
- /object-inspect@1.12.2:
- resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
- dev: true
-
- /object-is@1.1.5:
- resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.2
- define-properties: 1.1.4
+ /object-inspect@1.12.3:
+ resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
dev: true
/object-keys@1.1.1:
@@ -3598,7 +3629,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
+ define-properties: 1.2.0
has-symbols: 1.0.3
object-keys: 1.1.1
dev: true
@@ -3608,8 +3639,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
dev: true
/object.fromentries@2.0.6:
@@ -3617,15 +3648,15 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
dev: true
/object.hasown@1.1.2:
resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==}
dependencies:
- define-properties: 1.1.4
- es-abstract: 1.21.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
dev: true
/object.values@1.1.6:
@@ -3633,8 +3664,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
dev: true
/ohash@1.1.2:
@@ -3723,7 +3754,7 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.5
error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
@@ -3754,10 +3785,6 @@ packages:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
- /pathe@1.1.0:
- resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==}
- dev: true
-
/pathe@1.1.1:
resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==}
dev: true
@@ -3766,8 +3793,8 @@ packages:
resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
dev: true
- /perfect-debounce@0.1.3:
- resolution: {integrity: sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==}
+ /perfect-debounce@1.0.0:
+ resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
dev: true
/picocolors@1.0.0:
@@ -3778,14 +3805,6 @@ packages:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
- /pkg-types@1.0.2:
- resolution: {integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==}
- dependencies:
- jsonc-parser: 3.2.0
- mlly: 1.1.1
- pathe: 1.1.0
- dev: true
-
/pkg-types@1.0.3:
resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
dependencies:
@@ -3799,11 +3818,11 @@ packages:
engines: {node: '>=4'}
dev: true
- /postcss@8.4.18:
- resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==}
+ /postcss@8.4.26:
+ resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
- nanoid: 3.3.4
+ nanoid: 3.3.6
picocolors: 1.0.0
source-map-js: 1.0.2
dev: true
@@ -3817,15 +3836,6 @@ packages:
engines: {node: ^14.13.1 || >=16.0.0}
dev: true
- /pretty-format@29.3.1:
- resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- dependencies:
- '@jest/schemas': 29.0.0
- ansi-styles: 5.2.0
- react-is: 18.2.0
- dev: true
-
/pretty-format@29.6.1:
resolution: {integrity: sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -3851,25 +3861,25 @@ packages:
react-is: 16.13.1
dev: true
- /punycode@2.1.1:
- resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
+ /punycode@2.3.0:
+ resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
engines: {node: '>=6'}
/queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
- /rc9@2.1.0:
- resolution: {integrity: sha512-ROO9bv8PPqngWKoiUZU3JDQ4sugpdRs9DfwHnzDSxK25XtQn6BEHL6EOd/OtKuDT2qodrtNR+0WkPT6l0jxH5Q==}
+ /rc9@2.1.1:
+ resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==}
dependencies:
defu: 6.1.2
- destr: 1.2.2
+ destr: 2.0.0
flat: 5.0.2
dev: true
- /react-devtools-core@4.27.1:
- resolution: {integrity: sha512-qXhcxxDWiFmFAOq48jts9YQYe1+wVoUXzJTlY4jbaATzyio6dd6CUGu3dXBhREeVgpZ+y4kg6vFJzIOZh6vY2w==}
+ /react-devtools-core@4.28.0:
+ resolution: {integrity: sha512-E3C3X1skWBdBzwpOUbmXG8SgH6BtsluSMe+s6rRcujNKG1DGi8uIfhdhszkgDpAsMoE55hwqRUzeXCmETDBpTg==}
dependencies:
- shell-quote: 1.7.4
+ shell-quote: 1.8.1
ws: 7.5.9
transitivePeerDependencies:
- bufferutil
@@ -3934,17 +3944,17 @@ packages:
resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
dev: true
- /regexp-tree@0.1.24:
- resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==}
+ /regexp-tree@0.1.27:
+ resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
hasBin: true
dev: true
- /regexp.prototype.flags@1.4.3:
- resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==}
+ /regexp.prototype.flags@1.5.0:
+ resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
+ define-properties: 1.2.0
functions-have-names: 1.2.3
dev: true
@@ -3974,20 +3984,11 @@ packages:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
- /resolve@1.21.0:
- resolution: {integrity: sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==}
- hasBin: true
- dependencies:
- is-core-module: 2.8.0
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
- dev: true
-
- /resolve@1.22.1:
- resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
+ /resolve@1.22.2:
+ resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
hasBin: true
dependencies:
- is-core-module: 2.11.0
+ is-core-module: 2.12.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
dev: true
@@ -3996,7 +3997,7 @@ packages:
resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==}
hasBin: true
dependencies:
- is-core-module: 2.11.0
+ is-core-module: 2.12.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
dev: true
@@ -4017,32 +4018,24 @@ packages:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
dependencies:
- glob: 7.2.0
+ glob: 7.2.3
- /rollup-plugin-dts@5.3.0(rollup@3.20.2)(typescript@5.0.4):
+ /rollup-plugin-dts@5.3.0(rollup@3.26.2)(typescript@5.1.6):
resolution: {integrity: sha512-8FXp0ZkyZj1iU5klkIJYLjIq/YZSwBoERu33QBDxm/1yw5UU4txrEtcmMkrq+ZiKu3Q4qvPCNqc3ovX6rjqzbQ==}
engines: {node: '>=v14'}
peerDependencies:
rollup: ^3.0.0
typescript: ^4.1 || ^5.0
dependencies:
- magic-string: 0.30.0
- rollup: 3.20.2
- typescript: 5.0.4
- optionalDependencies:
- '@babel/code-frame': 7.21.4
- dev: true
-
- /rollup@2.79.1:
- resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
- engines: {node: '>=10.0.0'}
- hasBin: true
+ magic-string: 0.30.1
+ rollup: 3.26.2
+ typescript: 5.1.6
optionalDependencies:
- fsevents: 2.3.2
+ '@babel/code-frame': 7.22.5
dev: true
- /rollup@3.20.2:
- resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==}
+ /rollup@3.26.2:
+ resolution: {integrity: sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
optionalDependencies:
@@ -4057,21 +4050,21 @@ packages:
/rxjs@7.8.1:
resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
dependencies:
- tslib: 2.4.1
+ tslib: 2.6.0
dev: true
/safe-regex-test@1.0.0:
resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
dependencies:
call-bind: 1.0.2
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.1
is-regex: 1.1.4
dev: true
/safe-regex@2.1.1:
resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
dependencies:
- regexp-tree: 0.1.24
+ regexp-tree: 0.1.27
dev: true
/scheduler@0.20.2:
@@ -4085,18 +4078,18 @@ packages:
resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==}
dev: true
- /semver@5.7.1:
- resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
+ /semver@5.7.2:
+ resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
hasBin: true
dev: true
- /semver@6.3.0:
- resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
+ /semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
dev: true
- /semver@7.5.1:
- resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==}
+ /semver@7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
@@ -4112,10 +4105,6 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
- /shell-quote@1.7.4:
- resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==}
- dev: true
-
/shell-quote@1.8.1:
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
dev: true
@@ -4124,8 +4113,8 @@ packages:
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
dependencies:
call-bind: 1.0.2
- get-intrinsic: 1.1.3
- object-inspect: 1.12.2
+ get-intrinsic: 1.2.1
+ object-inspect: 1.12.3
dev: true
/siginfo@2.0.0:
@@ -4136,8 +4125,8 @@ packages:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true
- /simple-git@3.15.1:
- resolution: {integrity: sha512-73MVa5984t/JP4JcQt0oZlKGr42ROYWC3BcUZfuHtT3IHKPspIvL0cZBnvPXF7LL3S/qVeVHVdYYmJ3LOTw4Rg==}
+ /simple-git@3.19.1:
+ resolution: {integrity: sha512-Ck+rcjVaE1HotraRAS8u/+xgTvToTuoMkT9/l9lvuP5jftwnYUp6DwuJzsKErHgfyRk8IB8pqGHWEbM3tLgV1w==}
dependencies:
'@kwsites/file-exists': 1.1.1
'@kwsites/promise-deferred': 1.1.1
@@ -4177,11 +4166,11 @@ packages:
resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==}
dev: true
- /spdx-correct@3.1.1:
- resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
+ /spdx-correct@3.2.0:
+ resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
dependencies:
spdx-expression-parse: 3.0.1
- spdx-license-ids: 3.0.12
+ spdx-license-ids: 3.0.13
dev: true
/spdx-exceptions@2.3.0:
@@ -4192,11 +4181,11 @@ packages:
resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
dependencies:
spdx-exceptions: 2.3.0
- spdx-license-ids: 3.0.12
+ spdx-license-ids: 3.0.13
dev: true
- /spdx-license-ids@3.0.12:
- resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==}
+ /spdx-license-ids@3.0.13:
+ resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==}
dev: true
/stack-utils@2.0.6:
@@ -4214,15 +4203,8 @@ packages:
resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==}
dev: true
- /stop-iteration-iterator@1.0.0:
- resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
- engines: {node: '>= 0.4'}
- dependencies:
- internal-slot: 1.0.4
- dev: true
-
- /string-argv@0.3.1:
- resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==}
+ /string-argv@0.3.2:
+ resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
engines: {node: '>=0.6.19'}
dev: true
@@ -4239,29 +4221,38 @@ packages:
resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.0
- get-intrinsic: 1.1.3
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
+ get-intrinsic: 1.2.1
has-symbols: 1.0.3
- internal-slot: 1.0.4
- regexp.prototype.flags: 1.4.3
+ internal-slot: 1.0.5
+ regexp.prototype.flags: 1.5.0
side-channel: 1.0.4
dev: true
+ /string.prototype.trim@1.2.7:
+ resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
+ dev: true
+
/string.prototype.trimend@1.0.6:
resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
dev: true
/string.prototype.trimstart@1.0.6:
resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.21.0
+ define-properties: 1.2.0
+ es-abstract: 1.21.3
dev: true
/strip-ansi@6.0.1:
@@ -4317,13 +4308,13 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /tar@6.1.13:
- resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==}
+ /tar@6.1.15:
+ resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==}
engines: {node: '>=10'}
dependencies:
chownr: 2.0.0
fs-minipass: 2.1.0
- minipass: 4.2.5
+ minipass: 5.0.0
minizlib: 2.1.2
mkdirp: 1.0.4
yallist: 4.0.0
@@ -4366,7 +4357,15 @@ packages:
hasBin: true
dev: true
- /ts-node@10.9.1(@types/node@20.4.1)(typescript@5.0.4):
+ /ts-api-utils@1.0.1(typescript@5.1.6):
+ resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==}
+ engines: {node: '>=16.13.0'}
+ peerDependencies:
+ typescript: '>=4.2.0'
+ dependencies:
+ typescript: 5.1.6
+
+ /ts-node@10.9.1(@types/node@20.4.2)(typescript@5.1.6):
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
peerDependencies:
@@ -4384,43 +4383,45 @@ packages:
'@tsconfig/node10': 1.0.9
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
- '@tsconfig/node16': 1.0.3
- '@types/node': 20.4.1
- acorn: 8.8.1
+ '@tsconfig/node16': 1.0.4
+ '@types/node': 20.4.2
+ acorn: 8.10.0
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
diff: 4.0.2
make-error: 1.3.6
- typescript: 5.0.4
+ typescript: 5.1.6
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
dev: true
- /tsconfig-paths@3.14.1:
- resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==}
+ /tsconfig-paths@3.14.2:
+ resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
dependencies:
'@types/json5': 0.0.29
json5: 1.0.2
- minimist: 1.2.7
+ minimist: 1.2.8
strip-bom: 3.0.0
dev: true
/tslib@1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
+ dev: true
- /tslib@2.4.1:
- resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
+ /tslib@2.6.0:
+ resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==}
dev: true
- /tsutils@3.21.0(typescript@5.0.4):
+ /tsutils@3.21.0(typescript@5.1.6):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
- typescript: 5.0.4
+ typescript: 5.1.6
+ dev: true
/type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
@@ -4462,11 +4463,22 @@ packages:
engines: {node: '>=12.20'}
dev: true
- /type-fest@3.2.0:
- resolution: {integrity: sha512-Il3wdLRzWvbAEtocgxGQA9YOoRVeVUGOMBtel5LdEpNeEAol6GJTLw8GbX6Z8EIMfvfhoOXs2bwOijtAZdK5og==}
+ /type-fest@3.13.0:
+ resolution: {integrity: sha512-Gur3yQGM9qiLNs0KPP7LPgeRbio2QTt4xXouobMCarR0/wyW3F+F/+OWwshg3NG0Adon7uQfSZBpB46NfhoF1A==}
engines: {node: '>=14.16'}
dev: true
+ /typed-array-byte-offset@1.0.0:
+ resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ has-proto: 1.0.1
+ is-typed-array: 1.1.10
+ dev: true
+
/typed-array-length@1.0.4:
resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
dependencies:
@@ -4475,19 +4487,11 @@ packages:
is-typed-array: 1.1.10
dev: true
- /typescript@5.0.4:
- resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==}
- engines: {node: '>=12.20'}
+ /typescript@5.1.6:
+ resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==}
+ engines: {node: '>=14.17'}
hasBin: true
- /ufo@1.1.0:
- resolution: {integrity: sha512-LQc2s/ZDMaCN3QLpa+uzHUOQ7SdV0qgv3VBXOolQGXTaaZpIur6PwUclF5nN2hNkiTRcUugXd1zFOW3FLJ135Q==}
- dev: true
-
- /ufo@1.1.1:
- resolution: {integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==}
- dev: true
-
/ufo@1.1.2:
resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==}
dev: true
@@ -4505,30 +4509,30 @@ packages:
resolution: {integrity: sha512-J4efk69Aye43tWcBPCsLK7TIRppGrEN4pAlDzRKo3HSE6MgTSTBxSEuE3ccx7ixc62JvGQ/CoFXYqqF2AHozow==}
hasBin: true
dependencies:
- '@rollup/plugin-alias': 5.0.0(rollup@3.20.2)
- '@rollup/plugin-commonjs': 24.1.0(rollup@3.20.2)
- '@rollup/plugin-json': 6.0.0(rollup@3.20.2)
- '@rollup/plugin-node-resolve': 15.0.2(rollup@3.20.2)
- '@rollup/plugin-replace': 5.0.2(rollup@3.20.2)
- '@rollup/pluginutils': 5.0.2(rollup@3.20.2)
- chalk: 5.2.0
- consola: 3.0.2
+ '@rollup/plugin-alias': 5.0.0(rollup@3.26.2)
+ '@rollup/plugin-commonjs': 24.1.0(rollup@3.26.2)
+ '@rollup/plugin-json': 6.0.0(rollup@3.26.2)
+ '@rollup/plugin-node-resolve': 15.1.0(rollup@3.26.2)
+ '@rollup/plugin-replace': 5.0.2(rollup@3.26.2)
+ '@rollup/pluginutils': 5.0.2(rollup@3.26.2)
+ chalk: 5.3.0
+ consola: 3.2.3
defu: 6.1.2
- esbuild: 0.17.16
- globby: 13.1.4
+ esbuild: 0.17.19
+ globby: 13.2.2
hookable: 5.5.3
jiti: 1.19.1
- magic-string: 0.30.0
- mkdist: 1.2.0(typescript@5.0.4)
- mlly: 1.2.0
+ magic-string: 0.30.1
+ mkdist: 1.2.0(typescript@5.1.6)
+ mlly: 1.4.0
mri: 1.2.0
- pathe: 1.1.0
- pkg-types: 1.0.2
+ pathe: 1.1.1
+ pkg-types: 1.0.3
pretty-bytes: 6.1.0
- rollup: 3.20.2
- rollup-plugin-dts: 5.3.0(rollup@3.20.2)(typescript@5.0.4)
+ rollup: 3.26.2
+ rollup-plugin-dts: 5.3.0(rollup@3.26.2)(typescript@5.1.6)
scule: 1.0.0
- typescript: 5.0.4
+ typescript: 5.1.6
untyped: 1.3.2
transitivePeerDependencies:
- sass
@@ -4538,7 +4542,7 @@ packages:
/unist-util-stringify-position@2.0.3:
resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
dependencies:
- '@types/unist': 2.0.6
+ '@types/unist': 2.0.7
dev: true
/universalify@2.0.0:
@@ -4550,8 +4554,8 @@ packages:
resolution: {integrity: sha512-z219Z65rOGD6jXIvIhpZFfwWdqQckB8sdZec2NO+TkcH1Bph7gL0hwLzRJs1KsOo4Jz4mF9guBXhsEnyEBGVfw==}
hasBin: true
dependencies:
- '@babel/core': 7.21.4
- '@babel/standalone': 7.21.4
+ '@babel/core': 7.22.9
+ '@babel/standalone': 7.22.9
'@babel/types': 7.22.5
defu: 6.1.2
jiti: 1.19.1
@@ -4561,13 +4565,13 @@ packages:
- supports-color
dev: true
- /update-browserslist-db@1.0.10(browserslist@4.21.4):
- resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
+ /update-browserslist-db@1.0.11(browserslist@4.21.9):
+ resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
- browserslist: 4.21.4
+ browserslist: 4.21.9
escalade: 3.1.1
picocolors: 1.0.0
dev: true
@@ -4575,7 +4579,7 @@ packages:
/uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
- punycode: 2.1.1
+ punycode: 2.3.0
/v8-compile-cache-lib@3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
@@ -4584,11 +4588,11 @@ packages:
/validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
dependencies:
- spdx-correct: 3.1.1
+ spdx-correct: 3.2.0
spdx-expression-parse: 3.0.1
dev: true
- /vite-node@0.33.0(@types/node@20.4.1):
+ /vite-node@0.33.0(@types/node@20.4.2):
resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==}
engines: {node: '>=v14.18.0'}
hasBin: true
@@ -4598,10 +4602,11 @@ packages:
mlly: 1.4.0
pathe: 1.1.1
picocolors: 1.0.0
- vite: 3.2.3(@types/node@20.4.1)
+ vite: 4.4.4(@types/node@20.4.2)
transitivePeerDependencies:
- '@types/node'
- less
+ - lightningcss
- sass
- stylus
- sugarss
@@ -4609,13 +4614,14 @@ packages:
- terser
dev: true
- /vite@3.2.3(@types/node@20.4.1):
- resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==}
+ /vite@4.4.4(@types/node@20.4.2):
+ resolution: {integrity: sha512-4mvsTxjkveWrKDJI70QmelfVqTm+ihFAb6+xf4sjEU2TmUCTlVX87tmg/QooPEMQb/lM9qGHT99ebqPziEd3wg==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
'@types/node': '>= 14'
less: '*'
+ lightningcss: ^1.21.0
sass: '*'
stylus: '*'
sugarss: '*'
@@ -4625,6 +4631,8 @@ packages:
optional: true
less:
optional: true
+ lightningcss:
+ optional: true
sass:
optional: true
stylus:
@@ -4634,11 +4642,10 @@ packages:
terser:
optional: true
dependencies:
- '@types/node': 20.4.1
- esbuild: 0.15.18
- postcss: 8.4.18
- resolve: 1.22.1
- rollup: 2.79.1
+ '@types/node': 20.4.2
+ esbuild: 0.18.12
+ postcss: 8.4.26
+ rollup: 3.26.2
optionalDependencies:
fsevents: 2.3.2
dev: true
@@ -4676,7 +4683,7 @@ packages:
dependencies:
'@types/chai': 4.3.5
'@types/chai-subset': 1.3.3
- '@types/node': 20.4.1
+ '@types/node': 20.4.2
'@vitest/expect': 0.33.0
'@vitest/runner': 0.33.0
'@vitest/snapshot': 0.33.0
@@ -4695,11 +4702,12 @@ packages:
strip-literal: 1.0.1
tinybench: 2.5.0
tinypool: 0.6.0
- vite: 3.2.3(@types/node@20.4.1)
- vite-node: 0.33.0(@types/node@20.4.1)
+ vite: 4.4.4(@types/node@20.4.2)
+ vite-node: 0.33.0(@types/node@20.4.2)
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
+ - lightningcss
- sass
- stylus
- sugarss
@@ -4717,17 +4725,8 @@ packages:
is-symbol: 1.0.4
dev: true
- /which-collection@1.0.1:
- resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
- dependencies:
- is-map: 2.0.2
- is-set: 2.0.2
- is-weakmap: 2.0.1
- is-weakset: 2.0.2
- dev: true
-
- /which-typed-array@1.1.9:
- resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==}
+ /which-typed-array@1.1.10:
+ resolution: {integrity: sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==}
engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.5
diff --git a/src/index.ts b/src/index.ts
index 544310a..17411db 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -99,7 +99,6 @@ const allRules = {
[requireHookName]: 'warn',
[preferTodoName]: 'warn',
[preferSpyOnName]: 'warn',
- [preferTodoName]: 'warn',
[preferComparisonMatcherName]: 'warn',
[preferToContainName]: 'warn'
}
@@ -163,7 +162,6 @@ export default {
[requireHookName]: requireHook,
[preferTodoName]: preferTodo,
[preferSpyOnName]: preferSpyOn,
- [preferTodoName]: preferTodo,
[preferComparisonMatcherName]: preferComparisonMatcher,
[preferToContainName]: preferToContain
},
diff --git a/src/rules/consistent-test-filename.test.ts b/src/rules/consistent-test-filename.test.ts
index 098748a..815b4fd 100644
--- a/src/rules/consistent-test-filename.test.ts
+++ b/src/rules/consistent-test-filename.test.ts
@@ -1,12 +1,8 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './consistent-test-filename'
describe(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
it(`${RULE_NAME}`, () => {
ruleTester.run(RULE_NAME, rule, {
valid: [
diff --git a/src/rules/consistent-test-it.test.ts b/src/rules/consistent-test-it.test.ts
index ae12a01..128279f 100644
--- a/src/rules/consistent-test-it.test.ts
+++ b/src/rules/consistent-test-it.test.ts
@@ -1,301 +1,301 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
import { TestCaseName } from '../utils/types'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './consistent-test-it'
describe(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- it(`${RULE_NAME} - fn=it`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- {
- code: `it("shows error", () => {
+ it(`${RULE_NAME} - fn=it`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ {
+ code: `it("shows error", () => {
expect(true).toBe(false);
});`,
- options: [{ fn: TestCaseName.it }]
- },
- {
- code: `it("foo", function () {
+ options: [{ fn: TestCaseName.it }]
+ },
+ {
+ code: `it("foo", function () {
expect(true).toBe(false);
})`,
- options: [{ fn: TestCaseName.it }]
- },
- {
- code: ` it('foo', () => {
+ options: [{ fn: TestCaseName.it }]
+ },
+ {
+ code: ` it('foo', () => {
expect(true).toBe(false);
});
function myTest() { if ('bar') {} }`,
- options: [{ fn: TestCaseName.it }]
- }
- ],
- invalid: [
- {
- code: 'test("shows error", () => {});',
- options: [{ fn: TestCaseName.it }],
- output: 'it("shows error", () => {});',
- errors: [{ messageId: 'consistentMethod' }]
- },
- {
- code: 'test.skip("shows error");',
- output: 'it.skip("shows error");',
- options: [{ fn: TestCaseName.it }],
- errors: [{
- messageId: 'consistentMethod',
- data: {
- testFnKeyWork: TestCaseName.it,
- oppositeTestKeyword: TestCaseName.test
- }
- }]
- },
- {
- code: 'test.only(\'shows error\');',
- output: 'it.only(\'shows error\');',
- options: [{ fn: TestCaseName.it }],
- errors: [{
- messageId: 'consistentMethod',
- data: {
- testFnKeyWork: TestCaseName.it,
- oppositeTestKeyword: TestCaseName.test
- }
- }]
- },
- {
- code: 'describe(\'foo\', () => { it(\'bar\', () => {}); });',
- output: 'describe(\'foo\', () => { test(\'bar\', () => {}); });',
- options: [{ fn: TestCaseName.it, withinDescribe: TestCaseName.test }],
- errors: [
- {
- messageId: 'consistentMethodWithinDescribe',
- data: {
- testKeywordWithinDescribe: TestCaseName.test,
- oppositeTestKeyword: TestCaseName.it
- }
- }
- ]
- }
- ]
- })
- })
+ options: [{ fn: TestCaseName.it }]
+ }
+ ],
+ invalid: [
+ {
+ code: 'test("shows error", () => {});',
+ options: [{ fn: TestCaseName.it }],
+ output: 'it("shows error", () => {});',
+ errors: [{ messageId: 'consistentMethod' }]
+ },
+ {
+ code: 'test.skip("shows error");',
+ output: 'it.skip("shows error");',
+ options: [{ fn: TestCaseName.it }],
+ errors: [
+ {
+ messageId: 'consistentMethod',
+ data: {
+ testFnKeyWork: TestCaseName.it,
+ oppositeTestKeyword: TestCaseName.test
+ }
+ }
+ ]
+ },
+ {
+ code: 'test.only(\'shows error\');',
+ output: 'it.only(\'shows error\');',
+ options: [{ fn: TestCaseName.it }],
+ errors: [
+ {
+ messageId: 'consistentMethod',
+ data: {
+ testFnKeyWork: TestCaseName.it,
+ oppositeTestKeyword: TestCaseName.test
+ }
+ }
+ ]
+ },
+ {
+ code: 'describe(\'foo\', () => { it(\'bar\', () => {}); });',
+ output: 'describe(\'foo\', () => { test(\'bar\', () => {}); });',
+ options: [{ fn: TestCaseName.it, withinDescribe: TestCaseName.test }],
+ errors: [
+ {
+ messageId: 'consistentMethodWithinDescribe',
+ data: {
+ testKeywordWithinDescribe: TestCaseName.test,
+ oppositeTestKeyword: TestCaseName.it
+ }
+ }
+ ]
+ }
+ ]
+ })
+ })
- it(`${RULE_NAME} - fn=test`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- {
- code: `test("shows error", () => {
+ it(`${RULE_NAME} - fn=test`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ {
+ code: `test("shows error", () => {
expect(true).toBe(false);
});`,
- options: [{ fn: TestCaseName.test }]
- },
- {
- code: 'test.skip("foo")',
- options: [{ fn: TestCaseName.test }]
- },
- {
- code: 'test.concurrent("foo")',
- options: [{ fn: TestCaseName.test }]
- },
- {
- code: 'xtest("foo")',
- options: [{ fn: TestCaseName.test }]
- },
- {
- code: 'test.each([])("foo")',
- options: [{ fn: TestCaseName.test }]
- },
- {
- code: 'test.each``("foo")',
- options: [{ fn: TestCaseName.test }]
- },
- {
- code: 'describe("suite", () => { test("foo") })',
- options: [{ fn: TestCaseName.test }]
- }
- ],
- invalid: [
- {
- code: 'it("shows error", () => {});',
- options: [{ fn: TestCaseName.test }],
- output: 'test("shows error", () => {});',
- errors: [{ messageId: 'consistentMethod' }]
- },
- {
- code: 'describe("suite", () => { it("foo") })',
- output: 'describe("suite", () => { test("foo") })',
- options: [{ fn: TestCaseName.test }],
- errors: [
- {
- messageId: 'consistentMethodWithinDescribe',
- data: {
- testKeywordWithinDescribe: TestCaseName.test,
- oppositeTestKeyword: TestCaseName.it
- }
- }
- ]
- }
- ]
- })
- })
+ options: [{ fn: TestCaseName.test }]
+ },
+ {
+ code: 'test.skip("foo")',
+ options: [{ fn: TestCaseName.test }]
+ },
+ {
+ code: 'test.concurrent("foo")',
+ options: [{ fn: TestCaseName.test }]
+ },
+ {
+ code: 'xtest("foo")',
+ options: [{ fn: TestCaseName.test }]
+ },
+ {
+ code: 'test.each([])("foo")',
+ options: [{ fn: TestCaseName.test }]
+ },
+ {
+ code: 'test.each``("foo")',
+ options: [{ fn: TestCaseName.test }]
+ },
+ {
+ code: 'describe("suite", () => { test("foo") })',
+ options: [{ fn: TestCaseName.test }]
+ }
+ ],
+ invalid: [
+ {
+ code: 'it("shows error", () => {});',
+ options: [{ fn: TestCaseName.test }],
+ output: 'test("shows error", () => {});',
+ errors: [{ messageId: 'consistentMethod' }]
+ },
+ {
+ code: 'describe("suite", () => { it("foo") })',
+ output: 'describe("suite", () => { test("foo") })',
+ options: [{ fn: TestCaseName.test }],
+ errors: [
+ {
+ messageId: 'consistentMethodWithinDescribe',
+ data: {
+ testKeywordWithinDescribe: TestCaseName.test,
+ oppositeTestKeyword: TestCaseName.it
+ }
+ }
+ ]
+ }
+ ]
+ })
+ })
- it(`${RULE_NAME} - with fn=it and withinDescribe=it`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- {
- code: 'describe("suite", () => { it("foo") })',
- options: [{ fn: TestCaseName.it, withinDescribe: TestCaseName.it }]
- },
- {
- code: 'it("foo")',
- options: [{ fn: TestCaseName.it, withinDescribe: TestCaseName.it }]
- }
- ],
- invalid: [
- {
- code: 'describe("suite", () => { test("foo") })',
- output: 'describe("suite", () => { it("foo") })',
- options: [{ fn: TestCaseName.it, withinDescribe: TestCaseName.it }],
- errors: [
- {
- messageId: 'consistentMethodWithinDescribe',
- data: {
- testKeywordWithinDescribe: TestCaseName.it,
- oppositeTestKeyword: TestCaseName.test
- }
- }
- ]
- },
- {
- code: 'test("foo")',
- output: 'it("foo")',
- options: [{ fn: TestCaseName.it, withinDescribe: TestCaseName.it }],
- errors: [
- {
- messageId: 'consistentMethod',
- data: {
- testFnKeyWork: TestCaseName.it,
- oppositeTestKeyword: TestCaseName.test
- }
- }
- ]
- }
- ]
- })
- })
+ it(`${RULE_NAME} - with fn=it and withinDescribe=it`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ {
+ code: 'describe("suite", () => { it("foo") })',
+ options: [{ fn: TestCaseName.it, withinDescribe: TestCaseName.it }]
+ },
+ {
+ code: 'it("foo")',
+ options: [{ fn: TestCaseName.it, withinDescribe: TestCaseName.it }]
+ }
+ ],
+ invalid: [
+ {
+ code: 'describe("suite", () => { test("foo") })',
+ output: 'describe("suite", () => { it("foo") })',
+ options: [{ fn: TestCaseName.it, withinDescribe: TestCaseName.it }],
+ errors: [
+ {
+ messageId: 'consistentMethodWithinDescribe',
+ data: {
+ testKeywordWithinDescribe: TestCaseName.it,
+ oppositeTestKeyword: TestCaseName.test
+ }
+ }
+ ]
+ },
+ {
+ code: 'test("foo")',
+ output: 'it("foo")',
+ options: [{ fn: TestCaseName.it, withinDescribe: TestCaseName.it }],
+ errors: [
+ {
+ messageId: 'consistentMethod',
+ data: {
+ testFnKeyWork: TestCaseName.it,
+ oppositeTestKeyword: TestCaseName.test
+ }
+ }
+ ]
+ }
+ ]
+ })
+ })
- it(`${RULE_NAME} defaults without config object`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- {
- code: 'test("shows error", () => {});'
- }
- ],
- invalid: [
- {
- code: 'describe("suite", () => { test("foo") })',
- output: 'describe("suite", () => { it("foo") })',
- errors: [
- {
- messageId: 'consistentMethodWithinDescribe',
- data: {
- testKeywordWithinDescribe: TestCaseName.it,
- oppositeTestKeyword: TestCaseName.test
- }
- }
- ]
- }
- ]
- })
- })
+ it(`${RULE_NAME} defaults without config object`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ {
+ code: 'test("shows error", () => {});'
+ }
+ ],
+ invalid: [
+ {
+ code: 'describe("suite", () => { test("foo") })',
+ output: 'describe("suite", () => { it("foo") })',
+ errors: [
+ {
+ messageId: 'consistentMethodWithinDescribe',
+ data: {
+ testKeywordWithinDescribe: TestCaseName.it,
+ oppositeTestKeyword: TestCaseName.test
+ }
+ }
+ ]
+ }
+ ]
+ })
+ })
- it(`${RULE_NAME} - with withinDescribe=it`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- {
- code: 'test("foo")',
- options: [{ withinDescribe: TestCaseName.it }]
- },
- {
- code: 'describe("suite", () => { it("foo") })',
- options: [{ withinDescribe: TestCaseName.it }]
- }
- ],
- invalid: [
- {
- code: 'it("foo")',
- output: 'test("foo")',
- options: [{ withinDescribe: TestCaseName.it }],
- errors: [
- {
- messageId: 'consistentMethod',
- data: {
- testFnKeyWork: TestCaseName.test,
- oppositeTestKeyword: TestCaseName.it
- }
- }
- ]
- },
- {
- code: 'describe("suite", () => { test("foo") })',
- output: 'describe("suite", () => { it("foo") })',
- options: [{ withinDescribe: TestCaseName.it }],
- errors: [
- {
- messageId: 'consistentMethodWithinDescribe',
- data: {
- testKeywordWithinDescribe: TestCaseName.it,
- oppositeTestKeyword: TestCaseName.test
- }
- }
- ]
- }
- ]
- })
- })
+ it(`${RULE_NAME} - with withinDescribe=it`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ {
+ code: 'test("foo")',
+ options: [{ withinDescribe: TestCaseName.it }]
+ },
+ {
+ code: 'describe("suite", () => { it("foo") })',
+ options: [{ withinDescribe: TestCaseName.it }]
+ }
+ ],
+ invalid: [
+ {
+ code: 'it("foo")',
+ output: 'test("foo")',
+ options: [{ withinDescribe: TestCaseName.it }],
+ errors: [
+ {
+ messageId: 'consistentMethod',
+ data: {
+ testFnKeyWork: TestCaseName.test,
+ oppositeTestKeyword: TestCaseName.it
+ }
+ }
+ ]
+ },
+ {
+ code: 'describe("suite", () => { test("foo") })',
+ output: 'describe("suite", () => { it("foo") })',
+ options: [{ withinDescribe: TestCaseName.it }],
+ errors: [
+ {
+ messageId: 'consistentMethodWithinDescribe',
+ data: {
+ testKeywordWithinDescribe: TestCaseName.it,
+ oppositeTestKeyword: TestCaseName.test
+ }
+ }
+ ]
+ }
+ ]
+ })
+ })
- it(`${RULE_NAME} - with withinDescribe=test`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- {
- code: 'test("foo")',
- options: [{ withinDescribe: TestCaseName.test }]
- },
- {
- code: 'describe("suite", () => { test("foo") })',
- options: [{ withinDescribe: TestCaseName.test }]
- }
- ],
- invalid: [
- {
- code: 'it("foo")',
- output: 'test("foo")',
- options: [{ withinDescribe: TestCaseName.test }],
- errors: [
- {
- messageId: 'consistentMethod',
- data: {
- testFnKeyWork: TestCaseName.test,
- oppositeTestKeyword: TestCaseName.it
- }
- }
- ]
- },
- {
- code: 'describe("suite", () => { it("foo") })',
- output: 'describe("suite", () => { test("foo") })',
- options: [{ withinDescribe: TestCaseName.test }],
- errors: [
- {
- messageId: 'consistentMethodWithinDescribe',
- data: {
- testKeywordWithinDescribe: TestCaseName.test,
- oppositeTestKeyword: TestCaseName.it
- }
- }
- ]
- }
- ]
- })
- })
+ it(`${RULE_NAME} - with withinDescribe=test`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ {
+ code: 'test("foo")',
+ options: [{ withinDescribe: TestCaseName.test }]
+ },
+ {
+ code: 'describe("suite", () => { test("foo") })',
+ options: [{ withinDescribe: TestCaseName.test }]
+ }
+ ],
+ invalid: [
+ {
+ code: 'it("foo")',
+ output: 'test("foo")',
+ options: [{ withinDescribe: TestCaseName.test }],
+ errors: [
+ {
+ messageId: 'consistentMethod',
+ data: {
+ testFnKeyWork: TestCaseName.test,
+ oppositeTestKeyword: TestCaseName.it
+ }
+ }
+ ]
+ },
+ {
+ code: 'describe("suite", () => { it("foo") })',
+ output: 'describe("suite", () => { test("foo") })',
+ options: [{ withinDescribe: TestCaseName.test }],
+ errors: [
+ {
+ messageId: 'consistentMethodWithinDescribe',
+ data: {
+ testKeywordWithinDescribe: TestCaseName.test,
+ oppositeTestKeyword: TestCaseName.it
+ }
+ }
+ ]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/expect-expect.test.ts b/src/rules/expect-expect.test.ts
index 431aaac..4f59c55 100644
--- a/src/rules/expect-expect.test.ts
+++ b/src/rules/expect-expect.test.ts
@@ -1,77 +1,73 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './expect-expect'
describe(RULE_NAME, () => {
- it(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- `test("shows error", () => {
+ it(RULE_NAME, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ `test("shows error", () => {
expect(true).toBe(false);
});`,
- `it("foo", function () {
+ `it("foo", function () {
expect(true).toBe(false);
})`,
- `it('foo', () => {
+ `it('foo', () => {
expect(true).toBe(false);
});
function myTest() { if ('bar') {} }`,
- `function myTest(param) {}
+ `function myTest(param) {}
describe('my test', () => {
it('should do something', () => {
myTest("num");
expect(1).toEqual(1);
});
});`,
- `const myFunc = () => {};
+ `const myFunc = () => {};
it("works", () => expect(myFunc()).toBe(undefined));`,
- `describe('title', () => {
+ `describe('title', () => {
it('test is not ok', () => {
[1, 2, 3, 4, 5, 6].forEach((n) => {
expect(n).toBe(1);
});
});
});`,
- `desctibe('title', () => {
+ `desctibe('title', () => {
test('some test', () => {
expect(obj1).not.toEqual(obj2);
})
})`,
- 'it("should pass", () => expect(true).toBeDefined())',
- `const myFunc = () => {};
+ 'it("should pass", () => expect(true).toBeDefined())',
+ `const myFunc = () => {};
it("works", () => expect(myFunc()).toBe(undefined));`,
- `const myFunc = () => {};
+ `const myFunc = () => {};
it("works", () => expect(myFunc()).toBe(undefined));`
- ],
- invalid: [
- {
- code: 'test("shows error", () => {});',
- errors: [{ messageId: 'expectedExpect' }]
- },
- {
- code: `it("foo", function () {
+ ],
+ invalid: [
+ {
+ code: 'test("shows error", () => {});',
+ errors: [{ messageId: 'expectedExpect' }]
+ },
+ {
+ code: `it("foo", function () {
if (1 === 2) {}
})`,
- errors: [{ messageId: 'expectedExpect' }]
- },
- {
- code: `import { it } from 'vitest';
+ errors: [{ messageId: 'expectedExpect' }]
+ },
+ {
+ code: `import { it } from 'vitest';
describe('Button with increment', () => {
it('should show name props', () => {
console.log('test with missing expect');
});
});`,
- errors: [{ messageId: 'expectedExpect' }]
- },
- {
- code: 'it("should also fail",() => expectSaga(mySaga).returns());',
- errors: [{ messageId: 'expectedExpect' }]
- }
- ]
- })
- })
+ errors: [{ messageId: 'expectedExpect' }]
+ },
+ {
+ code: 'it("should also fail",() => expectSaga(mySaga).returns());',
+ errors: [{ messageId: 'expectedExpect' }]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/max-expect.test.ts b/src/rules/max-expect.test.ts
index 927a1fe..4c7be1e 100644
--- a/src/rules/max-expect.test.ts
+++ b/src/rules/max-expect.test.ts
@@ -1,33 +1,29 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './max-expect'
describe(RULE_NAME, () => {
- it(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'test(\'should pass\')',
- 'test(\'should pass\', () => {})',
- 'test.skip(\'should pass\', () => {})',
- `test('should pass', () => {
+ it(RULE_NAME, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'test(\'should pass\')',
+ 'test(\'should pass\', () => {})',
+ 'test.skip(\'should pass\', () => {})',
+ `test('should pass', () => {
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
});`,
- `test('should pass', () => {
+ `test('should pass', () => {
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
});`,
- ` test('should pass', async () => {
+ ` test('should pass', async () => {
expect.hasAssertions();
expect(true).toBeDefined();
@@ -36,10 +32,10 @@ describe(RULE_NAME, () => {
expect(true).toBeDefined();
expect(true).toEqual(expect.any(Boolean));
});`
- ],
- invalid: [
- {
- code: `test('should not pass', function () {
+ ],
+ invalid: [
+ {
+ code: `test('should not pass', function () {
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
@@ -48,16 +44,16 @@ describe(RULE_NAME, () => {
expect(true).toBeDefined();
});
`,
- errors: [
- {
- messageId: 'maxExpect',
- line: 7,
- column: 8
- }
- ]
- },
- {
- code: `test('should not pass', () => {
+ errors: [
+ {
+ messageId: 'maxExpect',
+ line: 7,
+ column: 8
+ }
+ ]
+ },
+ {
+ code: `test('should not pass', () => {
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
@@ -73,38 +69,38 @@ describe(RULE_NAME, () => {
expect(true).toBeDefined();
expect(true).toBeDefined();
});`,
- errors: [
- {
- messageId: 'maxExpect',
- line: 7,
- column: 7
- },
- {
- messageId: 'maxExpect',
- line: 15,
- column: 7
- }
- ]
- },
- {
- code: `test('should not pass', () => {
+ errors: [
+ {
+ messageId: 'maxExpect',
+ line: 7,
+ column: 7
+ },
+ {
+ messageId: 'maxExpect',
+ line: 15,
+ column: 7
+ }
+ ]
+ },
+ {
+ code: `test('should not pass', () => {
expect(true).toBeDefined();
expect(true).toBeDefined();
});`,
- options: [
- {
- max: 1
- }
- ],
- errors: [
- {
- messageId: 'maxExpect',
- line: 3,
- column: 7
- }
- ]
- }
- ]
- })
- })
+ options: [
+ {
+ max: 1
+ }
+ ],
+ errors: [
+ {
+ messageId: 'maxExpect',
+ line: 3,
+ column: 7
+ }
+ ]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/max-expects.test.ts b/src/rules/max-expects.test.ts
index 01f9c5d..65b0053 100644
--- a/src/rules/max-expects.test.ts
+++ b/src/rules/max-expects.test.ts
@@ -1,33 +1,29 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './max-expects'
describe(RULE_NAME, () => {
- it(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'test(\'should pass\')',
- 'test(\'should pass\', () => {})',
- 'test.skip(\'should pass\', () => {})',
- `test('should pass', () => {
+ it(RULE_NAME, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'test(\'should pass\')',
+ 'test(\'should pass\', () => {})',
+ 'test.skip(\'should pass\', () => {})',
+ `test('should pass', () => {
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
});`,
- `test('should pass', () => {
+ `test('should pass', () => {
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
});`,
- ` test('should pass', async () => {
+ ` test('should pass', async () => {
expect.hasAssertions();
expect(true).toBeDefined();
@@ -36,10 +32,10 @@ describe(RULE_NAME, () => {
expect(true).toBeDefined();
expect(true).toEqual(expect.any(Boolean));
});`
- ],
- invalid: [
- {
- code: `test('should not pass', function () {
+ ],
+ invalid: [
+ {
+ code: `test('should not pass', function () {
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
@@ -48,16 +44,16 @@ describe(RULE_NAME, () => {
expect(true).toBeDefined();
});
`,
- errors: [
- {
- messageId: 'maxExpect',
- line: 7,
- column: 8
- }
- ]
- },
- {
- code: `test('should not pass', () => {
+ errors: [
+ {
+ messageId: 'maxExpect',
+ line: 7,
+ column: 8
+ }
+ ]
+ },
+ {
+ code: `test('should not pass', () => {
expect(true).toBeDefined();
expect(true).toBeDefined();
expect(true).toBeDefined();
@@ -73,38 +69,38 @@ describe(RULE_NAME, () => {
expect(true).toBeDefined();
expect(true).toBeDefined();
});`,
- errors: [
- {
- messageId: 'maxExpect',
- line: 7,
- column: 7
- },
- {
- messageId: 'maxExpect',
- line: 15,
- column: 7
- }
- ]
- },
- {
- code: `test('should not pass', () => {
+ errors: [
+ {
+ messageId: 'maxExpect',
+ line: 7,
+ column: 7
+ },
+ {
+ messageId: 'maxExpect',
+ line: 15,
+ column: 7
+ }
+ ]
+ },
+ {
+ code: `test('should not pass', () => {
expect(true).toBeDefined();
expect(true).toBeDefined();
});`,
- options: [
- {
- max: 1
- }
- ],
- errors: [
- {
- messageId: 'maxExpect',
- line: 3,
- column: 7
- }
- ]
- }
- ]
- })
- })
+ options: [
+ {
+ max: 1
+ }
+ ],
+ errors: [
+ {
+ messageId: 'maxExpect',
+ line: 3,
+ column: 7
+ }
+ ]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/max-nested-describe.test.ts b/src/rules/max-nested-describe.test.ts
index ecc104c..d925316 100644
--- a/src/rules/max-nested-describe.test.ts
+++ b/src/rules/max-nested-describe.test.ts
@@ -1,9 +1,9 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './max-nested-describe'
const valids = [
- `describe('another suite', () => {
+ `describe('another suite', () => {
describe('another suite', () => {
it('skipped test', () => {
// Test skipped, as tests are running in Only mode
@@ -16,7 +16,7 @@ const valids = [
})
})
})`,
- `describe('another suite', () => {
+ `describe('another suite', () => {
describe('another suite', () => {
describe('another suite', () => {
describe('another suite', () => {
@@ -28,7 +28,7 @@ const valids = [
]
const invalids = [
- `describe('another suite', () => {
+ `describe('another suite', () => {
describe('another suite', () => {
describe('another suite', () => {
describe('another suite', () => {
@@ -41,7 +41,7 @@ const invalids = [
})
})
})`,
- `describe('another suite', () => {
+ `describe('another suite', () => {
describe('another suite', () => {
describe('another suite', () => {
describe('another suite', () => {
@@ -65,15 +65,12 @@ const invalids = [
]
it('max-nested-describe', () => {
- const ruleTester: RuleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
- ruleTester.run(RULE_NAME, rule, {
- valid: valids,
- invalid: invalids.map((i) => ({
- code: i,
- output: i,
- errors: [{ messageId: 'maxNestedDescribe' }]
- }))
- })
+ ruleTester.run(RULE_NAME, rule, {
+ valid: valids,
+ invalid: invalids.map((i) => ({
+ code: i,
+ output: i,
+ errors: [{ messageId: 'maxNestedDescribe' }]
+ }))
+ })
})
diff --git a/src/rules/no-alias-methods.test.ts b/src/rules/no-alias-methods.test.ts
index 2a607f1..570fbe5 100644
--- a/src/rules/no-alias-methods.test.ts
+++ b/src/rules/no-alias-methods.test.ts
@@ -1,76 +1,72 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-alias-methods'
describe(RULE_NAME, () => {
- it(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'expect(a).toHaveBeenCalled()',
- 'expect(a).toHaveBeenCalledTimes()',
- 'expect(a).toHaveBeenCalledWith()',
- 'expect(a).toHaveBeenLastCalledWith()',
- 'expect(a).toHaveBeenNthCalledWith()',
- 'expect(a).toHaveReturned()',
- 'expect(a).toHaveReturnedTimes()',
- 'expect(a).toHaveReturnedWith()',
- 'expect(a).toHaveLastReturnedWith()',
- 'expect(a).toHaveNthReturnedWith()',
- 'expect(a).toThrow()',
- 'expect(a).rejects;',
- 'expect(a);'
- ],
- invalid: [
- {
- code: 'expect(a).toBeCalled()',
- output: 'expect(a).toHaveBeenCalled()',
- errors: [
- {
- messageId: 'noAliasMethods',
- data: {
- alias: 'toBeCalled',
- canonical: 'toHaveBeenCalled'
- },
- column: 11,
- line: 1
- }
- ]
- },
- {
- code: 'expect(a).toBeCalledTimes()',
- output: 'expect(a).toHaveBeenCalledTimes()',
- errors: [
- {
- messageId: 'noAliasMethods',
- data: {
- alias: 'toBeCalledTimes',
- canonical: 'toHaveBeenCalledTimes'
- },
- column: 11,
- line: 1
- }
- ]
- },
- {
- code: 'expect(a).not["toThrowError"]()',
- output: 'expect(a).not[\'toThrow\']()',
- errors: [
- {
- messageId: 'noAliasMethods',
- data: {
- alias: 'toThrowError',
- canonical: 'toThrow'
- },
- column: 15,
- line: 1
- }
- ]
- }
- ]
- })
- })
+ it(RULE_NAME, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'expect(a).toHaveBeenCalled()',
+ 'expect(a).toHaveBeenCalledTimes()',
+ 'expect(a).toHaveBeenCalledWith()',
+ 'expect(a).toHaveBeenLastCalledWith()',
+ 'expect(a).toHaveBeenNthCalledWith()',
+ 'expect(a).toHaveReturned()',
+ 'expect(a).toHaveReturnedTimes()',
+ 'expect(a).toHaveReturnedWith()',
+ 'expect(a).toHaveLastReturnedWith()',
+ 'expect(a).toHaveNthReturnedWith()',
+ 'expect(a).toThrow()',
+ 'expect(a).rejects;',
+ 'expect(a);'
+ ],
+ invalid: [
+ {
+ code: 'expect(a).toBeCalled()',
+ output: 'expect(a).toHaveBeenCalled()',
+ errors: [
+ {
+ messageId: 'noAliasMethods',
+ data: {
+ alias: 'toBeCalled',
+ canonical: 'toHaveBeenCalled'
+ },
+ column: 11,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'expect(a).toBeCalledTimes()',
+ output: 'expect(a).toHaveBeenCalledTimes()',
+ errors: [
+ {
+ messageId: 'noAliasMethods',
+ data: {
+ alias: 'toBeCalledTimes',
+ canonical: 'toHaveBeenCalledTimes'
+ },
+ column: 11,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'expect(a).not["toThrowError"]()',
+ output: 'expect(a).not[\'toThrow\']()',
+ errors: [
+ {
+ messageId: 'noAliasMethods',
+ data: {
+ alias: 'toThrowError',
+ canonical: 'toThrow'
+ },
+ column: 15,
+ line: 1
+ }
+ ]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/no-commented-out-tests.test.ts b/src/rules/no-commented-out-tests.test.ts
index 8492326..34486f1 100644
--- a/src/rules/no-commented-out-tests.test.ts
+++ b/src/rules/no-commented-out-tests.test.ts
@@ -1,70 +1,66 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-commented-out-tests'
describe(RULE_NAME, () => {
- it(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- '// foo("bar", function () {})',
- 'describe("foo", function () {})',
- 'it("foo", function () {})',
- 'describe.only("foo", function () {})',
- 'it.only("foo", function () {})',
- 'it.concurrent("foo", function () {})',
- 'test("foo", function () {})',
- 'test.only("foo", function () {})',
- 'test.concurrent("foo", function () {})',
- 'var appliedSkip = describe.skip; appliedSkip.apply(describe)',
- 'var calledSkip = it.skip; calledSkip.call(it)',
- '({ f: function () {} }).f()',
- '(a || b).f()',
- 'itHappensToStartWithIt()',
- 'testSomething()',
- '// latest(dates)',
- '// TODO: unify with Git implementation from Shipit (?)',
- '#!/usr/bin/env node'
- ],
- invalid: [
- {
- code: '// describe(\'foo\', function () {})\'',
- errors: [
- {
- messageId: 'noCommentedOutTests'
- }
- ]
- },
- {
- code: '// test.concurrent("foo", function () {})',
- errors: [{ messageId: 'noCommentedOutTests', column: 1, line: 1 }]
- },
- {
- code: '// test["skip"]("foo", function () {})',
- errors: [{ messageId: 'noCommentedOutTests', column: 1, line: 1 }]
- },
- {
- code: '// xdescribe("foo", function () {})',
- errors: [{ messageId: 'noCommentedOutTests', column: 1, line: 1 }]
- },
- {
- code: '// xit("foo", function () {})',
- errors: [{ messageId: 'noCommentedOutTests', column: 1, line: 1 }]
- },
- {
- code: '// fit("foo", function () {})',
- errors: [{ messageId: 'noCommentedOutTests', column: 1, line: 1 }]
- },
- {
- code: ` // test(
+ it(RULE_NAME, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ '// foo("bar", function () {})',
+ 'describe("foo", function () {})',
+ 'it("foo", function () {})',
+ 'describe.only("foo", function () {})',
+ 'it.only("foo", function () {})',
+ 'it.concurrent("foo", function () {})',
+ 'test("foo", function () {})',
+ 'test.only("foo", function () {})',
+ 'test.concurrent("foo", function () {})',
+ 'var appliedSkip = describe.skip; appliedSkip.apply(describe)',
+ 'var calledSkip = it.skip; calledSkip.call(it)',
+ '({ f: function () {} }).f()',
+ '(a || b).f()',
+ 'itHappensToStartWithIt()',
+ 'testSomething()',
+ '// latest(dates)',
+ '// TODO: unify with Git implementation from Shipit (?)',
+ '#!/usr/bin/env node'
+ ],
+ invalid: [
+ {
+ code: '// describe(\'foo\', function () {})\'',
+ errors: [
+ {
+ messageId: 'noCommentedOutTests'
+ }
+ ]
+ },
+ {
+ code: '// test.concurrent("foo", function () {})',
+ errors: [{ messageId: 'noCommentedOutTests', column: 1, line: 1 }]
+ },
+ {
+ code: '// test["skip"]("foo", function () {})',
+ errors: [{ messageId: 'noCommentedOutTests', column: 1, line: 1 }]
+ },
+ {
+ code: '// xdescribe("foo", function () {})',
+ errors: [{ messageId: 'noCommentedOutTests', column: 1, line: 1 }]
+ },
+ {
+ code: '// xit("foo", function () {})',
+ errors: [{ messageId: 'noCommentedOutTests', column: 1, line: 1 }]
+ },
+ {
+ code: '// fit("foo", function () {})',
+ errors: [{ messageId: 'noCommentedOutTests', column: 1, line: 1 }]
+ },
+ {
+ code: ` // test(
// "foo", function () {}
// )`,
- errors: [{ messageId: 'noCommentedOutTests', column: 2, line: 1 }]
- }
- ]
- })
- })
+ errors: [{ messageId: 'noCommentedOutTests', column: 2, line: 1 }]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/no-conditional-expect.test.ts b/src/rules/no-conditional-expect.test.ts
index c811d49..47985b7 100644
--- a/src/rules/no-conditional-expect.test.ts
+++ b/src/rules/no-conditional-expect.test.ts
@@ -1,37 +1,33 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-conditional-expect'
describe(RULE_NAME, () => {
- it(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- ruleTester.run(`${RULE_NAME}-common tests`, rule, {
- valid: [
- `
+ it(RULE_NAME, () => {
+ ruleTester.run(`${RULE_NAME}-common tests`, rule, {
+ valid: [
+ `
it('foo', () => {
expect(1).toBe(2);
});
`,
- `
+ `
it('foo', () => {
expect(!true).toBe(false);
});
`
- ],
- invalid: []
- })
+ ],
+ invalid: []
+ })
- ruleTester.run(`${RULE_NAME}-logical conditions`, rule, {
- valid: [
- `it('foo', () => {
+ ruleTester.run(`${RULE_NAME}-logical conditions`, rule, {
+ valid: [
+ `it('foo', () => {
process.env.FAIL && setNum(1);
expect(num).toBe(2);
});`,
- `
+ `
function getValue() {
let num = 2;
@@ -44,7 +40,7 @@ describe(RULE_NAME, () => {
expect(getValue()).toBe(2);
});
`,
- `
+ `
function getValue() {
let num = 2;
@@ -57,67 +53,67 @@ describe(RULE_NAME, () => {
expect(getValue()).toBe(2);
});
`
- ],
- invalid: [
- {
- code: ` it('foo', () => {
+ ],
+ invalid: [
+ {
+ code: ` it('foo', () => {
something && expect(something).toHaveBeenCalled();
})`,
- errors: [
- {
- messageId: 'noConditionalExpect'
- }
- ]
- },
- {
- code: ` it('foo', () => {
+ errors: [
+ {
+ messageId: 'noConditionalExpect'
+ }
+ ]
+ },
+ {
+ code: ` it('foo', () => {
a || (b && expect(something).toHaveBeenCalled());
})`,
- errors: [
- {
- messageId: 'noConditionalExpect'
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ messageId: 'noConditionalExpect'
+ }
+ ]
+ },
+ {
+ code: `
it.each\`\`('foo', () => {
something || expect(something).toHaveBeenCalled();
})
`,
- errors: [{ messageId: 'noConditionalExpect' }]
- },
- {
- code: `
+ errors: [{ messageId: 'noConditionalExpect' }]
+ },
+ {
+ code: `
it.each()('foo', () => {
something || expect(something).toHaveBeenCalled();
})
`,
- errors: [{ messageId: 'noConditionalExpect' }]
- },
- {
- code: `
+ errors: [{ messageId: 'noConditionalExpect' }]
+ },
+ {
+ code: `
function getValue() {
something || expect(something).toHaveBeenCalled();
}
it('foo', getValue);
`,
- errors: [{ messageId: 'noConditionalExpect' }]
- }
- ]
- })
+ errors: [{ messageId: 'noConditionalExpect' }]
+ }
+ ]
+ })
- ruleTester.run(`${RULE_NAME}-conditional conditions`, rule, {
- valid: [
- `
+ ruleTester.run(`${RULE_NAME}-conditional conditions`, rule, {
+ valid: [
+ `
it('foo', () => {
const num = process.env.FAIL ? 1 : 2;
expect(num).toBe(2);
});
`,
- `
+ `
function getValue() {
return process.env.FAIL ? 1 : 2
}
@@ -126,35 +122,35 @@ describe(RULE_NAME, () => {
expect(getValue()).toBe(2);
});
`
- ],
- invalid: [
- {
- code: `
+ ],
+ invalid: [
+ {
+ code: `
it('foo', () => {
something ? expect(something).toHaveBeenCalled() : noop();
})
`,
- errors: [{ messageId: 'noConditionalExpect' }]
- },
- {
- code: `
+ errors: [{ messageId: 'noConditionalExpect' }]
+ },
+ {
+ code: `
function getValue() {
something ? expect(something).toHaveBeenCalled() : noop();
}
it('foo', getValue);
`,
- errors: [{ messageId: 'noConditionalExpect' }]
- },
- {
- code: `
+ errors: [{ messageId: 'noConditionalExpect' }]
+ },
+ {
+ code: `
it('foo', () => {
something ? noop() : expect(something).toHaveBeenCalled();
})
`,
- errors: [{ messageId: 'noConditionalExpect' }]
- }
- ]
- })
- })
+ errors: [{ messageId: 'noConditionalExpect' }]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/no-conditional-in-test.test.ts b/src/rules/no-conditional-in-test.test.ts
index 6235234..8337695 100644
--- a/src/rules/no-conditional-in-test.test.ts
+++ b/src/rules/no-conditional-in-test.test.ts
@@ -1,54 +1,50 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-conditional-tests'
describe(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- it('conditional expressions', () => {
- ruleTester.run(`${RULE_NAME}-conditional expressions`, rule, {
- valid: [
- 'const x = y ? 1 : 0',
- `const foo = function (bar) {
+ it('conditional expressions', () => {
+ ruleTester.run(`${RULE_NAME}-conditional expressions`, rule, {
+ valid: [
+ 'const x = y ? 1 : 0',
+ `const foo = function (bar) {
return foo ? bar : null;
};
it('foo', () => {
foo();
});`,
- `it.concurrent('foo', () => {
+ `it.concurrent('foo', () => {
switch('bar') {}
})`
- ],
- invalid: [
- {
- code: `it('foo', function () {
+ ],
+ invalid: [
+ {
+ code: `it('foo', function () {
const foo = function (bar) {
return foo ? bar : null;
};
});`,
- errors: [
- {
- messageId: 'noConditionalTests'
- }
- ]
- }
- ]
- })
- })
+ errors: [
+ {
+ messageId: 'noConditionalTests'
+ }
+ ]
+ }
+ ]
+ })
+ })
- it('switch statements', () => {
- ruleTester.run(`${RULE_NAME}-switch statements`, rule, {
- valid: [
- 'it(\'foo\', () => {})',
- `switch (true) {
+ it('switch statements', () => {
+ ruleTester.run(`${RULE_NAME}-switch statements`, rule, {
+ valid: [
+ 'it(\'foo\', () => {})',
+ `switch (true) {
case true: {}
}`,
- `describe('foo', () => {
+ `describe('foo', () => {
switch('bar') {}
})`,
- `const values = something.map(thing => {
+ `const values = something.map(thing => {
switch (thing.isFoo) {
case true:
return thing.foo;
@@ -60,10 +56,10 @@ describe(RULE_NAME, () => {
it('valid', () => {
expect(values).toStrictEqual(['foo']);
});`
- ],
- invalid: [
- {
- code: `it('is invalid', () => {
+ ],
+ invalid: [
+ {
+ code: `it('is invalid', () => {
const values = something.map(thing => {
switch (thing.isFoo) {
case true:
@@ -75,30 +71,30 @@ describe(RULE_NAME, () => {
expect(values).toStrictEqual(['foo']);
});`,
- errors: [
- {
- messageId: 'noConditionalTests',
- column: 9,
- line: 3
- }
- ]
- },
- {
- code: `it('foo', () => {
+ errors: [
+ {
+ messageId: 'noConditionalTests',
+ column: 9,
+ line: 3
+ }
+ ]
+ },
+ {
+ code: `it('foo', () => {
switch (true) {
case true: {}
}
})`,
- errors: [
- {
- messageId: 'noConditionalTests',
- column: 7,
- line: 2
- }
- ]
- },
- {
- code: `describe('foo', () => {
+ errors: [
+ {
+ messageId: 'noConditionalTests',
+ column: 7,
+ line: 2
+ }
+ ]
+ },
+ {
+ code: `describe('foo', () => {
it('bar', () => {
switch('bar') {}
})
@@ -107,26 +103,26 @@ describe(RULE_NAME, () => {
switch('quux') {}
})
})`,
- errors: [
- {
- messageId: 'noConditionalTests',
- column: 9,
- line: 3
- },
- {
- messageId: 'noConditionalTests',
- column: 9,
- line: 6
- },
- {
- messageId: 'noConditionalTests',
- column: 9,
- line: 7
- }
- ]
- },
- {
- code: `describe('valid', () => {
+ errors: [
+ {
+ messageId: 'noConditionalTests',
+ column: 9,
+ line: 3
+ },
+ {
+ messageId: 'noConditionalTests',
+ column: 9,
+ line: 6
+ },
+ {
+ messageId: 'noConditionalTests',
+ column: 9,
+ line: 7
+ }
+ ]
+ },
+ {
+ code: `describe('valid', () => {
describe('still valid', () => {
it('is not valid', () => {
const values = something.map((thing) => {
@@ -145,36 +141,36 @@ describe(RULE_NAME, () => {
});
});
});`,
- errors: [
- {
- messageId: 'noConditionalTests',
- column: 10,
- line: 5
- },
- {
- messageId: 'noConditionalTests',
- column: 8,
- line: 13
- }
- ]
- }
- ]
- })
- })
+ errors: [
+ {
+ messageId: 'noConditionalTests',
+ column: 10,
+ line: 5
+ },
+ {
+ messageId: 'noConditionalTests',
+ column: 8,
+ line: 13
+ }
+ ]
+ }
+ ]
+ })
+ })
- it('if statements', () => {
- ruleTester.run(`${RULE_NAME}-if statements`, rule, {
- valid: [
- 'if (foo) {}',
- 'it(\'foo\', () => {})',
- 'it("foo", function () {})',
- 'it(\'foo\', () => {}); function myTest() { if (\'bar\') {} }',
- `describe.each\`\`('foo', () => {
+ it('if statements', () => {
+ ruleTester.run(`${RULE_NAME}-if statements`, rule, {
+ valid: [
+ 'if (foo) {}',
+ 'it(\'foo\', () => {})',
+ 'it("foo", function () {})',
+ 'it(\'foo\', () => {}); function myTest() { if (\'bar\') {} }',
+ `describe.each\`\`('foo', () => {
afterEach(() => {
if ('bar') {}
});
})`,
- `const values = something.map((thing) => {
+ `const values = something.map((thing) => {
if (thing.isFoo) {
return thing.foo
} else {
@@ -187,10 +183,10 @@ describe(RULE_NAME, () => {
expect(values).toStrictEqual(['foo']);
});
});`
- ],
- invalid: [
- {
- code: `it('foo', () => {
+ ],
+ invalid: [
+ {
+ code: `it('foo', () => {
const foo = function(bar) {
if (bar) {
return 1;
@@ -199,16 +195,16 @@ describe(RULE_NAME, () => {
}
};
});`,
- errors: [
- {
- messageId: 'noConditionalTests',
- column: 9,
- line: 3
- }
- ]
- },
- {
- code: ` describe('foo', () => {
+ errors: [
+ {
+ messageId: 'noConditionalTests',
+ column: 9,
+ line: 3
+ }
+ ]
+ },
+ {
+ code: ` describe('foo', () => {
it('bar', () => {
if ('bar') {}
})
@@ -217,14 +213,14 @@ describe(RULE_NAME, () => {
if ('quux') {}
})
})`,
- errors: [
- { messageId: 'noConditionalTests', column: 9, line: 3 },
- { messageId: 'noConditionalTests', column: 9, line: 6 },
- { messageId: 'noConditionalTests', column: 9, line: 7 }
- ]
- },
- {
- code: `test("shows error", () => {
+ errors: [
+ { messageId: 'noConditionalTests', column: 9, line: 3 },
+ { messageId: 'noConditionalTests', column: 9, line: 6 },
+ { messageId: 'noConditionalTests', column: 9, line: 7 }
+ ]
+ },
+ {
+ code: `test("shows error", () => {
if (1 === 2) {
expect(true).toBe(false);
}
@@ -236,12 +232,12 @@ describe(RULE_NAME, () => {
expect(true).toBe(false);
}
});`,
- errors: [
- { messageId: 'noConditionalTests', column: 7, line: 2 },
- { messageId: 'noConditionalTests', column: 7, line: 9 }
- ]
- }
- ]
- })
- })
+ errors: [
+ { messageId: 'noConditionalTests', column: 7, line: 2 },
+ { messageId: 'noConditionalTests', column: 7, line: 9 }
+ ]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/no-conditional-tests.test.ts b/src/rules/no-conditional-tests.test.ts
index 124efaf..855c615 100644
--- a/src/rules/no-conditional-tests.test.ts
+++ b/src/rules/no-conditional-tests.test.ts
@@ -1,19 +1,15 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { it, describe } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-conditional-tests'
describe(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- it('if statements', () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'test("shows error", () => {});',
- 'it("foo", function () {})',
- 'it(\'foo\', () => {}); function myTest() { if (\'bar\') {} }',
- `function myFunc(str: string) {
+ it('if statements', () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'test("shows error", () => {});',
+ 'it("foo", function () {})',
+ 'it(\'foo\', () => {}); function myTest() { if (\'bar\') {} }',
+ `function myFunc(str: string) {
return str;
}
@@ -24,81 +20,81 @@ describe(RULE_NAME, () => {
).toEqual("5");
});
});`
- ],
- invalid: [
- {
- code: `test("shows error", () => {
+ ],
+ invalid: [
+ {
+ code: `test("shows error", () => {
if (1 === 2) {
expect(true).toBe(false);
}
});`,
- output: `test("shows error", () => {
+ output: `test("shows error", () => {
if (1 === 2) {
expect(true).toBe(false);
}
});`,
- errors: [{ messageId: 'noConditionalTests' }]
- },
- {
- code: `it("foo", function () {
+ errors: [{ messageId: 'noConditionalTests' }]
+ },
+ {
+ code: `it("foo", function () {
if (1 === 2) {
expect(true).toBe(false);
}
})`,
- output: `it("foo", function () {
+ output: `it("foo", function () {
if (1 === 2) {
expect(true).toBe(false);
}
})`,
- errors: [{ messageId: 'noConditionalTests' }]
- }
- ]
- })
- })
+ errors: [{ messageId: 'noConditionalTests' }]
+ }
+ ]
+ })
+ })
- it('ternary statements', () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'test("shows error", () => {});',
- 'it("foo", function () {})',
- 'it(\'foo\', () => {}); function myTest() { if (\'bar\') {} }'
- ],
- invalid: [
- {
- code: `test("shows error", () => {
+ it('ternary statements', () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'test("shows error", () => {});',
+ 'it("foo", function () {})',
+ 'it(\'foo\', () => {}); function myTest() { if (\'bar\') {} }'
+ ],
+ invalid: [
+ {
+ code: `test("shows error", () => {
const foo = true ? 'foo' : 'bar';
expect(foo).toBe('foo');
});`,
- output: `test("shows error", () => {
+ output: `test("shows error", () => {
const foo = true ? 'foo' : 'bar';
expect(foo).toBe('foo');
});`,
- errors: [{ messageId: 'noConditionalTests' }]
- },
- {
- code: `it("foo", function () {
+ errors: [{ messageId: 'noConditionalTests' }]
+ },
+ {
+ code: `it("foo", function () {
const foo = true ? 'foo' : 'bar';
expect(foo).toBe('foo');
})`,
- output: `it("foo", function () {
+ output: `it("foo", function () {
const foo = true ? 'foo' : 'bar';
expect(foo).toBe('foo');
})`,
- errors: [{ messageId: 'noConditionalTests' }]
- }
- ]
- })
+ errors: [{ messageId: 'noConditionalTests' }]
+ }
+ ]
+ })
- it('switch statements', () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'test("shows error", () => {});',
- 'it("foo", function () {})',
- 'it(\'foo\', () => {}); function myTest() { if (\'bar\') {} }'
- ],
- invalid: [
- {
- code: `test("shows error", () => {
+ it('switch statements', () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'test("shows error", () => {});',
+ 'it("foo", function () {})',
+ 'it(\'foo\', () => {}); function myTest() { if (\'bar\') {} }'
+ ],
+ invalid: [
+ {
+ code: `test("shows error", () => {
switch (1) {
case 1:
expect(true).toBe(false);
@@ -107,7 +103,7 @@ describe(RULE_NAME, () => {
expect(true).toBe(false);
}
});`,
- output: `test("shows error", () => {
+ output: `test("shows error", () => {
switch (1) {
case 1:
expect(true).toBe(false);
@@ -116,10 +112,10 @@ describe(RULE_NAME, () => {
expect(true).toBe(false);
}
});`,
- errors: [{ messageId: 'noConditionalTests' }]
- },
- {
- code: `it("foo", function () {
+ errors: [{ messageId: 'noConditionalTests' }]
+ },
+ {
+ code: `it("foo", function () {
switch (1) {
case 1:
expect(true).toBe(false);
@@ -128,7 +124,7 @@ describe(RULE_NAME, () => {
expect(true).toBe(false);
}
})`,
- output: `it("foo", function () {
+ output: `it("foo", function () {
switch (1) {
case 1:
expect(true).toBe(false);
@@ -137,10 +133,10 @@ describe(RULE_NAME, () => {
expect(true).toBe(false);
}
})`,
- errors: [{ messageId: 'noConditionalTests' }]
- }
- ]
- })
- })
- })
+ errors: [{ messageId: 'noConditionalTests' }]
+ }
+ ]
+ })
+ })
+ })
})
diff --git a/src/rules/no-done-callback.test.ts b/src/rules/no-done-callback.test.ts
index 13b471c..89ceb27 100644
--- a/src/rules/no-done-callback.test.ts
+++ b/src/rules/no-done-callback.test.ts
@@ -1,116 +1,115 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-done-callback'
describe(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- it(RULE_NAME, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'test("something", () => {})',
- 'test("something", async () => {})',
- 'test("something", function() {})',
- 'test.each``("something", ({ a, b }) => {})',
- 'test.each()("something", ({ a, b }) => {})',
- 'it.each()("something", ({ a, b }) => {})',
- 'it.each([])("something", (a, b) => {})',
- 'it.each``("something", ({ a, b }) => {})',
- 'it.each([])("something", (a, b) => { a(); b(); })',
- 'it.each``("something", ({ a, b }) => { a(); b(); })',
- 'test("something", async function () {})',
- 'test("something", someArg)',
- 'beforeEach(() => {})',
- 'beforeAll(async () => {})',
- 'afterAll(() => {})',
- 'afterAll(async function () {})',
- 'afterAll(async function () {}, 5)'
- ],
- invalid: [
- {
- code: 'test("something", (...args) => {args[0]();})',
- errors: [
- { messageId: 'noDoneCallback', line: 1, column: 20 }
- ]
- },
- {
- code: 'test("something", done => {done();})',
- errors: [
- {
- messageId: 'noDoneCallback',
- line: 1,
- column: 1,
- suggestions: [
- {
- messageId: 'suggestWrappingInPromise',
- data: { callback: 'done' },
- output: 'test("something", () => {return new Promise(done => {done();})})'
- }
- ]
- }
- ]
- },
- {
- code: 'test("something", finished => {finished();})',
- errors: [
- {
- messageId: 'noDoneCallback',
- line: 1,
- column: 1,
- suggestions: [
- {
- messageId: 'suggestWrappingInPromise',
- data: { callback: 'finished' },
- output:
- 'test("something", () => {return new Promise(finished => {finished();})})'
- }
- ]
- }
- ]
- },
- {
- code: 'beforeAll(async done => {done();})',
- errors: [{ messageId: 'useAwaitInsteadOfCallback', line: 1, column: 17 }]
- },
- {
- code: 'beforeEach((done) => {done();});',
- errors: [
- {
- messageId: 'noDoneCallback',
- line: 1,
- column: 1,
- suggestions: [
- {
- messageId: 'suggestWrappingInPromise',
- data: { callback: 'done' },
- output: 'beforeEach(() => {return new Promise(done => {done();})});'
- }]
- }
- ]
- },
- {
- code: 'test.each``("something", ({ a, b }, done) => { done(); })',
- errors: [
- {
- messageId: 'noDoneCallback',
- line: 1,
- column: 1
- }
- ]
- },
- {
- code: 'it.each``("something", ({ a, b }, done) => { done(); })',
- errors: [
- {
- messageId: 'noDoneCallback',
- line: 1,
- column: 1
- }
- ]
- }
- ]
- })
- })
+ it(RULE_NAME, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'test("something", () => {})',
+ 'test("something", async () => {})',
+ 'test("something", function() {})',
+ 'test.each``("something", ({ a, b }) => {})',
+ 'test.each()("something", ({ a, b }) => {})',
+ 'it.each()("something", ({ a, b }) => {})',
+ 'it.each([])("something", (a, b) => {})',
+ 'it.each``("something", ({ a, b }) => {})',
+ 'it.each([])("something", (a, b) => { a(); b(); })',
+ 'it.each``("something", ({ a, b }) => { a(); b(); })',
+ 'test("something", async function () {})',
+ 'test("something", someArg)',
+ 'beforeEach(() => {})',
+ 'beforeAll(async () => {})',
+ 'afterAll(() => {})',
+ 'afterAll(async function () {})',
+ 'afterAll(async function () {}, 5)'
+ ],
+ invalid: [
+ {
+ code: 'test("something", (...args) => {args[0]();})',
+ errors: [{ messageId: 'noDoneCallback', line: 1, column: 20 }]
+ },
+ {
+ code: 'test("something", done => {done();})',
+ errors: [
+ {
+ messageId: 'noDoneCallback',
+ line: 1,
+ column: 1,
+ suggestions: [
+ {
+ messageId: 'suggestWrappingInPromise',
+ data: { callback: 'done' },
+ output:
+ 'test("something", () => {return new Promise(done => {done();})})'
+ }
+ ]
+ }
+ ]
+ },
+ {
+ code: 'test("something", finished => {finished();})',
+ errors: [
+ {
+ messageId: 'noDoneCallback',
+ line: 1,
+ column: 1,
+ suggestions: [
+ {
+ messageId: 'suggestWrappingInPromise',
+ data: { callback: 'finished' },
+ output:
+ 'test("something", () => {return new Promise(finished => {finished();})})'
+ }
+ ]
+ }
+ ]
+ },
+ {
+ code: 'beforeAll(async done => {done();})',
+ errors: [
+ { messageId: 'useAwaitInsteadOfCallback', line: 1, column: 17 }
+ ]
+ },
+ {
+ code: 'beforeEach((done) => {done();});',
+ errors: [
+ {
+ messageId: 'noDoneCallback',
+ line: 1,
+ column: 1,
+ suggestions: [
+ {
+ messageId: 'suggestWrappingInPromise',
+ data: { callback: 'done' },
+ output:
+ 'beforeEach(() => {return new Promise(done => {done();})});'
+ }
+ ]
+ }
+ ]
+ },
+ {
+ code: 'test.each``("something", ({ a, b }, done) => { done(); })',
+ errors: [
+ {
+ messageId: 'noDoneCallback',
+ line: 1,
+ column: 1
+ }
+ ]
+ },
+ {
+ code: 'it.each``("something", ({ a, b }, done) => { done(); })',
+ errors: [
+ {
+ messageId: 'noDoneCallback',
+ line: 1,
+ column: 1
+ }
+ ]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/no-duplicate-hooks.test.ts b/src/rules/no-duplicate-hooks.test.ts
index d4b5668..82a05c7 100644
--- a/src/rules/no-duplicate-hooks.test.ts
+++ b/src/rules/no-duplicate-hooks.test.ts
@@ -1,29 +1,22 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-duplicate-hooks'
-const ruleTester = new RuleTester({
- parser: require('@typescript-eslint/parser'),
- parserOptions: {
- ecmaVersion: 2015
- }
-})
-
describe(RULE_NAME, () => {
- it(`${RULE_NAME} - single describe block`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- `describe("foo", () => {
+ it(`${RULE_NAME} - single describe block`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ `describe("foo", () => {
beforeEach(() => {})
test("bar", () => {
someFn();
})
})`,
- `beforeEach(() => {})
+ `beforeEach(() => {})
test("bar", () => {
someFn();
})`,
- `describe("foo", () => {
+ `describe("foo", () => {
beforeAll(() => {}),
beforeEach(() => {})
afterEach(() => {})
@@ -33,27 +26,27 @@ describe(RULE_NAME, () => {
someFn();
})
})`
- ],
- invalid: [
- {
- code: `describe("foo", () => {
+ ],
+ invalid: [
+ {
+ code: `describe("foo", () => {
beforeEach(() => {}),
beforeEach(() => {}),
test("bar", () => {
someFn();
})
})`,
- errors: [
- {
- messageId: 'noDuplicateHooks',
- data: { hook: 'beforeEach' },
- column: 7,
- line: 3
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ messageId: 'noDuplicateHooks',
+ data: { hook: 'beforeEach' },
+ column: 7,
+ line: 3
+ }
+ ]
+ },
+ {
+ code: `
describe.skip("foo", () => {
afterEach(() => {}),
afterEach(() => {}),
@@ -62,23 +55,23 @@ describe(RULE_NAME, () => {
})
})
`,
- errors: [
- {
- messageId: 'noDuplicateHooks',
- data: { hook: 'afterEach' },
- column: 7,
- line: 4
- }
- ]
- }
- ]
- })
- })
+ errors: [
+ {
+ messageId: 'noDuplicateHooks',
+ data: { hook: 'afterEach' },
+ column: 7,
+ line: 4
+ }
+ ]
+ }
+ ]
+ })
+ })
- it(`${RULE_NAME} - multiple describe blocks`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- `describe.skip("foo", () => {
+ it(`${RULE_NAME} - multiple describe blocks`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ `describe.skip("foo", () => {
beforeEach(() => {}),
beforeAll(() => {}),
test("bar", () => {
@@ -91,10 +84,11 @@ describe(RULE_NAME, () => {
test("bar", () => {
someFn();
})
- })`],
- invalid: [
- {
- code: `describe.skip("foo", () => {
+ })`
+ ],
+ invalid: [
+ {
+ code: `describe.skip("foo", () => {
beforeEach(() => {}),
beforeAll(() => {}),
test("bar", () => {
@@ -109,23 +103,23 @@ describe(RULE_NAME, () => {
someFn();
})
})`,
- errors: [
- {
- messageId: 'noDuplicateHooks',
- data: { hook: 'beforeEach' },
- column: 7,
- line: 10
- }
- ]
- }
- ]
- })
- })
+ errors: [
+ {
+ messageId: 'noDuplicateHooks',
+ data: { hook: 'beforeEach' },
+ column: 7,
+ line: 10
+ }
+ ]
+ }
+ ]
+ })
+ })
- it(`${RULE_NAME} - nested describe blocks`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- ` describe("foo", () => {
+ it(`${RULE_NAME} - nested describe blocks`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ ` describe("foo", () => {
beforeEach(() => {}),
test("bar", () => {
someFn();
@@ -137,10 +131,10 @@ describe(RULE_NAME, () => {
})
})
})`
- ],
- invalid: [
- {
- code: `describe.skip("foo", () => {
+ ],
+ invalid: [
+ {
+ code: `describe.skip("foo", () => {
beforeEach(() => {}),
beforeAll(() => {}),
test("bar", () => {
@@ -155,52 +149,52 @@ describe(RULE_NAME, () => {
someFn();
})
})`,
- errors: [
- {
- messageId: 'noDuplicateHooks',
- data: { hook: 'beforeEach' },
- column: 7,
- line: 10
- }
- ]
- }
- ]
- })
- })
+ errors: [
+ {
+ messageId: 'noDuplicateHooks',
+ data: { hook: 'beforeEach' },
+ column: 7,
+ line: 10
+ }
+ ]
+ }
+ ]
+ })
+ })
- it(`${RULE_NAME} - describe.each blocks`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- ` describe.each(['hello'])('%s', () => {
+ it(`${RULE_NAME} - describe.each blocks`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ ` describe.each(['hello'])('%s', () => {
beforeEach(() => {});
it('is fine', () => {});
});`,
- `describe.each(['hello'])('%s', () => {
+ `describe.each(['hello'])('%s', () => {
beforeEach(() => {});
it('is fine', () => {});
});`
- ],
- invalid: [
- {
- code: `describe.each(['hello'])('%s', () => {
+ ],
+ invalid: [
+ {
+ code: `describe.each(['hello'])('%s', () => {
beforeEach(() => {});
beforeEach(() => {});
it('is not fine', () => {});
});`,
- errors: [
- {
- messageId: 'noDuplicateHooks',
- data: { hook: 'beforeEach' },
- column: 7,
- line: 3
- }
- ]
- },
- {
- code: ` describe('something', () => {
+ errors: [
+ {
+ messageId: 'noDuplicateHooks',
+ data: { hook: 'beforeEach' },
+ column: 7,
+ line: 3
+ }
+ ]
+ },
+ {
+ code: ` describe('something', () => {
describe.each(['hello'])('%s', () => {
beforeEach(() => {});
@@ -214,16 +208,16 @@ describe(RULE_NAME, () => {
it('is not fine', () => {});
});
});`,
- errors: [
- {
- messageId: 'noDuplicateHooks',
- data: { hook: 'beforeEach' },
- column: 9,
- line: 10
- }
- ]
- }
- ]
- })
- })
+ errors: [
+ {
+ messageId: 'noDuplicateHooks',
+ data: { hook: 'beforeEach' },
+ column: 9,
+ line: 10
+ }
+ ]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/no-focused-tests.test.ts b/src/rules/no-focused-tests.test.ts
index d596a4a..775aaea 100644
--- a/src/rules/no-focused-tests.test.ts
+++ b/src/rules/no-focused-tests.test.ts
@@ -1,68 +1,64 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-focused-tests'
it(RULE_NAME, () => {
- const ruleTester: RuleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
+ ruleTester.run(RULE_NAME, rule, {
+ valid: ['it("test", () => {});', 'describe("test group", () => {});'],
- ruleTester.run(RULE_NAME, rule, {
- valid: ['it("test", () => {});', 'describe("test group", () => {});'],
-
- invalid: [
- {
- code: 'it.only("test", () => {});',
- errors: [
- {
- column: 4,
- endColumn: 8,
- endLine: 1,
- line: 1,
- messageId: 'noFocusedTests'
- }
- ],
- output: 'it.only("test", () => {});'
- },
- {
- code: 'describe.only("test", () => {});',
- errors: [
- {
- column: 10,
- endColumn: 14,
- endLine: 1,
- line: 1,
- messageId: 'noFocusedTests'
- }
- ],
- output: 'describe.only("test", () => {});'
- },
- {
- code: 'test.only("test", () => {});',
- errors: [
- {
- column: 6,
- endColumn: 10,
- endLine: 1,
- line: 1,
- messageId: 'noFocusedTests'
- }
- ],
- output: 'test.only("test", () => {});'
- },
- {
- code: 'it.only.each([])("test", () => {});',
- errors: [
- {
- column: 4,
- endColumn: 8,
- endLine: 1,
- line: 1,
- messageId: 'noFocusedTests'
- }
- ],
- output: 'it.only.each([])("test", () => {});'
- }
- ]
- })
+ invalid: [
+ {
+ code: 'it.only("test", () => {});',
+ errors: [
+ {
+ column: 4,
+ endColumn: 8,
+ endLine: 1,
+ line: 1,
+ messageId: 'noFocusedTests'
+ }
+ ],
+ output: 'it.only("test", () => {});'
+ },
+ {
+ code: 'describe.only("test", () => {});',
+ errors: [
+ {
+ column: 10,
+ endColumn: 14,
+ endLine: 1,
+ line: 1,
+ messageId: 'noFocusedTests'
+ }
+ ],
+ output: 'describe.only("test", () => {});'
+ },
+ {
+ code: 'test.only("test", () => {});',
+ errors: [
+ {
+ column: 6,
+ endColumn: 10,
+ endLine: 1,
+ line: 1,
+ messageId: 'noFocusedTests'
+ }
+ ],
+ output: 'test.only("test", () => {});'
+ },
+ {
+ code: 'it.only.each([])("test", () => {});',
+ errors: [
+ {
+ column: 4,
+ endColumn: 8,
+ endLine: 1,
+ line: 1,
+ messageId: 'noFocusedTests'
+ }
+ ],
+ output: 'it.only.each([])("test", () => {});'
+ }
+ ]
+ })
})
diff --git a/src/rules/no-hooks.test.ts b/src/rules/no-hooks.test.ts
index ea68643..d2c3ad7 100644
--- a/src/rules/no-hooks.test.ts
+++ b/src/rules/no-hooks.test.ts
@@ -1,69 +1,82 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { it } from 'vitest'
import { HookName } from '../utils/types'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-hooks'
it(RULE_NAME, () => {
- const ruleTester: RuleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'test("foo")',
- 'describe("foo", () => { it("bar") })',
- 'test("foo", () => { expect(subject.beforeEach()).toBe(true) })',
- {
- code: 'afterEach(() => {}); afterAll(() => {});',
- options: [{ allow: [HookName.afterEach, HookName.afterAll] }]
- },
- { code: 'test("foo")', options: [{ allow: undefined }] }
- ],
- invalid: [
- {
- code: 'beforeAll(() => {})',
- errors: [
- { messageId: 'unexpectedHook', data: { hookName: HookName.beforeAll } }
- ]
- },
- {
- code: 'beforeEach(() => {})',
- errors: [
- { messageId: 'unexpectedHook', data: { hookName: HookName.beforeEach } }
- ]
- },
- {
- code: 'afterAll(() => {})',
- errors: [
- { messageId: 'unexpectedHook', data: { hookName: HookName.afterAll } }
- ]
- },
- {
- code: 'afterEach(() => {})',
- errors: [
- { messageId: 'unexpectedHook', data: { hookName: HookName.afterEach } }
- ]
- },
- {
- code: 'beforeEach(() => {}); afterEach(() => { vi.resetModules() });',
- options: [{ allow: [HookName.afterEach] }],
- errors: [{
- messageId: 'unexpectedHook',
- data: { hookName: HookName.beforeEach }
- }]
- },
- {
- code: `
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'test("foo")',
+ 'describe("foo", () => { it("bar") })',
+ 'test("foo", () => { expect(subject.beforeEach()).toBe(true) })',
+ {
+ code: 'afterEach(() => {}); afterAll(() => {});',
+ options: [{ allow: [HookName.afterEach, HookName.afterAll] }]
+ },
+ { code: 'test("foo")', options: [{ allow: undefined }] }
+ ],
+ invalid: [
+ {
+ code: 'beforeAll(() => {})',
+ errors: [
+ {
+ messageId: 'unexpectedHook',
+ data: { hookName: HookName.beforeAll }
+ }
+ ]
+ },
+ {
+ code: 'beforeEach(() => {})',
+ errors: [
+ {
+ messageId: 'unexpectedHook',
+ data: { hookName: HookName.beforeEach }
+ }
+ ]
+ },
+ {
+ code: 'afterAll(() => {})',
+ errors: [
+ {
+ messageId: 'unexpectedHook',
+ data: { hookName: HookName.afterAll }
+ }
+ ]
+ },
+ {
+ code: 'afterEach(() => {})',
+ errors: [
+ {
+ messageId: 'unexpectedHook',
+ data: { hookName: HookName.afterEach }
+ }
+ ]
+ },
+ {
+ code: 'beforeEach(() => {}); afterEach(() => { vi.resetModules() });',
+ options: [{ allow: [HookName.afterEach] }],
+ errors: [
+ {
+ messageId: 'unexpectedHook',
+ data: { hookName: HookName.beforeEach }
+ }
+ ]
+ },
+ {
+ code: `
import { beforeEach as afterEach, afterEach as beforeEach, vi } from 'vitest';
afterEach(() => {});
beforeEach(() => { vi.resetModules() });
`,
- options: [{ allow: [HookName.afterEach] }],
- parserOptions: { sourceType: 'module' },
- errors: [{
- messageId: 'unexpectedHook',
- data: { hookName: HookName.beforeEach }
- }]
- }
- ]
- })
+ options: [{ allow: [HookName.afterEach] }],
+ parserOptions: { sourceType: 'module' },
+ errors: [
+ {
+ messageId: 'unexpectedHook',
+ data: { hookName: HookName.beforeEach }
+ }
+ ]
+ }
+ ]
+ })
})
diff --git a/src/rules/no-identical-title.test.ts b/src/rules/no-identical-title.test.ts
index 3399e70..452d933 100644
--- a/src/rules/no-identical-title.test.ts
+++ b/src/rules/no-identical-title.test.ts
@@ -1,32 +1,27 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
-import { it } from 'vitest'
+import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-identical-title'
-it('no identical title', () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'it(); it();',
- 'test("two", () => {});'
- ],
- invalid: [
+describe(RULE_NAME, () => {
+ it('no identical title', () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: ['it(); it();', 'test("two", () => {});'],
+ invalid: [
{
code: `describe('foo', () => {
- it('works', () => {});
- it('works', () => {});
- });`,
+ it('works', () => {});
+ it('works', () => {});
+ });`,
errors: [{ messageId: 'multipleTestTitle' }]
},
{
code: `xdescribe('foo', () => {
- it('works', () => {});
- it('works', () => {});
- });`,
+ it('works', () => {});
+ it('works', () => {});
+ });`,
errors: [{ messageId: 'multipleTestTitle' }]
}
]
+ })
})
})
diff --git a/src/rules/no-interpolation-in-snapshots.test.ts b/src/rules/no-interpolation-in-snapshots.test.ts
index 9850eef..46ffd26 100644
--- a/src/rules/no-interpolation-in-snapshots.test.ts
+++ b/src/rules/no-interpolation-in-snapshots.test.ts
@@ -1,78 +1,75 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-interpolation-in-snapshots'
describe(RULE_NAME, () => {
- const tester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- it(RULE_NAME, () => {
- tester.run(RULE_NAME, rule, {
- valid: [
- 'expect("something").toEqual("else");',
- 'expect(something).toMatchInlineSnapshot();',
- 'expect(something).toMatchInlineSnapshot(`No interpolation`);',
- 'expect(something).toMatchInlineSnapshot({}, `No interpolation`);',
- 'expect(something);',
- 'expect(something).not;',
- 'expect.toHaveAssertions();',
- // eslint-disable-next-line no-template-curly-in-string
- 'myObjectWants.toMatchInlineSnapshot({}, `${interpolated}`);',
- // eslint-disable-next-line no-template-curly-in-string
- 'myObjectWants.toMatchInlineSnapshot({}, `${interpolated1} ${interpolated2}`);',
- // eslint-disable-next-line no-template-curly-in-string
- 'toMatchInlineSnapshot({}, `${interpolated}`);',
- // eslint-disable-next-line no-template-curly-in-string
- 'toMatchInlineSnapshot({}, `${interpolated1} ${interpolated2}`);',
- 'expect(something).toThrowErrorMatchingInlineSnapshot();',
- 'expect(something).toThrowErrorMatchingInlineSnapshot(`No interpolation`);'
- ],
- invalid: [
- {
- // eslint-disable-next-line no-template-curly-in-string
- code: 'expect(something).toMatchInlineSnapshot(`${interpolated}`);',
- errors: [
- {
- messageId: 'noInterpolationInSnapshots',
- column: 41,
- line: 1
- }
- ]
- },
- {
- // eslint-disable-next-line no-template-curly-in-string
- code: 'expect(something).not.toMatchInlineSnapshot(`${interpolated}`);',
- errors: [
- {
- messageId: 'noInterpolationInSnapshots',
- column: 45,
- line: 1
- }
- ]
- }, {
- // eslint-disable-next-line no-template-curly-in-string
- code: 'expect(something).toThrowErrorMatchingInlineSnapshot(`${interpolated}`);',
- errors: [
- {
- endColumn: 71,
- column: 54,
- messageId: 'noInterpolationInSnapshots'
- }
- ]
- },
- {
- // eslint-disable-next-line no-template-curly-in-string
- code: 'expect(something).not.toThrowErrorMatchingInlineSnapshot(`${interpolated}`);',
- errors: [
- {
- endColumn: 75,
- column: 58,
- messageId: 'noInterpolationInSnapshots'
- }
- ]
- }
- ]
- })
- })
+ it(RULE_NAME, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'expect("something").toEqual("else");',
+ 'expect(something).toMatchInlineSnapshot();',
+ 'expect(something).toMatchInlineSnapshot(`No interpolation`);',
+ 'expect(something).toMatchInlineSnapshot({}, `No interpolation`);',
+ 'expect(something);',
+ 'expect(something).not;',
+ 'expect.toHaveAssertions();',
+ // eslint-disable-next-line no-template-curly-in-string
+ 'myObjectWants.toMatchInlineSnapshot({}, `${interpolated}`);',
+ // eslint-disable-next-line no-template-curly-in-string
+ 'myObjectWants.toMatchInlineSnapshot({}, `${interpolated1} ${interpolated2}`);',
+ // eslint-disable-next-line no-template-curly-in-string
+ 'toMatchInlineSnapshot({}, `${interpolated}`);',
+ // eslint-disable-next-line no-template-curly-in-string
+ 'toMatchInlineSnapshot({}, `${interpolated1} ${interpolated2}`);',
+ 'expect(something).toThrowErrorMatchingInlineSnapshot();',
+ 'expect(something).toThrowErrorMatchingInlineSnapshot(`No interpolation`);'
+ ],
+ invalid: [
+ {
+ // eslint-disable-next-line no-template-curly-in-string
+ code: 'expect(something).toMatchInlineSnapshot(`${interpolated}`);',
+ errors: [
+ {
+ messageId: 'noInterpolationInSnapshots',
+ column: 41,
+ line: 1
+ }
+ ]
+ },
+ {
+ // eslint-disable-next-line no-template-curly-in-string
+ code: 'expect(something).not.toMatchInlineSnapshot(`${interpolated}`);',
+ errors: [
+ {
+ messageId: 'noInterpolationInSnapshots',
+ column: 45,
+ line: 1
+ }
+ ]
+ },
+ {
+ // eslint-disable-next-line no-template-curly-in-string
+ code: 'expect(something).toThrowErrorMatchingInlineSnapshot(`${interpolated}`);',
+ errors: [
+ {
+ endColumn: 71,
+ column: 54,
+ messageId: 'noInterpolationInSnapshots'
+ }
+ ]
+ },
+ {
+ // eslint-disable-next-line no-template-curly-in-string
+ code: 'expect(something).not.toThrowErrorMatchingInlineSnapshot(`${interpolated}`);',
+ errors: [
+ {
+ endColumn: 75,
+ column: 58,
+ messageId: 'noInterpolationInSnapshots'
+ }
+ ]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/no-large-snapshots.test.ts b/src/rules/no-large-snapshots.test.ts
index fa7e94b..ef09efc 100644
--- a/src/rules/no-large-snapshots.test.ts
+++ b/src/rules/no-large-snapshots.test.ts
@@ -1,155 +1,156 @@
import { TSESLint } from '@typescript-eslint/utils'
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, expect, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-large-snapshots'
-const generateSnaShotLines = (lines: number) => `\`\n${'line\n'.repeat(lines)}\``
+const generateSnaShotLines = (lines: number) =>
+ `\`\n${'line\n'.repeat(lines)}\``
const generateExportsSnapshotString = (
- lines: number,
- title = 'a big component 1'
+ lines: number,
+ title = 'a big component 1'
) => `exports[\`${title}\`] = ${generateSnaShotLines(lines - 1)};`
const generateExpectInlineSnapsCode = (
- lines: number,
- matcher: 'toMatchInlineSnapshot' | 'toThrowErrorMatchingInlineSnapshot'
+ lines: number,
+ matcher: 'toMatchInlineSnapshot' | 'toThrowErrorMatchingInlineSnapshot'
) => `expect(something).${matcher}(${generateSnaShotLines(lines)});`
describe(RULE_NAME, () => {
- const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
-
- it(RULE_NAME, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'expect(something)',
- 'expect(something).toBe(1)',
- 'expect(something).toMatchInlineSnapshot',
- 'expect(something).toMatchInlineSnapshot()',
- {
- filename: 'mock.js',
- code: generateExpectInlineSnapsCode(2, 'toMatchInlineSnapshot')
- },
- {
- filename: 'mock.jsx',
- code: generateExpectInlineSnapsCode(20, 'toMatchInlineSnapshot'),
- options: [
- {
- maxSize: 19,
- inlineMaxSize: 21
- }
- ]
- },
- {
- filename: 'mock.jsx',
- code: generateExpectInlineSnapsCode(60, 'toMatchInlineSnapshot'),
- options: [
- {
- maxSize: 61
- }
- ]
- },
- {
- // "it should not report snapshots that are allowed to be large"
- filename: '/mock-component.jsx.snap',
- code: generateExportsSnapshotString(58),
- options: [
- {
- allowedSnapshots: {
- '/mock-component.jsx.snap': ['a big component 1']
- }
- }
- ]
- }
- ],
- invalid: [
- {
- filename: 'mock.js',
- code: generateExpectInlineSnapsCode(50, 'toMatchInlineSnapshot'),
- errors: [
- {
- messageId: 'tooLongSnapShot',
- data: { lineLimit: 50, lineCount: 51 }
- }
- ]
- },
- {
- filename: 'mock.js',
- code: generateExpectInlineSnapsCode(
- 50,
- 'toThrowErrorMatchingInlineSnapshot'
- ),
- errors: [
- {
- messageId: 'tooLongSnapShot',
- data: { lineLimit: 50, lineCount: 51 }
- }
- ]
- },
- {
- filename: 'mock.js',
- code: generateExpectInlineSnapsCode(
- 50,
- 'toThrowErrorMatchingInlineSnapshot'
- ),
- options: [{ maxSize: 51, inlineMaxSize: 50 }],
- errors: [
- {
- messageId: 'tooLongSnapShot',
- data: { lineLimit: 50, lineCount: 51 }
- }
- ]
- },
- {
- // "should not report allowed large snapshots based on regexp"
- filename: '/mock-component.jsx.snap',
- code: [
- generateExportsSnapshotString(58, 'a big component w/ text'),
- generateExportsSnapshotString(58, 'a big component 2')
- ].join('\n\n'),
- options: [
- {
- allowedSnapshots: {
- '/mock-component.jsx.snap': [/a big component \d+/u]
- }
- }
- ],
- errors: [
- {
- messageId: 'tooLongSnapShot',
- data: { lineLimit: 50, lineCount: 58 }
- }
- ]
- }
- ]
- })
- })
+ it(RULE_NAME, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'expect(something)',
+ 'expect(something).toBe(1)',
+ 'expect(something).toMatchInlineSnapshot',
+ 'expect(something).toMatchInlineSnapshot()',
+ {
+ filename: 'mock.js',
+ code: generateExpectInlineSnapsCode(2, 'toMatchInlineSnapshot')
+ },
+ {
+ filename: 'mock.jsx',
+ code: generateExpectInlineSnapsCode(20, 'toMatchInlineSnapshot'),
+ options: [
+ {
+ maxSize: 19,
+ inlineMaxSize: 21
+ }
+ ]
+ },
+ {
+ filename: 'mock.jsx',
+ code: generateExpectInlineSnapsCode(60, 'toMatchInlineSnapshot'),
+ options: [
+ {
+ maxSize: 61
+ }
+ ]
+ },
+ {
+ // "it should not report snapshots that are allowed to be large"
+ filename: '/mock-component.jsx.snap',
+ code: generateExportsSnapshotString(58),
+ options: [
+ {
+ allowedSnapshots: {
+ '/mock-component.jsx.snap': ['a big component 1']
+ }
+ }
+ ]
+ }
+ ],
+ invalid: [
+ {
+ filename: 'mock.js',
+ code: generateExpectInlineSnapsCode(50, 'toMatchInlineSnapshot'),
+ errors: [
+ {
+ messageId: 'tooLongSnapShot',
+ data: { lineLimit: 50, lineCount: 51 }
+ }
+ ]
+ },
+ {
+ filename: 'mock.js',
+ code: generateExpectInlineSnapsCode(
+ 50,
+ 'toThrowErrorMatchingInlineSnapshot'
+ ),
+ errors: [
+ {
+ messageId: 'tooLongSnapShot',
+ data: { lineLimit: 50, lineCount: 51 }
+ }
+ ]
+ },
+ {
+ filename: 'mock.js',
+ code: generateExpectInlineSnapsCode(
+ 50,
+ 'toThrowErrorMatchingInlineSnapshot'
+ ),
+ options: [{ maxSize: 51, inlineMaxSize: 50 }],
+ errors: [
+ {
+ messageId: 'tooLongSnapShot',
+ data: { lineLimit: 50, lineCount: 51 }
+ }
+ ]
+ },
+ {
+ // "should not report allowed large snapshots based on regexp"
+ filename: '/mock-component.jsx.snap',
+ code: [
+ generateExportsSnapshotString(58, 'a big component w/ text'),
+ generateExportsSnapshotString(58, 'a big component 2')
+ ].join('\n\n'),
+ options: [
+ {
+ allowedSnapshots: {
+ '/mock-component.jsx.snap': [/a big component \d+/u]
+ }
+ }
+ ],
+ errors: [
+ {
+ messageId: 'tooLongSnapShot',
+ data: { lineLimit: 50, lineCount: 58 }
+ }
+ ]
+ }
+ ]
+ })
+ })
})
describe(RULE_NAME, () => {
- describe('when "allowedSnapshots" options contains relative paths', () => {
- it('should throw an exception', () => {
- expect(() => {
- const linter = new TSESLint.Linter()
+ describe('when "allowedSnapshots" options contains relative paths', () => {
+ it('should throw an exception', () => {
+ expect(() => {
+ const linter = new TSESLint.Linter()
- linter.defineRule(RULE_NAME, rule)
+ linter.defineRule(RULE_NAME, rule)
- linter.verify('console.log()', {
- rules: {
- 'no-large-snapshots': [
- 'error',
- {
- allowedSnapshots: {
- './mock-component.jsx.snap': [/a big component \d+/u]
- }
- }
- ]
- }
- },
- 'mock-component.jsx.snap'
- )
- }).toThrow('All paths for allowedSnapshots must be absolute. You can use JS config and `path.resolve`')
- })
- })
+ linter.verify(
+ 'console.log()',
+ {
+ rules: {
+ 'no-large-snapshots': [
+ 'error',
+ {
+ allowedSnapshots: {
+ './mock-component.jsx.snap': [/a big component \d+/u]
+ }
+ }
+ ]
+ }
+ },
+ 'mock-component.jsx.snap'
+ )
+ }).toThrow(
+ 'All paths for allowedSnapshots must be absolute. You can use JS config and `path.resolve`'
+ )
+ })
+ })
})
diff --git a/src/rules/no-mocks-import.test.ts b/src/rules/no-mocks-import.test.ts
index b4f0c1b..032706a 100644
--- a/src/rules/no-mocks-import.test.ts
+++ b/src/rules/no-mocks-import.test.ts
@@ -1,57 +1,53 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-mocks-import'
-const ruleTester: RuleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
-})
-
describe(RULE_NAME, () => {
- it(RULE_NAME, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'import something from "something"',
- 'require("somethingElse")',
- 'require("./__mocks__.js")',
- 'require("./__mocks__x")',
- 'require("./__mocks__x/x")',
- 'require("./x__mocks__")',
- 'require("./x__mocks__/x")',
- 'require()',
- 'var path = "./__mocks__.js"; require(path)',
- 'entirelyDifferent(fn)'
- ],
- invalid: [
- {
- code: 'require("./__mocks__")',
- errors: [{ endColumn: 22, column: 9, messageId: 'noMocksImport' }]
- },
- {
- code: 'require("./__mocks__/")',
- errors: [{ endColumn: 23, column: 9, messageId: 'noMocksImport' }]
- },
- {
- code: 'require("./__mocks__/index")',
- errors: [{ endColumn: 28, column: 9, messageId: 'noMocksImport' }]
- },
- {
- code: 'require("__mocks__")',
- errors: [{ endColumn: 20, column: 9, messageId: 'noMocksImport' }]
- },
- {
- code: 'require("__mocks__/")',
- errors: [{ endColumn: 21, column: 9, messageId: 'noMocksImport' }]
- },
- {
- code: 'require("__mocks__/index")',
- errors: [{ endColumn: 26, column: 9, messageId: 'noMocksImport' }]
- },
- {
- code: 'import thing from "./__mocks__/index"',
- parserOptions: { sourceType: 'module' },
- errors: [{ endColumn: 38, column: 1, messageId: 'noMocksImport' }]
- }
- ]
- })
- })
+ it(RULE_NAME, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'import something from "something"',
+ 'require("somethingElse")',
+ 'require("./__mocks__.js")',
+ 'require("./__mocks__x")',
+ 'require("./__mocks__x/x")',
+ 'require("./x__mocks__")',
+ 'require("./x__mocks__/x")',
+ 'require()',
+ 'var path = "./__mocks__.js"; require(path)',
+ 'entirelyDifferent(fn)'
+ ],
+ invalid: [
+ {
+ code: 'require("./__mocks__")',
+ errors: [{ endColumn: 22, column: 9, messageId: 'noMocksImport' }]
+ },
+ {
+ code: 'require("./__mocks__/")',
+ errors: [{ endColumn: 23, column: 9, messageId: 'noMocksImport' }]
+ },
+ {
+ code: 'require("./__mocks__/index")',
+ errors: [{ endColumn: 28, column: 9, messageId: 'noMocksImport' }]
+ },
+ {
+ code: 'require("__mocks__")',
+ errors: [{ endColumn: 20, column: 9, messageId: 'noMocksImport' }]
+ },
+ {
+ code: 'require("__mocks__/")',
+ errors: [{ endColumn: 21, column: 9, messageId: 'noMocksImport' }]
+ },
+ {
+ code: 'require("__mocks__/index")',
+ errors: [{ endColumn: 26, column: 9, messageId: 'noMocksImport' }]
+ },
+ {
+ code: 'import thing from "./__mocks__/index"',
+ parserOptions: { sourceType: 'module' },
+ errors: [{ endColumn: 38, column: 1, messageId: 'noMocksImport' }]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/no-restricted-matchers.test.ts b/src/rules/no-restricted-matchers.test.ts
index 7f663ec..8358dab 100644
--- a/src/rules/no-restricted-matchers.test.ts
+++ b/src/rules/no-restricted-matchers.test.ts
@@ -1,214 +1,210 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-restricted-matchers'
-const ruleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
-})
-
describe(RULE_NAME, () => {
- it(RULE_NAME, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'expect(a).toHaveBeenCalled()',
- 'expect(a).not.toHaveBeenCalled()',
- 'expect(a).toHaveBeenCalledTimes()',
- 'expect(a).toHaveBeenCalledWith()',
- 'expect(a).toHaveBeenLastCalledWith()',
- 'expect(a).toHaveBeenNthCalledWith()',
- 'expect(a).toHaveReturned()',
- 'expect(a).toHaveReturnedTimes()',
- 'expect(a).toHaveReturnedWith()',
- 'expect(a).toHaveLastReturnedWith()',
- 'expect(a).toHaveNthReturnedWith()',
- 'expect(a).toThrow()',
- 'expect(a).rejects;',
- 'expect(a);',
- {
- code: 'expect(a).resolves',
- options: [{ not: null }]
- },
- {
- code: 'expect(a).toBe(b)',
- options: [{ 'not.toBe': null }]
- },
- {
- code: 'expect(a).toBeUndefined(b)',
- options: [{ toBe: null }]
- },
- {
- code: 'expect(a)["toBe"](b)',
- options: [{ 'not.toBe': null }]
- },
- {
- code: 'expect(a).resolves.not.toBe(b)',
- options: [{ not: null }]
- },
- {
- code: 'expect(a).resolves.not.toBe(b)',
- options: [{ 'not.toBe': null }]
- }
- ],
- invalid: [
- {
- code: 'expect(a).not.toBe(b)',
- options: [{ not: null }],
- errors: [
- {
- messageId: 'restrictedChain',
- data: {
- message: null,
- restriction: 'not'
- },
- column: 11,
- line: 1
- }
- ]
- },
- {
- code: 'expect(a).resolves.toBe(b)',
- options: [{ resolves: null }],
- errors: [
- {
- messageId: 'restrictedChain',
- data: {
- message: null,
- restriction: 'resolves'
- },
- column: 11,
- line: 1
- }
- ]
- },
- {
- code: 'expect(a).resolves.not.toBe(b)',
- options: [{ resolves: null }],
- errors: [
- {
- messageId: 'restrictedChain',
- data: {
- message: null,
- restriction: 'resolves'
- },
- column: 11,
- line: 1
- }
- ]
- },
- {
- code: 'expect(a).resolves.not.toBe(b)',
- options: [{ 'resolves.not': null }],
- errors: [
- {
- messageId: 'restrictedChain',
- data: {
- message: null,
- restriction: 'resolves.not'
- },
- column: 11,
- line: 1
- }
- ]
- },
- {
- code: 'expect(a).not.toBe(b)',
- options: [{ 'not.toBe': null }],
- errors: [
- {
- messageId: 'restrictedChain',
- data: {
- message: null,
- restriction: 'not.toBe'
- },
- endColumn: 19,
- column: 11,
- line: 1
- }
- ]
- },
- {
- code: 'expect(a).resolves.not.toBe(b)',
- options: [{ 'resolves.not.toBe': null }],
- errors: [
- {
- messageId: 'restrictedChain',
- data: {
- message: null,
- restriction: 'resolves.not.toBe'
- },
- endColumn: 28,
- column: 11,
- line: 1
- }
- ]
- },
- {
- code: 'expect(a).toBe(b)',
- options: [{ toBe: 'Prefer `toStrictEqual` instead' }],
- errors: [
- {
- messageId: 'restrictedChainWithMessage',
- data: {
- message: 'Prefer `toStrictEqual` instead',
- restriction: 'toBe'
- },
- column: 11,
- line: 1
- }
- ]
- },
- {
- code: `
+ it(RULE_NAME, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'expect(a).toHaveBeenCalled()',
+ 'expect(a).not.toHaveBeenCalled()',
+ 'expect(a).toHaveBeenCalledTimes()',
+ 'expect(a).toHaveBeenCalledWith()',
+ 'expect(a).toHaveBeenLastCalledWith()',
+ 'expect(a).toHaveBeenNthCalledWith()',
+ 'expect(a).toHaveReturned()',
+ 'expect(a).toHaveReturnedTimes()',
+ 'expect(a).toHaveReturnedWith()',
+ 'expect(a).toHaveLastReturnedWith()',
+ 'expect(a).toHaveNthReturnedWith()',
+ 'expect(a).toThrow()',
+ 'expect(a).rejects;',
+ 'expect(a);',
+ {
+ code: 'expect(a).resolves',
+ options: [{ not: null }]
+ },
+ {
+ code: 'expect(a).toBe(b)',
+ options: [{ 'not.toBe': null }]
+ },
+ {
+ code: 'expect(a).toBeUndefined(b)',
+ options: [{ toBe: null }]
+ },
+ {
+ code: 'expect(a)["toBe"](b)',
+ options: [{ 'not.toBe': null }]
+ },
+ {
+ code: 'expect(a).resolves.not.toBe(b)',
+ options: [{ not: null }]
+ },
+ {
+ code: 'expect(a).resolves.not.toBe(b)',
+ options: [{ 'not.toBe': null }]
+ }
+ ],
+ invalid: [
+ {
+ code: 'expect(a).not.toBe(b)',
+ options: [{ not: null }],
+ errors: [
+ {
+ messageId: 'restrictedChain',
+ data: {
+ message: null,
+ restriction: 'not'
+ },
+ column: 11,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'expect(a).resolves.toBe(b)',
+ options: [{ resolves: null }],
+ errors: [
+ {
+ messageId: 'restrictedChain',
+ data: {
+ message: null,
+ restriction: 'resolves'
+ },
+ column: 11,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'expect(a).resolves.not.toBe(b)',
+ options: [{ resolves: null }],
+ errors: [
+ {
+ messageId: 'restrictedChain',
+ data: {
+ message: null,
+ restriction: 'resolves'
+ },
+ column: 11,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'expect(a).resolves.not.toBe(b)',
+ options: [{ 'resolves.not': null }],
+ errors: [
+ {
+ messageId: 'restrictedChain',
+ data: {
+ message: null,
+ restriction: 'resolves.not'
+ },
+ column: 11,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'expect(a).not.toBe(b)',
+ options: [{ 'not.toBe': null }],
+ errors: [
+ {
+ messageId: 'restrictedChain',
+ data: {
+ message: null,
+ restriction: 'not.toBe'
+ },
+ endColumn: 19,
+ column: 11,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'expect(a).resolves.not.toBe(b)',
+ options: [{ 'resolves.not.toBe': null }],
+ errors: [
+ {
+ messageId: 'restrictedChain',
+ data: {
+ message: null,
+ restriction: 'resolves.not.toBe'
+ },
+ endColumn: 28,
+ column: 11,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'expect(a).toBe(b)',
+ options: [{ toBe: 'Prefer `toStrictEqual` instead' }],
+ errors: [
+ {
+ messageId: 'restrictedChainWithMessage',
+ data: {
+ message: 'Prefer `toStrictEqual` instead',
+ restriction: 'toBe'
+ },
+ column: 11,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: `
test('some test', async () => {
await expect(Promise.resolve(1)).resolves.toBe(1);
});
`,
- options: [{ resolves: 'Use `expect(await promise)` instead.' }],
- errors: [
- {
- messageId: 'restrictedChainWithMessage',
- data: {
- message: 'Use `expect(await promise)` instead.',
- restriction: 'resolves'
- },
- endColumn: 53,
- column: 40
- }
- ]
- },
- {
- code: 'expect(Promise.resolve({})).rejects.toBeFalsy()',
- options: [{ 'rejects.toBeFalsy': null }],
- errors: [
- {
- messageId: 'restrictedChain',
- data: {
- message: null,
- restriction: 'rejects.toBeFalsy'
- },
- endColumn: 46,
- column: 29
- }
- ]
- },
- {
- code: 'expect(uploadFileMock).not.toHaveBeenCalledWith(\'file.name\')',
- options: [
- { 'not.toHaveBeenCalledWith': 'Use not.toHaveBeenCalled instead' }
- ],
- errors: [
- {
- messageId: 'restrictedChainWithMessage',
- data: {
- message: 'Use not.toHaveBeenCalled instead',
- restriction: 'not.toHaveBeenCalledWith'
- },
- endColumn: 48,
- column: 24
- }
- ]
- }
- ]
- })
- })
+ options: [{ resolves: 'Use `expect(await promise)` instead.' }],
+ errors: [
+ {
+ messageId: 'restrictedChainWithMessage',
+ data: {
+ message: 'Use `expect(await promise)` instead.',
+ restriction: 'resolves'
+ },
+ endColumn: 53,
+ column: 40
+ }
+ ]
+ },
+ {
+ code: 'expect(Promise.resolve({})).rejects.toBeFalsy()',
+ options: [{ 'rejects.toBeFalsy': null }],
+ errors: [
+ {
+ messageId: 'restrictedChain',
+ data: {
+ message: null,
+ restriction: 'rejects.toBeFalsy'
+ },
+ endColumn: 46,
+ column: 29
+ }
+ ]
+ },
+ {
+ code: 'expect(uploadFileMock).not.toHaveBeenCalledWith(\'file.name\')',
+ options: [
+ { 'not.toHaveBeenCalledWith': 'Use not.toHaveBeenCalled instead' }
+ ],
+ errors: [
+ {
+ messageId: 'restrictedChainWithMessage',
+ data: {
+ message: 'Use not.toHaveBeenCalled instead',
+ restriction: 'not.toHaveBeenCalledWith'
+ },
+ endColumn: 48,
+ column: 24
+ }
+ ]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/no-restricted-vi-methods.test.ts b/src/rules/no-restricted-vi-methods.test.ts
index 2d66c8b..5cb1430 100644
--- a/src/rules/no-restricted-vi-methods.test.ts
+++ b/src/rules/no-restricted-vi-methods.test.ts
@@ -1,84 +1,89 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { it } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './no-restricted-vi-methods'
it(RULE_NAME, () => {
- const ruleTester: RuleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'vi',
- 'vi()',
- 'vi.mock()',
- 'expect(a).rejects;',
- 'expect(a);',
- {
- code: `
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'vi',
+ 'vi()',
+ 'vi.mock()',
+ 'expect(a).rejects;',
+ 'expect(a);',
+ {
+ code: `
import { vi } from 'vitest';
vi;
`,
- parserOptions: { sourceType: 'module' }
- }
- ],
+ parserOptions: { sourceType: 'module' }
+ }
+ ],
- invalid: [
- {
- code: 'vi.fn()',
- options: [{ fn: null }],
- errors: [{
- messageId: 'restrictedViMethod',
- data: {
- message: null,
- restriction: 'fn'
- },
- column: 4,
- line: 1
- }]
- },
- {
- code: 'vi.mock()',
- options: [{ mock: 'Do not use mocks' }],
- errors: [{
- messageId: 'restrictedViMethodWithMessage',
- data: {
- message: 'Do not use mocks',
- restriction: 'mock'
- },
- column: 4,
- line: 1
- }]
- },
- {
- code: `
+ invalid: [
+ {
+ code: 'vi.fn()',
+ options: [{ fn: null }],
+ errors: [
+ {
+ messageId: 'restrictedViMethod',
+ data: {
+ message: null,
+ restriction: 'fn'
+ },
+ column: 4,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'vi.mock()',
+ options: [{ mock: 'Do not use mocks' }],
+ errors: [
+ {
+ messageId: 'restrictedViMethodWithMessage',
+ data: {
+ message: 'Do not use mocks',
+ restriction: 'mock'
+ },
+ column: 4,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: `
import { vi } from 'vitest';
vi.advanceTimersByTime();
`,
- options: [{ advanceTimersByTime: null }],
- parserOptions: { sourceType: 'module' },
- errors: [{
- messageId: 'restrictedViMethod',
- data: {
- message: null,
- restriction: 'advanceTimersByTime'
- },
- column: 9,
- line: 3
- }]
- },
- {
- code: 'vi["fn"]()',
- options: [{ fn: null }],
- errors: [{
- messageId: 'restrictedViMethod',
- data: {
- message: null,
- restriction: 'fn'
- },
- column: 4,
- line: 1
- }]
- }
- ]
- })
+ options: [{ advanceTimersByTime: null }],
+ parserOptions: { sourceType: 'module' },
+ errors: [
+ {
+ messageId: 'restrictedViMethod',
+ data: {
+ message: null,
+ restriction: 'advanceTimersByTime'
+ },
+ column: 9,
+ line: 3
+ }
+ ]
+ },
+ {
+ code: 'vi["fn"]()',
+ options: [{ fn: null }],
+ errors: [
+ {
+ messageId: 'restrictedViMethod',
+ data: {
+ message: null,
+ restriction: 'fn'
+ },
+ column: 4,
+ line: 1
+ }
+ ]
+ }
+ ]
+ })
})
diff --git a/src/rules/prefer-lowercase-title.test.ts b/src/rules/prefer-lowercase-title.test.ts
index 0873cc2..142aba7 100644
--- a/src/rules/prefer-lowercase-title.test.ts
+++ b/src/rules/prefer-lowercase-title.test.ts
@@ -1,63 +1,62 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { describe, it } from 'vitest'
import { TestCaseName } from '../utils/types'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './prefer-lowercase-title'
describe(RULE_NAME, () => {
- it(RULE_NAME, () => {
- const ruleTester: RuleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'it.each()',
- 'it.each()(1)',
- 'it.todo();',
- 'describe("oo", function () {})',
- 'test("foo", function () {})',
- 'test(`123`, function () {})'
- ],
- invalid: [
- {
- code: 'it("Foo MM mm", function () {})',
- output: 'it("foo MM mm", function () {})',
- errors: [
- {
- messageId: 'lowerCaseTitle',
- data: {
- method: TestCaseName.it
- }
- }
- ]
- },
- {
- code: 'test(`Foo MM mm`, function () {})',
- output: 'test(`foo MM mm`, function () {})',
- errors: [
- {
- messageId: 'lowerCaseTitle',
- data: {
- method: TestCaseName.test
- }
- }
- ]
- },
- {
- code: 'test(`SFC Compile`, function () {})',
- output: 'test(`sfc compile`, function () {})',
- errors: [
- {
- messageId: 'lowerCaseTitle',
- data: {
- method: TestCaseName.test
- }
- }
- ],
- options: [{
- lowercaseFirstCharacterOnly: false
- }]
- }
- ]
- })
- })
+ it(RULE_NAME, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'it.each()',
+ 'it.each()(1)',
+ 'it.todo();',
+ 'describe("oo", function () {})',
+ 'test("foo", function () {})',
+ 'test(`123`, function () {})'
+ ],
+ invalid: [
+ {
+ code: 'it("Foo MM mm", function () {})',
+ output: 'it("foo MM mm", function () {})',
+ errors: [
+ {
+ messageId: 'lowerCaseTitle',
+ data: {
+ method: TestCaseName.it
+ }
+ }
+ ]
+ },
+ {
+ code: 'test(`Foo MM mm`, function () {})',
+ output: 'test(`foo MM mm`, function () {})',
+ errors: [
+ {
+ messageId: 'lowerCaseTitle',
+ data: {
+ method: TestCaseName.test
+ }
+ }
+ ]
+ },
+ {
+ code: 'test(`SFC Compile`, function () {})',
+ output: 'test(`sfc compile`, function () {})',
+ errors: [
+ {
+ messageId: 'lowerCaseTitle',
+ data: {
+ method: TestCaseName.test
+ }
+ }
+ ],
+ options: [
+ {
+ lowercaseFirstCharacterOnly: false
+ }
+ ]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/prefer-to-be.test.ts b/src/rules/prefer-to-be.test.ts
index cf72208..4830dbd 100644
--- a/src/rules/prefer-to-be.test.ts
+++ b/src/rules/prefer-to-be.test.ts
@@ -1,122 +1,118 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
import { it, describe } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './prefer-to-be'
describe(RULE_NAME, () => {
- const ruleTester: RuleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
- })
+ it(`${RULE_NAME} toBe`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'expect(null).toBeNull();',
+ 'expect(null).not.toBeNull();',
+ 'expect(null).toBe(1);',
+ 'expect(null).toBe(-1);',
+ 'expect(null).toBe(1);',
+ 'expect(obj).toStrictEqual([ x, 1 ]);',
+ 'expect(obj).toStrictEqual({ x: 1 });',
+ 'expect(obj).not.toStrictEqual({ x: 1 });',
+ 'expect(value).toMatchSnapshot();',
+ 'expect(catchError()).toStrictEqual({ message: \'oh noes!\' })',
+ 'expect("something");',
+ 'expect(token).toStrictEqual(/[abc]+/g);',
+ 'expect(token).toStrictEqual(new RegExp(\'[abc]+\', \'g\'));',
+ 'expect(0.1 + 0.2).toEqual(0.3);'
+ ],
+ invalid: [
+ {
+ code: 'expect(value).toEqual("my string");',
+ output: 'expect(value).toBe("my string");',
+ errors: [{ messageId: 'useToBe' }]
+ },
+ {
+ code: 'expect("a string").not.toEqual(null);',
+ output: 'expect("a string").not.toBeNull();',
+ errors: [{ messageId: 'useToBeNull', column: 24, line: 1 }]
+ },
+ {
+ code: 'expect("a string").not.toStrictEqual(null);',
+ output: 'expect("a string").not.toBeNull();',
+ errors: [{ messageId: 'useToBeNull', column: 24, line: 1 }]
+ }
+ ]
+ })
+ })
- it(`${RULE_NAME} toBe`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'expect(null).toBeNull();',
- 'expect(null).not.toBeNull();',
- 'expect(null).toBe(1);',
- 'expect(null).toBe(-1);',
- 'expect(null).toBe(1);',
- 'expect(obj).toStrictEqual([ x, 1 ]);',
- 'expect(obj).toStrictEqual({ x: 1 });',
- 'expect(obj).not.toStrictEqual({ x: 1 });',
- 'expect(value).toMatchSnapshot();',
- 'expect(catchError()).toStrictEqual({ message: \'oh noes!\' })',
- 'expect("something");',
- 'expect(token).toStrictEqual(/[abc]+/g);',
- 'expect(token).toStrictEqual(new RegExp(\'[abc]+\', \'g\'));',
- 'expect(0.1 + 0.2).toEqual(0.3);'
- ],
- invalid: [
- {
- code: 'expect(value).toEqual("my string");',
- output: 'expect(value).toBe("my string");',
- errors: [{ messageId: 'useToBe' }]
- },
- {
- code: 'expect("a string").not.toEqual(null);',
- output: 'expect("a string").not.toBeNull();',
- errors: [{ messageId: 'useToBeNull', column: 24, line: 1 }]
- },
- {
- code: 'expect("a string").not.toStrictEqual(null);',
- output: 'expect("a string").not.toBeNull();',
- errors: [{ messageId: 'useToBeNull', column: 24, line: 1 }]
- }
- ]
- })
- })
+ it(`${RULE_NAME} NaN`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'expect(NaN).toBeNaN();',
+ 'expect(true).not.toBeNaN();',
+ 'expect({}).toEqual({});',
+ 'expect(something).toBe()',
+ 'expect(something).toBe(somethingElse)',
+ 'expect(something).toEqual(somethingElse)',
+ 'expect(something).not.toBe(somethingElse)',
+ 'expect(something).not.toEqual(somethingElse)',
+ 'expect(undefined).toBe',
+ 'expect("something");'
+ ],
+ invalid: [
+ {
+ code: 'expect(NaN).toBe(NaN);',
+ output: 'expect(NaN).toBeNaN();',
+ errors: [{ messageId: 'useToBeNaN', column: 13, line: 1 }]
+ },
+ {
+ code: 'expect("a string").not.toBe(NaN);',
+ output: 'expect("a string").not.toBeNaN();',
+ errors: [{ messageId: 'useToBeNaN', column: 24, line: 1 }]
+ },
+ {
+ code: 'expect("a string").not.toStrictEqual(NaN);',
+ output: 'expect("a string").not.toBeNaN();',
+ errors: [{ messageId: 'useToBeNaN', column: 24, line: 1 }]
+ }
+ ]
+ })
+ })
- it(`${RULE_NAME} NaN`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'expect(NaN).toBeNaN();',
- 'expect(true).not.toBeNaN();',
- 'expect({}).toEqual({});',
- 'expect(something).toBe()',
- 'expect(something).toBe(somethingElse)',
- 'expect(something).toEqual(somethingElse)',
- 'expect(something).not.toBe(somethingElse)',
- 'expect(something).not.toEqual(somethingElse)',
- 'expect(undefined).toBe',
- 'expect("something");'
- ],
- invalid: [
- {
- code: 'expect(NaN).toBe(NaN);',
- output: 'expect(NaN).toBeNaN();',
- errors: [{ messageId: 'useToBeNaN', column: 13, line: 1 }]
- },
- {
- code: 'expect("a string").not.toBe(NaN);',
- output: 'expect("a string").not.toBeNaN();',
- errors: [{ messageId: 'useToBeNaN', column: 24, line: 1 }]
- },
- {
- code: 'expect("a string").not.toStrictEqual(NaN);',
- output: 'expect("a string").not.toBeNaN();',
- errors: [{ messageId: 'useToBeNaN', column: 24, line: 1 }]
- }
- ]
- })
- })
-
- it(`${RULE_NAME} null`, () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'expect(null).toBeNull();',
- 'expect(null).not.toBeNull();',
- 'expect(null).toBe(1);',
- 'expect(obj).toStrictEqual([ x, 1 ]);',
- 'expect(obj).toStrictEqual({ x: 1 });',
- 'expect(obj).not.toStrictEqual({ x: 1 });'
- ],
- invalid: [
- {
- code: 'expect(null).toBe(null);',
- output: 'expect(null).toBeNull();',
- errors: [{ messageId: 'useToBeNull', column: 14, line: 1 }]
- },
- {
- code: 'expect(null).toEqual(null);',
- output: 'expect(null).toBeNull();',
- parserOptions: { ecmaVersion: 2017 },
- errors: [{ messageId: 'useToBeNull', column: 14, line: 1 }]
- },
- {
- code: 'expect("a string").not.toEqual(null as number);',
- output: 'expect("a string").not.toBeNull();',
- errors: [{ messageId: 'useToBeNull', column: 24, line: 1 }]
- },
- {
- code: 'expect(undefined).toBe(undefined as unknown as string as any);',
- output: 'expect(undefined).toBeUndefined();',
- errors: [{ messageId: 'useToBeUndefined', column: 19, line: 1 }]
- },
- {
- code: 'expect("a string").toEqual(undefined as number);',
- output: 'expect("a string").toBeUndefined();',
- errors: [{ messageId: 'useToBeUndefined', column: 20, line: 1 }]
- }
- ]
- })
- })
+ it(`${RULE_NAME} null`, () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'expect(null).toBeNull();',
+ 'expect(null).not.toBeNull();',
+ 'expect(null).toBe(1);',
+ 'expect(obj).toStrictEqual([ x, 1 ]);',
+ 'expect(obj).toStrictEqual({ x: 1 });',
+ 'expect(obj).not.toStrictEqual({ x: 1 });'
+ ],
+ invalid: [
+ {
+ code: 'expect(null).toBe(null);',
+ output: 'expect(null).toBeNull();',
+ errors: [{ messageId: 'useToBeNull', column: 14, line: 1 }]
+ },
+ {
+ code: 'expect(null).toEqual(null);',
+ output: 'expect(null).toBeNull();',
+ parserOptions: { ecmaVersion: 2017 },
+ errors: [{ messageId: 'useToBeNull', column: 14, line: 1 }]
+ },
+ {
+ code: 'expect("a string").not.toEqual(null as number);',
+ output: 'expect("a string").not.toBeNull();',
+ errors: [{ messageId: 'useToBeNull', column: 24, line: 1 }]
+ },
+ {
+ code: 'expect(undefined).toBe(undefined as unknown as string as any);',
+ output: 'expect(undefined).toBeUndefined();',
+ errors: [{ messageId: 'useToBeUndefined', column: 19, line: 1 }]
+ },
+ {
+ code: 'expect("a string").toEqual(undefined as number);',
+ output: 'expect("a string").toBeUndefined();',
+ errors: [{ messageId: 'useToBeUndefined', column: 20, line: 1 }]
+ }
+ ]
+ })
+ })
})
diff --git a/src/rules/valid-expect.test.ts b/src/rules/valid-expect.test.ts
index 72da790..47ed855 100644
--- a/src/rules/valid-expect.test.ts
+++ b/src/rules/valid-expect.test.ts
@@ -1,71 +1,66 @@
-import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
-import { describe, test } from 'vitest'
+import { ruleTester } from '../utils/test'
import rule, { RULE_NAME } from './valid-expect'
-const ruleTester: RuleTester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser')
-})
-
-describe(RULE_NAME, () => {
- test(RULE_NAME + ' in promise', () => {
- ruleTester.run(RULE_NAME, rule, {
- valid: [
- 'expect.hasAssertions',
- 'expect.hasAssertions()',
- 'expect("something").toEqual("else");',
- 'expect(true).toBeDefined();',
- 'expect([1, 2, 3]).toEqual([1, 2, 3]);',
- 'expect(undefined).not.toBeDefined();',
- 'test("valid-expect", () => { return expect(Promise.resolve(2)).resolves.toBeDefined(); });',
- 'test("valid-expect", () => { return expect(Promise.reject(2)).rejects.toBeDefined(); });',
- 'test("valid-expect", () => { return expect(Promise.resolve(2)).resolves.not.toBeDefined(); });',
- 'test("valid-expect", () => { return expect(Promise.resolve(2)).rejects.not.toBeDefined(); });',
- 'test("valid-expect", function () { return expect(Promise.resolve(2)).resolves.not.toBeDefined(); });',
- 'test("valid-expect", function () { return expect(Promise.resolve(2)).rejects.not.toBeDefined(); });',
- 'test("valid-expect", function () { return Promise.resolve(expect(Promise.resolve(2)).resolves.not.toBeDefined()); });',
- 'test("valid-expect", function () { return Promise.resolve(expect(Promise.resolve(2)).rejects.not.toBeDefined()); });',
- 'test("valid-expect", () => expect(Promise.resolve(2)).resolves.toBeDefined());',
- 'test("valid-expect", () => expect(Promise.resolve(2)).resolves.toBeDefined());',
- 'test("valid-expect", () => expect(Promise.reject(2)).rejects.toBeDefined());',
- 'test("valid-expect", () => expect(Promise.reject(2)).resolves.not.toBeDefined());',
- 'test("valid-expect", () => expect(Promise.reject(2)).rejects.not.toBeDefined());',
- 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined(); });',
- 'test("valid-expect", async () => { await expect(Promise.reject(2)).rejects.not.toBeDefined(); });',
- 'test("valid-expect", async function () { await expect(Promise.reject(2)).resolves.not.toBeDefined(); });',
- 'test("valid-expect", async function () { await expect(Promise.reject(2)).rejects.not.toBeDefined(); });',
- 'test("valid-expect", async () => { await Promise.resolve(expect(Promise.reject(2)).rejects.not.toBeDefined()); });',
- 'test("valid-expect", async () => { await Promise.reject(expect(Promise.reject(2)).rejects.not.toBeDefined()); });',
- 'test("valid-expect", async () => { await Promise.all([expect(Promise.reject(2)).rejects.not.toBeDefined(), expect(Promise.reject(2)).rejects.not.toBeDefined()]); });',
- 'test("valid-expect", async () => { await Promise.race([expect(Promise.reject(2)).rejects.not.toBeDefined(), expect(Promise.reject(2)).rejects.not.toBeDefined()]); });',
- 'test("valid-expect", async () => { await Promise.allSettled([expect(Promise.reject(2)).rejects.not.toBeDefined(), expect(Promise.reject(2)).rejects.not.toBeDefined()]); });',
- 'test("valid-expect", async () => { await Promise.any([expect(Promise.reject(2)).rejects.not.toBeDefined(), expect(Promise.reject(2)).rejects.not.toBeDefined()]); });',
- 'test("valid-expect", async () => { return expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")); });',
- 'test("valid-expect", async () => { return expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")).then(() => console.log("another valid case")); });',
- 'test("valid-expect", async () => { return expect(Promise.reject(2)).resolves.not.toBeDefined().catch(() => console.log("valid-case")); });',
- 'test("valid-expect", async () => { return expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")).catch(() => console.log("another valid case")); });',
- 'test("valid-expect", async () => { return expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => { expect(someMock).toHaveBeenCalledTimes(1); }); });',
- 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")); });',
- 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")).then(() => console.log("another valid case")); });',
- 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined().catch(() => console.log("valid-case")); });',
- 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")).catch(() => console.log("another valid case")); });',
- 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => { expect(someMock).toHaveBeenCalledTimes(1); }); });',
- ` test("valid-expect", () => {
+// describe(RULE_NAME, () => {
+// test(RULE_NAME + ' in promise', () => {
+ ruleTester.run(RULE_NAME, rule, {
+ valid: [
+ 'expect.hasAssertions',
+ 'expect.hasAssertions()',
+ 'expect("something").toEqual("else");',
+ 'expect(true).toBeDefined();',
+ 'expect([1, 2, 3]).toEqual([1, 2, 3]);',
+ 'expect(undefined).not.toBeDefined();',
+ 'test("valid-expect", () => { return expect(Promise.resolve(2)).resolves.toBeDefined(); });',
+ 'test("valid-expect", () => { return expect(Promise.reject(2)).rejects.toBeDefined(); });',
+ 'test("valid-expect", () => { return expect(Promise.resolve(2)).resolves.not.toBeDefined(); });',
+ 'test("valid-expect", () => { return expect(Promise.resolve(2)).rejects.not.toBeDefined(); });',
+ 'test("valid-expect", function () { return expect(Promise.resolve(2)).resolves.not.toBeDefined(); });',
+ 'test("valid-expect", function () { return expect(Promise.resolve(2)).rejects.not.toBeDefined(); });',
+ 'test("valid-expect", function () { return Promise.resolve(expect(Promise.resolve(2)).resolves.not.toBeDefined()); });',
+ 'test("valid-expect", function () { return Promise.resolve(expect(Promise.resolve(2)).rejects.not.toBeDefined()); });',
+ 'test("valid-expect", () => expect(Promise.resolve(2)).resolves.toBeDefined());',
+ 'test("valid-expect", () => expect(Promise.resolve(2)).resolves.toBeDefined());',
+ 'test("valid-expect", () => expect(Promise.reject(2)).rejects.toBeDefined());',
+ 'test("valid-expect", () => expect(Promise.reject(2)).resolves.not.toBeDefined());',
+ 'test("valid-expect", () => expect(Promise.reject(2)).rejects.not.toBeDefined());',
+ 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined(); });',
+ 'test("valid-expect", async () => { await expect(Promise.reject(2)).rejects.not.toBeDefined(); });',
+ 'test("valid-expect", async function () { await expect(Promise.reject(2)).resolves.not.toBeDefined(); });',
+ 'test("valid-expect", async function () { await expect(Promise.reject(2)).rejects.not.toBeDefined(); });',
+ 'test("valid-expect", async () => { await Promise.resolve(expect(Promise.reject(2)).rejects.not.toBeDefined()); });',
+ 'test("valid-expect", async () => { await Promise.reject(expect(Promise.reject(2)).rejects.not.toBeDefined()); });',
+ 'test("valid-expect", async () => { await Promise.all([expect(Promise.reject(2)).rejects.not.toBeDefined(), expect(Promise.reject(2)).rejects.not.toBeDefined()]); });',
+ 'test("valid-expect", async () => { await Promise.race([expect(Promise.reject(2)).rejects.not.toBeDefined(), expect(Promise.reject(2)).rejects.not.toBeDefined()]); });',
+ 'test("valid-expect", async () => { await Promise.allSettled([expect(Promise.reject(2)).rejects.not.toBeDefined(), expect(Promise.reject(2)).rejects.not.toBeDefined()]); });',
+ 'test("valid-expect", async () => { await Promise.any([expect(Promise.reject(2)).rejects.not.toBeDefined(), expect(Promise.reject(2)).rejects.not.toBeDefined()]); });',
+ 'test("valid-expect", async () => { return expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")); });',
+ 'test("valid-expect", async () => { return expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")).then(() => console.log("another valid case")); });',
+ 'test("valid-expect", async () => { return expect(Promise.reject(2)).resolves.not.toBeDefined().catch(() => console.log("valid-case")); });',
+ 'test("valid-expect", async () => { return expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")).catch(() => console.log("another valid case")); });',
+ 'test("valid-expect", async () => { return expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => { expect(someMock).toHaveBeenCalledTimes(1); }); });',
+ 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")); });',
+ 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")).then(() => console.log("another valid case")); });',
+ 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined().catch(() => console.log("valid-case")); });',
+ 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => console.log("valid-case")).catch(() => console.log("another valid case")); });',
+ 'test("valid-expect", async () => { await expect(Promise.reject(2)).resolves.not.toBeDefined().then(() => { expect(someMock).toHaveBeenCalledTimes(1); }); });',
+ ` test("valid-expect", () => {
return expect(functionReturningAPromise()).resolves.toEqual(1).then(() => {
return expect(Promise.resolve(2)).resolves.toBe(1);
});
});
`,
- ` test("valid-expect", () => {
+ ` test("valid-expect", () => {
return expect(functionReturningAPromise()).resolves.toEqual(1).then(async () => {
await expect(Promise.resolve(2)).resolves.toBe(1);
});
});
`,
- ` test("valid-expect", () => {
+ ` test("valid-expect", () => {
return expect(functionReturningAPromise()).resolves.toEqual(1).then(() => expect(Promise.resolve(2)).resolves.toBe(1));
});
`,
- ` expect.extend({
+ ` expect.extend({
toResolve(obj) {
return this.isNot
? expect(obj).toBe(true)
@@ -73,7 +68,7 @@ describe(RULE_NAME, () => {
}
});
`,
- ` expect.extend({
+ ` expect.extend({
toResolve(obj) {
return this.isNot
? expect(obj).resolves.not.toThrow()
@@ -81,7 +76,7 @@ describe(RULE_NAME, () => {
}
});
`,
- ` expect.extend({
+ ` expect.extend({
toResolve(obj) {
return this.isNot
? expect(obj).toBe(true)
@@ -91,314 +86,314 @@ describe(RULE_NAME, () => {
}
});
`,
- {
- code: 'expect(1).toBe(2);',
- options: [{ maxArgs: 2 }]
- },
- {
- code: 'expect(1, "1 !== 2").toBe(2);',
- options: [{ maxArgs: 2 }]
- },
- {
- code: 'test("valid-expect", () => { expect(2).not.toBe(2); });',
- options: [{ asyncMatchers: ['toRejectWith'] }]
- },
- {
- code: 'test("valid-expect", () => { expect(Promise.reject(2)).toRejectWith(2); });',
- options: [{ asyncMatchers: ['toResolveWith'] }]
- },
- {
- code: 'test("valid-expect", async () => { await expect(Promise.resolve(2)).toResolve(); });',
- options: [{ asyncMatchers: ['toResolveWith'] }]
- },
- {
- code: 'test("valid-expect", async () => { expect(Promise.resolve(2)).toResolve(); });',
- options: [{ asyncMatchers: ['toResolveWith'] }]
- }
- ],
- invalid: [
- {
- code: 'expect().toBe(2);',
- options: [{ minArgs: undefined, maxArgs: undefined }],
- errors: [
- {
- messageId: 'notEnoughArgs',
- data: {
- s: '',
- amount: 1
- }
- }
- ]
- },
- {
- code: 'expect().toBe(true);',
- errors: [
- {
- endColumn: 8,
- column: 7,
- messageId: 'notEnoughArgs',
- data: {
- s: '',
- amount: 1
- }
- }
- ]
- },
- {
- code: 'expect().toEqual("something");',
- errors: [
- {
- endColumn: 8,
- column: 7,
- messageId: 'notEnoughArgs',
- data: {
- s: '',
- amount: 1
- }
- }
- ]
- },
- {
- code: 'expect("something", "else").toEqual("something");',
- errors: [
- {
- endColumn: 28,
- column: 21,
- messageId: 'tooManyArgs',
- data: {
- s: '',
- amount: 1
- }
- }
- ]
- },
- {
- code: 'expect("something", "else", "entirely").toEqual("something");',
- options: [{ maxArgs: 2 }],
- errors: [
- {
- endColumn: 40,
- column: 29,
- messageId: 'tooManyArgs',
- data: {
- s: 's',
- amount: 2
- }
- }
- ]
- },
- {
- code: 'expect("something", "else", "entirely").toEqual("something");',
- options: [{ maxArgs: 2, minArgs: 2 }],
- errors: [
- {
- endColumn: 40,
- column: 29,
- messageId: 'tooManyArgs',
- data: {
- s: 's',
- amount: 2
- }
- }
- ]
- },
- {
- code: 'expect("something", "else", "entirely").toEqual("something");',
- options: [{ maxArgs: 2, minArgs: 1 }],
- errors: [
- {
- endColumn: 40,
- column: 29,
- messageId: 'tooManyArgs',
- data: {
- s: 's',
- amount: 2
- }
- }
- ]
- },
- {
- code: 'expect("something").toEqual("something");',
- options: [{ minArgs: 2 }],
- errors: [
- {
- endColumn: 8,
- column: 7,
- messageId: 'notEnoughArgs',
- data: {
- s: 's',
- amount: 2
- }
- }
- ]
- },
- {
- code: 'expect("something", "else").toEqual("something");',
- options: [{ maxArgs: 1, minArgs: 3 }],
- errors: [
- {
- endColumn: 8,
- column: 7,
- messageId: 'notEnoughArgs',
- data: {
- s: 's',
- amount: 3
- }
- },
- {
- endColumn: 28,
- column: 21,
- messageId: 'tooManyArgs',
- data: {
- s: '',
- amount: 1
- }
- }
- ]
- },
- {
- code: 'expect("something");',
- errors: [{ endColumn: 20, column: 1, messageId: 'matcherNotFound' }]
- },
- {
- code: 'expect();',
- errors: [{ endColumn: 9, column: 1, messageId: 'matcherNotFound' }]
- },
- {
- code: 'expect(true).toBeDefined;',
- errors: [
- {
- endColumn: 25,
- column: 14,
- messageId: 'matcherNotCalled'
- }
- ]
- },
- {
- code: 'expect(true).not.toBeDefined;',
- errors: [
- {
- endColumn: 29,
- column: 18,
- messageId: 'matcherNotCalled'
- }
- ]
- },
- {
- code: 'expect(true).nope.toBeDefined;',
- errors: [
- {
- endColumn: 30,
- column: 19,
- messageId: 'matcherNotCalled'
- }
- ]
- },
- {
- code: 'expect(true).nope.toBeDefined();',
- errors: [
- {
- endColumn: 32,
- column: 1,
- messageId: 'modifierUnknown'
- }
- ]
- },
- {
- code: 'expect(true).not.resolves.toBeDefined();',
- errors: [
- {
- endColumn: 40,
- column: 1,
- messageId: 'modifierUnknown'
- }
- ]
- },
- {
- code: 'expect(true).not.not.toBeDefined();',
- errors: [
- {
- endColumn: 35,
- column: 1,
- messageId: 'modifierUnknown'
- }
- ]
- },
- {
- code: 'expect(true).resolves.not.exactly.toBeDefined();',
- errors: [
- {
- endColumn: 48,
- column: 1,
- messageId: 'modifierUnknown'
- }
- ]
- },
- {
- code: 'expect(true).resolves;',
- errors: [
- {
- endColumn: 22,
- column: 14,
- messageId: 'matcherNotFound'
- }
- ]
- },
- {
- code: 'expect(true).rejects;',
- errors: [
- {
- endColumn: 21,
- column: 14,
- messageId: 'matcherNotFound'
- }
- ]
- },
- {
- code: 'expect(true).not;',
- errors: [
- {
- endColumn: 17,
- column: 14,
- messageId: 'matcherNotFound'
- }
- ]
- },
- {
- code: 'expect(Promise.resolve(2)).resolves.toBeDefined();',
- errors: [
- {
- column: 1,
- endColumn: 50,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: 'expect(Promise.resolve(2)).rejects.toBeDefined();',
- errors: [
- {
- column: 1,
- endColumn: 49,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: 'expect(Promise.resolve(2)).resolves.toBeDefined();',
- options: [{ alwaysAwait: true }],
- errors: [
- {
- column: 1,
- endColumn: 50,
- messageId: 'asyncMustBeAwaited'
- }
- ]
- },
- {
- code: `
+ {
+ code: 'expect(1).toBe(2);',
+ options: [{ maxArgs: 2 }]
+ },
+ {
+ code: 'expect(1, "1 !== 2").toBe(2);',
+ options: [{ maxArgs: 2 }]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(2).not.toBe(2); });',
+ options: [{ asyncMatchers: ['toRejectWith'] }]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(Promise.reject(2)).toRejectWith(2); });',
+ options: [{ asyncMatchers: ['toResolveWith'] }]
+ },
+ {
+ code: 'test("valid-expect", async () => { await expect(Promise.resolve(2)).toResolve(); });',
+ options: [{ asyncMatchers: ['toResolveWith'] }]
+ },
+ {
+ code: 'test("valid-expect", async () => { expect(Promise.resolve(2)).toResolve(); });',
+ options: [{ asyncMatchers: ['toResolveWith'] }]
+ }
+ ],
+ invalid: [
+ {
+ code: 'expect().toBe(2);',
+ options: [{ minArgs: undefined, maxArgs: undefined }],
+ errors: [
+ {
+ messageId: 'notEnoughArgs',
+ data: {
+ s: '',
+ amount: 1
+ }
+ }
+ ]
+ },
+ {
+ code: 'expect().toBe(true);',
+ errors: [
+ {
+ endColumn: 8,
+ column: 7,
+ messageId: 'notEnoughArgs',
+ data: {
+ s: '',
+ amount: 1
+ }
+ }
+ ]
+ },
+ {
+ code: 'expect().toEqual("something");',
+ errors: [
+ {
+ endColumn: 8,
+ column: 7,
+ messageId: 'notEnoughArgs',
+ data: {
+ s: '',
+ amount: 1
+ }
+ }
+ ]
+ },
+ {
+ code: 'expect("something", "else").toEqual("something");',
+ errors: [
+ {
+ endColumn: 28,
+ column: 21,
+ messageId: 'tooManyArgs',
+ data: {
+ s: '',
+ amount: 1
+ }
+ }
+ ]
+ },
+ {
+ code: 'expect("something", "else", "entirely").toEqual("something");',
+ options: [{ maxArgs: 2 }],
+ errors: [
+ {
+ endColumn: 40,
+ column: 29,
+ messageId: 'tooManyArgs',
+ data: {
+ s: 's',
+ amount: 2
+ }
+ }
+ ]
+ },
+ {
+ code: 'expect("something", "else", "entirely").toEqual("something");',
+ options: [{ maxArgs: 2, minArgs: 2 }],
+ errors: [
+ {
+ endColumn: 40,
+ column: 29,
+ messageId: 'tooManyArgs',
+ data: {
+ s: 's',
+ amount: 2
+ }
+ }
+ ]
+ },
+ {
+ code: 'expect("something", "else", "entirely").toEqual("something");',
+ options: [{ maxArgs: 2, minArgs: 1 }],
+ errors: [
+ {
+ endColumn: 40,
+ column: 29,
+ messageId: 'tooManyArgs',
+ data: {
+ s: 's',
+ amount: 2
+ }
+ }
+ ]
+ },
+ {
+ code: 'expect("something").toEqual("something");',
+ options: [{ minArgs: 2 }],
+ errors: [
+ {
+ endColumn: 8,
+ column: 7,
+ messageId: 'notEnoughArgs',
+ data: {
+ s: 's',
+ amount: 2
+ }
+ }
+ ]
+ },
+ {
+ code: 'expect("something", "else").toEqual("something");',
+ options: [{ maxArgs: 1, minArgs: 3 }],
+ errors: [
+ {
+ endColumn: 8,
+ column: 7,
+ messageId: 'notEnoughArgs',
+ data: {
+ s: 's',
+ amount: 3
+ }
+ },
+ {
+ endColumn: 28,
+ column: 21,
+ messageId: 'tooManyArgs',
+ data: {
+ s: '',
+ amount: 1
+ }
+ }
+ ]
+ },
+ {
+ code: 'expect("something");',
+ errors: [{ endColumn: 20, column: 1, messageId: 'matcherNotFound' }]
+ },
+ {
+ code: 'expect();',
+ errors: [{ endColumn: 9, column: 1, messageId: 'matcherNotFound' }]
+ },
+ {
+ code: 'expect(true).toBeDefined;',
+ errors: [
+ {
+ endColumn: 25,
+ column: 14,
+ messageId: 'matcherNotCalled'
+ }
+ ]
+ },
+ {
+ code: 'expect(true).not.toBeDefined;',
+ errors: [
+ {
+ endColumn: 29,
+ column: 18,
+ messageId: 'matcherNotCalled'
+ }
+ ]
+ },
+ {
+ code: 'expect(true).nope.toBeDefined;',
+ errors: [
+ {
+ endColumn: 30,
+ column: 19,
+ messageId: 'matcherNotCalled'
+ }
+ ]
+ },
+ {
+ code: 'expect(true).nope.toBeDefined();',
+ errors: [
+ {
+ endColumn: 32,
+ column: 1,
+ messageId: 'modifierUnknown'
+ }
+ ]
+ },
+ {
+ code: 'expect(true).not.resolves.toBeDefined();',
+ errors: [
+ {
+ endColumn: 40,
+ column: 1,
+ messageId: 'modifierUnknown'
+ }
+ ]
+ },
+ {
+ code: 'expect(true).not.not.toBeDefined();',
+ errors: [
+ {
+ endColumn: 35,
+ column: 1,
+ messageId: 'modifierUnknown'
+ }
+ ]
+ },
+ {
+ code: 'expect(true).resolves.not.exactly.toBeDefined();',
+ errors: [
+ {
+ endColumn: 48,
+ column: 1,
+ messageId: 'modifierUnknown'
+ }
+ ]
+ },
+ {
+ code: 'expect(true).resolves;',
+ errors: [
+ {
+ endColumn: 22,
+ column: 14,
+ messageId: 'matcherNotFound'
+ }
+ ]
+ },
+ {
+ code: 'expect(true).rejects;',
+ errors: [
+ {
+ endColumn: 21,
+ column: 14,
+ messageId: 'matcherNotFound'
+ }
+ ]
+ },
+ {
+ code: 'expect(true).not;',
+ errors: [
+ {
+ endColumn: 17,
+ column: 14,
+ messageId: 'matcherNotFound'
+ }
+ ]
+ },
+ {
+ code: 'expect(Promise.resolve(2)).resolves.toBeDefined();',
+ errors: [
+ {
+ column: 1,
+ endColumn: 50,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: 'expect(Promise.resolve(2)).rejects.toBeDefined();',
+ errors: [
+ {
+ column: 1,
+ endColumn: 49,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: 'expect(Promise.resolve(2)).resolves.toBeDefined();',
+ options: [{ alwaysAwait: true }],
+ errors: [
+ {
+ column: 1,
+ endColumn: 50,
+ messageId: 'asyncMustBeAwaited'
+ }
+ ]
+ },
+ {
+ code: `
expect.extend({
toResolve(obj) {
this.isNot
@@ -407,16 +402,16 @@ describe(RULE_NAME, () => {
}
});
`,
- errors: [
- {
- column: 11,
- endColumn: 45,
- messageId: 'asyncMustBeAwaited'
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ column: 11,
+ endColumn: 45,
+ messageId: 'asyncMustBeAwaited'
+ }
+ ]
+ },
+ {
+ code: `
expect.extend({
toResolve(obj) {
this.isNot
@@ -425,262 +420,262 @@ describe(RULE_NAME, () => {
}
});
`,
- errors: [
- {
- column: 11,
- endColumn: 45,
- messageId: 'asyncMustBeAwaited'
- }
- ]
- },
- {
- code: 'test("valid-expect", () => { expect(Promise.resolve(2)).resolves.toBeDefined(); });',
- errors: [
- {
- column: 30,
- endColumn: 79,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: 'test("valid-expect", () => { expect(Promise.resolve(2)).toResolve(); });',
- errors: [
- {
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' },
- column: 30,
- line: 1
- }
- ]
- },
- {
- code: 'test("valid-expect", () => { expect(Promise.resolve(2)).toResolve(); });',
- options: [{ asyncMatchers: undefined }],
- errors: [
- {
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' },
- column: 30,
- line: 1
- }
- ]
- },
- {
- code: 'test("valid-expect", () => { expect(Promise.resolve(2)).toReject(); });',
- errors: [
- {
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' },
- column: 30,
- line: 1
- }
- ]
- },
- {
- code: 'test("valid-expect", () => { expect(Promise.resolve(2)).not.toReject(); });',
- errors: [
- {
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' },
- column: 30,
- line: 1
- }
- ]
- },
- {
- code: 'test("valid-expect", () => { expect(Promise.resolve(2)).resolves.not.toBeDefined(); });',
- errors: [
- {
- column: 30,
- endColumn: 83,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: 'test("valid-expect", () => { expect(Promise.resolve(2)).rejects.toBeDefined(); });',
- errors: [
- {
- column: 30,
- endColumn: 78,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: 'test("valid-expect", () => { expect(Promise.resolve(2)).rejects.not.toBeDefined(); });',
- errors: [
- {
- column: 30,
- endColumn: 82,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: 'test("valid-expect", async () => { expect(Promise.resolve(2)).resolves.toBeDefined(); });',
- errors: [
- {
- column: 36,
- endColumn: 85,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: 'test("valid-expect", async () => { expect(Promise.resolve(2)).resolves.not.toBeDefined(); });',
- errors: [
- {
- column: 36,
- endColumn: 89,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: 'test("valid-expect", () => { expect(Promise.reject(2)).toRejectWith(2); });',
- options: [{ asyncMatchers: ['toRejectWith'] }],
- errors: [
- {
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' },
- column: 30
- }
- ]
- },
- {
- code: 'test("valid-expect", () => { expect(Promise.reject(2)).rejects.toBe(2); });',
- options: [{ asyncMatchers: ['toRejectWith'] }],
- errors: [
- {
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' },
- column: 30
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ column: 11,
+ endColumn: 45,
+ messageId: 'asyncMustBeAwaited'
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(Promise.resolve(2)).resolves.toBeDefined(); });',
+ errors: [
+ {
+ column: 30,
+ endColumn: 79,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(Promise.resolve(2)).toResolve(); });',
+ errors: [
+ {
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' },
+ column: 30,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(Promise.resolve(2)).toResolve(); });',
+ options: [{ asyncMatchers: undefined }],
+ errors: [
+ {
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' },
+ column: 30,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(Promise.resolve(2)).toReject(); });',
+ errors: [
+ {
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' },
+ column: 30,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(Promise.resolve(2)).not.toReject(); });',
+ errors: [
+ {
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' },
+ column: 30,
+ line: 1
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(Promise.resolve(2)).resolves.not.toBeDefined(); });',
+ errors: [
+ {
+ column: 30,
+ endColumn: 83,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(Promise.resolve(2)).rejects.toBeDefined(); });',
+ errors: [
+ {
+ column: 30,
+ endColumn: 78,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(Promise.resolve(2)).rejects.not.toBeDefined(); });',
+ errors: [
+ {
+ column: 30,
+ endColumn: 82,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", async () => { expect(Promise.resolve(2)).resolves.toBeDefined(); });',
+ errors: [
+ {
+ column: 36,
+ endColumn: 85,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", async () => { expect(Promise.resolve(2)).resolves.not.toBeDefined(); });',
+ errors: [
+ {
+ column: 36,
+ endColumn: 89,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(Promise.reject(2)).toRejectWith(2); });',
+ options: [{ asyncMatchers: ['toRejectWith'] }],
+ errors: [
+ {
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' },
+ column: 30
+ }
+ ]
+ },
+ {
+ code: 'test("valid-expect", () => { expect(Promise.reject(2)).rejects.toBe(2); });',
+ options: [{ asyncMatchers: ['toRejectWith'] }],
+ errors: [
+ {
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' },
+ column: 30
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", async () => {
expect(Promise.resolve(2)).resolves.not.toBeDefined();
expect(Promise.resolve(1)).rejects.toBeDefined();
});
`,
- errors: [
- {
- line: 3,
- column: 7,
- endColumn: 60,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- },
- {
- line: 4,
- column: 7,
- endColumn: 55,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ line: 3,
+ column: 7,
+ endColumn: 60,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ },
+ {
+ line: 4,
+ column: 7,
+ endColumn: 55,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", async () => {
await expect(Promise.resolve(2)).resolves.not.toBeDefined();
expect(Promise.resolve(1)).rejects.toBeDefined();
});
`,
- errors: [
- {
- line: 4,
- column: 7,
- endColumn: 55,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ line: 4,
+ column: 7,
+ endColumn: 55,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", async () => {
expect(Promise.resolve(2)).resolves.not.toBeDefined();
return expect(Promise.resolve(1)).rejects.toBeDefined();
});
`,
- options: [{ alwaysAwait: true }],
- errors: [
- {
- line: 3,
- column: 7,
- endColumn: 60,
- messageId: 'asyncMustBeAwaited'
- },
- {
- line: 4,
- column: 14,
- endColumn: 62,
- messageId: 'asyncMustBeAwaited'
- }
- ]
- },
- {
- code: `
+ options: [{ alwaysAwait: true }],
+ errors: [
+ {
+ line: 3,
+ column: 7,
+ endColumn: 60,
+ messageId: 'asyncMustBeAwaited'
+ },
+ {
+ line: 4,
+ column: 14,
+ endColumn: 62,
+ messageId: 'asyncMustBeAwaited'
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", async () => {
expect(Promise.resolve(2)).resolves.not.toBeDefined();
return expect(Promise.resolve(1)).rejects.toBeDefined();
});
`,
- errors: [
- {
- line: 3,
- column: 7,
- endColumn: 60,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ line: 3,
+ column: 7,
+ endColumn: 60,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", () => {
Promise.x(expect(Promise.resolve(2)).resolves.not.toBeDefined());
});
`,
- errors: [
- {
- line: 3,
- column: 7,
- endColumn: 71,
- messageId: 'promisesWithAsyncAssertionsMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ line: 3,
+ column: 7,
+ endColumn: 71,
+ messageId: 'promisesWithAsyncAssertionsMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", () => {
Promise.resolve(expect(Promise.resolve(2)).resolves.not.toBeDefined());
});
`,
- options: [{ alwaysAwait: true }],
- errors: [
- {
- line: 3,
- column: 8,
- endColumn: 78,
- messageId: 'promisesWithAsyncAssertionsMustBeAwaited'
- }
- ]
- },
- {
- code: `
+ options: [{ alwaysAwait: true }],
+ errors: [
+ {
+ line: 3,
+ column: 8,
+ endColumn: 78,
+ messageId: 'promisesWithAsyncAssertionsMustBeAwaited'
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", () => {
Promise.all([
expect(Promise.resolve(2)).resolves.not.toBeDefined(),
@@ -688,38 +683,38 @@ describe(RULE_NAME, () => {
]);
});
`,
- errors: [
- {
- line: 3,
- column: 7,
- endLine: 6,
- endColumn: 9,
- messageId: 'promisesWithAsyncAssertionsMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ line: 3,
+ column: 7,
+ endLine: 6,
+ endColumn: 9,
+ messageId: 'promisesWithAsyncAssertionsMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", () => {
Promise.x([
expect(Promise.resolve(2)).resolves.not.toBeDefined(),
expect(Promise.resolve(3)).resolves.not.toBeDefined(),
]);
});`,
- errors: [
- {
- line: 3,
- column: 7,
- endLine: 6,
- endColumn: 9,
- messageId: 'promisesWithAsyncAssertionsMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ line: 3,
+ column: 7,
+ endLine: 6,
+ endColumn: 9,
+ messageId: 'promisesWithAsyncAssertionsMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", () => {
const assertions = [
expect(Promise.resolve(2)).resolves.not.toBeDefined(),
@@ -727,27 +722,27 @@ describe(RULE_NAME, () => {
]
});
`,
- errors: [
- {
- line: 4,
- column: 9,
- endLine: 4,
- endColumn: 62,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- },
- {
- line: 5,
- column: 9,
- endLine: 5,
- endColumn: 62,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ line: 4,
+ column: 9,
+ endLine: 4,
+ endColumn: 62,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ },
+ {
+ line: 5,
+ column: 9,
+ endLine: 5,
+ endColumn: 62,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", () => {
const assertions = [
expect(Promise.resolve(2)).toResolve(),
@@ -755,23 +750,23 @@ describe(RULE_NAME, () => {
]
});
`,
- errors: [
- {
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' },
- column: 7,
- line: 4
- },
- {
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' },
- column: 7,
- line: 5
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' },
+ column: 7,
+ line: 4
+ },
+ {
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' },
+ column: 7,
+ line: 5
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", () => {
const assertions = [
expect(Promise.resolve(2)).not.toResolve(),
@@ -779,52 +774,52 @@ describe(RULE_NAME, () => {
]
});
`,
- errors: [
- {
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' },
- column: 9,
- line: 4
- },
- {
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' },
- column: 9,
- line: 5
- }
- ]
- },
- {
- code: 'expect(Promise.resolve(2)).resolves.toBe;',
- errors: [
- {
- column: 37,
- endColumn: 41,
- messageId: 'matcherNotCalled'
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' },
+ column: 9,
+ line: 4
+ },
+ {
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' },
+ column: 9,
+ line: 5
+ }
+ ]
+ },
+ {
+ code: 'expect(Promise.resolve(2)).resolves.toBe;',
+ errors: [
+ {
+ column: 37,
+ endColumn: 41,
+ messageId: 'matcherNotCalled'
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", () => {
return expect(functionReturningAPromise()).resolves.toEqual(1).then(() => {
expect(Promise.resolve(2)).resolves.toBe(1);
});
});
`,
- errors: [
- {
- line: 4,
- column: 9,
- endLine: 4,
- endColumn: 52,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ line: 4,
+ column: 9,
+ endLine: 4,
+ endColumn: 52,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", () => {
return expect(functionReturningAPromise()).resolves.toEqual(1).then(async () => {
await expect(Promise.resolve(2)).resolves.toBe(1);
@@ -832,26 +827,26 @@ describe(RULE_NAME, () => {
});
});
`,
- errors: [
- {
- line: 5,
- column: 9,
- endLine: 5,
- endColumn: 52,
- messageId: 'asyncMustBeAwaited',
- data: { orReturned: ' or returned' }
- }
- ]
- },
- {
- code: `
+ errors: [
+ {
+ line: 5,
+ column: 9,
+ endLine: 5,
+ endColumn: 52,
+ messageId: 'asyncMustBeAwaited',
+ data: { orReturned: ' or returned' }
+ }
+ ]
+ },
+ {
+ code: `
test("valid-expect", async () => {
await expect(Promise.resolve(1));
});
`,
- errors: [{ endColumn: 39, column: 13, messageId: 'matcherNotFound' }]
- }
- ]
- })
- })
-})
+ errors: [{ endColumn: 39, column: 13, messageId: 'matcherNotFound' }]
+ }
+ ]
+ })
+// })
+// })
diff --git a/src/utils/index.ts b/src/utils/index.ts
index 9e4eaa5..6587c19 100644
--- a/src/utils/index.ts
+++ b/src/utils/index.ts
@@ -3,61 +3,77 @@
// Imported from https://github.com/jest-community/eslint-plugin-jest/blob/main/src/rules/utils/accessors.ts#L6
// eslint-disable-next-line eslint-comments/disable-enable-pair
/* eslint-disable no-use-before-define */
-import { TSESLint, AST_NODE_TYPES, ESLintUtils, TSESTree } from '@typescript-eslint/utils'
-import { KnownMemberExpression, ParsedExpectVitestFnCall } from './parseVitestFnCall'
-
-export const createEslintRule = ESLintUtils.RuleCreator((ruleName) => `https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/${ruleName}.md`)
-
-export const joinNames = (a: string | null, b: string | null): string | null => a && b ? `${a}.${b}` : null
+import {
+ TSESLint,
+ AST_NODE_TYPES,
+ ESLintUtils,
+ TSESTree
+} from '@typescript-eslint/utils'
+import {
+ KnownMemberExpression,
+ ParsedExpectVitestFnCall
+} from './parseVitestFnCall'
+
+export const createEslintRule = ESLintUtils.RuleCreator(
+ (ruleName) =>
+ `https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/${ruleName}.md`
+)
+
+export const joinNames = (a: string | null, b: string | null): string | null =>
+ a && b ? `${a}.${b}` : null
interface TemplateLiteral
- extends TSESTree.TemplateLiteral {
- quasis: [TSESTree.TemplateElement & { value: { raw: Value; cooked: Value } }];
+ extends TSESTree.TemplateLiteral {
+ quasis: [TSESTree.TemplateElement & { value: { raw: Value; cooked: Value } }];
}
interface StringLiteral
- extends TSESTree.StringLiteral {
- value: Value;
+ extends TSESTree.StringLiteral {
+ value: Value;
}
export type StringNode =
- | StringLiteral
- | TemplateLiteral;
+ | StringLiteral
+ | TemplateLiteral;
export type FunctionExpression =
- | TSESTree.ArrowFunctionExpression
- | TSESTree.FunctionExpression;
+ | TSESTree.ArrowFunctionExpression
+ | TSESTree.FunctionExpression;
export const isFunction = (node: TSESTree.Node): node is FunctionExpression =>
- node.type === AST_NODE_TYPES.FunctionExpression ||
- node.type === AST_NODE_TYPES.ArrowFunctionExpression
+ node.type === AST_NODE_TYPES.FunctionExpression ||
+ node.type === AST_NODE_TYPES.ArrowFunctionExpression
/**
* An `Identifier` with a known `name` value - i.e `expect`.
*/
interface KnownIdentifier extends TSESTree.Identifier {
- name: Name;
+ name: Name;
}
export function getNodeName(node: TSESTree.Node): string | null {
- if (isSupportedAccessor(node))
- return getAccessorValue(node)
-
- switch (node.type) {
- case AST_NODE_TYPES.TaggedTemplateExpression:
- return getNodeName(node.tag)
- case AST_NODE_TYPES.MemberExpression:
- return joinNames(getNodeName(node.object), getNodeName(node.property))
- case AST_NODE_TYPES.NewExpression:
- case AST_NODE_TYPES.CallExpression:
- return getNodeName(node.callee)
- }
- return null
+ if (isSupportedAccessor(node)) return getAccessorValue(node)
+
+ switch (node.type) {
+ case AST_NODE_TYPES.TaggedTemplateExpression:
+ return getNodeName(node.tag)
+ case AST_NODE_TYPES.MemberExpression:
+ return joinNames(getNodeName(node.object), getNodeName(node.property))
+ case AST_NODE_TYPES.NewExpression:
+ case AST_NODE_TYPES.CallExpression:
+ return getNodeName(node.callee)
+ }
+ return null
}
-export type AccessorNode = StringNode | KnownIdentifier
+export type AccessorNode =
+ | StringNode
+ | KnownIdentifier;
-export const isSupportedAccessor = (node: TSESTree.Node, value?: V): node is AccessorNode => {
- return isIdentifier(node, value) || isStringNode(node, value)
+export const isSupportedAccessor = (
+ node: TSESTree.Node,
+ value?: V
+): node is AccessorNode => {
+ return isIdentifier(node, value) || isStringNode(node, value)
}
/**
@@ -67,11 +83,13 @@ export const isSupportedAccessor = (node: TSESTree.Node, value
* the `name` will be compared to that of the `identifier`.
*/
export const isIdentifier = (
- node: TSESTree.Node,
- name?: V
+ node: TSESTree.Node,
+ name?: V
): node is KnownIdentifier => {
- return node.type === AST_NODE_TYPES.Identifier &&
- (name === undefined || node.name === name)
+ return (
+ node.type === AST_NODE_TYPES.Identifier &&
+ (name === undefined || node.name === name)
+ )
}
/**
@@ -83,12 +101,14 @@ export const isIdentifier = (
* the `value` will be compared to that of the `TemplateLiteral`.
*/
const isTemplateLiteral = (
- node: TSESTree.Node,
- value?: V
+ node: TSESTree.Node,
+ value?: V
): node is StringLiteral => {
- return node.type === AST_NODE_TYPES.TemplateLiteral &&
- node.quasis.length === 1 &&
- (value === undefined || node.quasis[0].value.raw === value)
+ return (
+ node.type === AST_NODE_TYPES.TemplateLiteral &&
+ node.quasis.length === 1 &&
+ (value === undefined || node.quasis[0].value.raw === value)
+ )
}
/**
@@ -98,31 +118,32 @@ const isTemplateLiteral = (
* the `value` will be compared to that of the `StringLiteral`.
*/
const isStringLiteral = (
- node: TSESTree.Node,
- value?: V
+ node: TSESTree.Node,
+ value?: V
): node is StringLiteral =>
- node.type === AST_NODE_TYPES.Literal &&
- typeof node.value === 'string' &&
- (value === undefined || node.value === value)
+ node.type === AST_NODE_TYPES.Literal &&
+ typeof node.value === 'string' &&
+ (value === undefined || node.value === value)
/**
* Checks if the given `node` is a {@link StringNode}.
*/
export const isStringNode = (
- node: TSESTree.Node,
- specifics?: V
+ node: TSESTree.Node,
+ specifics?: V
): node is StringNode =>
- isStringLiteral(node, specifics) || isTemplateLiteral(node, specifics)
+ isStringLiteral(node, specifics) || isTemplateLiteral(node, specifics)
/**
* Gets the value of the given `AccessorNode`,
* account for the different node types.
*/
-export const getAccessorValue =
- (accessor: AccessorNode): S =>
- accessor.type === AST_NODE_TYPES.Identifier
- ? accessor.name
- : getStringValue(accessor)
+export const getAccessorValue = (
+ accessor: AccessorNode
+): S =>
+ accessor.type === AST_NODE_TYPES.Identifier
+ ? accessor.name
+ : getStringValue(accessor)
/**
* Gets the value of the given `StringNode`.
@@ -130,61 +151,60 @@ export const getAccessorValue =
* If the `node` is a `TemplateLiteral`, the `raw` value is used;
* otherwise, `value` is returned instead.
*/
-export const getStringValue =
- (node: StringNode): S =>
- node?.type === AST_NODE_TYPES.TemplateLiteral
- ? node.quasis[0].value.raw
- : node?.value
+export const getStringValue = (node: StringNode): S =>
+ node?.type === AST_NODE_TYPES.TemplateLiteral
+ ? node.quasis[0].value.raw
+ : node?.value
export const replaceAccessorFixer = (
- fixer: TSESLint.RuleFixer,
- node: AccessorNode,
- text: string
+ fixer: TSESLint.RuleFixer,
+ node: AccessorNode,
+ text: string
) => {
- return fixer.replaceText(
- node,
- node.type === AST_NODE_TYPES.Identifier ? text : `'${text}'`
- )
+ return fixer.replaceText(
+ node,
+ node.type === AST_NODE_TYPES.Identifier ? text : `'${text}'`
+ )
}
export const removeExtraArgumentsFixer = (
- fixer: TSESLint.RuleFixer,
- context: TSESLint.RuleContext,
- func: TSESTree.CallExpression,
- from: number
+ fixer: TSESLint.RuleFixer,
+ context: TSESLint.RuleContext,
+ func: TSESTree.CallExpression,
+ from: number
): TSESLint.RuleFix => {
- const firstArg = func.arguments[from]
- const lastArg = func.arguments[func.arguments.length - 1]
+ const firstArg = func.arguments[from]
+ const lastArg = func.arguments[func.arguments.length - 1]
- const sourceCode = context.getSourceCode()
+ const sourceCode = context.getSourceCode()
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- let tokenAfterLastParam = sourceCode.getTokenAfter(lastArg)!
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ let tokenAfterLastParam = sourceCode.getTokenAfter(lastArg)!
- if (tokenAfterLastParam.value === ',')
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- tokenAfterLastParam = sourceCode.getTokenAfter(tokenAfterLastParam)!
+ if (tokenAfterLastParam.value === ',')
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ tokenAfterLastParam = sourceCode.getTokenAfter(tokenAfterLastParam)!
- return fixer.removeRange([firstArg.range[0], tokenAfterLastParam.range[0]])
+ return fixer.removeRange([firstArg.range[0], tokenAfterLastParam.range[0]])
}
interface CalledKnownMemberExpression
- extends KnownMemberExpression {
- parent: KnownCallExpression;
+ extends KnownMemberExpression {
+ parent: KnownCallExpression;
}
export interface KnownCallExpression
- extends TSESTree.CallExpression {
- callee: CalledKnownMemberExpression;
+ extends TSESTree.CallExpression {
+ callee: CalledKnownMemberExpression;
}
export const isParsedInstanceOfMatcherCall = (
- expectFnCall: ParsedExpectVitestFnCall,
- classArg?: string
+ expectFnCall: ParsedExpectVitestFnCall,
+ classArg?: string
) => {
- return (
- getAccessorValue(expectFnCall.matcher) === 'toBeInstanceOf' &&
- expectFnCall.args.length === 1 &&
- isSupportedAccessor(expectFnCall.args[0], classArg)
- )
+ return (
+ getAccessorValue(expectFnCall.matcher) === 'toBeInstanceOf' &&
+ expectFnCall.args.length === 1 &&
+ isSupportedAccessor(expectFnCall.args[0], classArg)
+ )
}
diff --git a/src/utils/test.ts b/src/utils/test.ts
new file mode 100644
index 0000000..3e845c0
--- /dev/null
+++ b/src/utils/test.ts
@@ -0,0 +1,10 @@
+import { RuleTester } from '@typescript-eslint/rule-tester'
+import { afterAll, describe, it } from 'vitest'
+
+RuleTester.afterAll = afterAll
+RuleTester.describe = describe
+RuleTester.it = it
+
+export const ruleTester: RuleTester = new RuleTester({
+ parser: '@typescript-eslint/parser'
+})