diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 00000000..404abb22
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+coverage/
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 00000000..09c2e423
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,3 @@
+{
+ "extends": "@antfu"
+}
diff --git a/build.config.ts b/build.config.ts
index e4a91e10..ca9a3234 100644
--- a/build.config.ts
+++ b/build.config.ts
@@ -20,20 +20,6 @@ export default defineBuildConfig({
format: 'cjs',
ext: 'cjs',
},
- {
- input: 'src/ssr/index.ts',
- outDir: 'dist',
- name: 'ssr',
- format: 'esm',
- ext: 'mjs',
- },
- {
- input: 'src/ssr/index.ts',
- outDir: 'dist',
- name: 'ssr',
- format: 'cjs',
- ext: 'cjs',
- },
],
externals: [
'vue',
diff --git a/demo/src/App.vue b/demo/src/App.vue
index 605eefb3..b7879ae0 100644
--- a/demo/src/App.vue
+++ b/demo/src/App.vue
@@ -7,7 +7,9 @@
- Delay
+
+ Delay
+
diff --git a/demo/src/components/CodeBlock.vue b/demo/src/components/CodeBlock.vue
index b499d93b..89738566 100644
--- a/demo/src/components/CodeBlock.vue
+++ b/demo/src/components/CodeBlock.vue
@@ -7,7 +7,7 @@
diff --git a/package.json b/package.json
index ccdef832..edb30510 100644
--- a/package.json
+++ b/package.json
@@ -30,8 +30,8 @@
"scripts": {
"build": "unbuild",
"dev": "jiti scripts/watch.ts --cache",
- "lint": "prettier -c --parser typescript \"{src,__tests__,e2e}/**/*.[jt]s?(x)\"",
- "lint:fix": "pnpm lint --write",
+ "lint": "eslint --ext .js,.vue,.ts,.tsx .",
+ "lint:fix": "eslint --ext .js,.vue,.ts,.tsx . --fix",
"test:types": "tsc --build tsconfig.json",
"test:unit": "vitest run",
"test:coverage": "vitest run --coverage",
@@ -63,6 +63,7 @@
}
},
"devDependencies": {
+ "@antfu/eslint-config": "^0.16.1",
"@types/prismjs": "^1.26.0",
"@vitejs/plugin-vue": "^2.2.2",
"@vue/server-renderer": "^3.2.31",
@@ -71,6 +72,7 @@
"@vuedx/typescript-plugin-vue": "^0.7.4",
"c8": "^7.11.0",
"chokidar": "^3.5.3",
+ "eslint": "^8.9.0",
"happy-dom": "^2.41.0",
"lint-staged": "^12.3.4",
"prettier": "^2.5.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 7caffb2b..89fb7274 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,6 +1,7 @@
lockfileVersion: 5.3
specifiers:
+ '@antfu/eslint-config': ^0.16.1
'@types/prismjs': ^1.26.0
'@vitejs/plugin-vue': ^2.2.2
'@vue/server-renderer': ^3.2.31
@@ -10,6 +11,7 @@ specifiers:
'@vueuse/core': ^7.6.2
c8: ^7.11.0
chokidar: ^3.5.3
+ eslint: ^8.9.0
happy-dom: ^2.41.0
lint-staged: ^12.3.4
popmotion: ^11.0.3
@@ -34,6 +36,7 @@ dependencies:
vue-demi: 0.12.1_vue@3.2.31
devDependencies:
+ '@antfu/eslint-config': 0.16.1_eslint@8.9.0+typescript@4.5.5
'@types/prismjs': 1.26.0
'@vitejs/plugin-vue': 2.2.2_vite@2.8.4+vue@3.2.31
'@vue/server-renderer': 3.2.31_vue@3.2.31
@@ -42,6 +45,7 @@ devDependencies:
'@vuedx/typescript-plugin-vue': 0.7.4
c8: 7.11.0
chokidar: 3.5.3
+ eslint: 8.9.0
happy-dom: 2.41.0
lint-staged: 12.3.4
prettier: 2.5.1
@@ -170,6 +174,95 @@ packages:
'@algolia/requester-common': 4.11.0
dev: true
+ /@antfu/eslint-config-basic/0.16.1_eslint@8.9.0:
+ resolution: {integrity: sha512-kUA7UBD1W8FG2frH4pKfos4l5eUSxVH8oMK7+T9OxBAxpvXDAYUGU0KNZoMOdhWhu0dmE/7iHXYbnu6r9KXwUw==}
+ peerDependencies:
+ eslint: '>=7.4.0'
+ dependencies:
+ eslint: 8.9.0
+ eslint-config-standard: 17.0.0-0_c8ad1c911fa160b4a9904c4bb416080e
+ eslint-plugin-eslint-comments: 3.2.0_eslint@8.9.0
+ eslint-plugin-html: 6.2.0
+ eslint-plugin-import: 2.25.4_eslint@8.9.0
+ eslint-plugin-jsonc: 2.2.1_eslint@8.9.0
+ eslint-plugin-n: 14.0.0_eslint@8.9.0
+ eslint-plugin-promise: 6.0.0_eslint@8.9.0
+ eslint-plugin-unicorn: 40.1.0_eslint@8.9.0
+ eslint-plugin-yml: 0.12.0_eslint@8.9.0
+ jsonc-eslint-parser: 2.1.0
+ yaml-eslint-parser: 0.5.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@antfu/eslint-config-react/0.16.1_eslint@8.9.0+typescript@4.5.5:
+ resolution: {integrity: sha512-UU/KqDVRb6/XQVBsrL2a3fBwn2NRGWnZCBPAU9HbIqLY/zJ5p8CpBJTvvIvCC4p4aiO3unwnYhhf5SdCQtfOjw==}
+ peerDependencies:
+ eslint: '>=7.4.0'
+ dependencies:
+ '@antfu/eslint-config-ts': 0.16.1_eslint@8.9.0+typescript@4.5.5
+ eslint: 8.9.0
+ eslint-plugin-react: 7.29.0_eslint@8.9.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@antfu/eslint-config-ts/0.16.1_eslint@8.9.0+typescript@4.5.5:
+ resolution: {integrity: sha512-FrIosrYILXog7v8GcQkj8YyMKe6HxUvv8DFDHxQjR5liI77BQ9kmIqRu8JZ/6RwMEEpMWV5Ed+LDR7FDjJiTxg==}
+ peerDependencies:
+ eslint: '>=7.4.0'
+ typescript: '>=3.9'
+ dependencies:
+ '@antfu/eslint-config-basic': 0.16.1_eslint@8.9.0
+ '@typescript-eslint/eslint-plugin': 5.12.1_aa3af6382115a42a71cc388b7b2c30b3
+ '@typescript-eslint/parser': 5.12.1_eslint@8.9.0+typescript@4.5.5
+ eslint: 8.9.0
+ typescript: 4.5.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@antfu/eslint-config-vue/0.16.1_eslint@8.9.0+typescript@4.5.5:
+ resolution: {integrity: sha512-2BMQBTVQrElu2Pvmubgc1G3BrCbaQjBzcepZZvHNnK74Wq4ec1Cl5i9BMRVVwBGg5fIg5erRPzUWr17j5BLa0A==}
+ peerDependencies:
+ eslint: '>=7.4.0'
+ dependencies:
+ '@antfu/eslint-config-ts': 0.16.1_eslint@8.9.0+typescript@4.5.5
+ eslint: 8.9.0
+ eslint-plugin-vue: 8.5.0_eslint@8.9.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@antfu/eslint-config/0.16.1_eslint@8.9.0+typescript@4.5.5:
+ resolution: {integrity: sha512-GYJMtcEpHNNQA1A2acsRqSKGRkLEZ38Y9lvHBcX7HomJ+NsPFG4a3AJ5DW1CKpPTk5W3mOF0XBMiGA+pQOC37g==}
+ peerDependencies:
+ eslint: '>=7.4.0'
+ dependencies:
+ '@antfu/eslint-config-react': 0.16.1_eslint@8.9.0+typescript@4.5.5
+ '@antfu/eslint-config-vue': 0.16.1_eslint@8.9.0+typescript@4.5.5
+ '@typescript-eslint/eslint-plugin': 5.12.1_aa3af6382115a42a71cc388b7b2c30b3
+ '@typescript-eslint/parser': 5.12.1_eslint@8.9.0+typescript@4.5.5
+ eslint: 8.9.0
+ eslint-config-standard: 17.0.0-0_c8ad1c911fa160b4a9904c4bb416080e
+ eslint-plugin-eslint-comments: 3.2.0_eslint@8.9.0
+ eslint-plugin-html: 6.2.0
+ eslint-plugin-import: 2.25.4_eslint@8.9.0
+ eslint-plugin-jsonc: 2.2.1_eslint@8.9.0
+ eslint-plugin-n: 14.0.0_eslint@8.9.0
+ eslint-plugin-promise: 6.0.0_eslint@8.9.0
+ eslint-plugin-unicorn: 40.1.0_eslint@8.9.0
+ eslint-plugin-vue: 8.5.0_eslint@8.9.0
+ eslint-plugin-yml: 0.12.0_eslint@8.9.0
+ jsonc-eslint-parser: 2.1.0
+ yaml-eslint-parser: 0.5.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
/@antfu/utils/0.4.0:
resolution: {integrity: sha512-gqkpvjkgFUu+s3kP+Ly33OKpo5zvVY3FDFhv5BIb98SncS3KD6DNxPfNDjwHIoyXbz1leWo1j8DtRLZ1D2Jv+Q==}
dependencies:
@@ -317,6 +410,38 @@ packages:
- '@algolia/client-search'
dev: true
+ /@eslint/eslintrc/1.1.0:
+ resolution: {integrity: sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.3
+ espree: 9.3.1
+ globals: 13.12.1
+ ignore: 4.0.6
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@humanwhocodes/config-array/0.9.5:
+ resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==}
+ engines: {node: '>=10.10.0'}
+ dependencies:
+ '@humanwhocodes/object-schema': 1.2.1
+ debug: 4.3.3
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@humanwhocodes/object-schema/1.2.1:
+ resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
+ dev: true
+
/@intlify/core-base/9.1.9:
resolution: {integrity: sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==}
engines: {node: '>= 10'}
@@ -594,6 +719,14 @@ packages:
resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
dev: true
+ /@types/json-schema/7.0.9:
+ resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==}
+ dev: true
+
+ /@types/json5/0.0.29:
+ resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=}
+ dev: true
+
/@types/micromatch/4.0.2:
resolution: {integrity: sha512-oqXqVb0ci19GtH0vOA/U2TmHTcRY9kuZl4mqUxe0QmJAlIW13kzhuK5pi1i9+ngav8FjpSb9FVS/GE00GLX1VA==}
dependencies:
@@ -612,6 +745,10 @@ packages:
resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==}
dev: true
+ /@types/normalize-package-data/2.4.1:
+ resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
+ dev: true
+
/@types/prismjs/1.26.0:
resolution: {integrity: sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==}
dev: true
@@ -630,6 +767,132 @@ packages:
resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==}
dev: true
+ /@typescript-eslint/eslint-plugin/5.12.1_aa3af6382115a42a71cc388b7b2c30b3:
+ resolution: {integrity: sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^5.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.12.1_eslint@8.9.0+typescript@4.5.5
+ '@typescript-eslint/scope-manager': 5.12.1
+ '@typescript-eslint/type-utils': 5.12.1_eslint@8.9.0+typescript@4.5.5
+ '@typescript-eslint/utils': 5.12.1_eslint@8.9.0+typescript@4.5.5
+ debug: 4.3.3
+ eslint: 8.9.0
+ functional-red-black-tree: 1.0.1
+ ignore: 5.2.0
+ regexpp: 3.2.0
+ semver: 7.3.5
+ tsutils: 3.21.0_typescript@4.5.5
+ typescript: 4.5.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/parser/5.12.1_eslint@8.9.0+typescript@4.5.5:
+ resolution: {integrity: sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 5.12.1
+ '@typescript-eslint/types': 5.12.1
+ '@typescript-eslint/typescript-estree': 5.12.1_typescript@4.5.5
+ debug: 4.3.3
+ eslint: 8.9.0
+ typescript: 4.5.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/scope-manager/5.12.1:
+ resolution: {integrity: sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.12.1
+ '@typescript-eslint/visitor-keys': 5.12.1
+ dev: true
+
+ /@typescript-eslint/type-utils/5.12.1_eslint@8.9.0+typescript@4.5.5:
+ resolution: {integrity: sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/utils': 5.12.1_eslint@8.9.0+typescript@4.5.5
+ debug: 4.3.3
+ eslint: 8.9.0
+ tsutils: 3.21.0_typescript@4.5.5
+ typescript: 4.5.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/types/5.12.1:
+ resolution: {integrity: sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@typescript-eslint/typescript-estree/5.12.1_typescript@4.5.5:
+ resolution: {integrity: sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 5.12.1
+ '@typescript-eslint/visitor-keys': 5.12.1
+ debug: 4.3.3
+ globby: 11.0.4
+ is-glob: 4.0.3
+ semver: 7.3.5
+ tsutils: 3.21.0_typescript@4.5.5
+ typescript: 4.5.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/utils/5.12.1_eslint@8.9.0+typescript@4.5.5:
+ resolution: {integrity: sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ '@types/json-schema': 7.0.9
+ '@typescript-eslint/scope-manager': 5.12.1
+ '@typescript-eslint/types': 5.12.1
+ '@typescript-eslint/typescript-estree': 5.12.1_typescript@4.5.5
+ eslint: 8.9.0
+ eslint-scope: 5.1.1
+ eslint-utils: 3.0.0_eslint@8.9.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@typescript-eslint/visitor-keys/5.12.1:
+ resolution: {integrity: sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.12.1
+ eslint-visitor-keys: 3.3.0
+ dev: true
+
/@vitejs/plugin-vue/2.2.2_vite@2.8.4+vue@3.2.31:
resolution: {integrity: sha512-3C0s45VOwIFEDU+2ownJOpb0zD5fnjXWaHVOLID2R1mYOlAx3doNBFnNbVjaZvpke/L7IdPJXjpyYpXZToDKig==}
engines: {node: '>=12.0.0'}
@@ -913,6 +1176,20 @@ packages:
- supports-color
dev: true
+ /acorn-jsx/5.3.2_acorn@8.7.0:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ acorn: 8.7.0
+ dev: true
+
+ /acorn/8.7.0:
+ resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==}
+ 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'}
@@ -930,6 +1207,15 @@ packages:
indent-string: 4.0.0
dev: true
+ /ajv/6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+ dev: true
+
/algoliasearch/4.11.0:
resolution: {integrity: sha512-IXRj8kAP2WrMmj+eoPqPc6P7Ncq1yZkFiyDrjTBObV1ADNL8Z/KdZ+dWC5MmYcBLAbcB/mMCpak5N/D1UIZvsA==}
dependencies:
@@ -997,11 +1283,44 @@ packages:
picomatch: 2.3.1
dev: true
+ /argparse/2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ dev: true
+
+ /array-includes/3.1.4:
+ resolution: {integrity: sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ es-abstract: 1.19.1
+ get-intrinsic: 1.1.1
+ is-string: 1.0.7
+ dev: true
+
/array-union/2.1.0:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
dev: true
+ /array.prototype.flat/1.2.5:
+ resolution: {integrity: sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ es-abstract: 1.19.1
+ dev: true
+
+ /array.prototype.flatmap/1.2.5:
+ resolution: {integrity: sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ es-abstract: 1.19.1
+ dev: true
+
/asap/2.0.6:
resolution: {integrity: sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=}
dev: true
@@ -1077,6 +1396,11 @@ packages:
get-intrinsic: 1.1.1
dev: true
+ /callsites/3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+ dev: true
+
/caseless/0.12.0:
resolution: {integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=}
dev: true
@@ -1139,6 +1463,17 @@ packages:
resolution: {integrity: sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==}
dev: true
+ /ci-info/3.3.0:
+ resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==}
+ dev: true
+
+ /clean-regexp/1.0.0:
+ resolution: {integrity: sha1-jffHquUf02h06PjQW5GAvBGj/tc=}
+ engines: {node: '>=4'}
+ dependencies:
+ escape-string-regexp: 1.0.5
+ dev: true
+
/clean-stack/2.2.0:
resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
engines: {node: '>=6'}
@@ -1296,6 +1631,18 @@ packages:
resolution: {integrity: sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=}
dev: true
+ /debug/2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ dependencies:
+ ms: 2.0.0
+ dev: true
+
+ /debug/3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ dependencies:
+ ms: 2.1.2
+ dev: true
+
/debug/4.3.3:
resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==}
engines: {node: '>=6.0'}
@@ -1328,11 +1675,22 @@ packages:
type-detect: 4.0.8
dev: true
+ /deep-is/0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ dev: true
+
/deepmerge/4.2.2:
resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
engines: {node: '>=0.10.0'}
dev: true
+ /define-properties/1.1.3:
+ resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ object-keys: 1.1.1
+ dev: true
+
/defu/5.0.1:
resolution: {integrity: sha512-EPS1carKg+dkEVy3qNTqIdp2qV7mUP08nIsupfwQpz++slCVRw7qbQyWvSTig+kFPwz2XXp5/kIIkH+CwrJKkQ==}
dev: true
@@ -1349,6 +1707,47 @@ packages:
path-type: 4.0.0
dev: true
+ /doctrine/2.1.0:
+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ esutils: 2.0.3
+ dev: true
+
+ /doctrine/3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ esutils: 2.0.3
+ dev: true
+
+ /dom-serializer/1.3.2:
+ resolution: {integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==}
+ dependencies:
+ domelementtype: 2.2.0
+ domhandler: 4.3.0
+ entities: 2.2.0
+ dev: true
+
+ /domelementtype/2.2.0:
+ resolution: {integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==}
+ dev: true
+
+ /domhandler/4.3.0:
+ resolution: {integrity: sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==}
+ engines: {node: '>= 4'}
+ dependencies:
+ domelementtype: 2.2.0
+ dev: true
+
+ /domutils/2.8.0:
+ resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
+ dependencies:
+ dom-serializer: 1.3.2
+ domelementtype: 2.2.0
+ domhandler: 4.3.0
+ dev: true
+
/emoji-regex/8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
@@ -1357,10 +1756,60 @@ packages:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: true
+ /entities/2.2.0:
+ resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+ dev: true
+
+ /entities/3.0.1:
+ resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==}
+ 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.19.1:
+ resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ es-to-primitive: 1.2.1
+ function-bind: 1.1.1
+ get-intrinsic: 1.1.1
+ get-symbol-description: 1.0.0
+ has: 1.0.3
+ has-symbols: 1.0.2
+ internal-slot: 1.0.3
+ is-callable: 1.2.4
+ is-negative-zero: 2.0.2
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.1
+ is-string: 1.0.7
+ is-weakref: 1.0.2
+ object-inspect: 1.12.0
+ object-keys: 1.1.1
+ object.assign: 4.1.2
+ string.prototype.trimend: 1.0.4
+ string.prototype.trimstart: 1.0.4
+ unbox-primitive: 1.0.1
+ dev: true
+
/es-module-lexer/0.9.3:
resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
dev: true
+ /es-to-primitive/1.2.1:
+ resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ is-callable: 1.2.4
+ is-date-object: 1.0.5
+ is-symbol: 1.0.4
+ dev: true
+
/esbuild-android-arm64/0.13.15:
resolution: {integrity: sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==}
cpu: [arm64]
@@ -1729,62 +2178,401 @@ packages:
engines: {node: '>=0.8.0'}
dev: true
- /estree-walker/1.0.1:
- resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==}
+ /escape-string-regexp/4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
dev: true
- /estree-walker/2.0.2:
- resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+ /eslint-config-standard/17.0.0-0_c8ad1c911fa160b4a9904c4bb416080e:
+ resolution: {integrity: sha512-sf9udec8fkLTnH82SmhZQ3E31e4eJaMW09Mt9fbN3OccXFtvSSbGrltpQgGFVooGHoIdiMzDfp6ZNFd+I6Ob+w==}
+ peerDependencies:
+ eslint: ^8.0.1
+ eslint-plugin-import: ^2.25.2
+ eslint-plugin-n: ^14.0.0
+ eslint-plugin-promise: ^6.0.0
+ dependencies:
+ eslint: 8.9.0
+ eslint-plugin-import: 2.25.4_eslint@8.9.0
+ eslint-plugin-n: 14.0.0_eslint@8.9.0
+ eslint-plugin-promise: 6.0.0_eslint@8.9.0
dev: true
- /execa/0.8.0:
- resolution: {integrity: sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=}
+ /eslint-import-resolver-node/0.3.6:
+ resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==}
+ dependencies:
+ debug: 3.2.7
+ resolve: 1.22.0
+ dev: true
+
+ /eslint-module-utils/2.7.3:
+ resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==}
engines: {node: '>=4'}
dependencies:
- cross-spawn: 5.1.0
- get-stream: 3.0.0
- is-stream: 1.1.0
- npm-run-path: 2.0.2
- p-finally: 1.0.0
- signal-exit: 3.0.6
- strip-eof: 1.0.0
+ debug: 3.2.7
+ find-up: 2.1.0
dev: true
- /execa/5.1.1:
- resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
- engines: {node: '>=10'}
+ /eslint-plugin-es/4.1.0_eslint@8.9.0:
+ resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==}
+ engines: {node: '>=8.10.0'}
+ peerDependencies:
+ eslint: '>=4.19.1'
dependencies:
- cross-spawn: 7.0.3
- get-stream: 6.0.1
- human-signals: 2.1.0
- is-stream: 2.0.1
- merge-stream: 2.0.0
- npm-run-path: 4.0.1
- onetime: 5.1.2
- signal-exit: 3.0.6
- strip-final-newline: 2.0.0
+ eslint: 8.9.0
+ eslint-utils: 2.1.0
+ regexpp: 3.2.0
dev: true
- /fast-glob/3.2.11:
- resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
- engines: {node: '>=8.6.0'}
+ /eslint-plugin-eslint-comments/3.2.0_eslint@8.9.0:
+ resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==}
+ engines: {node: '>=6.5.0'}
+ peerDependencies:
+ eslint: '>=4.19.1'
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
+ escape-string-regexp: 1.0.5
+ eslint: 8.9.0
+ ignore: 5.2.0
dev: true
- /fast-glob/3.2.7:
- resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==}
- engines: {node: '>=8'}
+ /eslint-plugin-html/6.2.0:
+ resolution: {integrity: sha512-vi3NW0E8AJombTvt8beMwkL1R/fdRWl4QSNRNMhVQKWm36/X0KF0unGNAY4mqUF06mnwVWZcIcerrCnfn9025g==}
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
+ htmlparser2: 7.2.0
+ dev: true
+
+ /eslint-plugin-import/2.25.4_eslint@8.9.0:
+ resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ dependencies:
+ array-includes: 3.1.4
+ array.prototype.flat: 1.2.5
+ debug: 2.6.9
+ doctrine: 2.1.0
+ eslint: 8.9.0
+ eslint-import-resolver-node: 0.3.6
+ eslint-module-utils: 2.7.3
+ has: 1.0.3
+ is-core-module: 2.8.1
+ is-glob: 4.0.3
+ minimatch: 3.0.4
+ object.values: 1.1.5
+ resolve: 1.22.0
+ tsconfig-paths: 3.12.0
+ dev: true
+
+ /eslint-plugin-jsonc/2.2.1_eslint@8.9.0:
+ resolution: {integrity: sha512-ozGjWXhxF3ZfITHmRLuUL6zORh5Dzo0ymwVdxhfFaa4LEtU2S88JIwDYCWAifQLG92x7chqcnZlGUggaPSlfIQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+ dependencies:
+ eslint: 8.9.0
+ eslint-utils: 3.0.0_eslint@8.9.0
+ jsonc-eslint-parser: 2.1.0
+ natural-compare: 1.4.0
+ dev: true
+
+ /eslint-plugin-n/14.0.0_eslint@8.9.0:
+ resolution: {integrity: sha512-mNwplPLsbaKhHyA0fa/cy8j+oF6bF6l81hzBTWa6JOvPcMNAuIogk2ih6d9tYvWYzyUG+7ZFeChqbzdFpg2QrQ==}
+ engines: {node: '>=12.22.0'}
+ peerDependencies:
+ eslint: '>=7.0.0'
+ dependencies:
+ eslint: 8.9.0
+ eslint-plugin-es: 4.1.0_eslint@8.9.0
+ eslint-utils: 3.0.0_eslint@8.9.0
+ ignore: 5.2.0
+ is-core-module: 2.8.1
+ minimatch: 3.0.4
+ resolve: 1.22.0
+ semver: 6.3.0
+ dev: true
+
+ /eslint-plugin-promise/6.0.0_eslint@8.9.0:
+ resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ dependencies:
+ eslint: 8.9.0
+ dev: true
+
+ /eslint-plugin-react/7.29.0_eslint@8.9.0:
+ resolution: {integrity: sha512-lwbGCO4cEotwl+Wo0zkkjzbhxEzFcG6lv4mpWXfxKzXNZMF5wDEQqykPetB4mi3uTLGVSXxmgVlBMzHTHue6cA==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ dependencies:
+ array-includes: 3.1.4
+ array.prototype.flatmap: 1.2.5
+ doctrine: 2.1.0
+ eslint: 8.9.0
+ estraverse: 5.3.0
+ jsx-ast-utils: 3.2.1
+ minimatch: 3.1.2
+ object.entries: 1.1.5
+ object.fromentries: 2.0.5
+ object.hasown: 1.1.0
+ object.values: 1.1.5
+ prop-types: 15.8.1
+ resolve: 2.0.0-next.3
+ semver: 6.3.0
+ string.prototype.matchall: 4.0.6
+ dev: true
+
+ /eslint-plugin-unicorn/40.1.0_eslint@8.9.0:
+ resolution: {integrity: sha512-y5doK2DF9Sr5AqKEHbHxjFllJ167nKDRU01HDcWyv4Tnmaoe9iNxMrBnaybZvWZUaE3OC5Unu0lNIevYamloig==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: '>=7.32.0'
+ dependencies:
+ '@babel/helper-validator-identifier': 7.16.7
+ ci-info: 3.3.0
+ clean-regexp: 1.0.0
+ eslint: 8.9.0
+ eslint-utils: 3.0.0_eslint@8.9.0
+ esquery: 1.4.0
+ indent-string: 4.0.0
+ is-builtin-module: 3.1.0
+ lodash: 4.17.21
+ pluralize: 8.0.0
+ read-pkg-up: 7.0.1
+ regexp-tree: 0.1.24
+ safe-regex: 2.1.1
+ semver: 7.3.5
+ strip-indent: 3.0.0
+ dev: true
+
+ /eslint-plugin-vue/8.5.0_eslint@8.9.0:
+ resolution: {integrity: sha512-i1uHCTAKOoEj12RDvdtONWrGzjFm/djkzqfhmQ0d6M/W8KM81mhswd/z+iTZ0jCpdUedW3YRgcVfQ37/J4zoYQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ eslint: 8.9.0
+ eslint-utils: 3.0.0_eslint@8.9.0
+ natural-compare: 1.4.0
+ semver: 7.3.5
+ vue-eslint-parser: 8.3.0_eslint@8.9.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-plugin-yml/0.12.0_eslint@8.9.0:
+ resolution: {integrity: sha512-aS82M+diohZTusadiByzh/bKDrfi+Y6VBQkD3ym/7JH+KF9WUB9qKCizLfTaCACwtRrHpqaLz3G8GKmslshyiw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+ dependencies:
+ debug: 4.3.3
+ eslint: 8.9.0
+ lodash: 4.17.21
+ natural-compare: 1.4.0
+ yaml-eslint-parser: 0.5.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-scope/5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+ dev: true
+
+ /eslint-scope/7.1.1:
+ resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+ dev: true
+
+ /eslint-utils/2.1.0:
+ resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==}
+ engines: {node: '>=6'}
+ dependencies:
+ eslint-visitor-keys: 1.3.0
+ dev: true
+
+ /eslint-utils/3.0.0_eslint@8.9.0:
+ resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
+ engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
+ peerDependencies:
+ eslint: '>=5'
+ dependencies:
+ eslint: 8.9.0
+ eslint-visitor-keys: 2.1.0
+ dev: true
+
+ /eslint-visitor-keys/1.3.0:
+ resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /eslint-visitor-keys/2.1.0:
+ resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /eslint-visitor-keys/3.3.0:
+ resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /eslint/8.9.0:
+ resolution: {integrity: sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ '@eslint/eslintrc': 1.1.0
+ '@humanwhocodes/config-array': 0.9.5
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.3
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.1.1
+ eslint-utils: 3.0.0_eslint@8.9.0
+ eslint-visitor-keys: 3.3.0
+ espree: 9.3.1
+ esquery: 1.4.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ functional-red-black-tree: 1.0.1
+ glob-parent: 6.0.2
+ globals: 13.12.1
+ ignore: 5.2.0
+ import-fresh: 3.3.0
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ js-yaml: 4.1.0
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.1
+ regexpp: 3.2.0
+ strip-ansi: 6.0.1
+ strip-json-comments: 3.1.1
+ text-table: 0.2.0
+ v8-compile-cache: 2.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /espree/9.3.1:
+ resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ acorn: 8.7.0
+ acorn-jsx: 5.3.2_acorn@8.7.0
+ eslint-visitor-keys: 3.3.0
+ dev: true
+
+ /esquery/1.4.0:
+ resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /esrecurse/4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /estraverse/4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /estraverse/5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /estree-walker/1.0.1:
+ resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==}
+ dev: true
+
+ /estree-walker/2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+ dev: true
+
+ /esutils/2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /execa/0.8.0:
+ resolution: {integrity: sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=}
+ engines: {node: '>=4'}
+ dependencies:
+ cross-spawn: 5.1.0
+ get-stream: 3.0.0
+ is-stream: 1.1.0
+ npm-run-path: 2.0.2
+ p-finally: 1.0.0
+ signal-exit: 3.0.6
+ strip-eof: 1.0.0
+ dev: true
+
+ /execa/5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.6
+ strip-final-newline: 2.0.0
+ dev: true
+
+ /fast-deep-equal/3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ dev: true
+
+ /fast-glob/3.2.11:
+ resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
+ 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
+ dev: true
+
+ /fast-glob/3.2.7:
+ resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==}
+ engines: {node: '>=8'}
+ 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
+ dev: true
+
+ /fast-json-stable-stringify/2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+ dev: true
+
+ /fast-levenshtein/2.0.6:
+ resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=}
dev: true
/fastq/1.13.0:
@@ -1793,6 +2581,13 @@ packages:
reusify: 1.0.4
dev: true
+ /file-entry-cache/6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flat-cache: 3.0.4
+ dev: true
+
/fill-range/7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -1800,6 +2595,21 @@ packages:
to-regex-range: 5.0.1
dev: true
+ /find-up/2.1.0:
+ resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=}
+ engines: {node: '>=4'}
+ dependencies:
+ locate-path: 2.0.0
+ dev: true
+
+ /find-up/4.1.0:
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+ engines: {node: '>=8'}
+ dependencies:
+ locate-path: 5.0.0
+ path-exists: 4.0.0
+ dev: true
+
/find-up/5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
@@ -1808,6 +2618,18 @@ packages:
path-exists: 4.0.0
dev: true
+ /flat-cache/3.0.4:
+ resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flatted: 3.2.5
+ rimraf: 3.0.2
+ dev: true
+
+ /flatted/3.2.5:
+ resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==}
+ dev: true
+
/foreground-child/2.0.0:
resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==}
engines: {node: '>=8.0.0'}
@@ -1856,6 +2678,10 @@ packages:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
dev: true
+ /functional-red-black-tree/1.0.1:
+ resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=}
+ dev: true
+
/get-caller-file/2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
@@ -1888,6 +2714,14 @@ packages:
engines: {node: '>=10'}
dev: true
+ /get-symbol-description/1.0.0:
+ resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.1.1
+ dev: true
+
/glob-parent/5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -1895,6 +2729,13 @@ packages:
is-glob: 4.0.3
dev: true
+ /glob-parent/6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
/glob/7.2.0:
resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
dependencies:
@@ -1911,6 +2752,13 @@ packages:
engines: {node: '>=4'}
dev: true
+ /globals/13.12.1:
+ resolution: {integrity: sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==}
+ engines: {node: '>=8'}
+ dependencies:
+ type-fest: 0.20.2
+ dev: true
+
/globby/11.0.4:
resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==}
engines: {node: '>=10'}
@@ -1939,6 +2787,10 @@ packages:
whatwg-mimetype: 2.3.0
dev: true
+ /has-bigints/1.0.1:
+ resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==}
+ dev: true
+
/has-flag/3.0.0:
resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
engines: {node: '>=4'}
@@ -1954,6 +2806,13 @@ packages:
engines: {node: '>= 0.4'}
dev: true
+ /has-tostringtag/1.0.0:
+ resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.2
+ dev: true
+
/has/1.0.3:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
@@ -1981,10 +2840,23 @@ packages:
resolution: {integrity: sha512-7qam9XBFb+DijNBthaL1k/7lHU2TEMZkWSyuqmU3sCQze1wFm5w9AlEx30PD7a+QVAjOy6Ec2goFwe1YVyk2uA==}
dev: true
+ /hosted-git-info/2.8.9:
+ resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+ dev: true
+
/html-escaper/2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
dev: true
+ /htmlparser2/7.2.0:
+ resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==}
+ dependencies:
+ domelementtype: 2.2.0
+ domhandler: 4.3.0
+ domutils: 2.8.0
+ entities: 3.0.1
+ dev: true
+
/http-basic/8.1.3:
resolution: {integrity: sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==}
engines: {node: '>=6.0.0'}
@@ -2023,11 +2895,29 @@ packages:
safer-buffer: 2.1.2
dev: true
+ /ignore/4.0.6:
+ resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==}
+ engines: {node: '>= 4'}
+ dev: true
+
/ignore/5.2.0:
resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
engines: {node: '>= 4'}
dev: true
+ /import-fresh/3.3.0:
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+ dev: true
+
+ /imurmurhash/0.1.4:
+ resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=}
+ engines: {node: '>=0.8.19'}
+ dev: true
+
/indent-string/4.0.0:
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
engines: {node: '>=8'}
@@ -2044,6 +2934,25 @@ packages:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
dev: true
+ /internal-slot/1.0.3:
+ resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.1.1
+ has: 1.0.3
+ side-channel: 1.0.4
+ dev: true
+
+ /is-arrayish/0.2.1:
+ resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=}
+ dev: true
+
+ /is-bigint/1.0.4:
+ resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
+ dependencies:
+ has-bigints: 1.0.1
+ dev: true
+
/is-binary-path/2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
@@ -2051,6 +2960,26 @@ packages:
binary-extensions: 2.2.0
dev: true
+ /is-boolean-object/1.1.2:
+ resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-builtin-module/3.1.0:
+ resolution: {integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==}
+ engines: {node: '>=6'}
+ dependencies:
+ builtin-modules: 3.2.0
+ dev: true
+
+ /is-callable/1.2.4:
+ resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
/is-ci/1.2.1:
resolution: {integrity: sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==}
hasBin: true
@@ -2064,6 +2993,13 @@ packages:
has: 1.0.3
dev: true
+ /is-date-object/1.0.5:
+ resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
/is-extglob/2.1.1:
resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=}
engines: {node: '>=0.10.0'}
@@ -2090,6 +3026,18 @@ packages:
resolution: {integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=}
dev: true
+ /is-negative-zero/2.0.2:
+ resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /is-number-object/1.0.6:
+ resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
/is-number/7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
@@ -2101,6 +3049,18 @@ packages:
'@types/estree': 0.0.50
dev: true
+ /is-regex/1.1.4:
+ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-shared-array-buffer/1.0.1:
+ resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==}
+ dev: true
+
/is-stream/1.1.0:
resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=}
engines: {node: '>=0.10.0'}
@@ -2111,6 +3071,26 @@ packages:
engines: {node: '>=8'}
dev: true
+ /is-string/1.0.7:
+ resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-symbol/1.0.4:
+ resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.2
+ dev: true
+
+ /is-weakref/1.0.2:
+ resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
+ dependencies:
+ call-bind: 1.0.2
+ dev: true
+
/isarray/1.0.0:
resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=}
dev: true
@@ -2155,10 +3135,36 @@ packages:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
dev: true
- /jsesc/2.5.2:
- resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
- engines: {node: '>=4'}
+ /js-yaml/4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ dev: true
+
+ /jsesc/2.5.2:
+ resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /json-parse-even-better-errors/2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+ dev: true
+
+ /json-schema-traverse/0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+ dev: true
+
+ /json-stable-stringify-without-jsonify/1.0.1:
+ resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=}
+ dev: true
+
+ /json5/1.0.1:
+ resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==}
hasBin: true
+ dependencies:
+ minimist: 1.2.5
dev: true
/json5/2.2.0:
@@ -2169,6 +3175,16 @@ packages:
minimist: 1.2.5
dev: true
+ /jsonc-eslint-parser/2.1.0:
+ resolution: {integrity: sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ acorn: 8.7.0
+ eslint-visitor-keys: 3.3.0
+ espree: 9.3.1
+ semver: 7.3.5
+ dev: true
+
/jsonc-parser/3.0.0:
resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==}
dev: true
@@ -2181,15 +3197,35 @@ packages:
graceful-fs: 4.2.8
dev: true
+ /jsx-ast-utils/3.2.1:
+ resolution: {integrity: sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ array-includes: 3.1.4
+ object.assign: 4.1.2
+ dev: true
+
/kolorist/1.5.1:
resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==}
dev: true
+ /levn/0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ dev: true
+
/lilconfig/2.0.4:
resolution: {integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==}
engines: {node: '>=10'}
dev: true
+ /lines-and-columns/1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ dev: true
+
/lint-staged/12.3.4:
resolution: {integrity: sha512-yv/iK4WwZ7/v0GtVkNb3R82pdL9M+ScpIbJLJNyCXkJ1FGaXvRCOg/SeL59SZtPpqZhE7BD6kPKFLIDUhDx2/w==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -2236,6 +3272,21 @@ packages:
engines: {node: '>=14'}
dev: true
+ /locate-path/2.0.0:
+ resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=}
+ engines: {node: '>=4'}
+ dependencies:
+ p-locate: 2.0.0
+ path-exists: 3.0.0
+ dev: true
+
+ /locate-path/5.0.0:
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-locate: 4.1.0
+ dev: true
+
/locate-path/6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -2243,6 +3294,10 @@ packages:
p-locate: 5.0.0
dev: true
+ /lodash.merge/4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ dev: true
+
/lodash/4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
dev: true
@@ -2257,6 +3312,13 @@ packages:
wrap-ansi: 6.2.0
dev: true
+ /loose-envify/1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+ dependencies:
+ js-tokens: 4.0.0
+ dev: true
+
/loupe/2.3.4:
resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==}
dependencies:
@@ -2328,12 +3390,23 @@ packages:
engines: {node: '>=6'}
dev: true
+ /min-indent/1.0.1:
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+ 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
+ dev: true
+
/minimist/1.2.5:
resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==}
dev: true
@@ -2376,6 +3449,10 @@ packages:
engines: {node: '>=4'}
dev: true
+ /ms/2.0.0:
+ resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=}
+ dev: true
+
/ms/2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
@@ -2394,6 +3471,10 @@ packages:
hasBin: true
dev: true
+ /natural-compare/1.4.0:
+ resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=}
+ dev: true
+
/node-fetch/2.6.6:
resolution: {integrity: sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==}
engines: {node: 4.x || >=6.0.0}
@@ -2407,6 +3488,15 @@ packages:
uuid: 3.4.0
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.0
+ semver: 5.7.1
+ validate-npm-package-license: 3.0.4
+ dev: true
+
/normalize-path/1.0.0:
resolution: {integrity: sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=}
engines: {node: '>=0.10.0'}
@@ -2440,6 +3530,55 @@ packages:
resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==}
dev: true
+ /object-keys/1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /object.assign/4.1.2:
+ resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ has-symbols: 1.0.2
+ object-keys: 1.1.1
+ dev: true
+
+ /object.entries/1.1.5:
+ resolution: {integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ es-abstract: 1.19.1
+ dev: true
+
+ /object.fromentries/2.0.5:
+ resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ es-abstract: 1.19.1
+ dev: true
+
+ /object.hasown/1.1.0:
+ resolution: {integrity: sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==}
+ dependencies:
+ define-properties: 1.1.3
+ es-abstract: 1.19.1
+ dev: true
+
+ /object.values/1.1.5:
+ resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ es-abstract: 1.19.1
+ dev: true
+
/once/1.4.0:
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
dependencies:
@@ -2453,11 +3592,37 @@ packages:
mimic-fn: 2.1.0
dev: true
+ /optionator/0.9.1:
+ resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.3
+ dev: true
+
/p-finally/1.0.0:
resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=}
engines: {node: '>=4'}
dev: true
+ /p-limit/1.3.0:
+ resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
+ engines: {node: '>=4'}
+ dependencies:
+ p-try: 1.0.0
+ dev: true
+
+ /p-limit/2.3.0:
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+ engines: {node: '>=6'}
+ dependencies:
+ p-try: 2.2.0
+ dev: true
+
/p-limit/3.1.0:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
@@ -2465,6 +3630,20 @@ packages:
yocto-queue: 0.1.0
dev: true
+ /p-locate/2.0.0:
+ resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=}
+ engines: {node: '>=4'}
+ dependencies:
+ p-limit: 1.3.0
+ dev: true
+
+ /p-locate/4.1.0:
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-limit: 2.3.0
+ dev: true
+
/p-locate/5.0.0:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
@@ -2479,10 +3658,37 @@ packages:
aggregate-error: 3.1.0
dev: true
+ /p-try/1.0.0:
+ resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /p-try/2.2.0:
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /parent-module/1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+ dependencies:
+ callsites: 3.1.0
+ dev: true
+
/parse-cache-control/1.0.1:
resolution: {integrity: sha1-juqz5U+laSD+Fro493+iGqzC104=}
dev: true
+ /parse-json/5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@babel/code-frame': 7.16.7
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+ dev: true
+
/parse5-htmlparser2-tree-adapter/6.0.1:
resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==}
dependencies:
@@ -2497,6 +3703,11 @@ packages:
resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
dev: true
+ /path-exists/3.0.0:
+ resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=}
+ engines: {node: '>=4'}
+ dev: true
+
/path-exists/4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
@@ -2551,6 +3762,11 @@ packages:
pathe: 0.2.0
dev: true
+ /pluralize/8.0.0:
+ resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
+ engines: {node: '>=4'}
+ dev: true
+
/popmotion/11.0.3:
resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==}
dependencies:
@@ -2573,6 +3789,11 @@ packages:
resolution: {integrity: sha512-WyosM7pxGcndU8hY0OQlLd54tOU+qmG45QXj2dAYrL11HoyU/EzOSTlpJsirbBr1QW7lICxSsVJJmcmUglovHQ==}
dev: true
+ /prelude-ls/1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+ dev: true
+
/prettier/2.5.1:
resolution: {integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==}
engines: {node: '>=10.13.0'}
@@ -2603,10 +3824,23 @@ packages:
asap: 2.0.6
dev: true
+ /prop-types/15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+ dev: true
+
/pseudomap/1.0.2:
resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=}
dev: true
+ /punycode/2.1.1:
+ resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
+ engines: {node: '>=6'}
+ dev: true
+
/qs/6.10.2:
resolution: {integrity: sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==}
engines: {node: '>=0.6'}
@@ -2623,6 +3857,29 @@ packages:
engines: {node: '>=10'}
dev: true
+ /react-is/16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+ dev: true
+
+ /read-pkg-up/7.0.1:
+ resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
+ engines: {node: '>=8'}
+ dependencies:
+ find-up: 4.1.0
+ read-pkg: 5.2.0
+ type-fest: 0.8.1
+ dev: true
+
+ /read-pkg/5.2.0:
+ resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@types/normalize-package-data': 2.4.1
+ normalize-package-data: 2.5.0
+ parse-json: 5.2.0
+ type-fest: 0.6.0
+ dev: true
+
/readable-stream/2.3.7:
resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
dependencies:
@@ -2642,11 +3899,34 @@ packages:
picomatch: 2.3.1
dev: true
+ /regexp-tree/0.1.24:
+ resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==}
+ hasBin: true
+ dev: true
+
+ /regexp.prototype.flags/1.4.1:
+ resolution: {integrity: sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ dev: true
+
+ /regexpp/3.2.0:
+ resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
+ engines: {node: '>=8'}
+ dev: true
+
/require-directory/2.1.1:
resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=}
engines: {node: '>=0.10.0'}
dev: true
+ /resolve-from/4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+ dev: true
+
/resolve-from/5.0.0:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
@@ -2661,6 +3941,13 @@ packages:
supports-preserve-symlinks-flag: 1.0.0
dev: true
+ /resolve/2.0.0-next.3:
+ resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==}
+ dependencies:
+ is-core-module: 2.8.1
+ path-parse: 1.0.7
+ dev: true
+
/restore-cursor/3.1.0:
resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
engines: {node: '>=8'}
@@ -2741,6 +4028,12 @@ packages:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
dev: true
+ /safe-regex/2.1.1:
+ resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
+ dependencies:
+ regexp-tree: 0.1.24
+ dev: true
+
/safer-buffer/2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
dev: true
@@ -2749,11 +4042,24 @@ packages:
resolution: {integrity: sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg==}
dev: true
+ /semver/5.7.1:
+ resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
+ hasBin: true
+ dev: true
+
/semver/6.3.0:
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
hasBin: true
dev: true
+ /semver/7.3.5:
+ resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+ dev: true
+
/shebang-command/1.2.0:
resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=}
engines: {node: '>=0.10.0'}
@@ -2845,6 +4151,28 @@ packages:
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
dev: true
+ /spdx-correct/3.1.1:
+ resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.11
+ dev: true
+
+ /spdx-exceptions/2.3.0:
+ resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
+ dev: true
+
+ /spdx-expression-parse/3.0.1:
+ resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+ dependencies:
+ spdx-exceptions: 2.3.0
+ spdx-license-ids: 3.0.11
+ dev: true
+
+ /spdx-license-ids/3.0.11:
+ resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==}
+ dev: true
+
/string-argv/0.3.1:
resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==}
engines: {node: '>=0.6.19'}
@@ -2868,6 +4196,33 @@ packages:
strip-ansi: 7.0.1
dev: true
+ /string.prototype.matchall/4.0.6:
+ resolution: {integrity: sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ es-abstract: 1.19.1
+ get-intrinsic: 1.1.1
+ has-symbols: 1.0.2
+ internal-slot: 1.0.3
+ regexp.prototype.flags: 1.4.1
+ side-channel: 1.0.4
+ dev: true
+
+ /string.prototype.trimend/1.0.4:
+ resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ dev: true
+
+ /string.prototype.trimstart/1.0.4:
+ resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ dev: true
+
/string_decoder/1.1.1:
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
dependencies:
@@ -2888,6 +4243,11 @@ packages:
ansi-regex: 6.0.1
dev: true
+ /strip-bom/3.0.0:
+ resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=}
+ engines: {node: '>=4'}
+ dev: true
+
/strip-eof/1.0.0:
resolution: {integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=}
engines: {node: '>=0.10.0'}
@@ -2903,6 +4263,18 @@ packages:
engines: {node: '>=4'}
dev: true
+ /strip-indent/3.0.0:
+ resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ min-indent: 1.0.1
+ dev: true
+
+ /strip-json-comments/3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+ dev: true
+
/style-value-types/5.0.0:
resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==}
dependencies:
@@ -2965,6 +4337,10 @@ packages:
minimatch: 3.0.4
dev: true
+ /text-table/0.2.0:
+ resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=}
+ dev: true
+
/then-request/6.0.2:
resolution: {integrity: sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==}
engines: {node: '>=6.0.0'}
@@ -3025,6 +4401,15 @@ packages:
resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=}
dev: true
+ /tsconfig-paths/3.12.0:
+ resolution: {integrity: sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==}
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.1
+ minimist: 1.2.5
+ strip-bom: 3.0.0
+ dev: true
+
/tslib/1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: true
@@ -3032,16 +4417,48 @@ packages:
/tslib/2.3.1:
resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==}
+ /tsutils/3.21.0_typescript@4.5.5:
+ resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
+ engines: {node: '>= 6'}
+ peerDependencies:
+ typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
+ dependencies:
+ tslib: 1.14.1
+ typescript: 4.5.5
+ dev: true
+
+ /type-check/0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ dev: true
+
/type-detect/4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
dev: true
+ /type-fest/0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+ dev: true
+
/type-fest/0.21.3:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
dev: true
+ /type-fest/0.6.0:
+ resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /type-fest/0.8.1:
+ resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
+ engines: {node: '>=8'}
+ dev: true
+
/typedarray/0.0.6:
resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=}
dev: true
@@ -3052,6 +4469,15 @@ packages:
hasBin: true
dev: true
+ /unbox-primitive/1.0.1:
+ resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==}
+ dependencies:
+ function-bind: 1.1.1
+ has-bigints: 1.0.1
+ has-symbols: 1.0.2
+ which-boxed-primitive: 1.0.2
+ dev: true
+
/unbuild/0.6.9:
resolution: {integrity: sha512-IALhVj6cLWAxFqX5qcuR932Y3OKFgWcZXPeQ0qU1YAuBucWzpY171GHMi+rXot3C4V7JwD0khGmjvu41E980mQ==}
hasBin: true
@@ -3101,6 +4527,12 @@ packages:
engines: {node: '>=4'}
dev: true
+ /uri-js/4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ dependencies:
+ punycode: 2.1.1
+ dev: true
+
/util-deprecate/1.0.2:
resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
dev: true
@@ -3111,6 +4543,10 @@ packages:
hasBin: true
dev: true
+ /v8-compile-cache/2.3.0:
+ resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==}
+ dev: true
+
/v8-to-istanbul/8.1.0:
resolution: {integrity: sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==}
engines: {node: '>=10.12.0'}
@@ -3120,6 +4556,13 @@ packages:
source-map: 0.7.3
dev: true
+ /validate-npm-package-license/3.0.4:
+ resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+ dependencies:
+ spdx-correct: 3.1.1
+ spdx-expression-parse: 3.0.1
+ dev: true
+
/vite-plugin-windicss/1.7.1_vite@2.8.4:
resolution: {integrity: sha512-eEDeTPaeQAfe0widkTkm9X51BVpOE/yDIuFbULIKjXI7CfY1yjsPcxA6E3aZbLBYQcUmfhVUTYVaH5iAE5L8Hg==}
peerDependencies:
@@ -3240,6 +4683,24 @@ packages:
vue: 3.2.31
dev: false
+ /vue-eslint-parser/8.3.0_eslint@8.9.0:
+ resolution: {integrity: sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+ dependencies:
+ debug: 4.3.3
+ eslint: 8.9.0
+ eslint-scope: 7.1.1
+ eslint-visitor-keys: 3.3.0
+ espree: 9.3.1
+ esquery: 1.4.0
+ lodash: 4.17.21
+ semver: 7.3.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/vue/3.2.31:
resolution: {integrity: sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw==}
dependencies:
@@ -3276,6 +4737,16 @@ packages:
webidl-conversions: 3.0.1
dev: true
+ /which-boxed-primitive/1.0.2:
+ resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
+ dependencies:
+ is-bigint: 1.0.4
+ is-boolean-object: 1.1.2
+ is-number-object: 1.0.6
+ is-string: 1.0.7
+ is-symbol: 1.0.4
+ dev: true
+
/which/1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
hasBin: true
@@ -3297,6 +4768,11 @@ packages:
hasBin: true
dev: true
+ /word-wrap/1.2.3:
+ resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/wrap-ansi/6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
@@ -3332,6 +4808,15 @@ packages:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
dev: true
+ /yaml-eslint-parser/0.5.0:
+ resolution: {integrity: sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ eslint-visitor-keys: 3.3.0
+ lodash: 4.17.21
+ yaml: 1.10.2
+ dev: true
+
/yaml/1.10.2:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
diff --git a/src/directive/index.ts b/src/directive/index.ts
index 73085a70..395dc188 100644
--- a/src/directive/index.ts
+++ b/src/directive/index.ts
@@ -1,6 +1,7 @@
-import { Directive, DirectiveBinding, ref, set as __set, VNode } from 'vue-demi'
+import type { Directive, DirectiveBinding, VNode } from 'vue-demi'
+import { set as __set, ref } from 'vue-demi'
import { motionState } from '../features/state'
-import { MotionVariants } from '../types'
+import type { MotionVariants } from '../types'
import { useMotion } from '../useMotion'
import { resolveVariants } from '../utils/directive'
import { reactiveStyle, reactiveTransform } from '../index'
@@ -12,13 +13,7 @@ export const directive = (
const register = (
el: HTMLElement | SVGElement,
binding: DirectiveBinding,
- node: VNode<
- any,
- HTMLElement | SVGElement,
- {
- [key: string]: any
- }
- >,
+ node: VNode>,
) => {
// Get instance key if possible (binding value or element key in case of v-for's)
const key = (
@@ -34,9 +29,7 @@ export const directive = (
const variantsRef = ref(variants || {})
// Set variants from v-motion binding
- if (typeof binding.value === 'object') {
- variantsRef.value = binding.value
- }
+ if (typeof binding.value === 'object') variantsRef.value = binding.value
// Resolve variants from node props
resolveVariants(node, variantsRef)
@@ -45,26 +38,16 @@ export const directive = (
const motionInstance = useMotion(el, variantsRef)
// Pass the motion instance via the local element
- // @ts-ignore
+ // @ts-expect-error - we know that the element is a HTMLElement
el.motionInstance = motionInstance
// Set the global state reference if the name is set through v-motion="`value`"
if (key) __set(motionState, key, motionInstance)
}
- const unregister = (
- el: HTMLElement | SVGElement,
- _: DirectiveBinding,
- __: VNode<
- any,
- HTMLElement | SVGElement,
- {
- [key: string]: any
- }
- >,
- ) => {
+ const unregister = (el: HTMLElement | SVGElement) => {
// Cleanup the unregistered element motion instance
- // @ts-ignore
+ // @ts-expect-error - we know that the element is a HTMLElement
if (el.motionInstance) el.motionInstance.stop()
}
@@ -74,22 +57,26 @@ export const directive = (
unmounted: unregister,
// Vue 2 Directive Hooks
// For Nuxt & Vue 2 compatibility
- // @ts-expect-error
+ // @ts-expect-error - Compatibility
bind: register,
unbind: unregister,
// Vue 3 SSR
getSSRProps(binding) {
const { initial = {} } = binding.value
- if (Object.keys(initial).length === 0) return
+ // No initial
+ if (!initial || Object.keys(initial).length === 0) return
+ // Split values between `transform` and `style`
const { transform: _transform, style: _style } = splitValues(initial)
+ // Generate transform string
const { transform } = reactiveTransform(_transform)
+ // Generate style string
const { style } = reactiveStyle(_style)
- // @ts-ignore
+ // @ts-expect-error - Set transform from style
if (transform.value) style.value.transform = transform.value
return {
diff --git a/src/features/eventListeners.ts b/src/features/eventListeners.ts
index d9b8c4b9..0e5c7974 100644
--- a/src/features/eventListeners.ts
+++ b/src/features/eventListeners.ts
@@ -1,6 +1,7 @@
-import { useEventListener, Fn } from '@vueuse/core'
+import type { Fn } from '@vueuse/core'
+import { useEventListener } from '@vueuse/core'
import { computed, ref, unref, watch } from 'vue-demi'
-import { MotionInstance, MotionVariants } from '../types'
+import type { MotionInstance, MotionVariants } from '../types'
import {
supportsMouseEvents,
supportsPointerEvents,
@@ -18,6 +19,7 @@ export function registerEventListeners({
// Proxy useEventListener to force cancellation on stop function
const _eventListeners: Fn[] = []
const _useEventListener: typeof useEventListener = (...args: any[]) => {
+ // eslint-disable-next-line prefer-spread
const _stop = useEventListener.apply(null, args as any)
_eventListeners.push(_stop)
return _stop
@@ -33,17 +35,13 @@ export function registerEventListeners({
if (!_variants) return result
- if (_variants.hovered) {
+ if (_variants.hovered)
result = [...result, ...Object.keys(_variants.hovered)]
- }
- if (_variants.tapped) {
- result = [...result, ...Object.keys(_variants.tapped)]
- }
+ if (_variants.tapped) result = [...result, ...Object.keys(_variants.tapped)]
- if (_variants.focused) {
+ if (_variants.focused)
result = [...result, ...Object.keys(_variants.focused)]
- }
return result
})
@@ -53,21 +51,17 @@ export function registerEventListeners({
Object.assign(result, state.value)
- if (hovered.value && _variants.hovered) {
+ if (hovered.value && _variants.hovered)
Object.assign(result, _variants.hovered)
- }
- if (tapped.value && _variants.tapped) {
+ if (tapped.value && _variants.tapped)
Object.assign(result, _variants.tapped)
- }
- if (focused.value && _variants.focused) {
+ if (focused.value && _variants.focused)
Object.assign(result, _variants.focused)
- }
- for (const key in result) {
+ for (const key in result)
if (!mutableKeys.value.includes(key)) delete result[key]
- }
return result
})
diff --git a/src/features/lifeCycleHooks.ts b/src/features/lifeCycleHooks.ts
index ee503e13..ef31d0df 100644
--- a/src/features/lifeCycleHooks.ts
+++ b/src/features/lifeCycleHooks.ts
@@ -1,5 +1,5 @@
import { unref, watch } from 'vue-demi'
-import { MotionInstance, MotionVariants } from '../types'
+import type { MotionInstance, MotionVariants } from '../types'
export function registerLifeCycleHooks({
set,
diff --git a/src/features/state.ts b/src/features/state.ts
index 320836f7..316701ca 100644
--- a/src/features/state.ts
+++ b/src/features/state.ts
@@ -1,3 +1,3 @@
-import { MotionInstanceBindings } from '../types'
+import type { MotionInstanceBindings } from '../types'
export const motionState: MotionInstanceBindings = {}
diff --git a/src/features/syncVariants.ts b/src/features/syncVariants.ts
index 5018460d..16d454f1 100644
--- a/src/features/syncVariants.ts
+++ b/src/features/syncVariants.ts
@@ -1,5 +1,5 @@
import { watch } from 'vue-demi'
-import { MotionInstance, MotionVariants } from '../types'
+import type { MotionInstance, MotionVariants } from '../types'
export function registerVariantsSync({
state,
diff --git a/src/features/visibilityHooks.ts b/src/features/visibilityHooks.ts
index 3ebb15af..8afe2d1c 100644
--- a/src/features/visibilityHooks.ts
+++ b/src/features/visibilityHooks.ts
@@ -1,6 +1,6 @@
import { noop, useIntersectionObserver } from '@vueuse/core'
import { unref } from 'vue-demi'
-import { MotionInstance, MotionVariants } from '../types'
+import type { MotionInstance, MotionVariants } from '../types'
export function registerVisibilityHooks({
target,
@@ -15,11 +15,8 @@ export function registerVisibilityHooks({
const { stop: stopObserver } = useIntersectionObserver(
target,
([{ isIntersecting }]) => {
- if (isIntersecting) {
- variant.value = 'visible'
- } else {
- variant.value = 'initial'
- }
+ if (isIntersecting) variant.value = 'visible'
+ else variant.value = 'initial'
},
)
diff --git a/src/motionValue.ts b/src/motionValue.ts
index b8588b7d..60b1d783 100644
--- a/src/motionValue.ts
+++ b/src/motionValue.ts
@@ -1,6 +1,7 @@
-import sync, { FrameData, getFrameData } from 'framesync'
+import type { FrameData } from 'framesync'
+import sync, { getFrameData } from 'framesync'
import { velocityPerSecond } from 'popmotion'
-import { StartAnimation, Subscriber } from './types'
+import type { StartAnimation, Subscriber } from './types'
import { SubscriptionManager } from './utils/subscription-manager'
const isFloat = (value: any): value is string => {
@@ -24,12 +25,12 @@ export class MotionValue {
/**
* Duration, in milliseconds, since last updating frame.
*/
- private timeDelta: number = 0
+ private timeDelta = 0
/**
* Timestamp of the last time this `MotionValue` was updated.
*/
- private lastUpdated: number = 0
+ private lastUpdated = 0
/**
* Functions to notify when the `MotionValue` updates.
@@ -130,9 +131,9 @@ export class MotionValue {
*/
getVelocity() {
// This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful
+ // These casts could be avoided if parseFloat would be typed better
return this.canTrackVelocity
- ? // These casts could be avoided if parseFloat would be typed better
- velocityPerSecond(
+ ? velocityPerSecond(
parseFloat(this.current as any) - parseFloat(this.prev as any),
this.timeDelta,
)
@@ -151,9 +152,7 @@ export class MotionValue {
private velocityCheck = ({ timestamp }: FrameData) => {
if (!this.canTrackVelocity) this.canTrackVelocity = isFloat(this.current)
- if (timestamp !== this.lastUpdated) {
- this.prev = this.current
- }
+ if (timestamp !== this.lastUpdated) this.prev = this.current
}
/**
diff --git a/src/plugin/index.ts b/src/plugin/index.ts
index bfc4fab8..1f0a956b 100644
--- a/src/plugin/index.ts
+++ b/src/plugin/index.ts
@@ -1,7 +1,7 @@
-import { Plugin } from 'vue-demi'
+import type { Plugin } from 'vue-demi'
import { directive } from '../directive'
import * as presets from '../presets'
-import { MotionPluginOptions, MotionVariants } from '../types'
+import type { MotionPluginOptions, MotionVariants } from '../types'
import slugify from '../utils/slugify'
export const MotionPlugin: Plugin = {
diff --git a/src/presets/fade.ts b/src/presets/fade.ts
index 250f6fe4..b3af76bb 100644
--- a/src/presets/fade.ts
+++ b/src/presets/fade.ts
@@ -1,4 +1,4 @@
-import { MotionVariants } from '../types'
+import type { MotionVariants } from '../types'
export const fade: MotionVariants = {
initial: {
diff --git a/src/presets/pop.ts b/src/presets/pop.ts
index e1600497..8236fe5e 100644
--- a/src/presets/pop.ts
+++ b/src/presets/pop.ts
@@ -1,4 +1,4 @@
-import { MotionVariants } from '../types'
+import type { MotionVariants } from '../types'
export const pop: MotionVariants = {
initial: {
diff --git a/src/presets/roll.ts b/src/presets/roll.ts
index 37f92f38..49259953 100644
--- a/src/presets/roll.ts
+++ b/src/presets/roll.ts
@@ -1,4 +1,4 @@
-import { MotionVariants } from '../types'
+import type { MotionVariants } from '../types'
// Roll from left
diff --git a/src/presets/slide.ts b/src/presets/slide.ts
index adebc127..3d731a56 100644
--- a/src/presets/slide.ts
+++ b/src/presets/slide.ts
@@ -1,4 +1,4 @@
-import { MotionVariants } from '../types'
+import type { MotionVariants } from '../types'
// Slide from left
diff --git a/src/reactiveStyle.ts b/src/reactiveStyle.ts
index aa72f3c6..a8b6e6f1 100644
--- a/src/reactiveStyle.ts
+++ b/src/reactiveStyle.ts
@@ -1,5 +1,6 @@
-import { reactive, Ref, ref, watch } from 'vue-demi'
-import { StyleProperties } from './types'
+import type { Ref } from 'vue-demi'
+import { reactive, ref, watch } from 'vue-demi'
+import type { StyleProperties } from './types'
import { getValueAsType, getValueType } from './utils/style'
/**
diff --git a/src/reactiveTransform.ts b/src/reactiveTransform.ts
index 33773885..9b11b2e0 100644
--- a/src/reactiveTransform.ts
+++ b/src/reactiveTransform.ts
@@ -1,12 +1,12 @@
import { px } from 'style-value-types'
import { reactive, ref, watch } from 'vue-demi'
-import { TransformProperties } from './types'
+import type { TransformProperties } from './types'
import { getValueAsType, getValueType } from './utils/style'
/**
* Aliases translate key for simpler API integration.
*/
-const translateAlias: { [key: string]: string } = {
+const translateAlias: Record = {
x: 'translateX',
y: 'translateY',
z: 'translateZ',
@@ -20,7 +20,7 @@ const translateAlias: { [key: string]: string } = {
*/
export function reactiveTransform(
props: TransformProperties = {},
- enableHardwareAcceleration: boolean = true,
+ enableHardwareAcceleration = true,
) {
// Reactive TransformProperties object
const state = reactive({ ...props })
@@ -62,9 +62,8 @@ export function reactiveTransform(
result += `${translateAlias[key] || key}(${valueAsType}) `
}
- if (enableHardwareAcceleration && !hasHardwareAcceleration) {
- result += `translateZ(0px) `
- }
+ if (enableHardwareAcceleration && !hasHardwareAcceleration)
+ result += 'translateZ(0px) '
transform.value = result.trim()
},
diff --git a/src/ssr/index.ts b/src/ssr/index.ts
deleted file mode 100644
index 0c870a03..00000000
--- a/src/ssr/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './transform'
-export * from './transpile'
diff --git a/src/ssr/transform.ts b/src/ssr/transform.ts
deleted file mode 100644
index 6e325cb5..00000000
--- a/src/ssr/transform.ts
+++ /dev/null
@@ -1,186 +0,0 @@
-import {
- createObjectProperty,
- createSimpleExpression,
- createObjectExpression,
- createCallExpression,
- findProp,
- isText,
- MERGE_PROPS,
-} from '@vue/compiler-core'
-import { isString } from '@vueuse/core'
-import { evaluateValue } from './transpile'
-import type {
- DirectiveTransform,
- DirectiveNode,
- SimpleExpressionNode,
- CompoundExpressionNode,
- TransformContext,
- TextNode,
- ElementNode,
- InterpolationNode,
- Property,
-} from '@vue/compiler-core'
-import type { MotionVariants } from '../types'
-
-type DirectiveTransformResult = ReturnType
-
-export function transform(variants?: MotionVariants): DirectiveTransform {
- return (dir, node, context): DirectiveTransformResult => {
- // Debug logging
- // console.log({ dir, node, context })
-
- const result: DirectiveTransformResult = { props: [], needRuntime: true }
-
- // Check `v-motion` directive expression
- const { exp } = dir
- if (exp) {
- // TODO: Handle { initial: {Â ...} } expression
- // console.log({ exp })
-
- console.log(createObjectProperty('style', exp))
- }
-
- // Find `initial` prop binding
- const prop = findProp(node, 'initial', true, false)
- // Check if `initial` prop binding exists
- if (!isBindDirective(prop) || prop.exp == null || prop.arg == null) {
- return result
- }
-
- /*
- console.log({
- prop,
- node,
- context,
- })
- */
-
- // Transform `initial` prop to `style` attribute
- result.props = [
- createObjectProperty(
- `style`,
- createStyleObjectExpressionFromDirectiveNode(prop, node, context),
- ),
- ]
-
- return result
- }
-}
-
-const isSymbol = (val: unknown): val is symbol => typeof val === 'symbol'
-
-// NodeTypes.DIRECTIVE
-const isBindDirective = (prop: any): prop is DirectiveNode =>
- prop != null && prop.type === 7 && prop.name === 'bind'
-
-// NodeTypes.SIMPLE_EXPRESSION
-const isSimpleExpressionNode = (node: any): node is SimpleExpressionNode =>
- node != null && node.type === 4
-
-// NodeTypes.COMPOUND_EXPRESSION
-const isCompoundExpressionNode = (node: any): node is CompoundExpressionNode =>
- node != null && node.type === 8
-
-// @ts-ignore
-function mapNodeContentHanlder(
- value:
- | string
- | symbol
- | SimpleExpressionNode
- | CompoundExpressionNode
- | TextNode
- | InterpolationNode,
-): string {
- if (isString(value)) {
- return value
- } else if (isSymbol(value)) {
- return value.description || ''
- } else if (isSimpleExpressionNode(value)) {
- return value.content
- } else if (isCompoundExpressionNode(value)) {
- return value.children.map(mapNodeContentHanlder).join('')
- } else if (isText(value)) {
- if (isString(value.content)) {
- return value.content
- } else if (isSimpleExpressionNode(value.content)) {
- return value.content.content
- } else if (isCompoundExpressionNode(value.content)) {
- return value.content.children.map(mapNodeContentHanlder).join('')
- } else {
- return ''
- }
- } else {
- return ''
- }
-}
-
-function isConstant(node: SimpleExpressionNode): boolean {
- if ('isConstant' in node) {
- // For v3.0.3 earlier
- return (node as any).isConstant
- } else if ('constType' in node) {
- // For v3.0.3 or later
- return (node.constType as number) > 0
- } else {
- throw Error('Unexpected error while transforming a v-motion directive.')
- }
-}
-
-function createStyleObjectExpressionFromDirectiveNode(
- prop: DirectiveNode,
- node: ElementNode,
- context: TransformContext,
-): Property['value'] {
- const properties: Property[] = []
-
- // @ts-ignore
- const content = prop.exp.content
-
- if (isSimpleExpressionNode(prop.exp)) {
- if (isConstant(prop.exp)) {
- const { status, value } = evaluateValue(prop.exp.content)
-
- if (status === 'ok') {
- for (const [key, val] of Object.entries(value as Record)) {
- properties.push(
- createObjectProperty(
- key,
- createSimpleExpression(String(val), true, prop.loc, 3),
- ),
- )
- }
- }
-
- return createObjectExpression(properties, node.loc)
- } else {
- if (isSimpleExpressionNode(prop.arg) && isConstant(prop.arg)) {
- const source = createSimpleExpression(
- prop.exp.content,
- false,
- prop.loc,
- 0,
- )
- const from = createObjectExpression([], prop.loc)
- return createCallExpression(
- context.helper(MERGE_PROPS),
- [source, from],
- node.loc,
- )
- } else {
- return createObjectExpression(properties, node.loc)
- }
- }
- } else if (isCompoundExpressionNode(prop.exp)) {
- const expression = prop.exp!.children.map(mapNodeContentHanlder).join('')
- const source = createSimpleExpression(expression, false, prop.loc, 0)
- const from = createObjectExpression([], prop.loc)
-
- return createCallExpression(
- context.helper(MERGE_PROPS),
- [source, from],
- node.loc,
- )
- } else {
- return createObjectExpression(properties, node.loc)
- }
-}
diff --git a/src/ssr/transpile.ts b/src/ssr/transpile.ts
deleted file mode 100644
index 43c935c4..00000000
--- a/src/ssr/transpile.ts
+++ /dev/null
@@ -1,130 +0,0 @@
-/* eslint-disable @typescript-eslint/no-explicit-any */
-import { parse } from '@babel/parser'
-
-interface EvaluateReturn {
- status: 'ok' | 'ng'
- value?: unknown
-}
-
-type NestedValue = { [P in keyof T]: NestedValue }
-
-export type TranslationParams> = {
- path: string
- named: NestedValue
- options: {
- locale?: string
- plural?: string
- }
-}
-
-export function evaluateValue(expression: string): EvaluateReturn {
- const ret = { status: 'ng', value: undefined } as EvaluateReturn
-
- try {
- const ast = parse(`const a = ${expression.trim()}`)
- const node = (ast.program.body[0] as any).declarations[0].init
- if (node.type === 'ObjectExpression') {
- const val = new Function(`return ${expression.trim()}`)()
- ret.status = 'ok'
- ret.value = val
- }
- } catch (e) {}
-
- return ret
-}
-
-export function parseExpression(expression: string): TranslationParams {
- const ret: TranslationParams = {
- path: '',
- named: {},
- options: {},
- }
-
- try {
- const ast = parse(`const a = ${expression.trim()}`)
- const node = (ast.program.body[0] as any).declarations[0].init
- if (node.type === 'StringLiteral') {
- ret.path = node.extra.raw
- } else if (node.type === 'Identifier') {
- ret.path = node.name
- } else if (node.type === 'MemberExpression') {
- ret.path = getObjectMemberValue(node)
- } else if (node.type === 'ObjectExpression') {
- node.properties.forEach((propNode: any) => {
- const propKeyNode = propNode.key
- if (propKeyNode.type !== 'Identifier') {
- return
- }
- const propValueNode = propNode.value
- switch (propKeyNode.name) {
- case 'path':
- ret.path = getObjectMemberValue(propValueNode)
- break
- case 'locale':
- ret.options.locale = getObjectMemberValue(propValueNode)
- break
- case 'choice':
- case 'plural':
- ret.options.plural = getObjectMemberValue(propValueNode)
- break
- case 'args':
- // console.log('args', propValueNode)
- traverseObjectMember(propValueNode, ret.named)
- break
- default:
- break
- }
- })
- }
- } catch (e) {}
-
- return ret
-}
-
-function getObjectMemberValue(node: any): string {
- if (node.type === 'StringLiteral' || node.type === 'NumericLiteral') {
- return node.extra.raw
- } else if (node.type === 'Identifier') {
- return node.name
- } else if (node.type === 'MemberExpression') {
- const paths: string[] = []
- collectMemberPath(node, paths)
- paths.reverse()
- return paths.join('.')
- } else {
- return ''
- }
-}
-
-function traverseObjectMember(node: any, target: any): void {
- node.properties.forEach((propNode: any) => {
- const propKeyNode = propNode.key
- if (propKeyNode.type !== 'Identifier') {
- return
- }
- if (!(propKeyNode.name in target)) {
- target[propKeyNode.name] = {}
- }
- // console.log('propNode', propNode)
- const propValueNode = propNode.value
- if (propValueNode.type === 'ObjectExpression') {
- traverseObjectMember(propValueNode, target[propKeyNode.name])
- } else {
- target[propKeyNode.name] = getObjectMemberValue(propValueNode)
- }
- })
-}
-
-function collectMemberPath(node: any, paths: string[]): void {
- if (node.type === 'Identifier') {
- paths.push(node.name)
- return
- }
-
- if (node.property.type === 'Identifier') {
- paths.push(node.property.name)
- return collectMemberPath(node.object, paths)
- }
-}
-
-/* eslint-enable @typescript-eslint/no-explicit-any */
diff --git a/src/types/instance.ts b/src/types/instance.ts
index 6e0c8117..4f510147 100644
--- a/src/types/instance.ts
+++ b/src/types/instance.ts
@@ -1,6 +1,6 @@
-import { Fn, MaybeRef, VueInstance } from '@vueuse/core'
-import { Ref, UnwrapRef } from 'vue-demi'
-import { MotionProperties, MotionVariants, Variant } from './variants'
+import type { Fn, MaybeRef, VueInstance } from '@vueuse/core'
+import type { Ref, UnwrapRef } from 'vue-demi'
+import type { MotionProperties, MotionVariants, Variant } from './variants'
export type PermissiveTarget = VueInstance | MotionTarget
@@ -15,14 +15,14 @@ export interface MotionInstance extends MotionControls {
stop: (force?: boolean) => void
}
-export type UseMotionOptions = {
+export interface UseMotionOptions {
syncVariants?: boolean
lifeCycleHooks?: boolean
visibilityHooks?: boolean
eventListeners?: boolean
}
-export type MotionControls = {
+export interface MotionControls {
/**
* Apply a variant declaration and execute the resolved transitions.
*
@@ -52,7 +52,7 @@ export type MotionControls = {
isAnimating: any
}
-export type SpringControls = {
+export interface SpringControls {
/**
* Apply new values with transitions.
*
@@ -73,9 +73,7 @@ export type SpringControls = {
values: MotionProperties
}
-export type MotionInstanceBindings = {
- [key: string]: MotionInstance
-}
+export type MotionInstanceBindings = Record>
declare module '@vue/runtime-core' {
export interface ComponentCustomProperties {
diff --git a/src/types/plugin.ts b/src/types/plugin.ts
index 99e5aa82..278d1f86 100644
--- a/src/types/plugin.ts
+++ b/src/types/plugin.ts
@@ -1,8 +1,6 @@
-import { MotionVariants } from './variants'
+import type { MotionVariants } from './variants'
export interface MotionPluginOptions {
- directives?: {
- [key: string]: MotionVariants
- }
+ directives?: Record
excludePresets?: boolean
}
diff --git a/src/types/transitions.ts b/src/types/transitions.ts
index 3362c11b..2ce92dc1 100644
--- a/src/types/transitions.ts
+++ b/src/types/transitions.ts
@@ -1,6 +1,6 @@
-import { Ref } from 'vue-demi'
-import { MotionValue } from '../motionValue'
-import { MotionProperties, PermissiveMotionProperties } from './variants'
+import type { Ref } from 'vue-demi'
+import type { MotionValue } from '../motionValue'
+import type { MotionProperties, PermissiveMotionProperties } from './variants'
export type ResolvedKeyframesTarget =
| [null, ...number[]]
@@ -21,7 +21,7 @@ export type ResolvedValueTarget = ResolvedSingleTarget | ResolvedKeyframesTarget
export type ValueTarget = SingleTarget | KeyframesTarget
-export type Props = { [key: string]: any }
+export type Props = Record
export type EasingFunction = (v: number) => number
@@ -364,9 +364,7 @@ export interface Keyframes {
export type PopmotionTransitionProps = Tween | Spring | Keyframes | Inertia
-export type PermissiveTransitionDefinition = {
- [key: string]: any
-}
+export type PermissiveTransitionDefinition = Record
export type TransitionDefinition =
| Tween
@@ -375,9 +373,7 @@ export type TransitionDefinition =
| Inertia
| PermissiveTransitionDefinition
-export type TransitionMap = Orchestration & {
- [key: string]: TransitionDefinition
-}
+export type TransitionMap = Orchestration & Record
/**
* Transition props
diff --git a/src/types/value.ts b/src/types/value.ts
index 4b9090e3..b5be4e80 100644
--- a/src/types/value.ts
+++ b/src/types/value.ts
@@ -1,4 +1,6 @@
-export type StopAnimation = { stop: () => void }
+export interface StopAnimation {
+ stop: () => void
+}
export type Transformer = (v: T) => T
diff --git a/src/types/variants.ts b/src/types/variants.ts
index 9805c598..d32424b6 100644
--- a/src/types/variants.ts
+++ b/src/types/variants.ts
@@ -1,17 +1,15 @@
-import { CSSProperties, SVGAttributes } from 'vue-demi'
-import { ResolvedSingleTarget, Transition } from './transitions'
+import type { CSSProperties, SVGAttributes } from 'vue-demi'
+import type { ResolvedSingleTarget, Transition } from './transitions'
/**
* Permissive properties keys
*/
-export type PropertiesKeys = {
- [key: string]: string | number | undefined | any
-}
+export type PropertiesKeys = Record
/**
* SVG Supported properties
*/
-export type SVGPathProperties = {
+export interface SVGPathProperties {
pathLength?: number
pathOffset?: number
pathSpacing?: number
@@ -20,7 +18,7 @@ export type SVGPathProperties = {
/**
* Transform properties
*/
-export type TransformProperties = {
+export interface TransformProperties {
x?: string | number
y?: string | number
z?: string | number
@@ -73,9 +71,8 @@ export type MotionProperties =
/**
* Permissive properties for useSpring
*/
-export type PermissiveMotionProperties = MotionProperties & {
- [key: string]: ResolvedSingleTarget
-}
+export type PermissiveMotionProperties = MotionProperties &
+ Record
/**
* Variant
@@ -87,7 +84,7 @@ export type Variant = {
/**
* Motion variants object
*/
-export type MotionVariants = {
+export interface MotionVariants {
// Initial variant
initial?: Variant
// Lifecycle hooks variants
diff --git a/src/useElementStyle.ts b/src/useElementStyle.ts
index 9783c984..8dc7d69e 100644
--- a/src/useElementStyle.ts
+++ b/src/useElementStyle.ts
@@ -1,7 +1,8 @@
-import { MaybeRef, unrefElement } from '@vueuse/core'
+import type { MaybeRef } from '@vueuse/core'
+import { unrefElement } from '@vueuse/core'
import { set as __set, watch } from 'vue-demi'
import { reactiveStyle } from './reactiveStyle'
-import { MotionTarget, PermissiveTarget, StyleProperties } from './types'
+import type { MotionTarget, PermissiveTarget, StyleProperties } from './types'
import { valueTypes } from './utils/style'
import { isTransformOriginProp, isTransformProp } from './utils/transform'
@@ -17,7 +18,7 @@ export function useElementStyle(
// Transform cache available before the element is mounted
let _cache: StyleProperties | undefined
// Local target cache as we need to resolve the element from PermissiveTarget
- let _target: MotionTarget = undefined
+ let _target: MotionTarget
// Create a reactive style object
const { state, style } = reactiveStyle()
diff --git a/src/useElementTransform.ts b/src/useElementTransform.ts
index d25fe74b..c6745fad 100644
--- a/src/useElementTransform.ts
+++ b/src/useElementTransform.ts
@@ -1,7 +1,12 @@
-import { MaybeRef, unrefElement } from '@vueuse/core'
+import type { MaybeRef } from '@vueuse/core'
+import { unrefElement } from '@vueuse/core'
import { watch } from 'vue-demi'
import { reactiveTransform } from './reactiveTransform'
-import { MotionTarget, PermissiveTarget, TransformProperties } from './types'
+import type {
+ MotionTarget,
+ PermissiveTarget,
+ TransformProperties,
+} from './types'
import { stateFromTransform } from './utils/transform-parser'
/**
@@ -16,7 +21,7 @@ export function useElementTransform(
// Transform cache available before the element is mounted
let _cache: string | undefined
// Local target cache as we need to resolve the element from PermissiveTarget
- let _target: MotionTarget = undefined
+ let _target: MotionTarget
// Create a reactive transform object
const { state, transform } = reactiveTransform()
@@ -32,9 +37,7 @@ export function useElementTransform(
if (el.style.transform) stateFromTransform(state, el.style.transform)
// If cache is present, init the target with the current cached value
- if (_cache) {
- el.style.transform = _cache
- }
+ if (_cache) el.style.transform = _cache
if (onInit) onInit(state)
},
diff --git a/src/useMotion.ts b/src/useMotion.ts
index 1c68ef86..cfe0ad22 100644
--- a/src/useMotion.ts
+++ b/src/useMotion.ts
@@ -1,6 +1,7 @@
import { watch } from 'vue-demi'
-import { MaybeRef, tryOnUnmounted } from '@vueuse/core'
-import {
+import type { MaybeRef } from '@vueuse/core'
+import { tryOnUnmounted } from '@vueuse/core'
+import type {
MotionInstance,
MotionVariants,
PermissiveTarget,
@@ -43,14 +44,15 @@ export function useMotion(
state,
motionProperties,
...controls,
- stop: (force: boolean = false) => {},
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ stop: (force = false) => {},
}
// Bind features
const { stop: stopMotionFeatures } = useMotionFeatures(instance, options)
// Instance cleanup function
- instance.stop = (force: boolean = false) => {
+ instance.stop = (force = false) => {
const _stop = () => {
instance.stopTransitions()
stopMotionProperties()
@@ -58,7 +60,7 @@ export function useMotion(
}
// Check if leave variant exist, if so wait for the animation to end before cleaning up
- if (!force && variants.value && variants.value['leave']) {
+ if (!force && variants.value && (variants.value as MotionVariants).leave) {
const _stopWatch = watch(instance.isAnimating, (newVal) => {
if (!newVal) {
_stopWatch()
diff --git a/src/useMotionControls.ts b/src/useMotionControls.ts
index 4d4c0467..faa5ffca 100644
--- a/src/useMotionControls.ts
+++ b/src/useMotionControls.ts
@@ -1,6 +1,7 @@
-import { isObject, MaybeRef } from '@vueuse/core'
+import type { MaybeRef } from '@vueuse/core'
+import { isObject } from '@vueuse/core'
import { ref, unref, watch } from 'vue-demi'
-import {
+import type {
MotionControls,
MotionProperties,
MotionTransitions,
@@ -43,42 +44,41 @@ export function useMotionControls(
)
const getVariantFromKey = (variant: keyof T): Variant => {
- if (!_variants || !_variants[variant]) {
+ if (!_variants || !_variants[variant])
throw new Error(`The variant ${variant} does not exist.`)
- }
return _variants[variant] as Variant
}
const apply = (variant: Variant | keyof T): Promise | undefined => {
// If variant is a key, try to resolve it
- if (typeof variant === 'string') {
- variant = getVariantFromKey(variant)
- }
+ if (typeof variant === 'string') variant = getVariantFromKey(variant)
// Return Promise chain
return Promise.all(
- Object.entries(variant).map(([key, value]) => {
- // Skip transition key
- if (key === 'transition') return
-
- return new Promise((resolve) => {
- push(
- key as keyof MotionProperties,
- value,
- motionProperties,
- (variant as Variant).transition ||
- getDefaultTransition(key, variant[key]),
- resolve,
- )
+ Object.entries(variant)
+ .map(([key, value]) => {
+ // Skip transition key
+ if (key === 'transition') return undefined
+
+ return new Promise((resolve) => {
+ push(
+ key as keyof MotionProperties,
+ value,
+ motionProperties,
+ (variant as Variant).transition ||
+ getDefaultTransition(key, variant[key]),
+ resolve,
+ )
+ })
})
- }),
+ .filter(Boolean),
)
}
const set = (variant: Variant | keyof T) => {
// Get variant data from parameter
- let variantData = isObject(variant) ? variant : getVariantFromKey(variant)
+ const variantData = isObject(variant) ? variant : getVariantFromKey(variant)
// Set in chain
Object.entries(variantData).forEach(([key, value]) => {
@@ -95,13 +95,10 @@ export function useMotionControls(
let leaveVariant: Variant | undefined
if (_variants) {
- if (_variants.leave) {
- leaveVariant = _variants.leave
- }
+ if (_variants.leave) leaveVariant = _variants.leave
- if (!_variants.leave && _variants.initial) {
+ if (!_variants.leave && _variants.initial)
leaveVariant = _variants.initial
- }
}
if (!leaveVariant) {
diff --git a/src/useMotionFeatures.ts b/src/useMotionFeatures.ts
index 1f7dd502..b26ae885 100644
--- a/src/useMotionFeatures.ts
+++ b/src/useMotionFeatures.ts
@@ -1,10 +1,11 @@
-import { Fn, tryOnUnmounted } from '@vueuse/core'
+import type { Fn } from '@vueuse/core'
+import { tryOnUnmounted } from '@vueuse/core'
import { ref } from 'vue-demi'
import { registerEventListeners } from './features/eventListeners'
import { registerLifeCycleHooks } from './features/lifeCycleHooks'
import { registerVariantsSync } from './features/syncVariants'
import { registerVisibilityHooks } from './features/visibilityHooks'
-import { MotionInstance, MotionVariants, UseMotionOptions } from './types'
+import type { MotionInstance, MotionVariants, UseMotionOptions } from './types'
/**
* A Composable executing resolved variants features from variants declarations.
diff --git a/src/useMotionProperties.ts b/src/useMotionProperties.ts
index 70416032..37cb7255 100644
--- a/src/useMotionProperties.ts
+++ b/src/useMotionProperties.ts
@@ -1,6 +1,7 @@
-import { MaybeRef, unrefElement } from '@vueuse/core'
-import { reactive, set as __set, watch } from 'vue-demi'
-import { MotionProperties, PermissiveTarget } from './types'
+import type { MaybeRef } from '@vueuse/core'
+import { unrefElement } from '@vueuse/core'
+import { set as __set, reactive, watch } from 'vue-demi'
+import type { MotionProperties, PermissiveTarget } from './types'
import { useElementStyle } from './useElementStyle'
import { useElementTransform } from './useElementTransform'
import { isTransformProp } from './utils/transform'
diff --git a/src/useMotionTransitions.ts b/src/useMotionTransitions.ts
index 64341b88..76714e7a 100644
--- a/src/useMotionTransitions.ts
+++ b/src/useMotionTransitions.ts
@@ -1,4 +1,4 @@
-import {
+import type {
MotionProperties,
MotionTransitions,
ResolvedValueTarget,
diff --git a/src/useMotionValues.ts b/src/useMotionValues.ts
index 69afa246..a983678c 100644
--- a/src/useMotionValues.ts
+++ b/src/useMotionValues.ts
@@ -1,7 +1,9 @@
import { tryOnUnmounted } from '@vueuse/shared'
-import { del as __del, Ref, ref, set as __set } from 'vue-demi'
-import { getMotionValue, MotionValue } from './motionValue'
-import { MotionProperties, MotionValuesMap } from './types'
+import type { Ref } from 'vue-demi'
+import { del as __del, set as __set, ref } from 'vue-demi'
+import type { MotionValue } from './motionValue'
+import { getMotionValue } from './motionValue'
+import type { MotionProperties, MotionValuesMap } from './types'
const { isArray } = Array
export function useMotionValues() {
diff --git a/src/useMotionVariants.ts b/src/useMotionVariants.ts
index efec115a..a452deb8 100644
--- a/src/useMotionVariants.ts
+++ b/src/useMotionVariants.ts
@@ -1,6 +1,7 @@
-import { MaybeRef } from '@vueuse/core'
-import { computed, Ref, ref, unref } from 'vue-demi'
-import { MotionVariants, Variant } from './types'
+import type { MaybeRef } from '@vueuse/core'
+import type { Ref } from 'vue-demi'
+import { computed, ref, unref } from 'vue-demi'
+import type { MotionVariants, Variant } from './types'
/**
* A Composable handling variants selection and features.
diff --git a/src/useReducedMotion.ts b/src/useReducedMotion.ts
index b41cd027..420e14a3 100644
--- a/src/useReducedMotion.ts
+++ b/src/useReducedMotion.ts
@@ -1,4 +1,4 @@
-import { Ref } from 'vue-demi'
+import type { Ref } from 'vue-demi'
import { useMediaQuery } from '@vueuse/core'
/**
diff --git a/src/useSpring.ts b/src/useSpring.ts
index 4ea735df..f445cf36 100644
--- a/src/useSpring.ts
+++ b/src/useSpring.ts
@@ -1,6 +1,6 @@
-import { MaybeRef } from '@vueuse/shared'
+import type { MaybeRef } from '@vueuse/shared'
import { animate } from 'popmotion'
-import {
+import type {
MotionProperties,
PermissiveMotionProperties,
PermissiveTarget,
diff --git a/src/utils/defaults.ts b/src/utils/defaults.ts
index 062f263e..9f8dd437 100644
--- a/src/utils/defaults.ts
+++ b/src/utils/defaults.ts
@@ -1,4 +1,4 @@
-import {
+import type {
Keyframes,
KeyframesTarget,
PopmotionTransitionProps,
diff --git a/src/utils/directive.ts b/src/utils/directive.ts
index f2e4a965..24b205ee 100644
--- a/src/utils/directive.ts
+++ b/src/utils/directive.ts
@@ -1,6 +1,6 @@
import { isNumber, isObject } from '@vueuse/core'
-import { Ref, VNode } from 'vue-demi'
-import { MotionVariants } from '../types'
+import type { Ref, VNode } from 'vue-demi'
+import type { MotionVariants } from '../types'
const directivePropsKeys = [
'initial',
@@ -14,30 +14,24 @@ const directivePropsKeys = [
]
export const resolveVariants = (
- node: VNode<
- any,
- HTMLElement | SVGElement,
- {
- [key: string]: any
- }
- >,
+ node: VNode>,
variantsRef: Ref,
) => {
// This is done to achieve compat with Vue 2 & 3
// node.props = Vue 3 element props location
// node.data.attrs = Vue 2 element props location
const target = node.props
- ? node.props // @ts-expect-error
- : node.data && node.data.attrs // @ts-expect-error
+ ? node.props // @ts-expect-error - Compatibility (Vue 3)
+ : node.data && node.data.attrs // @ts-expect-error - Compatibility (Vue 2)
? node.data.attrs
: {}
if (target) {
- if (target['variants'] && isObject(target['variants'])) {
+ if (target.variants && isObject(target.variants)) {
// If variant are passed through a single object reference, initialize with it
variantsRef.value = {
...variantsRef.value,
- ...target['variants'],
+ ...target.variants,
}
}
@@ -49,9 +43,8 @@ export const resolveVariants = (
if (variantsRef && variantsRef.value) {
if (variantsRef.value.enter) {
- if (!variantsRef.value.enter.transition) {
+ if (!variantsRef.value.enter.transition)
variantsRef.value.enter.transition = {}
- }
variantsRef.value.enter.transition = {
...variantsRef.value.enter.transition,
@@ -60,9 +53,8 @@ export const resolveVariants = (
}
if (variantsRef.value.visible) {
- if (!variantsRef.value.visible.transition) {
+ if (!variantsRef.value.visible.transition)
variantsRef.value.visible.transition = {}
- }
variantsRef.value.visible.transition = {
...variantsRef.value.visible.transition,
@@ -75,9 +67,8 @@ export const resolveVariants = (
return
}
- if (target && target[key] && isObject(target[key])) {
+ if (target && target[key] && isObject(target[key]))
variantsRef.value[key] = target[key]
- }
})
}
}
diff --git a/src/utils/element.ts b/src/utils/element.ts
index da7ecf8b..2cdddcca 100644
--- a/src/utils/element.ts
+++ b/src/utils/element.ts
@@ -1,8 +1,9 @@
-import { Ref, ref } from '@vue/reactivity'
+import type { Ref } from '@vue/reactivity'
+import { ref } from '@vue/reactivity'
import { watch } from '@vue/runtime-core'
-import { VueInstance } from '@vueuse/core'
-import { MaybeRef } from '@vueuse/shared'
-import { MotionTarget, PermissiveTarget } from '../types'
+import type { VueInstance } from '@vueuse/core'
+import type { MaybeRef } from '@vueuse/shared'
+import type { MotionTarget, PermissiveTarget } from '../types'
export function resolveElement(
target: MaybeRef,
diff --git a/src/utils/is-motion-instance.ts b/src/utils/is-motion-instance.ts
index ddd3f8e3..c1e77df6 100644
--- a/src/utils/is-motion-instance.ts
+++ b/src/utils/is-motion-instance.ts
@@ -1,6 +1,6 @@
import { isFunction } from '@vueuse/shared'
import { isRef } from 'vue-demi'
-import { MotionInstance } from '../types'
+import type { MotionInstance } from '../types'
/**
* Check whether an object is a Motion Instance or not.
diff --git a/src/utils/slugify.ts b/src/utils/slugify.ts
index a0ad785f..c1dcab12 100644
--- a/src/utils/slugify.ts
+++ b/src/utils/slugify.ts
@@ -17,7 +17,7 @@ export function slugify(string: string) {
return string
.toString()
- .replace(/[A-Z]/g, (s) => '-' + s) // Camel to slug
+ .replace(/[A-Z]/g, (s) => `-${s}`) // Camel to slug
.toLowerCase()
.replace(/\s+/g, '-') // Replace spaces with -
.replace(p, (c) => b.charAt(a.indexOf(c))) // Replace special characters
diff --git a/src/utils/style.ts b/src/utils/style.ts
index 4e28100c..52fbe18c 100644
--- a/src/utils/style.ts
+++ b/src/utils/style.ts
@@ -1,3 +1,4 @@
+import type { ValueType } from 'style-value-types'
import {
alpha,
color,
@@ -8,12 +9,9 @@ import {
progressPercentage,
px,
scale,
- ValueType,
} from 'style-value-types'
-interface ValueTypeMap {
- [key: string]: ValueType
-}
+type ValueTypeMap = Record
/**
* ValueType for "auto"
diff --git a/src/utils/subscription-manager.ts b/src/utils/subscription-manager.ts
index 405e5815..d5920620 100644
--- a/src/utils/subscription-manager.ts
+++ b/src/utils/subscription-manager.ts
@@ -8,7 +8,7 @@ export class SubscriptionManager {
add(handler: Handler) {
this.subscriptions.add(handler)
- return () => void this.subscriptions.delete(handler)
+ return () => this.subscriptions.delete(handler)
}
notify(
@@ -21,9 +21,7 @@ export class SubscriptionManager {
c?: Parameters[2],
) {
if (!this.subscriptions.size) return
- for (const handler of this.subscriptions) {
- handler(a, b, c)
- }
+ for (const handler of this.subscriptions) handler(a, b, c)
}
clear() {
diff --git a/src/utils/transform-parser.ts b/src/utils/transform-parser.ts
index 1ebe6114..70789ba4 100644
--- a/src/utils/transform-parser.ts
+++ b/src/utils/transform-parser.ts
@@ -1,5 +1,5 @@
import { set as __set } from 'vue-demi'
-import {
+import type {
MotionProperties,
ResolvedValueTarget,
TransformProperties,
@@ -15,9 +15,7 @@ export function parseTransform(transform: string): Partial {
const transforms = transform.trim().split(/\) |\)/)
// Handle "initial", "inherit", "unset".
- if (transforms.length === 1) {
- return {}
- }
+ if (transforms.length === 1) return {}
const parseValues = (value: string): string | number => {
// If value is ending with px or deg, return it as a number
diff --git a/src/utils/transform.ts b/src/utils/transform.ts
index fae2c1f9..e334511c 100644
--- a/src/utils/transform.ts
+++ b/src/utils/transform.ts
@@ -1,4 +1,4 @@
-import { Variant } from './../types/variants'
+import type { Variant } from './../types/variants'
/**
* A list of all transformable axes. We'll use this list to generated a version
@@ -54,11 +54,9 @@ export function splitValues(variant: Variant) {
const style = {}
Object.entries(variant).forEach(([key, value]) => {
- if (isTransformProp(key) || isTransformOriginProp(key)) {
+ if (isTransformProp(key) || isTransformOriginProp(key))
transform[key] = value
- } else {
- style[key] = value
- }
+ else style[key] = value
})
return { transform, style }
diff --git a/src/utils/transition.ts b/src/utils/transition.ts
index 6527233f..4ea57c8d 100644
--- a/src/utils/transition.ts
+++ b/src/utils/transition.ts
@@ -1,6 +1,6 @@
+import type { AnimationOptions, Easing } from 'popmotion'
import {
animate,
- AnimationOptions,
anticipate,
backIn,
backInOut,
@@ -15,13 +15,12 @@ import {
easeIn,
easeInOut,
easeOut,
- Easing,
inertia,
linear,
} from 'popmotion'
import { complex } from 'style-value-types'
-import { MotionValue } from '../motionValue'
-import {
+import type { MotionValue } from '../motionValue'
+import type {
PermissiveTransitionDefinition,
ResolvedValueTarget,
StartAnimation,
@@ -96,9 +95,8 @@ export const isAnimatable = (key: string, value: ResolvedValueTarget) => {
typeof value === 'string' && // It's animatable if we have a string
complex.test(value) && // And it contains numbers and/or colors
!value.startsWith('url(') // Unless it starts with "url("
- ) {
+ )
return true
- }
return false
}
@@ -128,19 +126,17 @@ export function convertTransitionToAnimationOptions({
}: PermissiveTransitionDefinition): AnimationOptions {
const options: AnimationOptions = { ...transition }
- if (times) options['offset'] = times
+ if (times) (options as any).offset = times
// Map easing names to Popmotion's easing functions
if (ease) {
- options['ease'] = isEasingArray(ease)
+ ;(options as any).ease = isEasingArray(ease)
? ease.map(easingDefinitionToFunction)
: easingDefinitionToFunction(ease)
}
// Map delay to elapsed from Popmotion
- if (delay) {
- options['elapsed'] = -delay
- }
+ if (delay) options.elapsed = -delay
return options
}
@@ -157,9 +153,8 @@ export function getPopmotionAnimationOptions(
options: any,
key: string,
) {
- if (Array.isArray(options.to)) {
+ if (Array.isArray(options.to))
if (!transition.duration) transition.duration = 800
- }
hydrateKeyframes(options)
@@ -183,11 +178,13 @@ export function getPopmotionAnimationOptions(
* if any options are left.
*/
export function isTransitionDefined({
+ /* eslint-disable @typescript-eslint/no-unused-vars */
delay,
repeat,
repeatType,
repeatDelay,
from,
+ /* eslint-enable */
...transition
}: Transition) {
return !!Object.keys(transition).length
@@ -203,7 +200,7 @@ export function isTransitionDefined({
* @param key
*/
export function getValueTransition(transition: Transition, key: string) {
- return transition[key] || transition['default'] || transition
+ return transition[key] || (transition as any).default || transition
}
/**
@@ -230,9 +227,8 @@ export function getAnimation(
// If we're trying to animate from "none", try and get an animatable version
// of the target. This could be improved to work both ways.
- if (origin === 'none' && isTargetAnimatable && typeof target === 'string') {
+ if (origin === 'none' && isTargetAnimatable && typeof target === 'string')
origin = getAnimatableNone(key, target)
- }
// Is origin animatable
const isOriginAnimatable = isAnimatable(key, origin)
diff --git a/tests/isMotionInstance.spec.ts b/tests/isMotionInstance.spec.ts
index 736e84c1..aab3da08 100644
--- a/tests/isMotionInstance.spec.ts
+++ b/tests/isMotionInstance.spec.ts
@@ -1,7 +1,7 @@
import { ref } from '@vue/reactivity'
import { mount } from '@vue/test-utils'
+import { describe, expect, it } from 'vitest'
import { isMotionInstance, useMotion } from '../src'
-import { describe, it, expect } from 'vitest'
const TestComponent = {
template: 'Hello world
',
diff --git a/tests/reactiveStyle.spec.ts b/tests/reactiveStyle.spec.ts
index 30a383bf..76e75328 100644
--- a/tests/reactiveStyle.spec.ts
+++ b/tests/reactiveStyle.spec.ts
@@ -1,5 +1,5 @@
import { nextTick } from 'vue'
-import { describe, it, expect } from 'vitest'
+import { describe, expect, it } from 'vitest'
import { reactiveStyle } from '../src/reactiveStyle'
describe('reactiveStyle', () => {
diff --git a/tests/reactiveTransform.spec.ts b/tests/reactiveTransform.spec.ts
index 4ddcd7b1..4e33e56f 100644
--- a/tests/reactiveTransform.spec.ts
+++ b/tests/reactiveTransform.spec.ts
@@ -1,6 +1,6 @@
import { nextTick } from 'vue'
+import { describe, expect, it } from 'vitest'
import { reactiveTransform } from '../src/reactiveTransform'
-import { describe, it, expect } from 'vitest'
describe('reactiveTransform', () => {
it('generate transform from transformProperties', () => {
diff --git a/tests/transform.spec.ts b/tests/transform.spec.ts
deleted file mode 100644
index 5b3f11b4..00000000
--- a/tests/transform.spec.ts
+++ /dev/null
@@ -1,205 +0,0 @@
-import { transform } from '../src/ssr/transform'
-import * as runtimeDom from '@vue/runtime-dom'
-import { MotionDirective } from '../src/index'
-import { compile } from '@vue/compiler-ssr'
-import { defineComponent, createSSRApp } from 'vue'
-import { renderToString } from '@vue/server-renderer'
-import { describe, test, expect } from 'vitest'
-
-describe('transform', () => {
- test('initial: basic', async () => {
- const source = `Hello world
`
- const { code, ast } = compile(source, {
- mode: 'function',
- directiveTransforms: {
- motion: transform(),
- },
- })
- expect(code).toMatchSnapshot(source)
- expect(ast).toMatchSnapshot(source)
- const render = Function('require', 'Vue', code)(require, runtimeDom)
- const App = defineComponent({
- directives: {
- motion: MotionDirective(),
- },
- ssrRender: render,
- })
- const app = createSSRApp(App)
- expect(await renderToString(app)).toMatch(
- `Hello world
`,
- )
- })
-
- test('initial: simple binding', async () => {
- const source = `Hello world
`
- const { code, ast } = compile(source, {
- mode: 'function',
- directiveTransforms: {
- motion: transform(),
- },
- })
- expect(code).toMatchSnapshot(source)
- expect(ast).toMatchSnapshot(source)
- const render = Function('require', 'Vue', code)(require, runtimeDom)
- const App = defineComponent({
- directives: {
- motion: MotionDirective(),
- },
- ssrRender: render,
- data() {
- return { initial: { scale: 1, opacity: 1 } }
- },
- })
- const app = createSSRApp(App)
- expect(await renderToString(app)).toMatch(
- `Hello world
`,
- )
- })
-
- test('initial: compound binding', async () => {
- const source = `Hello world
`
- const { code, ast } = compile(source, {
- mode: 'function',
- directiveTransforms: {
- motion: transform(),
- },
- })
- expect(code).toMatchSnapshot(source)
- expect(ast).toMatchSnapshot(source)
- const render = Function('require', 'Vue', code)(require, runtimeDom)
- const App = defineComponent({
- directives: {
- motion: MotionDirective(),
- },
- ssrRender: render,
- data() {
- return { scale: 1, opa: 1 }
- },
- })
- const app = createSSRApp(App)
- expect(await renderToString(app)).toMatch(
- `Hello world
`,
- )
- })
-
- test('with static style', async () => {
- const source = `Hello world
`
- const { code, ast } = compile(source, {
- mode: 'function',
- directiveTransforms: {
- motion: transform(),
- },
- })
- expect(code).toMatchSnapshot(source)
- expect(ast).toMatchSnapshot(source)
- const render = Function('require', 'Vue', code)(require, runtimeDom)
- const App = defineComponent({
- directives: {
- motion: MotionDirective(),
- },
- ssrRender: render,
- })
- const app = createSSRApp(App)
- expect(await renderToString(app)).toMatch(
- `Hello world
`,
- )
- })
-
- test('with dynamic style', async () => {
- const source = `Hello world
`
- const { code, ast } = compile(source, {
- mode: 'function',
- directiveTransforms: {
- motion: transform(),
- },
- })
- expect(code).toMatchSnapshot(source)
- expect(ast).toMatchSnapshot(source)
- const render = Function('require', 'Vue', code)(require, runtimeDom)
- const App = defineComponent({
- directives: {
- motion: MotionDirective(),
- },
- ssrRender: render,
- })
- const app = createSSRApp(App)
- expect(await renderToString(app)).toMatch(
- `Hello world
`,
- )
- })
-
- test('with style binidng', async () => {
- const source = `Hello world
`
- const { code, ast } = compile(source, {
- mode: 'function',
- directiveTransforms: {
- motion: transform(),
- },
- })
- expect(code).toMatchSnapshot(source)
- expect(ast).toMatchSnapshot(source)
- const render = Function('require', 'Vue', code)(require, runtimeDom)
- const App = defineComponent({
- directives: {
- motion: MotionDirective(),
- },
- data() {
- return { activeColor: 'blue', fontSize: 10 }
- },
- ssrRender: render,
- })
- const app = createSSRApp(App)
- expect(await renderToString(app)).toMatch(
- `Hello world
`,
- )
- })
-
- test('with static + dynamic style', async () => {
- const source = `Hello world
`
- const { code, ast } = compile(source, {
- mode: 'function',
- directiveTransforms: {
- motion: transform(),
- },
- })
- expect(code).toMatchSnapshot(source)
- expect(ast).toMatchSnapshot(source)
- const render = Function('require', 'Vue', code)(require, runtimeDom)
- const App = defineComponent({
- directives: {
- motion: MotionDirective(),
- },
- ssrRender: render,
- })
- const app = createSSRApp(App)
- expect(await renderToString(app)).toMatch(
- `Hello world
`,
- )
- })
-
- test('with v-show', async () => {
- const source = `Hello world
`
- const { code, ast } = compile(source, {
- mode: 'function',
- directiveTransforms: {
- motion: transform(),
- },
- })
- expect(code).toMatchSnapshot(source)
- expect(ast).toMatchSnapshot(source)
- const render = Function('require', 'Vue', code)(require, runtimeDom)
- const App = defineComponent({
- directives: {
- motion: MotionDirective(),
- },
- data() {
- return { hide: false }
- },
- ssrRender: render,
- })
- const app = createSSRApp(App)
- expect(await renderToString(app)).toMatch(
- `Hello world
`,
- )
- })
-})
diff --git a/tests/useElementStyle.spec.ts b/tests/useElementStyle.spec.ts
index 2b47c544..c72364ff 100644
--- a/tests/useElementStyle.spec.ts
+++ b/tests/useElementStyle.spec.ts
@@ -1,7 +1,7 @@
import { mount } from '@vue/test-utils'
import { nextTick, ref } from 'vue-demi'
+import { describe, expect, it } from 'vitest'
import { useElementStyle } from '../src'
-import { describe, it, expect } from 'vitest'
const TestComponent = {
template: 'Hello world
',
diff --git a/tests/useElementTransform.spec.ts b/tests/useElementTransform.spec.ts
index 3d641c52..d4ce5ee9 100644
--- a/tests/useElementTransform.spec.ts
+++ b/tests/useElementTransform.spec.ts
@@ -1,7 +1,7 @@
import { mount } from '@vue/test-utils'
import { nextTick, ref } from 'vue-demi'
+import { describe, expect, it } from 'vitest'
import { useElementTransform } from '../src'
-import { describe, it, expect } from 'vitest'
const TestComponent = {
template: 'Hello world
',
diff --git a/tests/useMotion.spec.ts b/tests/useMotion.spec.ts
index 3b746ae8..be1c448f 100644
--- a/tests/useMotion.spec.ts
+++ b/tests/useMotion.spec.ts
@@ -1,6 +1,6 @@
import { mount } from '@vue/test-utils'
import { ref } from 'vue-demi'
-import { describe, it, expect } from 'vitest'
+import { describe, expect, it } from 'vitest'
import { useMotion } from '../src'
const TestComponent = {
diff --git a/tests/useMotionTransitions.spec.ts b/tests/useMotionTransitions.spec.ts
index 2df2b651..40927238 100644
--- a/tests/useMotionTransitions.spec.ts
+++ b/tests/useMotionTransitions.spec.ts
@@ -1,6 +1,6 @@
+import { describe, expect, it } from 'vitest'
import { useMotionTransitions } from '../src'
-import { describe, it, expect } from 'vitest'
-import { Transition } from '../src/types/transitions'
+import type { Transition } from '../src/types/transitions'
const defaultTransition: Transition = {
type: 'spring',
diff --git a/vite.config.ts b/vite.config.ts
index b281e3c5..2dae6e82 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,5 +1,5 @@
-import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
+import vue from '@vitejs/plugin-vue'
import { defineConfig } from 'vite'
import WindiCSS from 'vite-plugin-windicss'