diff --git a/linkis-web-next/.commitlintrc b/linkis-web-next/.commitlintrc new file mode 100644 index 00000000000..cda374c83f6 --- /dev/null +++ b/linkis-web-next/.commitlintrc @@ -0,0 +1,49 @@ +{ + "extends": [ + "@commitlint/config-conventional" + ], + "rules": { + "type-enum": [ + 2, + "always", + [ + "build", + "chore", + "ci", + "docs", + "feat", + "fix", + "perf", + "refactor", + "revert", + "style", + "test" + ] + ], + "type-case": [ + 0 + ], + "type-empty": [ + 0 + ], + "scope-empty": [ + 0 + ], + "scope-case": [ + 0 + ], + "subject-full-stop": [ + 0, + "never" + ], + "subject-case": [ + 0, + "never" + ], + "header-max-length": [ + 0, + "always", + 72 + ] + } +} diff --git a/linkis-web-next/.env b/linkis-web-next/.env new file mode 100644 index 00000000000..77f22d87811 --- /dev/null +++ b/linkis-web-next/.env @@ -0,0 +1,5 @@ +VITE_VUE_APP_HOST= +VITE_BACKEND_URL= +VITE_VUE_APP_MN_CONFIG_PREFIX= +VITE_VUE_APP_MN_CONFIG_SOCKET= +VITE_VUE_APP_VERSION= diff --git a/linkis-web-next/.eslintignore b/linkis-web-next/.eslintignore new file mode 100644 index 00000000000..f06235c460c --- /dev/null +++ b/linkis-web-next/.eslintignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/linkis-web-next/.eslintrc.json b/linkis-web-next/.eslintrc.json new file mode 100644 index 00000000000..a235b745b04 --- /dev/null +++ b/linkis-web-next/.eslintrc.json @@ -0,0 +1,40 @@ +{ + "root": true, + "env": { + "browser": true, + "es2021": true + }, + "extends": [ + "eslint:recommended", + "plugin:vue/vue3-essential", + "plugin:@typescript-eslint/recommended", + "airbnb-base", + "prettier" + ], + "overrides": [], + "parser": "vue-eslint-parser", + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module", + "parser": "@typescript-eslint/parser" + }, + "settings": { + "import/resolver": { + "typescript": {}, + "alias": { + "map": ["@", "./src"], + "extentions": [".js", ".ts", ".vue"] + } + } + }, + "plugins": ["vue", "@typescript-eslint"], + "rules": { + "indent": ["error", 4], + "linebreak-style": ["error", "unix"], + "semi": ["error", "always"], + "vue/multi-word-component-names": 0, + "quotes": ["error", "single"], + "vue/html-quotes": ["error", "double"], + "import/extensions": "off" + } +} diff --git a/linkis-web-next/.husky/commit-msg b/linkis-web-next/.husky/commit-msg new file mode 100644 index 00000000000..314e821479c --- /dev/null +++ b/linkis-web-next/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx --no-install commitlint --edit $1 \ No newline at end of file diff --git a/linkis-web-next/.husky/pre-commit b/linkis-web-next/.husky/pre-commit new file mode 100644 index 00000000000..36af219892f --- /dev/null +++ b/linkis-web-next/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx lint-staged diff --git a/linkis-web-next/.prettierrc b/linkis-web-next/.prettierrc new file mode 100644 index 00000000000..f60cbb38473 --- /dev/null +++ b/linkis-web-next/.prettierrc @@ -0,0 +1,12 @@ +{ + "trailingComma": "all", + "tabWidth": 4, + "semi": true, + "singleQuote": true, + "overrides": [ + { + "files": [".prettierrc", ".commitlintrc"], + "options": { "parser": "json" } + } + ] +} diff --git a/linkis-web-next/README.md b/linkis-web-next/README.md new file mode 100644 index 00000000000..ef72fd52424 --- /dev/null +++ b/linkis-web-next/README.md @@ -0,0 +1,18 @@ +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` + + diff --git a/linkis-web-next/package-lock.json b/linkis-web-next/package-lock.json new file mode 100644 index 00000000000..752af65e086 --- /dev/null +++ b/linkis-web-next/package-lock.json @@ -0,0 +1,10990 @@ +{ + "name": "LINKIS-WEB-NEXT", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "LINKIS-WEB-NEXT", + "version": "0.0.0", + "dependencies": { + "@fesjs/fes-design": "^0.7.31", + "@types/lodash": "^4.14.198", + "@vitejs/plugin-vue": "^4.1.0", + "axios": "^1.5.0", + "dayjs": "^1.11.10", + "dexie": "^3.2.4", + "md5": "^2.3.0", + "monaco-editor": "^0.43.0", + "qs": "^6.11.2", + "vite": "^4.3.9", + "vue": "^3.2.47", + "vue-i18n": "^9.4.1", + "vue-router": "^4.2.2" + }, + "devDependencies": { + "@commitlint/cli": "^17.6.3", + "@commitlint/config-conventional": "^17.6.1", + "@typescript-eslint/eslint-plugin": "^5.59.9", + "@typescript-eslint/parser": "^5.59.9", + "eslint": "^8.41.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^8.8.0", + "eslint-import-resolver-alias": "^1.1.2", + "eslint-import-resolver-typescript": "^3.5.5", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-vue": "^9.14.1", + "husky": "^7.0.0", + "jsencrypt": "^3.3.2", + "less": "^4.2.0", + "lint-staged": "^13.3.0", + "prettier": "2.8.8", + "typescript": "^5.0.2", + "vue-eslint-parser": "^9.3.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", + "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", + "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz", + "integrity": "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@commitlint/cli": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.7.1.tgz", + "integrity": "sha512-BCm/AT06SNCQtvFv921iNhudOHuY16LswT0R3OeolVGLk8oP+Rk9TfQfgjH7QPMjhvp76bNqGFEcpKojxUNW1g==", + "dev": true, + "dependencies": { + "@commitlint/format": "^17.4.4", + "@commitlint/lint": "^17.7.0", + "@commitlint/load": "^17.7.1", + "@commitlint/read": "^17.5.1", + "@commitlint/types": "^17.4.4", + "execa": "^5.0.0", + "lodash.isfunction": "^3.0.9", + "resolve-from": "5.0.0", + "resolve-global": "1.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/config-conventional": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.7.0.tgz", + "integrity": "sha512-iicqh2o6et+9kWaqsQiEYZzfLbtoWv9uZl8kbI8EGfnc0HeGafQBF7AJ0ylN9D/2kj6txltsdyQs8+2fTMwWEw==", + "dev": true, + "dependencies": { + "conventional-changelog-conventionalcommits": "^6.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/config-validator": { + "version": "17.6.7", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.6.7.tgz", + "integrity": "sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ==", + "dev": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/ensure": { + "version": "17.6.7", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.6.7.tgz", + "integrity": "sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw==", + "dev": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz", + "integrity": "sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==", + "dev": true, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/format": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.4.4.tgz", + "integrity": "sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==", + "dev": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/is-ignored": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.7.0.tgz", + "integrity": "sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw==", + "dev": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "semver": "7.5.4" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/lint": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.7.0.tgz", + "integrity": "sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA==", + "dev": true, + "dependencies": { + "@commitlint/is-ignored": "^17.7.0", + "@commitlint/parse": "^17.7.0", + "@commitlint/rules": "^17.7.0", + "@commitlint/types": "^17.4.4" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/load": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.7.1.tgz", + "integrity": "sha512-S/QSOjE1ztdogYj61p6n3UbkUvweR17FQ0zDbNtoTLc+Hz7vvfS7ehoTMQ27hPSjVBpp7SzEcOQu081RLjKHJQ==", + "dev": true, + "dependencies": { + "@commitlint/config-validator": "^17.6.7", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.6.7", + "@commitlint/types": "^17.4.4", + "@types/node": "20.4.7", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/message": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz", + "integrity": "sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==", + "dev": true, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/parse": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.7.0.tgz", + "integrity": "sha512-dIvFNUMCUHqq5Abv80mIEjLVfw8QNuA4DS7OWip4pcK/3h5wggmjVnlwGCDvDChkw2TjK1K6O+tAEV78oxjxag==", + "dev": true, + "dependencies": { + "@commitlint/types": "^17.4.4", + "conventional-changelog-angular": "^6.0.0", + "conventional-commits-parser": "^4.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/read": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.5.1.tgz", + "integrity": "sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==", + "dev": true, + "dependencies": { + "@commitlint/top-level": "^17.4.0", + "@commitlint/types": "^17.4.4", + "fs-extra": "^11.0.0", + "git-raw-commits": "^2.0.11", + "minimist": "^1.2.6" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "17.6.7", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.6.7.tgz", + "integrity": "sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg==", + "dev": true, + "dependencies": { + "@commitlint/config-validator": "^17.6.7", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/rules": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.7.0.tgz", + "integrity": "sha512-J3qTh0+ilUE5folSaoK91ByOb8XeQjiGcdIdiB/8UT1/Rd1itKo0ju/eQVGyFzgTMYt8HrDJnGTmNWwcMR1rmA==", + "dev": true, + "dependencies": { + "@commitlint/ensure": "^17.6.7", + "@commitlint/message": "^17.4.2", + "@commitlint/to-lines": "^17.4.0", + "@commitlint/types": "^17.4.4", + "execa": "^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/to-lines": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.4.0.tgz", + "integrity": "sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==", + "dev": true, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/top-level": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.4.0.tgz", + "integrity": "sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/types": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.4.4.tgz", + "integrity": "sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/js": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fesjs/fes-design": { + "version": "0.7.32", + "resolved": "https://registry.npmmirror.com/@fesjs/fes-design/-/fes-design-0.7.32.tgz", + "integrity": "sha512-EYneDcAeL5fsHkoFYo7Ik4Dwo59In/YUkeWoDl28plD+vDRncyRmzkTrVQRV+tk6YI+ev/aBX+Ao/b8ye839Bw==", + "dependencies": { + "@babel/runtime": "^7.16.3", + "@floating-ui/dom": "^1.2.9", + "@juggle/resize-observer": "^3.3.1", + "@types/lodash-es": "^4.17.5", + "@vue/shared": "^3.2.24", + "@vueuse/core": "^9.6.0", + "async-validator": "^4.0.7", + "csstype": "^3.0.10", + "date-fns": "^2.28.0", + "lodash-es": "^4.17.21", + "stickybits": "^3.7.9" + }, + "peerDependencies": { + "vue": "^3.2.24" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.4.1.tgz", + "integrity": "sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==", + "dependencies": { + "@floating-ui/utils": "^0.1.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.1.tgz", + "integrity": "sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==", + "dependencies": { + "@floating-ui/core": "^1.4.1", + "@floating-ui/utils": "^0.1.1" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.1.tgz", + "integrity": "sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@intlify/core-base": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.4.1.tgz", + "integrity": "sha512-WIwx+elsZbxSMxRG5+LC+utRohFvmZMoDevfKOfnYMLbpCjCSavqTfHJAtfsY6ruowzqXeKkeLhRHbYbjoJx5g==", + "dependencies": { + "@intlify/message-compiler": "9.4.1", + "@intlify/shared": "9.4.1" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.4.1.tgz", + "integrity": "sha512-aN2N+dUx320108QhH51Ycd2LEpZ+NKbzyQ2kjjhqMcxhHdxtOnkgdx+MDBhOy/CObwBmhC3Nygzc6hNlfKvPNw==", + "dependencies": { + "@intlify/shared": "9.4.1", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.4.1.tgz", + "integrity": "sha512-A51elBmZWf1FS80inf/32diO9DeXoqg9GR9aUDHFcfHoNDuT46Q+fpPOdj8jiJnSHSBh8E1E+6qWRhAZXdK3Ng==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "devOptional": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "optional": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "devOptional": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.14.198", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz", + "integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.9", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.9.tgz", + "integrity": "sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.4.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.7.tgz", + "integrity": "sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==", + "devOptional": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==", + "dev": true + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz", + "integrity": "sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw==", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "dependencies": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "dependencies": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "node_modules/@vue/reactivity": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "dependencies": { + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "dependencies": { + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "dependencies": { + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "dependencies": { + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" + }, + "peerDependencies": { + "vue": "3.3.4" + } + }, + "node_modules/@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "devOptional": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", + "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "optional": true, + "peer": true + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "engines": { + "node": "*" + } + }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/conventional-changelog-angular": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", + "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", + "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-commits-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", + "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", + "dev": true, + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.3.5", + "meow": "^8.1.2", + "split2": "^3.2.2" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "devOptional": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz", + "integrity": "sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==", + "dev": true, + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=4" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "engines": { + "node": "*" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dexie": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dexie/-/dexie-3.2.4.tgz", + "integrity": "sha512-VKoTQRSv7+RnffpOJ3Dh6ozknBqzWw/F3iqMdsZg958R0AS8AnY9x9d1lbwENr0gzeGJHXKcGhAMRaqys6SxqA==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", + "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.48.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.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.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-alias": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-alias/-/eslint-import-resolver-alias-1.1.2.tgz", + "integrity": "sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==", + "dev": true, + "engines": { + "node": ">= 4" + }, + "peerDependencies": { + "eslint-plugin-import": ">=1.4.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz", + "integrity": "sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "has": "^1.0.3", + "is-core-module": "^2.13.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz", + "integrity": "sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.13", + "semver": "^7.5.4", + "vue-eslint-parser": "^9.3.1", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "dev": true, + "dependencies": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.0.tgz", + "integrity": "sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "dev": true, + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "dev": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/husky": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "dev": true, + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "devOptional": true + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsencrypt": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/jsencrypt/-/jsencrypt-3.3.2.tgz", + "integrity": "sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "devOptional": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "devOptional": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lint-staged": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz", + "integrity": "sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==", + "dev": true, + "dependencies": { + "chalk": "5.3.0", + "commander": "11.0.0", + "debug": "4.3.4", + "execa": "7.2.0", + "lilconfig": "2.1.0", + "listr2": "6.6.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/lint-staged/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz", + "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==", + "dev": true, + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^5.0.1", + "rfdc": "^1.3.0", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true + }, + "node_modules/log-update": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", + "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "dev": true, + "dependencies": { + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.30.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", + "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/monaco-editor": { + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.43.0.tgz", + "integrity": "sha512-cnoqwQi/9fml2Szamv1XbSJieGJ1Dc8tENVMD26Kcfl7xGQWp7OBKMjlwKVGYFJ3/AXJjSOGvcqK7Ry/j9BM1Q==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/needle": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", + "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "devOptional": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss": { + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "dev": true, + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz", + "integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/stickybits": { + "version": "3.7.11", + "resolved": "https://registry.npmjs.org/stickybits/-/stickybits-3.7.11.tgz", + "integrity": "sha512-WO+ns7BYZqGS4jWVTg5JNhIvNV4LGbUtNTSck4zAkWRQzA1IfxwIkMGc0BbdGy4PGIjK7kKo5CZcN6Sd5dHVlw==" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.19.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", + "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "optional": true, + "peer": true + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", + "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz", + "integrity": "sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "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.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vue-i18n": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.4.1.tgz", + "integrity": "sha512-vnQyYE9LBuNOqPpETIcCaGnAyLEqfeIvDcyZ9T+WBCWFTqWw1J8FuF1jfeDwpHBi5JKgAwgXyq1mt8jp/x/GPA==", + "dependencies": { + "@intlify/core-base": "9.4.1", + "@intlify/shared": "9.4.1", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.4.tgz", + "integrity": "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, + "@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", + "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.22.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", + "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==" + }, + "@babel/runtime": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz", + "integrity": "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@commitlint/cli": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.7.1.tgz", + "integrity": "sha512-BCm/AT06SNCQtvFv921iNhudOHuY16LswT0R3OeolVGLk8oP+Rk9TfQfgjH7QPMjhvp76bNqGFEcpKojxUNW1g==", + "dev": true, + "requires": { + "@commitlint/format": "^17.4.4", + "@commitlint/lint": "^17.7.0", + "@commitlint/load": "^17.7.1", + "@commitlint/read": "^17.5.1", + "@commitlint/types": "^17.4.4", + "execa": "^5.0.0", + "lodash.isfunction": "^3.0.9", + "resolve-from": "5.0.0", + "resolve-global": "1.0.0", + "yargs": "^17.0.0" + } + }, + "@commitlint/config-conventional": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.7.0.tgz", + "integrity": "sha512-iicqh2o6et+9kWaqsQiEYZzfLbtoWv9uZl8kbI8EGfnc0HeGafQBF7AJ0ylN9D/2kj6txltsdyQs8+2fTMwWEw==", + "dev": true, + "requires": { + "conventional-changelog-conventionalcommits": "^6.1.0" + } + }, + "@commitlint/config-validator": { + "version": "17.6.7", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.6.7.tgz", + "integrity": "sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ==", + "dev": true, + "requires": { + "@commitlint/types": "^17.4.4", + "ajv": "^8.11.0" + } + }, + "@commitlint/ensure": { + "version": "17.6.7", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.6.7.tgz", + "integrity": "sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw==", + "dev": true, + "requires": { + "@commitlint/types": "^17.4.4", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + } + }, + "@commitlint/execute-rule": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz", + "integrity": "sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==", + "dev": true + }, + "@commitlint/format": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.4.4.tgz", + "integrity": "sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==", + "dev": true, + "requires": { + "@commitlint/types": "^17.4.4", + "chalk": "^4.1.0" + } + }, + "@commitlint/is-ignored": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.7.0.tgz", + "integrity": "sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw==", + "dev": true, + "requires": { + "@commitlint/types": "^17.4.4", + "semver": "7.5.4" + } + }, + "@commitlint/lint": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.7.0.tgz", + "integrity": "sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA==", + "dev": true, + "requires": { + "@commitlint/is-ignored": "^17.7.0", + "@commitlint/parse": "^17.7.0", + "@commitlint/rules": "^17.7.0", + "@commitlint/types": "^17.4.4" + } + }, + "@commitlint/load": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.7.1.tgz", + "integrity": "sha512-S/QSOjE1ztdogYj61p6n3UbkUvweR17FQ0zDbNtoTLc+Hz7vvfS7ehoTMQ27hPSjVBpp7SzEcOQu081RLjKHJQ==", + "dev": true, + "requires": { + "@commitlint/config-validator": "^17.6.7", + "@commitlint/execute-rule": "^17.4.0", + "@commitlint/resolve-extends": "^17.6.7", + "@commitlint/types": "^17.4.4", + "@types/node": "20.4.7", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.0.0" + } + }, + "@commitlint/message": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz", + "integrity": "sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==", + "dev": true + }, + "@commitlint/parse": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.7.0.tgz", + "integrity": "sha512-dIvFNUMCUHqq5Abv80mIEjLVfw8QNuA4DS7OWip4pcK/3h5wggmjVnlwGCDvDChkw2TjK1K6O+tAEV78oxjxag==", + "dev": true, + "requires": { + "@commitlint/types": "^17.4.4", + "conventional-changelog-angular": "^6.0.0", + "conventional-commits-parser": "^4.0.0" + } + }, + "@commitlint/read": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.5.1.tgz", + "integrity": "sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==", + "dev": true, + "requires": { + "@commitlint/top-level": "^17.4.0", + "@commitlint/types": "^17.4.4", + "fs-extra": "^11.0.0", + "git-raw-commits": "^2.0.11", + "minimist": "^1.2.6" + } + }, + "@commitlint/resolve-extends": { + "version": "17.6.7", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.6.7.tgz", + "integrity": "sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg==", + "dev": true, + "requires": { + "@commitlint/config-validator": "^17.6.7", + "@commitlint/types": "^17.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + } + }, + "@commitlint/rules": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.7.0.tgz", + "integrity": "sha512-J3qTh0+ilUE5folSaoK91ByOb8XeQjiGcdIdiB/8UT1/Rd1itKo0ju/eQVGyFzgTMYt8HrDJnGTmNWwcMR1rmA==", + "dev": true, + "requires": { + "@commitlint/ensure": "^17.6.7", + "@commitlint/message": "^17.4.2", + "@commitlint/to-lines": "^17.4.0", + "@commitlint/types": "^17.4.4", + "execa": "^5.0.0" + } + }, + "@commitlint/to-lines": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.4.0.tgz", + "integrity": "sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==", + "dev": true + }, + "@commitlint/top-level": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.4.0.tgz", + "integrity": "sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==", + "dev": true, + "requires": { + "find-up": "^5.0.0" + } + }, + "@commitlint/types": { + "version": "17.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.4.4.tgz", + "integrity": "sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==", + "dev": true, + "requires": { + "chalk": "^4.1.0" + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "optional": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "@eslint/js": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "dev": true + }, + "@fesjs/fes-design": { + "version": "0.7.32", + "resolved": "https://registry.npmmirror.com/@fesjs/fes-design/-/fes-design-0.7.32.tgz", + "integrity": "sha512-EYneDcAeL5fsHkoFYo7Ik4Dwo59In/YUkeWoDl28plD+vDRncyRmzkTrVQRV+tk6YI+ev/aBX+Ao/b8ye839Bw==", + "requires": { + "@babel/runtime": "^7.16.3", + "@floating-ui/dom": "^1.2.9", + "@juggle/resize-observer": "^3.3.1", + "@types/lodash-es": "^4.17.5", + "@vue/shared": "^3.2.24", + "@vueuse/core": "^9.6.0", + "async-validator": "^4.0.7", + "csstype": "^3.0.10", + "date-fns": "^2.28.0", + "lodash-es": "^4.17.21", + "stickybits": "^3.7.9" + } + }, + "@floating-ui/core": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.4.1.tgz", + "integrity": "sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==", + "requires": { + "@floating-ui/utils": "^0.1.1" + } + }, + "@floating-ui/dom": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.1.tgz", + "integrity": "sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==", + "requires": { + "@floating-ui/core": "^1.4.1", + "@floating-ui/utils": "^0.1.1" + } + }, + "@floating-ui/utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.1.tgz", + "integrity": "sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==" + }, + "@humanwhocodes/config-array": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@intlify/core-base": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.4.1.tgz", + "integrity": "sha512-WIwx+elsZbxSMxRG5+LC+utRohFvmZMoDevfKOfnYMLbpCjCSavqTfHJAtfsY6ruowzqXeKkeLhRHbYbjoJx5g==", + "requires": { + "@intlify/message-compiler": "9.4.1", + "@intlify/shared": "9.4.1" + } + }, + "@intlify/message-compiler": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.4.1.tgz", + "integrity": "sha512-aN2N+dUx320108QhH51Ycd2LEpZ+NKbzyQ2kjjhqMcxhHdxtOnkgdx+MDBhOy/CObwBmhC3Nygzc6hNlfKvPNw==", + "requires": { + "@intlify/shared": "9.4.1", + "source-map-js": "^1.0.2" + } + }, + "@intlify/shared": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.4.1.tgz", + "integrity": "sha512-A51elBmZWf1FS80inf/32diO9DeXoqg9GR9aUDHFcfHoNDuT46Q+fpPOdj8jiJnSHSBh8E1E+6qWRhAZXdK3Ng==" + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "optional": true, + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "devOptional": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "optional": true, + "peer": true + }, + "@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "optional": true, + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "devOptional": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/lodash": { + "version": "4.14.198", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz", + "integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==" + }, + "@types/lodash-es": { + "version": "4.17.9", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.9.tgz", + "integrity": "sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/node": { + "version": "20.4.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.7.tgz", + "integrity": "sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==", + "devOptional": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==", + "dev": true + }, + "@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@vitejs/plugin-vue": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz", + "integrity": "sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw==", + "requires": {} + }, + "@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "requires": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "requires": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "requires": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "requires": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "@vue/reactivity": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "requires": { + "@vue/shared": "3.3.4" + } + }, + "@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "requires": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "@vue/runtime-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "requires": { + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/runtime-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "requires": { + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" + } + }, + "@vue/server-renderer": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "requires": { + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + }, + "@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "requires": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "requires": {} + } + } + }, + "@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==" + }, + "@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "requires": { + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "requires": {} + } + } + }, + "acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "devOptional": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "requires": { + "type-fest": "^1.0.2" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true + }, + "async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "axios": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", + "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "optional": true, + "peer": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==" + }, + "cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "requires": { + "restore-cursor": "^4.0.0" + } + }, + "cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "requires": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "dev": true + }, + "compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "conventional-changelog-angular": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", + "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", + "dev": true, + "requires": { + "compare-func": "^2.0.0" + } + }, + "conventional-changelog-conventionalcommits": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", + "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", + "dev": true, + "requires": { + "compare-func": "^2.0.0" + } + }, + "conventional-commits-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", + "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", + "dev": true, + "requires": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.3.5", + "meow": "^8.1.2", + "split2": "^3.2.2" + } + }, + "copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "devOptional": true, + "requires": { + "is-what": "^3.14.1" + } + }, + "cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + }, + "cosmiconfig-typescript-loader": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz", + "integrity": "sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==", + "dev": true, + "requires": {} + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true + }, + "date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "requires": { + "@babel/runtime": "^7.21.0" + } + }, + "dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + } + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "dexie": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dexie/-/dexie-3.2.4.tgz", + "integrity": "sha512-VKoTQRSv7+RnffpOJ3Dh6ozknBqzWw/F3iqMdsZg958R0AS8AnY9x9d1lbwENr0gzeGJHXKcGhAMRaqys6SxqA==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "requires": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", + "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.48.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.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.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-alias": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-alias/-/eslint-import-resolver-alias-1.1.2.tgz", + "integrity": "sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-import-resolver-typescript": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz", + "integrity": "sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "has": "^1.0.3", + "is-core-module": "^2.13.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "eslint-plugin-vue": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz", + "integrity": "sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.13", + "semver": "^7.5.4", + "vue-eslint-parser": "^9.3.1", + "xml-name-validator": "^4.0.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "dev": true, + "requires": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-tsconfig": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.0.tgz", + "integrity": "sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, + "git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "dev": true, + "requires": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "husky": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "dev": true + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "dev": true, + "requires": { + "text-extensions": "^1.0.0" + } + }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "devOptional": true + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsencrypt": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/jsencrypt/-/jsencrypt-3.3.2.tgz", + "integrity": "sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==", + "dev": true + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "devOptional": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "devOptional": true + } + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "lint-staged": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz", + "integrity": "sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==", + "dev": true, + "requires": { + "chalk": "5.3.0", + "commander": "11.0.0", + "debug": "4.3.4", + "execa": "7.2.0", + "lilconfig": "2.1.0", + "listr2": "6.6.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.1" + }, + "dependencies": { + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + }, + "execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + } + } + }, + "listr2": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz", + "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==", + "dev": true, + "requires": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^5.0.1", + "rfdc": "^1.3.0", + "wrap-ansi": "^8.1.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, + "lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true + }, + "lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true + }, + "log-update": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", + "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "dev": true, + "requires": { + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.30.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", + "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + } + }, + "monaco-editor": { + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.43.0.tgz", + "integrity": "sha512-cnoqwQi/9fml2Szamv1XbSJieGJ1Dc8tENVMD26Kcfl7xGQWp7OBKMjlwKVGYFJ3/AXJjSOGvcqK7Ry/j9BM1Q==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "needle": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", + "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "devOptional": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true + }, + "postcss": { + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "dev": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, + "restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz", + "integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "optional": true, + "peer": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "requires": { + "readable-stream": "^3.0.0" + } + }, + "stickybits": { + "version": "3.7.11", + "resolved": "https://registry.npmjs.org/stickybits/-/stickybits-3.7.11.tgz", + "integrity": "sha512-WO+ns7BYZqGS4jWVTg5JNhIvNV4LGbUtNTSck4zAkWRQzA1IfxwIkMGc0BbdGy4PGIjK7kKo5CZcN6Sd5dHVlw==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terser": { + "version": "5.19.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", + "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", + "optional": true, + "peer": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "optional": true, + "peer": true + } + } + }, + "text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vite": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", + "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "requires": { + "esbuild": "^0.18.10", + "fsevents": "~2.3.2", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + } + }, + "vue": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "requires": { + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "vue-eslint-parser": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz", + "integrity": "sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "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.6" + }, + "dependencies": { + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "vue-i18n": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.4.1.tgz", + "integrity": "sha512-vnQyYE9LBuNOqPpETIcCaGnAyLEqfeIvDcyZ9T+WBCWFTqWw1J8FuF1jfeDwpHBi5JKgAwgXyq1mt8jp/x/GPA==", + "requires": { + "@intlify/core-base": "9.4.1", + "@intlify/shared": "9.4.1", + "@vue/devtools-api": "^6.5.0" + } + }, + "vue-router": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.4.tgz", + "integrity": "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==", + "requires": { + "@vue/devtools-api": "^6.5.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/linkis-web-next/package.json b/linkis-web-next/package.json new file mode 100644 index 00000000000..4b624dbced8 --- /dev/null +++ b/linkis-web-next/package.json @@ -0,0 +1,62 @@ +{ + "name": "LINKIS-WEB-NEXT", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc && vite build", + "preview": "vite preview", + "prepare": "husky install" + }, + "dependencies": { + "@fesjs/fes-design": "^0.7.31", + "@types/lodash": "^4.14.198", + "@vitejs/plugin-vue": "^4.1.0", + "axios": "^1.5.0", + "dayjs": "^1.11.10", + "dexie": "^3.2.4", + "md5": "^2.3.0", + "monaco-editor": "^0.43.0", + "qs": "^6.11.2", + "vite": "^4.3.9", + "vue": "^3.2.47", + "vue-i18n": "^9.4.1", + "vue-router": "^4.2.2" + }, + "devDependencies": { + "@commitlint/cli": "^17.6.3", + "@commitlint/config-conventional": "^17.6.1", + "@typescript-eslint/eslint-plugin": "^5.59.9", + "@typescript-eslint/parser": "^5.59.9", + "eslint": "^8.41.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^8.8.0", + "eslint-import-resolver-alias": "^1.1.2", + "eslint-import-resolver-typescript": "^3.5.5", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-vue": "^9.14.1", + "husky": "^7.0.0", + "jsencrypt": "^3.3.2", + "less": "^4.2.0", + "lint-staged": "^13.3.0", + "prettier": "2.8.8", + "typescript": "^5.0.2", + "vue-eslint-parser": "^9.3.0" + }, + "lint-staged": { + "*.{js,jsx,vue,ts,tsx}": [ + "eslint --fix", + "prettier --write" + ], + "*.{scss,less,css,html,md,json}": [ + "prettier --write" + ] + }, + "husky": { + "hooks": { + "pre-commit": "npm run lint-staged", + "commit-msg": "commitlint -E $HUSKY_GIT_PARAMS" + } + } +} diff --git a/linkis-web-next/public/favicon.ico b/linkis-web-next/public/favicon.ico new file mode 100644 index 00000000000..3fab0999132 Binary files /dev/null and b/linkis-web-next/public/favicon.ico differ diff --git a/linkis-web-next/public/sidebar/ECMManage.svg b/linkis-web-next/public/sidebar/ECMManage.svg new file mode 100644 index 00000000000..be70af19f71 --- /dev/null +++ b/linkis-web-next/public/sidebar/ECMManage.svg @@ -0,0 +1,18 @@ + + + ECM管理-常规 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/public/sidebar/basedataManagement.svg b/linkis-web-next/public/sidebar/basedataManagement.svg new file mode 100644 index 00000000000..4fec2614bcd --- /dev/null +++ b/linkis-web-next/public/sidebar/basedataManagement.svg @@ -0,0 +1,23 @@ + + + 基础数据管理-常规 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/public/sidebar/codeQuery.svg b/linkis-web-next/public/sidebar/codeQuery.svg new file mode 100644 index 00000000000..449312ec63d --- /dev/null +++ b/linkis-web-next/public/sidebar/codeQuery.svg @@ -0,0 +1,23 @@ + + + 代码检索-常规 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/public/sidebar/dataSourceManage.svg b/linkis-web-next/public/sidebar/dataSourceManage.svg new file mode 100644 index 00000000000..767785dfb9a --- /dev/null +++ b/linkis-web-next/public/sidebar/dataSourceManage.svg @@ -0,0 +1,19 @@ + + + 数据源管理-常规 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/public/sidebar/dateReport.svg b/linkis-web-next/public/sidebar/dateReport.svg new file mode 100644 index 00000000000..207595ed8b8 --- /dev/null +++ b/linkis-web-next/public/sidebar/dateReport.svg @@ -0,0 +1,20 @@ + + + 全局变量-常规 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/public/sidebar/globalHistory.svg b/linkis-web-next/public/sidebar/globalHistory.svg new file mode 100644 index 00000000000..307e5f07a38 --- /dev/null +++ b/linkis-web-next/public/sidebar/globalHistory.svg @@ -0,0 +1,17 @@ + + + 任务概览-常规 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/public/sidebar/microserviceManage.svg b/linkis-web-next/public/sidebar/microserviceManage.svg new file mode 100644 index 00000000000..349ee0a2da6 --- /dev/null +++ b/linkis-web-next/public/sidebar/microserviceManage.svg @@ -0,0 +1,23 @@ + + + 微服务管理-常规 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/public/sidebar/resource.svg b/linkis-web-next/public/sidebar/resource.svg new file mode 100644 index 00000000000..85fd1191a95 --- /dev/null +++ b/linkis-web-next/public/sidebar/resource.svg @@ -0,0 +1,22 @@ + + + 资源管理-常规 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/public/sidebar/setting.svg b/linkis-web-next/public/sidebar/setting.svg new file mode 100644 index 00000000000..c3df9f8464b --- /dev/null +++ b/linkis-web-next/public/sidebar/setting.svg @@ -0,0 +1,20 @@ + + + 参数配置-常规 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/public/sidebar/udfFunctionTitle.svg b/linkis-web-next/public/sidebar/udfFunctionTitle.svg new file mode 100644 index 00000000000..1c2f5ea4954 --- /dev/null +++ b/linkis-web-next/public/sidebar/udfFunctionTitle.svg @@ -0,0 +1,22 @@ + + + UDF函数-常规 + + + + + + + + + + + FX + + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/public/vite.svg b/linkis-web-next/public/vite.svg new file mode 100644 index 00000000000..e7b8dfb1b2a --- /dev/null +++ b/linkis-web-next/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/linkis-web-next/src/App.vue b/linkis-web-next/src/App.vue new file mode 100644 index 00000000000..d4e1ded8b13 --- /dev/null +++ b/linkis-web-next/src/App.vue @@ -0,0 +1,5 @@ + + + diff --git a/linkis-web-next/src/assets/vue.svg b/linkis-web-next/src/assets/vue.svg new file mode 100644 index 00000000000..770e9d333ee --- /dev/null +++ b/linkis-web-next/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/linkis-web-next/src/components/editor/editor.vue b/linkis-web-next/src/components/editor/editor.vue new file mode 100644 index 00000000000..a601be29116 --- /dev/null +++ b/linkis-web-next/src/components/editor/editor.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/linkis-web-next/src/components/editor/editorNext.vue b/linkis-web-next/src/components/editor/editorNext.vue new file mode 100644 index 00000000000..741ca1808c0 --- /dev/null +++ b/linkis-web-next/src/components/editor/editorNext.vue @@ -0,0 +1,617 @@ + + + + + + diff --git a/linkis-web-next/src/components/editor/editorNext2.vue b/linkis-web-next/src/components/editor/editorNext2.vue new file mode 100644 index 00000000000..588cfa0f0fd --- /dev/null +++ b/linkis-web-next/src/components/editor/editorNext2.vue @@ -0,0 +1,603 @@ + + + + + diff --git a/linkis-web-next/src/components/editor/highRiskGrammar.ts b/linkis-web-next/src/components/editor/highRiskGrammar.ts new file mode 100644 index 00000000000..3111068c44a --- /dev/null +++ b/linkis-web-next/src/components/editor/highRiskGrammar.ts @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const hql = [ + /Truncate\s*Table/i, + /Drop\s*Table/i, + /Drop\s*Function/i, + /Drop\s*Database/i, + /ALTER\s*DATABASE/i, +]; + +const python = [/sys/i, /os/i, /sc\.stop/i, /spark\.stop/i]; + +const scala = [/sc\.stop/i, /spark\.stop/i]; + +export default { + hql, + python, + scala, +}; diff --git a/linkis-web-next/src/components/editor/index.less b/linkis-web-next/src/components/editor/index.less new file mode 100644 index 00000000000..46abc63d716 --- /dev/null +++ b/linkis-web-next/src/components/editor/index.less @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// @import '~@/common/style/variables.scss'; +.we-editor { + height: 100%; + width: 100%; + a { + color: #646465 !important; + } + .glyphMarginClass { + background: #ff9900; + } + .contentClass { + background: #fad8a483; + } + .inlineDecoration { + position: relative; + color: #ff9900 !important; + cursor: pointer; + font-style: oblique; + // wavy line(波浪线) + &::after { + content: ''; + position: absolute; + bottom: -2px; + left: 5%; + width: 90%; + height: 2px; + background: -webkit-linear-gradient( + 315deg, + transparent, + transparent 45%, + #ed4014, + transparent 55%, + transparent 100% + ), + -webkit-linear-gradient(45deg, transparent, transparent 45%, #ed4014, transparent + 55%, transparent 100%); + background-size: 4px 4px; + background-repeat: repeat-x; + } + } + .highRiskGrammar { + color: red; + } +} diff --git a/linkis-web-next/src/components/editor/index.ts b/linkis-web-next/src/components/editor/index.ts new file mode 100644 index 00000000000..0dca9fd678b --- /dev/null +++ b/linkis-web-next/src/components/editor/index.ts @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import weEditor from './editor.vue'; + +export default weEditor; diff --git a/linkis-web-next/src/components/editor/keyword/hql.ts b/linkis-web-next/src/components/editor/keyword/hql.ts new file mode 100644 index 00000000000..25ac60bc358 --- /dev/null +++ b/linkis-web-next/src/components/editor/keyword/hql.ts @@ -0,0 +1,2384 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { isEmpty } from 'lodash'; +import { getHiveList, getReturnList, getFormatProposalsList } from '../util'; +import storage from '@/common/helper/storage'; + +const kewordInfoProposals = [ + { + label: 'ADD', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'ADD', + detail: 'Non-reserved Keywords', + }, + { + label: 'ADMIN', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'ADMIN', + detail: 'Non-reserved Keywords', + }, + { + label: 'AFTER', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'AFTER', + detail: 'Non-reserved Keywords', + }, + { + label: 'ANALYZE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'ANALYZE', + detail: 'Non-reserved Keywords', + }, + { + label: 'ASC', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'ASC', + detail: 'Non-reserved Keywords', + }, + { + label: 'BEFORE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'BEFORE', + detail: 'Non-reserved Keywords', + }, + { + label: 'BUCKET', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'BUCKET', + detail: 'Non-reserved Keywords', + }, + { + label: 'BUCKETS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'BUCKETS', + detail: 'Non-reserved Keywords', + }, + { + label: 'CASCADE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'CASCADE', + detail: 'Non-reserved Keywords', + }, + { + label: 'CHANGE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'CHANGE', + detail: 'Non-reserved Keywords', + }, + { + label: 'CLUSTER', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'CLUSTER', + detail: 'Non-reserved Keywords', + }, + { + label: 'CLUSTERED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'CLUSTERED', + detail: 'Non-reserved Keywords', + }, + { + label: 'CLUSTERSTATUS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'CLUSTERSTATUS', + detail: 'Non-reserved Keywords', + }, + { + label: 'COLLECTION', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'COLLECTION', + detail: 'Non-reserved Keywords', + }, + { + label: 'COLUMNS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'COLUMNS', + detail: 'Non-reserved Keywords', + }, + { + label: 'COMMENT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'COMMENT', + detail: 'Non-reserved Keywords', + }, + { + label: 'COMPACT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'COMPACT', + detail: 'Non-reserved Keywords', + }, + { + label: 'COMPACTIONS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'COMPACTIONS', + detail: 'Non-reserved Keywords', + }, + { + label: 'COMPUTE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'COMPUTE', + detail: 'Non-reserved Keywords', + }, + { + label: 'CONCATENATE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'CONCATENATE', + detail: 'Non-reserved Keywords', + }, + { + label: 'CONTINUE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'CONTINUE', + detail: 'Non-reserved Keywords', + }, + { + label: 'DATA', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DATA', + detail: 'Non-reserved Keywords', + }, + { + label: 'DATABASES', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DATABASES', + detail: 'Non-reserved Keywords', + }, + { + label: 'DATETIME', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DATETIME', + detail: 'Non-reserved Keywords', + }, + { + label: 'DAY', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DAY', + detail: 'Non-reserved Keywords', + }, + { + label: 'DBPROPERTIES', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DBPROPERTIES', + detail: 'Non-reserved Keywords', + }, + { + label: 'DEFERRED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DEFERRED', + detail: 'Non-reserved Keywords', + }, + { + label: 'DEFINED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DEFINED', + detail: 'Non-reserved Keywords', + }, + { + label: 'DELIMITED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DELIMITED', + detail: 'Non-reserved Keywords', + }, + { + label: 'DEPENDENCY', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DEPENDENCY', + detail: 'Non-reserved Keywords', + }, + { + label: 'DESC', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DESC', + detail: 'Non-reserved Keywords', + }, + { + label: 'DIRECTORIES', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DIRECTORIES', + detail: 'Non-reserved Keywords', + }, + { + label: 'DIRECTORY', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DIRECTORY', + detail: 'Non-reserved Keywords', + }, + { + label: 'DISABLE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DISABLE', + detail: 'Non-reserved Keywords', + }, + { + label: 'DISTRIBUTE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'DISTRIBUTE', + detail: 'Non-reserved Keywords', + }, + { + label: 'ELEM_TYPE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'ELEM_TYPE', + detail: 'Non-reserved Keywords', + }, + { + label: 'ENABLE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'ENABLE', + detail: 'Non-reserved Keywords', + }, + { + label: 'ESCAPED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'ESCAPED', + detail: 'Non-reserved Keywords', + }, + { + label: 'EXCLUSIVE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'EXCLUSIVE', + detail: 'Non-reserved Keywords', + }, + { + label: 'EXPLAIN', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'EXPLAIN', + detail: 'Non-reserved Keywords', + }, + { + label: 'EXPORT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'EXPORT', + detail: 'Non-reserved Keywords', + }, + { + label: 'FIELDS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'FIELDS', + detail: 'Non-reserved Keywords', + }, + { + label: 'FILE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'FILE', + detail: 'Non-reserved Keywords', + }, + { + label: 'FILEFORMAT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'FILEFORMAT', + detail: 'Non-reserved Keywords', + }, + { + label: 'FIRST', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'FIRST', + detail: 'Non-reserved Keywords', + }, + { + label: 'FORMAT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'FORMAT', + detail: 'Non-reserved Keywords', + }, + { + label: 'FORMATTED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'FORMATTED', + detail: 'Non-reserved Keywords', + }, + { + label: 'FUNCTIONS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'FUNCTIONS', + detail: 'Non-reserved Keywords', + }, + { + label: 'HOLD_DDLTIME', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'HOLD_DDLTIME', + detail: 'Non-reserved Keywords', + }, + { + label: 'HOUR', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'HOUR', + detail: 'Non-reserved Keywords', + }, + { + label: 'IDXPROPERTIES', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'IDXPROPERTIES', + detail: 'Non-reserved Keywords', + }, + { + label: 'IGNORE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'IGNORE', + detail: 'Non-reserved Keywords', + }, + { + label: 'INDEX', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'INDEX', + detail: 'Non-reserved Keywords', + }, + { + label: 'INDEXES', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'INDEXES', + detail: 'Non-reserved Keywords', + }, + { + label: 'INPATH', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'INPATH', + detail: 'Non-reserved Keywords', + }, + { + label: 'INPUTDRIVER', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'INPUTDRIVER', + detail: 'Non-reserved Keywords', + }, + { + label: 'INPUTFORMAT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'INPUTFORMAT', + detail: 'Non-reserved Keywords', + }, + { + label: 'ITEMS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'ITEMS', + detail: 'Non-reserved Keywords', + }, + { + label: 'JAR', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'JAR', + detail: 'Non-reserved Keywords', + }, + { + label: 'KEYS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'KEYS', + detail: 'Non-reserved Keywords', + }, + { + label: 'KEY_TYPE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'KEY_TYPE', + detail: 'Non-reserved Keywords', + }, + { + label: 'LIMIT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'LIMIT', + detail: 'Non-reserved Keywords', + }, + { + label: 'LINES', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'LINES', + detail: 'Non-reserved Keywords', + }, + { + label: 'LOAD', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'LOAD', + detail: 'Non-reserved Keywords', + }, + { + label: 'LOCATION', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'LOCATION', + detail: 'Non-reserved Keywords', + }, + { + label: 'LOCK', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'LOCK', + detail: 'Non-reserved Keywords', + }, + { + label: 'LOCKS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'LOCKS', + detail: 'Non-reserved Keywords', + }, + { + label: 'LOGICAL', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'LOGICAL', + detail: 'Non-reserved Keywords', + }, + { + label: 'LONG', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'LONG', + detail: 'Non-reserved Keywords', + }, + { + label: 'MAPJOIN', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'MAPJOIN', + detail: 'Non-reserved Keywords', + }, + { + label: 'MATERIALIZED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'MATERIALIZED', + detail: 'Non-reserved Keywords', + }, + { + label: 'METADATA', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'METADATA', + detail: 'Non-reserved Keywords', + }, + { + label: 'MINUS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'MINUS', + detail: 'Non-reserved Keywords', + }, + { + label: 'MINUTE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'MINUTE', + detail: 'Non-reserved Keywords', + }, + { + label: 'MONTH', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'MONTH', + detail: 'Non-reserved Keywords', + }, + { + label: 'MSCK', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'MSCK', + detail: 'Non-reserved Keywords', + }, + { + label: 'NOSCAN', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'NOSCAN', + detail: 'Non-reserved Keywords', + }, + { + label: 'NO_DROP', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'NO_DROP', + detail: 'Non-reserved Keywords', + }, + { + label: 'OFFLINE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'OFFLINE', + detail: 'Non-reserved Keywords', + }, + { + label: 'OPTION', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'OPTION', + detail: 'Non-reserved Keywords', + }, + { + label: 'OUTPUTDRIVER', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'OUTPUTDRIVER', + detail: 'Non-reserved Keywords', + }, + { + label: 'OUTPUTFORMAT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'OUTPUTFORMAT', + detail: 'Non-reserved Keywords', + }, + { + label: 'OVERWRITE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'OVERWRITE', + detail: 'Non-reserved Keywords', + }, + { + label: 'OWNER', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'OWNER', + detail: 'Non-reserved Keywords', + }, + { + label: 'PARTITIONED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'PARTITIONED', + detail: 'Non-reserved Keywords', + }, + { + label: 'PARTITIONS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'PARTITIONS', + detail: 'Non-reserved Keywords', + }, + { + label: 'PLUS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'PLUS', + detail: 'Non-reserved Keywords', + }, + { + label: 'PRETTY', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'PRETTY', + detail: 'Non-reserved Keywords', + }, + { + label: 'PRINCIPALS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'PRINCIPALS', + detail: 'Non-reserved Keywords', + }, + { + label: 'PROTECTION', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'PROTECTION', + detail: 'Non-reserved Keywords', + }, + { + label: 'PURGE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'PURGE', + detail: 'Non-reserved Keywords', + }, + { + label: 'READ', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'READ', + detail: 'Non-reserved Keywords', + }, + { + label: 'READONLY', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'READONLY', + detail: 'Non-reserved Keywords', + }, + { + label: 'REBUILD', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'REBUILD', + detail: 'Non-reserved Keywords', + }, + { + label: 'RECORDREADER', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'RECORDREADER', + detail: 'Non-reserved Keywords', + }, + { + label: 'RECORDWRITER', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'RECORDWRITER', + detail: 'Non-reserved Keywords', + }, + { + label: 'REGEXP', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'REGEXP', + detail: 'Non-reserved Keywords', + }, + { + label: 'RELOAD', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'RELOAD', + detail: 'Non-reserved Keywords', + }, + { + label: 'RENAME', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'RENAME', + detail: 'Non-reserved Keywords', + }, + { + label: 'REPAIR', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'REPAIR', + detail: 'Non-reserved Keywords', + }, + { + label: 'REPLACE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'REPLACE', + detail: 'Non-reserved Keywords', + }, + { + label: 'REPLICATION', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'REPLICATION', + detail: 'Non-reserved Keywords', + }, + { + label: 'RESTRICT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'RESTRICT', + detail: 'Non-reserved Keywords', + }, + { + label: 'REWRITE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'REWRITE', + detail: 'Non-reserved Keywords', + }, + { + label: 'RLIKE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'RLIKE', + detail: 'Non-reserved Keywords', + }, + { + label: 'ROLE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'ROLE', + detail: 'Non-reserved Keywords', + }, + { + label: 'ROLES', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'ROLES', + detail: 'Non-reserved Keywords', + }, + { + label: 'SCHEMA', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SCHEMA', + detail: 'Non-reserved Keywords', + }, + { + label: 'SCHEMAS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SCHEMAS', + detail: 'Non-reserved Keywords', + }, + { + label: 'SECOND', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SECOND', + detail: 'Non-reserved Keywords', + }, + { + label: 'SEMI', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SEMI', + detail: 'Non-reserved Keywords', + }, + { + label: 'SERDE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SERDE', + detail: 'Non-reserved Keywords', + }, + { + label: 'SERDEPROPERTIES', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SERDEPROPERTIES', + detail: 'Non-reserved Keywords', + }, + { + label: 'SERVER', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SERVER', + detail: 'Non-reserved Keywords', + }, + { + label: 'SETS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SETS', + detail: 'Non-reserved Keywords', + }, + { + label: 'SHARED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SHARED', + detail: 'Non-reserved Keywords', + }, + { + label: 'SHOW', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SHOW', + detail: 'Non-reserved Keywords', + }, + { + label: 'SHOW_DATABASE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SHOW_DATABASE', + detail: 'Non-reserved Keywords', + }, + { + label: 'SKEWED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SKEWED', + detail: 'Non-reserved Keywords', + }, + { + label: 'SORT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SORT', + detail: 'Non-reserved Keywords', + }, + { + label: 'SORTED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SORTED', + detail: 'Non-reserved Keywords', + }, + { + label: 'SSL', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'SSL', + detail: 'Non-reserved Keywords', + }, + { + label: 'STATISTICS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'STATISTICS', + detail: 'Non-reserved Keywords', + }, + { + label: 'STORED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'STORED', + detail: 'Non-reserved Keywords', + }, + { + label: 'STREAMTABLE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'STREAMTABLE', + detail: 'Non-reserved Keywords', + }, + { + label: 'STRING', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'STRING', + detail: 'Non-reserved Keywords', + }, + { + label: 'STRUCT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'STRUCT', + detail: 'Non-reserved Keywords', + }, + { + label: 'TABLES', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'TABLES', + detail: 'Non-reserved Keywords', + }, + { + label: 'TBLPROPERTIES', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'TBLPROPERTIES', + detail: 'Non-reserved Keywords', + }, + { + label: 'TEMPORARY', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'TEMPORARY', + detail: 'Non-reserved Keywords', + }, + { + label: 'TERMINATED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'TERMINATED', + detail: 'Non-reserved Keywords', + }, + { + label: 'TINYINT', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'TINYINT', + detail: 'Non-reserved Keywords', + }, + { + label: 'TOUCH', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'TOUCH', + detail: 'Non-reserved Keywords', + }, + { + label: 'TRANSACTIONS', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'TRANSACTIONS', + detail: 'Non-reserved Keywords', + }, + { + label: 'UNARCHIVE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'UNARCHIVE', + detail: 'Non-reserved Keywords', + }, + { + label: 'UNDO', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'UNDO', + detail: 'Non-reserved Keywords', + }, + { + label: 'UNIONTYPE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'UNIONTYPE', + detail: 'Non-reserved Keywords', + }, + { + label: 'UNLOCK', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'UNLOCK', + detail: 'Non-reserved Keywords', + }, + { + label: 'UNSET', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'UNSET', + detail: 'Non-reserved Keywords', + }, + { + label: 'UNSIGNED', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'UNSIGNED', + detail: 'Non-reserved Keywords', + }, + { + label: 'URI', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'URI', + detail: 'Non-reserved Keywords', + }, + { + label: 'USE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'USE', + detail: 'Non-reserved Keywords', + }, + { + label: 'UTC', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'UTC', + detail: 'Non-reserved Keywords', + }, + { + label: 'UTCTIMESTAMP', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'UTCTIMESTAMP', + detail: 'Non-reserved Keywords', + }, + { + label: 'VALUE_TYPE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'VALUE_TYPE', + detail: 'Non-reserved Keywords', + }, + { + label: 'VIEW', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'VIEW', + detail: 'Non-reserved Keywords', + }, + { + label: 'WHILE', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'WHILE', + detail: 'Non-reserved Keywords', + }, + { + label: 'YEAR', + documentation: 'Hive 1.2.0 Non-reserved Keywords', + insertText: 'YEAR', + detail: 'Non-reserved Keywords', + }, + { + label: 'AUTOCOMMIT', + documentation: 'Hive 2.0.0 Non-reserved Keywords', + insertText: 'AUTOCOMMIT', + detail: 'Non-reserved Keywords', + }, + { + label: 'ISOLATION', + documentation: 'Hive 2.0.0 Non-reserved Keywords', + insertText: 'ISOLATION', + detail: 'Non-reserved Keywords', + }, + { + label: 'LEVEL', + documentation: 'Hive 2.0.0 Non-reserved Keywords', + insertText: 'LEVEL', + detail: 'Non-reserved Keywords', + }, + { + label: 'OFFSET', + documentation: 'Hive 2.0.0 Non-reserved Keywords', + insertText: 'OFFSET', + detail: 'Non-reserved Keywords', + }, + { + label: 'SNAPSHOT', + documentation: 'Hive 2.0.0 Non-reserved Keywords', + insertText: 'SNAPSHOT', + detail: 'Non-reserved Keywords', + }, + { + label: 'TRANSACTION', + documentation: 'Hive 2.0.0 Non-reserved Keywords', + insertText: 'TRANSACTION', + detail: 'Non-reserved Keywords', + }, + { + label: 'WORK', + documentation: 'Hive 2.0.0 Non-reserved Keywords', + insertText: 'WORK', + detail: 'Non-reserved Keywords', + }, + { + label: 'WRITE', + documentation: 'Hive 2.0.0 Non-reserved Keywords', + insertText: 'WRITE', + detail: 'Non-reserved Keywords', + }, + { + label: 'ABORT', + documentation: 'Hive 2.1.0 Non-reserved Keywords', + insertText: 'ABORT', + detail: 'Non-reserved Keywords', + }, + { + label: 'KEY', + documentation: 'Hive 2.1.0 Non-reserved Keywords', + insertText: 'KEY', + detail: 'Non-reserved Keywords', + }, + { + label: 'LAST', + documentation: 'Hive 2.1.0 Non-reserved Keywords', + insertText: 'LAST', + detail: 'Non-reserved Keywords', + }, + { + label: 'NORELY', + documentation: 'Hive 2.1.0 Non-reserved Keywords', + insertText: 'NORELY', + detail: 'Non-reserved Keywords', + }, + { + label: 'NOVALIDATE', + documentation: 'Hive 2.1.0 Non-reserved Keywords', + insertText: 'NOVALIDATE', + detail: 'Non-reserved Keywords', + }, + { + label: 'NULLS', + documentation: 'Hive 2.1.0 Non-reserved Keywords', + insertText: 'NULLS', + detail: 'Non-reserved Keywords', + }, + { + label: 'RELY', + documentation: 'Hive 2.1.0 Non-reserved Keywords', + insertText: 'RELY', + detail: 'Non-reserved Keywords', + }, + { + label: 'VALIDATE', + documentation: 'Hive 2.1.0 Non-reserved Keywords', + insertText: 'VALIDATE', + detail: 'Non-reserved Keywords', + }, + { + label: 'DETAIL', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'DETAIL', + detail: 'Non-reserved Keywords', + }, + { + label: 'DOW', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'DOW', + detail: 'Non-reserved Keywords', + }, + { + label: 'EXPRESSION', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'EXPRESSION', + detail: 'Non-reserved Keywords', + }, + { + label: 'OPERATOR', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'OPERATOR', + detail: 'Non-reserved Keywords', + }, + { + label: 'QUARTER', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'QUARTER', + detail: 'Non-reserved Keywords', + }, + { + label: 'SUMMARY', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'SUMMARY', + detail: 'Non-reserved Keywords', + }, + { + label: 'VECTORIZATION', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'VECTORIZATION', + detail: 'Non-reserved Keywords', + }, + { + label: 'WEEK', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'WEEK', + detail: 'Non-reserved Keywords', + }, + { + label: 'YEARS', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'YEARS', + detail: 'Non-reserved Keywords', + }, + { + label: 'MONTHS', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'MONTHS', + detail: 'Non-reserved Keywords', + }, + { + label: 'WEEKS', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'WEEKS', + detail: 'Non-reserved Keywords', + }, + { + label: 'DAYS', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'DAYS', + detail: 'Non-reserved Keywords', + }, + { + label: 'HOURS', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'HOURS', + detail: 'Non-reserved Keywords', + }, + { + label: 'MINUTES', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'MINUTES', + detail: 'Non-reserved Keywords', + }, + { + label: 'SECONDS', + documentation: 'Hive 2.2.0 Non-reserved Keywords', + insertText: 'SECONDS', + detail: 'Non-reserved Keywords', + }, + { + label: 'TIMESTAMPTZ', + documentation: 'Hive 3.0.0 Non-reserved Keywords', + insertText: 'TIMESTAMPTZ', + detail: 'Non-reserved Keywords', + }, + { + label: 'ZONE', + documentation: 'Hive 3.0.0 Non-reserved Keywords', + insertText: 'ZONE', + detail: 'Non-reserved Keywords', + }, + { + label: 'ALL', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'ALL', + detail: 'Reserved Keywords', + }, + { + label: 'ALTER', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'ALTER', + detail: 'Reserved Keywords', + }, + { + label: 'AND', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'AND', + detail: 'Reserved Keywords', + }, + { + label: 'ARRAY', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'ARRAY', + detail: 'Reserved Keywords', + }, + { + label: 'AS', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'AS', + detail: 'Reserved Keywords', + }, + { + label: 'AUTHORIZATION', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'AUTHORIZATION', + detail: 'Reserved Keywords', + }, + { + label: 'BETWEEN', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'BETWEEN', + detail: 'Reserved Keywords', + }, + { + label: 'BIGINT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'BIGINT', + detail: 'Reserved Keywords', + }, + { + label: 'BINARY', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'BINARY', + detail: 'Reserved Keywords', + }, + { + label: 'BOOLEAN', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'BOOLEAN', + detail: 'Reserved Keywords', + }, + { + label: 'BOTH', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'BOTH', + detail: 'Reserved Keywords', + }, + { + label: 'BY', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'BY', + detail: 'Reserved Keywords', + }, + { + label: 'CASE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'CASE', + detail: 'Reserved Keywords', + }, + { + label: 'CAST', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'CAST', + detail: 'Reserved Keywords', + }, + { + label: 'CHAR', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'CHAR', + detail: 'Reserved Keywords', + }, + { + label: 'COLUMN', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'COLUMN', + detail: 'Reserved Keywords', + }, + { + label: 'CONF', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'CONF', + detail: 'Reserved Keywords', + }, + { + label: 'CREATE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'CREATE', + detail: 'Reserved Keywords', + }, + { + label: 'CROSS', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'CROSS', + detail: 'Reserved Keywords', + }, + { + label: 'CUBE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'CUBE', + detail: 'Reserved Keywords', + }, + { + label: 'CURRENT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'CURRENT', + detail: 'Reserved Keywords', + }, + { + label: 'CURRENT_DATE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'CURRENT_DATE', + detail: 'Reserved Keywords', + }, + { + label: 'CURRENT_TIMESTAMP', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'CURRENT_TIMESTAMP', + detail: 'Reserved Keywords', + }, + { + label: 'CURSOR', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'CURSOR', + detail: 'Reserved Keywords', + }, + { + label: 'DATABASE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'DATABASE', + detail: 'Reserved Keywords', + }, + { + label: 'DATE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'DATE', + detail: 'Reserved Keywords', + }, + { + label: 'DECIMAL', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'DECIMAL', + detail: 'Reserved Keywords', + }, + { + label: 'DELETE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'DELETE', + detail: 'Reserved Keywords', + }, + { + label: 'DESCRIBE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'DESCRIBE', + detail: 'Reserved Keywords', + }, + { + label: 'DISTINCT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'DISTINCT', + detail: 'Reserved Keywords', + }, + { + label: 'DOUBLE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'DOUBLE', + detail: 'Reserved Keywords', + }, + { + label: 'DROP', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'DROP', + detail: 'Reserved Keywords', + }, + { + label: 'ELSE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'ELSE', + detail: 'Reserved Keywords', + }, + { + label: 'END', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'END', + detail: 'Reserved Keywords', + }, + { + label: 'EXCHANGE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'EXCHANGE', + detail: 'Reserved Keywords', + }, + { + label: 'EXISTS', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'EXISTS', + detail: 'Reserved Keywords', + }, + { + label: 'EXTENDED', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'EXTENDED', + detail: 'Reserved Keywords', + }, + { + label: 'EXTERNAL', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'EXTERNAL', + detail: 'Reserved Keywords', + }, + { + label: 'FALSE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'FALSE', + detail: 'Reserved Keywords', + }, + { + label: 'EXTERNAL', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'EXTERNAL', + detail: 'Reserved Keywords', + }, + { + label: 'FETCH', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'FETCH', + detail: 'Reserved Keywords', + }, + { + label: 'FLOAT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'FLOAT', + detail: 'Reserved Keywords', + }, + { + label: 'FOLLOWING', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'EXFOLLOWINGTERNAL', + detail: 'Reserved Keywords', + }, + { + label: 'FOR', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'FOR', + detail: 'Reserved Keywords', + }, + { + label: 'from', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'from', + detail: 'Reserved Keywords', + }, + { + label: 'FULL', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'FULL', + detail: 'Reserved Keywords', + }, + { + label: 'FUNCTION', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'FUNCTION', + detail: 'Reserved Keywords', + }, + { + label: 'GRANT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'GRANT', + detail: 'Reserved Keywords', + }, + { + label: 'GROUP', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'GROUP', + detail: 'Reserved Keywords', + }, + { + label: 'GROUPING', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'GROUPING', + detail: 'Reserved Keywords', + }, + { + label: 'HAVING', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'HAVING', + detail: 'Reserved Keywords', + }, + { + label: 'IF', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'IF', + detail: 'Reserved Keywords', + }, + { + label: 'IMPORT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'IMPORT', + detail: 'Reserved Keywords', + }, + { + label: 'IN', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'IN', + detail: 'Reserved Keywords', + }, + { + label: 'INNER', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'INNER', + detail: 'Reserved Keywords', + }, + { + label: 'INSERT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'INSERT', + detail: 'Reserved Keywords', + }, + { + label: 'INT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'INT', + detail: 'Reserved Keywords', + }, + { + label: 'INTERSECT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'INTERSECT', + detail: 'Reserved Keywords', + }, + { + label: 'INTERVAL', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'INTERVAL', + detail: 'Reserved Keywords', + }, + { + label: 'INTO', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'INTO', + detail: 'Reserved Keywords', + }, + { + label: 'IS', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'IS', + detail: 'Reserved Keywords', + }, + { + label: 'JOIN', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'JOIN', + detail: 'Reserved Keywords', + }, + { + label: 'LATERAL', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'LATERAL', + detail: 'Reserved Keywords', + }, + { + label: 'LEFT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'LEFT', + detail: 'Reserved Keywords', + }, + { + label: 'LESS', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'LESS', + detail: 'Reserved Keywords', + }, + { + label: 'LIKE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'LIKE', + detail: 'Reserved Keywords', + }, + { + label: 'LOCAL', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'LOCAL', + detail: 'Reserved Keywords', + }, + { + label: 'MACRO', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'MACRO', + detail: 'Reserved Keywords', + }, + { + label: 'MAP', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'MAP', + detail: 'Reserved Keywords', + }, + { + label: 'MORE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'MORE', + detail: 'Reserved Keywords', + }, + { + label: 'NONE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'NONE', + detail: 'Reserved Keywords', + }, + { + label: 'NOT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'NOT', + detail: 'Reserved Keywords', + }, + { + label: 'NULL', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'NULL', + detail: 'Reserved Keywords', + }, + { + label: 'OF', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'OF', + detail: 'Reserved Keywords', + }, + { + label: 'ON', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'ON', + detail: 'Reserved Keywords', + }, + { + label: 'OR', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'OR', + detail: 'Reserved Keywords', + }, + { + label: 'ORDER', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'ORDER', + detail: 'Reserved Keywords', + }, + { + label: 'OUT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'OUT', + detail: 'Reserved Keywords', + }, + { + label: 'OUTER', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'OUTER', + detail: 'Reserved Keywords', + }, + { + label: 'OVER', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'OVER', + detail: 'Reserved Keywords', + }, + { + label: 'PARTIALSCAN', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'PARTIALSCAN', + detail: 'Reserved Keywords', + }, + { + label: 'PARTITION', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'PARTITION', + detail: 'Reserved Keywords', + }, + { + label: 'PERCENT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'PERCENT', + detail: 'Reserved Keywords', + }, + { + label: 'PRECEDING', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'PRECEDING', + detail: 'Reserved Keywords', + }, + { + label: 'PRESERVE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'PRESERVE', + detail: 'Reserved Keywords', + }, + { + label: 'PROCEDURE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'PROCEDURE', + detail: 'Reserved Keywords', + }, + { + label: 'RANGE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'RANGE', + detail: 'Reserved Keywords', + }, + { + label: 'READS', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'READS', + detail: 'Reserved Keywords', + }, + { + label: 'REDUCE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'REDUCE', + detail: 'Reserved Keywords', + }, + { + label: 'REVOKE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'REVOKE', + detail: 'Reserved Keywords', + }, + { + label: 'RIGHT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'RIGHT', + detail: 'Reserved Keywords', + }, + { + label: 'ROLLUP', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'ROLLUP', + detail: 'Reserved Keywords', + }, + { + label: 'ROW', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'ROW', + detail: 'Reserved Keywords', + }, + { + label: 'ROWS', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'ROWS', + detail: 'Reserved Keywords', + }, + { + label: 'SELECT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'SELECT', + detail: 'Reserved Keywords', + }, + { + label: 'SET', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'SET', + detail: 'Reserved Keywords', + }, + { + label: 'SMALLINT', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'SMALLINT', + detail: 'Reserved Keywords', + }, + { + label: 'TABLE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'TABLE', + detail: 'Reserved Keywords', + }, + { + label: 'TABLESAMPLE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'TABLESAMPLE', + detail: 'Reserved Keywords', + }, + { + label: 'THEN', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'THEN', + detail: 'Reserved Keywords', + }, + { + label: 'TIMESTAMP', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'TIMESTAMP', + detail: 'Reserved Keywords', + }, + { + label: 'TO', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'TO', + detail: 'Reserved Keywords', + }, + { + label: 'TRANSFORM', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'TRANSFORM', + detail: 'Reserved Keywords', + }, + { + label: 'TRIGGER', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'TRIGGER', + detail: 'Reserved Keywords', + }, + { + label: 'TRUE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'TRUE', + detail: 'Reserved Keywords', + }, + { + label: 'TRUNCATE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'TRUNCATE', + detail: 'Reserved Keywords', + }, + { + label: 'UNBOUNDED', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'UNBOUNDED', + detail: 'Reserved Keywords', + }, + { + label: 'UNION', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'UNION', + detail: 'Reserved Keywords', + }, + { + label: 'UNIQUEJOIN', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'UNIQUEJOIN', + detail: 'Reserved Keywords', + }, + { + label: 'UPDATE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'UPDATE', + detail: 'Reserved Keywords', + }, + { + label: 'USER', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'USER', + detail: 'Reserved Keywords', + }, + { + label: 'USING', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'USING', + detail: 'Reserved Keywords', + }, + { + label: 'UTC_TMESTAMP', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'UTC_TMESTAMP', + detail: 'Reserved Keywords', + }, + { + label: 'VALUES', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'VALUES', + detail: 'Reserved Keywords', + }, + { + label: 'VARCHAR', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'VARCHAR', + detail: 'Reserved Keywords', + }, + { + label: 'WHEN', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'WHEN', + detail: 'Reserved Keywords', + }, + { + label: 'WHERE', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'WHERE', + detail: 'Reserved Keywords', + }, + { + label: 'WINDOW', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'WINDOW', + detail: 'Reserved Keywords', + }, + { + label: 'WITH', + documentation: 'Hive 1.2.0 Reserved Keywords', + insertText: 'WITH', + detail: 'Reserved Keywords', + }, + { + label: 'COMMIT', + documentation: 'Hive 2.0.0 Reserved Keywords', + insertText: 'COMMIT', + detail: 'Reserved Keywords', + }, + { + label: 'ONLY', + documentation: 'Hive 2.0.0 Reserved Keywords', + insertText: 'ONLY', + detail: 'Reserved Keywords', + }, + { + label: 'REGEXP', + documentation: 'Hive 2.0.0 Reserved Keywords', + insertText: 'REGEXP', + detail: 'Reserved Keywords', + }, + { + label: 'RLIKE', + documentation: 'Hive 2.0.0 Reserved Keywords', + insertText: 'RLIKE', + detail: 'Reserved Keywords', + }, + { + label: 'ROLLBACK', + documentation: 'Hive 2.0.0 Reserved Keywords', + insertText: 'ROLLBACK', + detail: 'Reserved Keywords', + }, + { + label: 'START', + documentation: 'Hive 2.0.0 Reserved Keywords', + insertText: 'START', + detail: 'Reserved Keywords', + }, + { + label: 'CACHE', + documentation: 'Hive 2.1.0 Reserved Keywords', + insertText: 'CACHE', + detail: 'Reserved Keywords', + }, + { + label: 'CONSTRAINT', + documentation: 'Hive 2.1.0 Reserved Keywords', + insertText: 'CONSTRAINT', + detail: 'Reserved Keywords', + }, + { + label: 'FOREIGN', + documentation: 'Hive 2.1.0 Reserved Keywords', + insertText: 'FOREIGN', + detail: 'Reserved Keywords', + }, + { + label: 'PRIMARY', + documentation: 'Hive 2.1.0 Reserved Keywords', + insertText: 'PRIMARY', + detail: 'Reserved Keywords', + }, + { + label: 'DAYOFWEEK', + documentation: 'Hive 2.2.0 Reserved Keywords', + insertText: 'DAYOFWEEK', + detail: 'Reserved Keywords', + }, + { + label: 'EXTRACT', + documentation: 'Hive 2.2.0 Reserved Keywords', + insertText: 'EXTRACT', + detail: 'Reserved Keywords', + }, + { + label: 'FLOOR', + documentation: 'Hive 2.2.0 Reserved Keywords', + insertText: 'FLOOR', + detail: 'Reserved Keywords', + }, + { + label: 'INTEGER', + documentation: 'Hive 2.2.0 Reserved Keywords', + insertText: 'INTEGER', + detail: 'Reserved Keywords', + }, + { + label: 'PRECISION', + documentation: 'Hive 2.2.0 Reserved Keywords', + insertText: 'PRECISION', + detail: 'Reserved Keywords', + }, + { + label: 'VIEWS', + documentation: 'Hive 2.2.0 Reserved Keywords', + insertText: 'VIEWS', + detail: 'Reserved Keywords', + }, + { + label: 'TIME', + documentation: 'Hive 3.0.0 Reserved Keywords', + insertText: 'TIME', + detail: 'Reserved Keywords', + }, + { + label: 'NUMERIC', + documentation: 'Hive 3.0.0 Reserved Keywords', + insertText: 'NUMERIC', + detail: 'Reserved Keywords', + }, + { + label: 'ide.engine.no.limit.allow', + documentation: '当设置为true时,本次执行的SQL将进行全量导出', + insertText: 'ide.engine.no.limit.allow', + detail: 'build-in parameters', + }, +]; +// Common grammatical structures(常用语法结构) +const commonGrammaticalStruCture = [ + { + label: 'drop table', + documentation: '删除hive表', + insertText: 'drop table if exists {${1:table_name}$0};', + detail: '常用语法结构', + }, + { + label: 'create table partitioned by', + documentation: '创建hive分区表', + insertText: + 'create table {${1:table_name}$0} ({${2:columns}}) partitioned by ({${3:partition}}) row format delimited fields terminated by "," stored as orc;', + detail: '常用语法结构', + }, + { + label: 'create table as select', + documentation: '通过select创建表', + insertText: 'create table {${1:table_name}$0} as select;', + detail: '常用语法结构', + }, + { + label: 'insert into table', + documentation: '添加方式插入数据', + insertText: + 'insert into table {${1:table_name}$0} partition({partition});', + detail: '常用语法结构', + }, + { + label: 'insert overwrite table', + documentation: '覆盖方式插入数据', + insertText: + 'insert overwrite table {${1:table_name}$0} partition({partition});', + detail: '常用语法结构', + }, +]; +// System Embedded Variables(系统内嵌变量) +const buildInVariableProposals = [ + { + label: 'run_date', + documentation: '当前日期的前一天', + insertText: '${run_date}', + detail: '系统内嵌变量', + }, + { + label: 'run_date_std', + documentation: '当前日期的前一天,年月日之间有横杠分割', + insertText: '${run_date_std}', + detail: '系统内嵌变量', + }, + { + label: 'run_month_begin', + documentation: '当前月份的第一天', + insertText: '${run_month_begin}', + detail: '系统内嵌变量', + }, + { + label: 'run_month_begin_std', + documentation: '当前月份的第一天,年月日之间有横杠分割', + insertText: '${run_month_begin_std}', + detail: '系统内嵌变量', + }, + { + label: 'run_month_end', + documentation: '当前月份的最后一天', + insertText: '${run_month_end}', + detail: '系统内嵌变量', + }, + { + label: 'run_month_end_std', + documentation: '当前月份的最后一天,年月日之间有横杠分割', + insertText: '${run_month_end_std}', + detail: '系统内嵌变量', + }, +]; +const columnsProposals = [ + { + label: 'id', + documentation: '常用表字段', + insertText: 'id', + detail: '常用表字段', + }, + { + label: 'id_id', + documentation: '常用表字段', + insertText: 'id_id', + detail: '常用表字段', + }, + { + label: 'org', + documentation: '常用表字段', + insertText: 'org', + detail: '常用表字段', + }, + { + label: 'product_cd', + documentation: '常用表字段', + insertText: 'product_cd', + detail: '常用表字段', + }, + { + label: 'id_no_hash', + documentation: '常用表字段', + insertText: 'id_no_hash', + detail: '常用表字段', + }, + { + label: 'id_no_mask', + documentation: '常用表字段', + insertText: 'id_no_mask', + detail: '常用表字段', + }, + { + label: 'app_no', + documentation: '常用表字段', + insertText: 'app_no', + detail: '常用表字段', + }, + { + label: 'ecif_no', + documentation: '常用表字段', + insertText: 'ecif_no', + detail: '常用表字段', + }, + { + label: 'name_hash', + documentation: '常用表字段', + insertText: 'name_hash', + detail: '常用表字段', + }, + { + label: 'acct_no', + documentation: '常用表字段', + insertText: 'acct_no', + detail: '常用表字段', + }, + { + label: 'card_no', + documentation: '常用表字段', + insertText: 'card_no', + detail: '常用表字段', + }, + { + label: 'cust_id', + documentation: '常用表字段', + insertText: 'cust_id', + detail: '常用表字段', + }, + { + label: 'case_no', + documentation: '常用表字段', + insertText: 'case_no', + detail: '常用表字段', + }, + { + label: 'id_type', + documentation: '常用表字段', + insertText: 'id_type', + detail: '常用表字段', + }, + { + label: 'id_no', + documentation: '常用表字段', + insertText: 'id_no', + detail: '常用表字段', + }, + { + label: 'cust_type', + documentation: '常用表字段', + insertText: 'cust_type', + detail: '常用表字段', + }, + { + label: 'cust_no', + documentation: '常用表字段', + insertText: 'cust_no', + detail: '常用表字段', + }, + { + label: 'app_type', + documentation: '常用表字段', + insertText: 'app_type', + detail: '常用表字段', + }, + { + label: 'openid', + documentation: '常用表字段', + insertText: 'openid', + detail: '常用表字段', + }, + { + label: 'acct_type', + documentation: '常用表字段', + insertText: 'acct_type', + detail: '常用表字段', + }, + { + label: 'prod_code', + documentation: '常用表字段', + insertText: 'prod_code', + detail: '常用表字段', + }, + { + label: 'prod_id', + documentation: '常用表字段', + insertText: 'prod_id', + detail: '常用表字段', + }, + { + label: 'partner_id', + documentation: '常用表字段', + insertText: 'partner_id', + detail: '常用表字段', + }, + { + label: 'product_id', + documentation: '常用表字段', + insertText: 'product_id', + detail: '常用表字段', + }, + { + label: 'id_acct', + documentation: '常用表字段', + insertText: 'id_acct', + detail: '常用表字段', + }, + { + label: 'id_app', + documentation: '常用表字段', + insertText: 'id_app', + detail: '常用表字段', + }, + { + label: 'c_prod_cd', + documentation: '常用表字段', + insertText: 'c_prod_cd', + detail: '常用表字段', + }, + { + label: 'id_cust', + documentation: '常用表字段', + insertText: 'id_cust', + detail: '常用表字段', + }, + { + label: 'id_openid', + documentation: '常用表字段', + insertText: 'id_openid', + detail: '常用表字段', + }, + { + label: 'id_wx_openid', + documentation: '常用表字段', + insertText: 'id_wx_openid', + detail: '常用表字段', + }, + { + label: 'id_qq_openid', + documentation: '常用表字段', + insertText: 'id_qq_openid', + detail: '常用表字段', + }, + { + label: 'id_sg_openid', + documentation: '常用表字段', + insertText: 'id_sg_openid', + detail: '常用表字段', + }, + { + label: 'id_loan', + documentation: '常用表字段', + insertText: 'id_loan', + detail: '常用表字段', + }, + { + label: 'id_org', + documentation: '常用表字段', + insertText: 'id_org', + detail: '常用表字段', + }, + { + label: 'reportsn', + documentation: '常用表字段', + insertText: 'reportsn', + detail: '常用表字段', + }, + { + label: 'id_batch', + documentation: '常用表字段', + insertText: 'id_batch', + detail: '常用表字段', + }, + { + label: 'id_case', + documentation: '常用表字段', + insertText: 'id_case', + detail: '常用表字段', + }, + { + label: 'ds', + documentation: '常用表字段', + insertText: 'ds', + detail: '常用表字段', + }, +]; + +let dbInfoProposals = []; +let tableInfoProposals = []; +let udfProposals = []; +let variableProposals = []; + +export default { + keyword: kewordInfoProposals, + register(monaco) { + const lang = 'hql'; + const hqlProposals = getFormatProposalsList( + monaco, + kewordInfoProposals, + '', + 'Keyword', + ); + const BIVPro = getFormatProposalsList( + monaco, + buildInVariableProposals, + '', + 'Variable', + ); + const CGSPro = getFormatProposalsList( + monaco, + commonGrammaticalStruCture, + '', + 'Reference', + false, + true, + ); + const columnsPro = getFormatProposalsList( + monaco, + columnsProposals, + '', + 'Field', + ); + getHiveList(monaco, lang).then((list) => { + dbInfoProposals = list.dbInfoProposals; + tableInfoProposals = list.tableInfoProposals; + udfProposals = list.udfProposals; + variableProposals = list.variableProposals; + }); + monaco.languages.registerCompletionItemProvider('hql', { + triggerCharacters: + 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._'.split( + '', + ), + async provideCompletionItems(model, position) { + const empty = + isEmpty(dbInfoProposals) || + isEmpty(udfProposals) || + isEmpty(tableInfoProposals) || + isEmpty(variableProposals); + const needRefresh = storage.get('need-refresh-proposals-hql'); + if (needRefresh === true || empty) { + const list = await getHiveList(monaco, lang); + dbInfoProposals = list.dbInfoProposals; + tableInfoProposals = list.tableInfoProposals; + udfProposals = list.udfProposals; + variableProposals = list.variableProposals; + storage.set('need-refresh-proposals-hql', false); + } + const textUntilPosition = model.getValueInRange({ + startLineNumber: position.lineNumber, + startColumn: 1, + endLineNumber: position.lineNumber, + endColumn: position.column, + }); + + const tableMatch = textUntilPosition.match( + /from\s+(\w+)\.(\w+)?$/, + ); + const databaseMatch = textUntilPosition.match(/from\s+\w+$/); + const functionMatch = textUntilPosition.match( + /(select|where|on|having|order by|cluster by|sort by)\s+\w+$/i, + ); + const keywordMatch = textUntilPosition.match(/([^"]*)?$/i); + const grammarBlockMatch = textUntilPosition.match( + /(create table|drop table)\s?$/i, + ); + // debug_log('log',tableMatch,databaseMatch,functionMatch,keywordMatch,grammarBlockMatch) + if (tableMatch) { + return getReturnList({ + match: tableMatch[2], + proposals: tableInfoProposals, + fieldString: 'caption', + attachMatch: tableMatch[1], + }); + } else if (databaseMatch) { + const match = databaseMatch[0].split(' ')[1]; + return getReturnList({ + match, + proposals: dbInfoProposals, + fieldString: 'caption', + }); + } else if (grammarBlockMatch) { + const match = grammarBlockMatch[0].split(' ')[1]; + return getReturnList({ + match, + proposals: CGSPro, + fieldString: 'insertText', + attachMatch: grammarBlockMatch, + needSplit: true, + }); + } else if (functionMatch) { + const match = functionMatch[0].split(' ')[1]; + let proposalsList = []; + proposalsList = udfProposals.concat( + columnsPro, + variableProposals, + BIVPro, + ); + return getReturnList({ + match, + proposals: proposalsList, + fieldString: 'insertText', + }); + } else if (keywordMatch) { + const matchList = keywordMatch[0].split(' '); + const match = matchList[matchList.length - 1]; + let proposalsList = []; + proposalsList = hqlProposals.concat( + BIVPro, + CGSPro, + udfProposals, + columnsProposals, + ); + return getReturnList( + { + match, + proposals: proposalsList, + fieldString: 'insertText', + position, + }, + monaco, + ); + } + return []; + }, + }); + }, +}; diff --git a/linkis-web-next/src/components/editor/keyword/python.ts b/linkis-web-next/src/components/editor/keyword/python.ts new file mode 100644 index 00000000000..8245a57ec3a --- /dev/null +++ b/linkis-web-next/src/components/editor/keyword/python.ts @@ -0,0 +1,384 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { isEmpty } from 'lodash'; +import { getHiveList, getReturnList, getFormatProposalsList } from '../util'; + +const pyKeywordInfoProposals = [ + { + label: 'False', + documentation: 'Keywords', + insertText: 'False', + detail: 'Keywords', + }, + { + label: 'class', + documentation: 'Keywords', + insertText: 'class', + detail: 'Keywords', + }, + { + label: 'finally', + documentation: 'Keywords', + insertText: 'finally', + detail: 'Keywords', + }, + { + label: 'is', + documentation: 'Keywords', + insertText: 'is', + detail: 'Keywords', + }, + { + label: 'return', + documentation: 'Keywords', + insertText: 'return', + detail: 'Keywords', + }, + { + label: 'None', + documentation: 'Keywords', + insertText: 'None', + detail: 'Keywords', + }, + { + label: 'continue', + documentation: 'Keywords', + insertText: 'continue', + detail: 'Keywords', + }, + { + label: 'for', + documentation: 'Keywords', + insertText: 'for', + detail: 'Keywords', + }, + { + label: 'lambda', + documentation: 'Keywords', + insertText: 'lambda', + detail: 'Keywords', + }, + { + label: 'try', + documentation: 'Keywords', + insertText: 'try', + detail: 'Keywords', + }, + { + label: 'True', + documentation: 'Keywords', + insertText: 'True', + detail: 'Keywords', + }, + { + label: 'def', + documentation: 'Keywords', + insertText: 'def', + detail: 'Keywords', + }, + { + label: 'from', + documentation: 'Keywords', + insertText: 'from', + detail: 'Keywords', + }, + { + label: 'nonlocal', + documentation: 'Keywords', + insertText: 'nonlocal', + detail: 'Keywords', + }, + { + label: 'while', + documentation: 'Keywords', + insertText: 'while', + detail: 'Keywords', + }, + { + label: 'and', + documentation: 'Keywords', + insertText: 'and', + detail: 'Keywords', + }, + { + label: 'del', + documentation: 'Keywords', + insertText: 'del', + detail: 'Keywords', + }, + { + label: 'global', + documentation: 'Keywords', + insertText: 'global', + detail: 'Keywords', + }, + { + label: 'not', + documentation: 'Keywords', + insertText: 'not', + detail: 'Keywords', + }, + { + label: 'with', + documentation: 'Keywords', + insertText: 'with', + detail: 'Keywords', + }, + { + label: 'as', + documentation: 'Keywords', + insertText: 'as', + detail: 'Keywords', + }, + { + label: 'elif', + documentation: 'Keywords', + insertText: 'elif', + detail: 'Keywords', + }, + { + label: 'if', + documentation: 'Keywords', + insertText: 'if', + detail: 'Keywords', + }, + { + label: 'or', + documentation: 'Keywords', + insertText: 'or', + detail: 'Keywords', + }, + { + label: 'yield', + documentation: 'Keywords', + insertText: 'yield', + detail: 'Keywords', + }, + { + label: 'assert', + documentation: 'Keywords', + insertText: 'assert', + detail: 'Keywords', + }, + { + label: 'else', + documentation: 'Keywords', + insertText: 'else', + detail: 'Keywords', + }, + { + label: 'import', + documentation: 'Keywords', + insertText: 'import', + detail: 'Keywords', + }, + { + label: 'pass', + documentation: 'Keywords', + insertText: 'pass', + detail: 'Keywords', + }, + { + label: 'break', + documentation: 'Keywords', + insertText: 'break', + detail: 'Keywords', + }, + { + label: 'except', + documentation: 'Keywords', + insertText: 'except', + detail: 'Keywords', + }, + { + label: 'in', + documentation: 'Keywords', + insertText: 'in', + detail: 'Keywords', + }, + { + label: 'raise', + documentation: 'Keywords', + insertText: 'raise', + detail: 'Keywords', + }, + { + label: 'print', + documentation: 'Keywords', + insertText: 'print', + detail: 'Keywords', + }, + { + label: 'exec', + documentation: 'Keywords', + insertText: 'exec', + detail: 'Keywords', + }, +]; + +// Common grammatical structures(常用语法结构) +/** + * + const commonGrammaticalStruCture = [ + { + label: 'drop table', + documentation: '删除hive表', + insertText: 'drop table if exists {table_name};', + detail: '常用语法结构', + }, + { + label: 'create table partitioned by', + documentation: '创建hive分区表', + insertText: 'create table {table_name} ({columns}) partitioned by ({partition}) row format delimited fields terminated by "," stored as orc;', + detail: '常用语法结构', + }, + { + label: 'create table as select', + documentation: '通过select创建表', + insertText: 'create table {table_name} as select', + detail: '常用语法结构', + }, + { + label: 'insert into table', + documentation: '添加方式插入数据', + insertText: 'insert into table {table_name} partition({partition})', + detail: '常用语法结构', + }, + { + label: 'insert overwrite table', + documentation: '覆盖方式插入数据', + insertText: 'insert overwrite table {table_name} partition({partition})', + detail: '常用语法结构', + }, + ]; + */ + +const buildInVariableProposals = [ + { + label: 'run_date', + documentation: '当前日期的前一天', + insertText: '${run_date}', + detail: '系统内嵌变量', + }, + { + label: 'run_date_std', + documentation: '当前日期的前一天,年月日之间有横杠分割', + insertText: '${run_date_std}', + detail: '系统内嵌变量', + }, + { + label: 'run_month_begin', + documentation: '当前月份的第一天', + insertText: '${run_month_begin}', + detail: '系统内嵌变量', + }, + { + label: 'run_month_begin_std', + documentation: '当前月份的第一天,年月日之间有横杠分割', + insertText: '${run_month_begin_std}', + detail: '系统内嵌变量', + }, + { + label: 'run_month_end', + documentation: '当前月份的最后一天', + insertText: '${run_month_end}', + detail: '系统内嵌变量', + }, + { + label: 'run_month_end_std', + documentation: '当前月份的最后一天,年月日之间有横杠分割', + insertText: '${run_month_end_std}', + detail: '系统内嵌变量', + }, +]; + +let functionProposals = []; + +export default { + async register(monaco) { + const lang = 'python'; + + const pyProposals = getFormatProposalsList( + monaco, + pyKeywordInfoProposals, + '', + 'Keyword', + ); + const BIVPro = getFormatProposalsList( + monaco, + buildInVariableProposals, + '', + 'Variable', + ); + // const CGSPro = getFormatProposalsList(monaco, commonGrammaticalStruCture, '', 'Reference'); + + getHiveList(monaco, lang).then((list) => { + functionProposals = list.udfProposals; + }); + + monaco.languages.registerCompletionItemProvider('python', { + triggerCharacters: + 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._'.split( + '', + ), + async provideCompletionItems(model, position) { + const needRefresh = storage.get( + 'need-refresh-proposals-python', + ); + if (needRefresh || isEmpty(functionProposals)) { + const list = await getHiveList(monaco, lang); + functionProposals = list.udfProposals; + storage.set('need-refresh-proposals-python', false); + } + + const textUntilPosition = model.getValueInRange({ + startLineNumber: position.lineNumber, + startColumn: 1, + endLineNumber: position.lineNumber, + endColumn: position.column, + }); + const keywordMatch = textUntilPosition.match(/([^"]*)?$/i); + const functionMatch = textUntilPosition.match(/\s+/i); + if (functionMatch) { + const match = functionMatch[0].split(' ')[1]; + let proposalsList = []; + proposalsList = functionProposals.concat(BIVPro); + return getReturnList({ + match, + proposals: proposalsList, + fieldString: 'insertText', + }); + } else if (keywordMatch) { + const matchList = keywordMatch[0].split(' '); + const match = matchList[matchList.length - 1]; + const proposalsList = pyProposals.concat(BIVPro); + return getReturnList( + { + match, + proposals: proposalsList, + fieldString: 'insertText', + position, + }, + monaco, + ); + } + return []; + }, + }); + }, +}; diff --git a/linkis-web-next/src/components/editor/keyword/sas.ts b/linkis-web-next/src/components/editor/keyword/sas.ts new file mode 100644 index 00000000000..e455c54fc0b --- /dev/null +++ b/linkis-web-next/src/components/editor/keyword/sas.ts @@ -0,0 +1,172 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import hql from './hql'; + +const sasProposals = [ + { + label: '%DO', + documentation: 'sas', + insertText: 'DO', + detail: 'sas宏语言关键字', + }, + { + label: '%UNTIL', + documentation: 'sas', + insertText: 'UNTIL', + detail: 'sas宏语言关键字', + }, + { + label: 'GOTO', + documentation: 'sas', + insertText: 'GOTO', + detail: 'sas宏语言关键字', + }, + { + label: 'LABEL', + documentation: 'sas', + insertText: 'LABEL', + detail: 'sas宏语言关键字', + }, + { + label: 'LET', + documentation: 'sas', + insertText: 'LET', + detail: 'sas宏语言关键字', + }, + { + label: 'MEND', + documentation: 'sas', + insertText: 'MEND', + detail: 'sas宏语言关键字', + }, + { + label: '%TO', + documentation: 'sas', + insertText: 'TO', + detail: 'sas宏语言关键字', + }, + { + label: '%WHILE', + documentation: 'sas', + insertText: 'WHILE', + detail: 'sas宏语言关键字', + }, + { + label: '%END', + documentation: 'sas', + insertText: 'END', + detail: 'sas宏语言关键字', + }, + { + label: '%GLOBAL', + documentation: 'sas', + insertText: 'GLOBAL', + detail: 'sas宏语言关键字', + }, + { + label: '%GOTO', + documentation: 'sas', + insertText: 'GOTO', + detail: 'sas宏语言关键字', + }, + { + label: '%IF', + documentation: 'sas', + insertText: 'IF', + detail: 'sas宏语言关键字', + }, + { + label: '%THEN', + documentation: 'sas', + insertText: 'THEN', + detail: 'sas宏语言关键字', + }, + { + label: '%ELSE', + documentation: 'sas', + insertText: 'ELSE', + detail: 'sas宏语言关键字', + }, + { + label: '%LABEL', + documentation: 'sas', + insertText: 'LABEL', + detail: 'sas宏语言关键字', + }, + { + label: '%LET', + documentation: 'sas', + insertText: 'LET', + detail: 'sas宏语言关键字', + }, + { + label: '%LOCAL', + documentation: 'sas', + insertText: 'LOCAL', + detail: 'sas宏语言关键字', + }, + { + label: '%MACRO', + documentation: 'sas', + insertText: 'MACRO', + detail: 'sas宏语言关键字', + }, + { + label: '%MEND', + documentation: 'sas', + insertText: 'MEND', + detail: 'sas宏语言关键字', + }, +]; + +// Inherit hql related keywords(继承hql相关的keyword) +const kewordInfoProposals = [...hql.keyword, ...sasProposals]; + +export default { + register(monaco) { + // eslint-disable-next-line no-shadow + const sasProposals = kewordInfoProposals.map((item) => ({ + label: item.label.toLowerCase(), + kind: monaco.languages.CompletionItemKind.Keyword, + insertText: item.insertText.toLowerCase(), + detail: item.detail, + documentation: item.documentation, + })); + + monaco.languages.registerCompletionItemProvider('sas', { + triggerCharacters: + '%abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._'.split( + '', + ), + provideCompletionItems(model, position) { + const textUntilPosition = model.getValueInRange({ + startLineNumber: position.lineNumber, + startColumn: 1, + endLineNumber: position.lineNumber, + endColumn: position.column, + }); + + if (textUntilPosition.match(/([^"]*)?$/i)) { + return sasProposals; + } + + return []; + }, + }); + }, +}; diff --git a/linkis-web-next/src/components/editor/keyword/sh.ts b/linkis-web-next/src/components/editor/keyword/sh.ts new file mode 100644 index 00000000000..1420f6d631e --- /dev/null +++ b/linkis-web-next/src/components/editor/keyword/sh.ts @@ -0,0 +1,570 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { getReturnList } from '../util'; + +const shellKeywordInfoProposals = [ + { + label: 'if', + documentation: 'Keywords', + insertText: 'if', + detail: 'Keywords', + }, + { + label: 'then', + documentation: 'Keywords', + insertText: 'then', + detail: 'Keywords', + }, + { + label: 'do', + documentation: 'Keywords', + insertText: 'do', + detail: 'Keywords', + }, + { + label: 'else', + documentation: 'Keywords', + insertText: 'else', + detail: 'Keywords', + }, + { + label: 'elif', + documentation: 'Keywords', + insertText: 'elif', + detail: 'Keywords', + }, + { + label: 'while', + documentation: 'Keywords', + insertText: 'while', + detail: 'Keywords', + }, + { + label: 'until', + documentation: 'Keywords', + insertText: 'until', + detail: 'Keywords', + }, + { + label: 'for', + documentation: 'Keywords', + insertText: 'for', + detail: 'Keywords', + }, + { + label: 'in', + documentation: 'Keywords', + insertText: 'in', + detail: 'Keywords', + }, + { + label: 'esac', + documentation: 'Keywords', + insertText: 'esac', + detail: 'Keywords', + }, + { + label: 'fi', + documentation: 'Keywords', + insertText: 'fi', + detail: 'Keywords', + }, + { + label: 'fin', + documentation: 'Keywords', + insertText: 'fin', + detail: 'Keywords', + }, + { + label: 'fil', + documentation: 'Keywords', + insertText: 'fil', + detail: 'Keywords', + }, + { + label: 'done', + documentation: 'Keywords', + insertText: 'done', + detail: 'Keywords', + }, + { + label: 'exit', + documentation: 'Keywords', + insertText: 'exit', + detail: 'Keywords', + }, + { + label: 'set', + documentation: 'Keywords', + insertText: 'set', + detail: 'Keywords', + }, + { + label: 'unset', + documentation: 'Keywords', + insertText: 'unset', + detail: 'Keywords', + }, + { + label: 'export', + documentation: 'Keywords', + insertText: 'export', + detail: 'Keywords', + }, + { + label: 'function', + documentation: 'Keywords', + insertText: 'function', + detail: 'Keywords', + }, + { + label: 'awk', + documentation: 'Builtin', + insertText: 'awk', + detail: 'Builtin', + }, + { + label: 'ab', + documentation: 'Builtin', + insertText: 'ab', + detail: 'Builtin', + }, + { + label: 'bash', + documentation: 'Builtin', + insertText: 'bash', + detail: 'Builtin', + }, + { + label: 'beep', + documentation: 'Builtin', + insertText: 'beep', + detail: 'Builtin', + }, + { + label: 'cat', + documentation: 'Builtin', + insertText: 'cat', + detail: 'Builtin', + }, + { + label: 'cc', + documentation: 'Builtin', + insertText: 'cc', + detail: 'Builtin', + }, + { + label: 'cd', + documentation: 'Builtin', + insertText: 'cd', + detail: 'Builtin', + }, + { + label: 'chown', + documentation: 'Builtin', + insertText: 'chown', + detail: 'Builtin', + }, + { + label: 'chmod', + documentation: 'Builtin', + insertText: 'chmod', + detail: 'Builtin', + }, + { + label: 'chroot', + documentation: 'Builtin', + insertText: 'chroot', + detail: 'Builtin', + }, + { + label: 'clear', + documentation: 'Builtin', + insertText: 'clear', + detail: 'Builtin', + }, + { + label: 'cp', + documentation: 'Builtin', + insertText: 'cp', + detail: 'Builtin', + }, + { + label: 'curl', + documentation: 'Builtin', + insertText: 'curl', + detail: 'Builtin', + }, + { + label: 'cut', + documentation: 'Builtin', + insertText: 'cut', + detail: 'Builtin', + }, + { + label: 'diff', + documentation: 'Builtin', + insertText: 'diff', + detail: 'Builtin', + }, + { + label: 'echo', + documentation: 'Builtin', + insertText: 'echo', + detail: 'Builtin', + }, + { + label: 'find', + documentation: 'Builtin', + insertText: 'find', + detail: 'Builtin', + }, + { + label: 'gawk', + documentation: 'Builtin', + insertText: 'gawk', + detail: 'Builtin', + }, + { + label: 'gcc', + documentation: 'Builtin', + insertText: 'gcc', + detail: 'Builtin', + }, + { + label: 'get', + documentation: 'Builtin', + insertText: 'get', + detail: 'Builtin', + }, + { + label: 'git', + documentation: 'Builtin', + insertText: 'git', + detail: 'Builtin', + }, + { + label: 'grep', + documentation: 'Builtin', + insertText: 'grep', + detail: 'Builtin', + }, + { + label: 'hg', + documentation: 'Builtin', + insertText: 'hg', + detail: 'Builtin', + }, + { + label: 'kill', + documentation: 'Builtin', + insertText: 'kill', + detail: 'Builtin', + }, + { + label: 'killall', + documentation: 'Builtin', + insertText: 'killall', + detail: 'Builtin', + }, + { + label: 'ln', + documentation: 'Builtin', + insertText: 'ln', + detail: 'Builtin', + }, + { + label: 'ls', + documentation: 'Builtin', + insertText: 'ls', + detail: 'Builtin', + }, + { + label: 'make', + documentation: 'Builtin', + insertText: 'make', + detail: 'Builtin', + }, + { + label: 'mkdir', + documentation: 'Builtin', + insertText: 'mkdir', + detail: 'Builtin', + }, + { + label: 'openssl', + documentation: 'Builtin', + insertText: 'openssl', + detail: 'Builtin', + }, + { + label: 'mv', + documentation: 'Builtin', + insertText: 'mv', + detail: 'Builtin', + }, + { + label: 'nc', + documentation: 'Builtin', + insertText: 'nc', + detail: 'Builtin', + }, + { + label: 'node', + documentation: 'Builtin', + insertText: 'node', + detail: 'Builtin', + }, + { + label: 'npm', + documentation: 'Builtin', + insertText: 'npm', + detail: 'Builtin', + }, + { + label: 'ping', + documentation: 'Builtin', + insertText: 'ping', + detail: 'Builtin', + }, + { + label: 'ps', + documentation: 'Builtin', + insertText: 'ps', + detail: 'Builtin', + }, + { + label: 'restart', + documentation: 'Builtin', + insertText: 'restart', + detail: 'Builtin', + }, + { + label: 'rm', + documentation: 'Builtin', + insertText: 'rm', + detail: 'Builtin', + }, + { + label: 'rmdir', + documentation: 'Builtin', + insertText: 'rmdir', + detail: 'Builtin', + }, + { + label: 'sed', + documentation: 'Builtin', + insertText: 'sed', + detail: 'Builtin', + }, + { + label: 'service', + documentation: 'Builtin', + insertText: 'service', + detail: 'Builtin', + }, + { + label: 'sh', + documentation: 'Builtin', + insertText: 'sh', + detail: 'Builtin', + }, + { + label: 'shopt', + documentation: 'Builtin', + insertText: 'shopt', + detail: 'Builtin', + }, + { + label: 'shred', + documentation: 'Builtin', + insertText: 'shred', + detail: 'Builtin', + }, + { + label: 'source', + documentation: 'Builtin', + insertText: 'source', + detail: 'Builtin', + }, + { + label: 'sort', + documentation: 'Builtin', + insertText: 'sort', + detail: 'Builtin', + }, + { + label: 'sleep', + documentation: 'Builtin', + insertText: 'sleep', + detail: 'Builtin', + }, + { + label: 'ssh', + documentation: 'Builtin', + insertText: 'ssh', + detail: 'Builtin', + }, + { + label: 'start', + documentation: 'Builtin', + insertText: 'start', + detail: 'Builtin', + }, + { + label: 'stop', + documentation: 'Builtin', + insertText: 'stop', + detail: 'Builtin', + }, + { + label: 'su', + documentation: 'Builtin', + insertText: 'su', + detail: 'Builtin', + }, + { + label: 'sudo', + documentation: 'Builtin', + insertText: 'sudo', + detail: 'Builtin', + }, + { + label: 'svn', + documentation: 'Builtin', + insertText: 'svn', + detail: 'Builtin', + }, + { + label: 'tee', + documentation: 'Builtin', + insertText: 'tee', + detail: 'Builtin', + }, + { + label: 'telnet', + documentation: 'Builtin', + insertText: 'telnet', + detail: 'Builtin', + }, + { + label: 'top', + documentation: 'Builtin', + insertText: 'top', + detail: 'Builtin', + }, + { + label: 'touch', + documentation: 'Builtin', + insertText: 'touch', + detail: 'Builtin', + }, + { + label: 'vi', + documentation: 'Builtin', + insertText: 'vi', + detail: 'Builtin', + }, + { + label: 'vim', + documentation: 'Builtin', + insertText: 'vim', + detail: 'Builtin', + }, + { + label: 'wall', + documentation: 'Builtin', + insertText: 'wall', + detail: 'Builtin', + }, + { + label: 'wc', + documentation: 'Builtin', + insertText: 'wc', + detail: 'Builtin', + }, + { + label: 'wget', + documentation: 'Builtin', + insertText: 'wget', + detail: 'Builtin', + }, + { + label: 'who', + documentation: 'Builtin', + insertText: 'who', + detail: 'Builtin', + }, + { + label: 'write', + documentation: 'Builtin', + insertText: 'write', + detail: 'Builtin', + }, + { + label: 'yes', + documentation: 'Builtin', + insertText: 'yes', + detail: 'Builtin', + }, + { + label: 'zsh', + documentation: 'Builtin', + insertText: 'zsh', + detail: 'Builtin', + }, +]; + +export default { + async register(monaco) { + const shellProposals = shellKeywordInfoProposals.map((item) => ({ + label: item.label.toLowerCase(), + kind: monaco.languages.CompletionItemKind.Keyword, + insertText: item.insertText.toLowerCase(), + detail: item.detail, + documentation: item.documentation, + })); + + monaco.languages.registerCompletionItemProvider('sh', { + triggerCharacters: + 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._'.split( + '', + ), + async provideCompletionItems(model, position) { + const textUntilPosition = model.getValueInRange({ + startLineNumber: position.lineNumber, + startColumn: 1, + endLineNumber: position.lineNumber, + endColumn: position.column, + }); + const keywordMatch = textUntilPosition.match(/([^"]*)?$/i); + if (keywordMatch) { + const matchList = keywordMatch[0].split(' '); + const match = matchList[matchList.length - 1]; + const list = getReturnList( + match, + shellProposals, + 'insertText', + ); + return list; + } + return []; + }, + }); + }, +}; diff --git a/linkis-web-next/src/components/editor/languages/hql.ts b/linkis-web-next/src/components/editor/languages/hql.ts new file mode 100644 index 00000000000..03368e98741 --- /dev/null +++ b/linkis-web-next/src/components/editor/languages/hql.ts @@ -0,0 +1,1587 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import sqlFormatter from '../sqlFormatter/sqlFormatter'; + +const richLanguageConfiguration = { + comments: { + lineComment: '--', + blockComment: ['/*', '*/'], + }, + brackets: [ + ['{', '}'], + ['[', ']'], + ['(', ')'], + ], + autoClosingPairs: [ + { open: '{', close: '}' }, + { open: '[', close: ']' }, + { open: '(', close: ')' }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + ], + surroundingPairs: [ + { open: '{', close: '}' }, + { open: '[', close: ']' }, + { open: '(', close: ')' }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + ], +}; + +const langDefinition = { + defaultToken: '', + tokenPostfix: '.sql', + ignoreCase: true, + + brackets: [ + { open: '[', close: ']', token: 'delimiter.square' }, + { open: '(', close: ')', token: 'delimiter.parenthesis' }, + ], + + keywords: [ + 'ABORT_AFTER_WAIT', + 'ABSENT', + 'ABSOLUTE', + 'ABORT', + 'ACCENT_SENSITIVITY', + 'ACTION', + 'ACTIVATION', + 'ACTIVE', + 'ADD', + 'ADDRESS', + 'ADMIN', + 'AES', + 'AES_128', + 'AES_192', + 'AES_256', + 'AFFINITY', + 'AFTER', + 'AGGREGATE', + 'ALGORITHM', + 'ALL_CONSTRAINTS', + 'ALL_ERRORMSGS', + 'ALL_INDEXES', + 'ALL_LEVELS', + 'ALL_SPARSE_COLUMNS', + 'ALLOW_CONNECTIONS', + 'ALLOW_MULTIPLE_EVENT_LOSS', + 'ALLOW_PAGE_LOCKS', + 'ALLOW_ROW_LOCKS', + 'ALLOW_SINGLE_EVENT_LOSS', + 'ALLOW_SNAPSHOT_ISOLATION', + 'ALLOWED', + 'ALTER', + 'ANALYZE', + 'ANONYMOUS', + 'ANSI_DEFAULTS', + 'ANSI_NULL_DEFAULT', + 'ANSI_NULL_DFLT_OFF', + 'ANSI_NULL_DFLT_ON', + 'ANSI_NULLS', + 'ANSI_PADDING', + 'ANSI_WARNINGS', + 'APPEND', + 'APPLICATION', + 'APPLICATION_LOG', + 'ARCHIVE', + 'ARITHABORT', + 'ARITHIGNORE', + 'ARRAY', + 'AS', + 'ASC', + 'ASSEMBLY', + 'ASYMMETRIC', + 'ASYNCHRONOUS_COMMIT', + 'AT', + 'ATOMIC', + 'ATTACH', + 'ATTACH_REBUILD_LOG', + 'AUDIT', + 'AUDIT_GUID', + 'AUTHENTICATION', + 'AUTHORIZATION', + 'AUTO', + 'AUTOCOMMIT', + 'AUTO_CLEANUP', + 'AUTO_CLOSE', + 'AUTO_CREATE_STATISTICS', + 'AUTO_SHRINK', + 'AUTO_UPDATE_STATISTICS', + 'AUTO_UPDATE_STATISTICS_ASYNC', + 'AUTOMATED_BACKUP_PREFERENCE', + 'AUTOMATIC', + 'AVAILABILITY', + 'AVAILABILITY_MODE', + 'BACKUP', + 'BACKUP_PRIORITY', + 'BASE64', + 'BATCHSIZE', + 'BEFORE', + 'BEGIN', + 'BEGIN_DIALOG', + 'BIGINT', + 'BINARY', + 'BINDING', + 'BIT', + 'BLOCKERS', + 'BLOCKSIZE', + 'BOOLEAN', + 'BOTH', + 'BOUNDING_BOX', + 'BREAK', + 'BROKER', + 'BROKER_INSTANCE', + 'BROWSE', + 'BUCKET', + 'BUCKETS', + 'BUCKET_COUNT', + 'BUFFER', + 'BUFFERCOUNT', + 'BULK', + 'BULK_LOGGED', + 'BY', + 'CACHE', + 'CALL', + 'CALLED', + 'CALLER', + 'CAP_CPU_PERCENT', + 'CASCADE', + 'CASE', + 'CATALOG', + 'CATCH', + 'CELLS_PER_OBJECT', + 'CERTIFICATE', + 'CHANGE', + 'CHANGE_RETENTION', + 'CHANGE_TRACKING', + 'CHANGES', + 'CHAR', + 'CHARACTER', + 'CHECK', + 'CHECK_CONSTRAINTS', + 'CHECK_EXPIRATION', + 'CHECK_POLICY', + 'CHECKALLOC', + 'CHECKCATALOG', + 'CHECKCONSTRAINTS', + 'CHECKDB', + 'CHECKFILEGROUP', + 'CHECKIDENT', + 'CHECKPOINT', + 'CHECKTABLE', + 'CLASSIFIER_FUNCTION', + 'CLEANTABLE', + 'CLEANUP', + 'CLEAR', + 'CLOSE', + 'CLUSTER', + 'CLUSTERED', + 'CLUSTERSTATUS', + 'CODEPAGE', + 'COLLATE', + 'COLLECTION', + 'COLUMN', + 'COLUMN_SET', + 'COLUMNS', + 'COLUMNSTORE', + 'COLUMNSTORE_ARCHIVE', + 'COMMENT', + 'COMMIT', + 'COMMITTED', + 'COMPACT', + 'COMPACTIONS', + 'COMPATIBILITY_LEVEL', + 'COMPRESSION', + 'COMPUTE', + 'CONCAT', + 'CONCAT_NULL_YIELDS_NULL', + 'CONCATENATE', + 'CONF', + 'CONFIGURATION', + 'CONNECT', + 'CONSTRAINT', + 'CONTAINMENT', + 'CONTENT', + 'CONTEXT', + 'CONTINUE', + 'CONTINUE_AFTER_ERROR', + 'CONTRACT', + 'CONTRACT_NAME', + 'CONTROL', + 'CONVERSATION', + 'COOKIE', + 'COPY_ONLY', + 'COUNTER', + 'CPU', + 'CREATE', + 'CREATE_NEW', + 'CREATION_DISPOSITION', + 'CREDENTIAL', + 'CRYPTOGRAPHIC', + 'CUBE', + 'CURRENT', + 'CURRENT_DATE', + 'CURSOR', + 'CURSOR_CLOSE_ON_COMMIT', + 'CURSOR_DEFAULT', + 'CYCLE', + 'DATA', + 'DATA_COMPRESSION', + 'DATA_PURITY', + 'DATABASE', + 'DATABASES', + 'DATABASE_DEFAULT', + 'DATABASE_MIRRORING', + 'DATABASE_SNAPSHOT', + 'DATAFILETYPE', + 'DATE', + 'DATE_CORRELATION_OPTIMIZATION', + 'DATEFIRST', + 'DATEFORMAT', + 'DATETIME', + 'DATETIME2', + 'DATETIMEOFFSET', + 'DAY', + 'DAYOFWEEK', + 'DAYOFYEAR', + 'DAYS', + 'DB_CHAINING', + 'DBCC', + 'DBREINDEX', + 'DBPROPERTIES', + 'DDL_DATABASE_LEVEL_EVENTS', + 'DEADLOCK_PRIORITY', + 'DEALLOCATE', + 'DEC', + 'DECIMAL', + 'DECLARE', + 'DECRYPTION', + 'DEFAULT', + 'DEFAULT_DATABASE', + 'DEFAULT_FULLTEXT_LANGUAGE', + 'DEFAULT_LANGUAGE', + 'DEFAULT_SCHEMA', + 'DEFERRED', + 'DEFINED', + 'DEFINITION', + 'DELAY', + 'DELAYED_DURABILITY', + 'DELETE', + 'DELETED', + 'DELIMITED', + 'DENSITY_VECTOR', + 'DENY', + 'DEPENDENCY', + 'DEPENDENTS', + 'DES', + 'DESC', + 'DESCRIPTION', + 'DESCRIBE', + 'DESX', + 'DETAIL', + 'DHCP', + 'DIAGNOSTICS', + 'DIALOG', + 'DIFFERENTIAL', + 'DIRECTORIES', + 'DIRECTORY', + 'DIRECTORY_NAME', + 'DISABLE', + 'DISABLE_BROKER', + 'DISABLED', + 'DISK', + 'DISTINCT', + 'DISTRIBUTE', + 'DISTRIBUTED', + 'DOCUMENT', + 'DOUBLE', + 'DOW', + 'DROP', + 'DROP_EXISTING', + 'DROPCLEANBUFFERS', + 'DUMP', + 'DURABILITY', + 'DYNAMIC', + 'EDITION', + 'ELEMENTS', + 'ELEM_TYPE', + 'ELSE', + 'EMERGENCY', + 'EMPTY', + 'EMPTYFILE', + 'ENABLE', + 'ENABLE_BROKER', + 'ENABLED', + 'ENCRYPTION', + 'END', + 'ENDPOINT', + 'ENDPOINT_URL', + 'ERRLVL', + 'ERROR', + 'ERROR_BROKER_CONVERSATIONS', + 'ERRORFILE', + 'ESCAPE', + 'ESCAPED', + 'ESTIMATEONLY', + 'EVENT', + 'EVENT_RETENTION_MODE', + 'EXCHANGE', + 'EXCLUSIVE', + 'EXEC', + 'EXECUTABLE', + 'EXECUTE', + 'EXIT', + 'EXPAND', + 'EXPORT', + 'EXPIREDATE', + 'EXPIRY_DATE', + 'EXPLAIN', + 'EXPLICIT', + 'EXPRESSION', + 'EXTENDED', + 'EXTENDED_LOGICAL_CHECKS', + 'EXTENSION', + 'EXTERNAL', + 'EXTERNAL_ACCESS', + 'EXTRACT', + 'FAIL_OPERATION', + 'FAILOVER', + 'FAILOVER_MODE', + 'FAILURE_CONDITION_LEVEL', + 'FALSE', + 'FAN_IN', + 'FAST', + 'FAST_FORWARD', + 'FETCH', + 'FIELDS', + 'FIELDTERMINATOR', + 'FILE', + 'FILEFORMAT', + 'FILEGROUP', + 'FILEGROWTH', + 'FILELISTONLY', + 'FILENAME', + 'FILEPATH', + 'FILESTREAM', + 'FILESTREAM_ON', + 'FILETABLE_COLLATE_FILENAME', + 'FILETABLE_DIRECTORY', + 'FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME', + 'FILETABLE_NAMESPACE', + 'FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME', + 'FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME', + 'FILLFACTOR', + 'FILTERING', + 'FIRE_TRIGGERS', + 'FIRST', + 'FIRSTROW', + 'FLOAT', + 'FMTONLY', + 'FOLLOWING', + 'FOR', + 'FORCE', + 'FORCE_FAILOVER_ALLOW_DATA_LOSS', + 'FORCE_SERVICE_ALLOW_DATA_LOSS', + 'FORCED', + 'FORCEPLAN', + 'FORCESCAN', + 'FORCESEEK', + 'FOREIGN', + 'FORMATFILE', + 'FORMATTED', + 'FORMSOF', + 'FORWARD_ONLY', + 'FREE', + 'FREEPROCCACHE', + 'FREESESSIONCACHE', + 'FREESYSTEMCACHE', + 'FROM', + 'FULL', + 'FULLSCAN', + 'FULLTEXT', + 'FUNCTION', + 'FUNCTIONS', + 'GB', + 'GEOGRAPHY_AUTO_GRID', + 'GEOGRAPHY_GRID', + 'GEOMETRY_AUTO_GRID', + 'GEOMETRY_GRID', + 'GET', + 'GLOBAL', + 'GO', + 'GOTO', + 'GOVERNOR', + 'GRANT', + 'GRIDS', + 'GROUP', + 'GROUP_MAX_REQUESTS', + 'HADR', + 'HASH', + 'HASHED', + 'HAVING', + 'HEADERONLY', + 'HEALTH_CHECK_TIMEOUT', + 'HELP', + 'HIERARCHYID', + 'HIGH', + 'HINT', + 'HISTOGRAM', + 'HOLDLOCK', + 'HOLD_DDLTIME', + 'HONOR_BROKER_PRIORITY', + 'HOUR', + 'HOURS', + 'IDENTITY', + 'IDENTITY_INSERT', + 'IDENTITY_VALUE', + 'IDENTITYCOL', + 'IDXPROPERTIES', + 'IF', + 'IGNORE', + 'IGNORE_CONSTRAINTS', + 'IGNORE_DUP_KEY', + 'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX', + 'IGNORE_TRIGGERS', + 'IMAGE', + 'IMMEDIATE', + 'IMPERSONATE', + 'IMPLICIT_TRANSACTIONS', + 'IMPORT', + 'IMPORTANCE', + 'INCLUDE', + 'INCREMENT', + 'INCREMENTAL', + 'INDEX', + 'INDEXES', + 'INDEXDEFRAG', + 'INFINITE', + 'INFLECTIONAL', + 'INIT', + 'INITIATOR', + 'INPATH', + 'INPUT', + 'INPUTDRIVER', + 'INPUTFORMAT', + 'INPUTBUFFER', + 'INSENSITIVE', + 'INSERT', + 'INSERTED', + 'INSTEAD', + 'INT', + 'INTEGER', + 'INTERVAL', + 'INTO', + 'IO', + 'IP', + 'ISABOUT', + 'ISOLATION', + 'ITEMS', + 'JAR', + 'JOB', + 'KB', + 'KEEP', + 'KEEP_CDC', + 'KEEP_NULLS', + 'KEEP_REPLICATION', + 'KEEPDEFAULTS', + 'KEEPFIXED', + 'KEEPIDENTITY', + 'KEEPNULLS', + 'KERBEROS', + 'KEY', + 'KEY_SOURCE', + 'KEY_TYPE', + 'KEYS', + 'KEYSET', + 'KILL', + 'KILOBYTES_PER_BATCH', + 'LABELONLY', + 'LANGUAGE', + 'LAST', + 'LASTROW', + 'LATERAL', + 'LESS', + 'LEVEL', + 'LEVEL_1', + 'LEVEL_2', + 'LEVEL_3', + 'LEVEL_4', + 'LIFETIME', + 'LIMIT', + 'LINENO', + 'LINES', + 'LIST', + 'LISTENER', + 'LISTENER_IP', + 'LISTENER_PORT', + 'LOAD', + 'LOADHISTORY', + 'LOB_COMPACTION', + 'LOCAL', + 'LOCAL_SERVICE_NAME', + 'LOCATION', + 'LOCK', + 'LOCKS', + 'LOCK_ESCALATION', + 'LOCK_TIMEOUT', + 'LOGICAL', + 'LOGIN', + 'LOGSPACE', + 'LONG', + 'LOOP', + 'LOW', + 'MACRO', + 'MAP', + 'MAPJOIN', + 'MANUAL', + 'MARK', + 'MARK_IN_USE_FOR_REMOVAL', + 'MASTER', + 'MATERIALIZED', + 'MAX_CPU_PERCENT', + 'MAX_DISPATCH_LATENCY', + 'MAX_DOP', + 'MAX_DURATION', + 'MAX_EVENT_SIZE', + 'MAX_FILES', + 'MAX_IOPS_PER_VOLUME', + 'MAX_MEMORY', + 'MAX_MEMORY_PERCENT', + 'MAX_QUEUE_READERS', + 'MAX_ROLLOVER_FILES', + 'MAX_SIZE', + 'MAXDOP', + 'MAXERRORS', + 'MAXLENGTH', + 'MAXRECURSION', + 'MAXSIZE', + 'MAXTRANSFERSIZE', + 'MAXVALUE', + 'MB', + 'MEDIADESCRIPTION', + 'MEDIANAME', + 'MEDIAPASSWORD', + 'MEDIUM', + 'MEMBER', + 'MEMORY_OPTIMIZED', + 'MEMORY_OPTIMIZED_DATA', + 'MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT', + 'MEMORY_PARTITION_MODE', + 'MERGE', + 'MESSAGE', + 'MESSAGE_FORWARD_SIZE', + 'MESSAGE_FORWARDING', + 'METADATA', + 'MICROSECOND', + 'MILLISECOND', + 'MIN_CPU_PERCENT', + 'MIN_IOPS_PER_VOLUME', + 'MIN_MEMORY_PERCENT', + 'MINUS', + 'MINUTE', + 'MINUTES', + 'MINVALUE', + 'MIRROR', + 'MIRROR_ADDRESS', + 'MODIFY', + 'MONEY', + 'MONTH', + 'MONTHS', + 'MORE', + 'MOVE', + 'MSCK', + 'MULTI_USER', + 'MUST_CHANGE', + 'NAME', + 'NANOSECOND', + 'NATIONAL', + 'NATIVE_COMPILATION', + 'NCHAR', + 'NEGOTIATE', + 'NESTED_TRIGGERS', + 'NEW_ACCOUNT', + 'NEW_BROKER', + 'NEW_PASSWORD', + 'NEWNAME', + 'NEXT', + 'NO', + 'NO_BROWSETABLE', + 'NO_CHECKSUM', + 'NO_COMPRESSION', + 'NO_EVENT_LOSS', + 'NO_INFOMSGS', + 'NO_TRUNCATE', + 'NO_WAIT', + 'NOCHECK', + 'NOCOUNT', + 'NO_DROP', + 'NOEXEC', + 'NOEXPAND', + 'NOFORMAT', + 'NOINDEX', + 'NOINIT', + 'NOLOCK', + 'NON', + 'NON_TRANSACTED_ACCESS', + 'NONCLUSTERED', + 'NONE', + 'NORECOMPUTE', + 'NORECOVERY', + 'NORELY', + 'NORESEED', + 'NORESET', + 'NOREWIND', + 'NORMAL', + 'NOSCAN', + 'NOSKIP', + 'NOTIFICATION', + 'NOTRUNCATE', + 'NOUNLOAD', + 'NOVALIDATE', + 'NOWAIT', + 'NTEXT', + 'NTLM', + 'NULLS', + 'NUMANODE', + 'NUMERIC', + 'NUMERIC_ROUNDABORT', + 'NVARCHAR', + 'OBJECT', + 'OF', + 'OFF', + 'OFFLINE', + 'OFFSET', + 'OFFSETS', + 'OLD_ACCOUNT', + 'OLD_PASSWORD', + 'ON', + 'ON_FAILURE', + 'ONLINE', + 'ONLY', + 'OPEN', + 'OPEN_EXISTING', + 'OPENTRAN', + 'OPERATOR', + 'OPTIMISTIC', + 'OPTIMIZE', + 'OPTION', + 'ORDER', + 'OUT', + 'OUTPUT', + 'OUTPUTDRIVER', + 'OUTPUTBUFFER', + 'OUTPUTFORMAT', + 'OVER', + 'OVERRIDE', + 'OWNER', + 'OWNERSHIP', + 'OVERWRITE', + 'PAD_INDEX', + 'PAGE', + 'PAGE_VERIFY', + 'PAGECOUNT', + 'PAGLOCK', + 'PARAMETERIZATION', + 'PARSEONLY', + 'PARTIAL', + 'PARTIALSCAN', + 'PARTITION', + 'PARTITIONED', + 'PARTITIONS', + 'PARTNER', + 'PASSWORD', + 'PATH', + 'PER_CPU', + 'PER_NODE', + 'PERCENT', + 'PERMISSION_SET', + 'PERSISTED', + 'PHYSICAL_ONLY', + 'PLAN', + 'PLUS', + 'POISON_MESSAGE_HANDLING', + 'POOL', + 'POPULATION', + 'PORT', + 'PRECEDING', + 'PRECISION', + 'PRETTY', + 'PRESERVE', + 'PRIMARY', + 'PRIMARY_ROLE', + 'PRINT', + 'PRIOR', + 'PRIORITY', + 'PRIORITY_LEVEL', + 'PRINCIPALS', + 'PRIVATE', + 'PRIVILEGES', + 'PROC', + 'PROCCACHE', + 'PROCEDURE', + 'PROCEDURE_NAME', + 'PROCESS', + 'PROFILE', + 'PROPERTY', + 'PROPERTY_DESCRIPTION', + 'PROPERTY_INT_ID', + 'PROPERTY_SET_GUID', + 'PROTECTION', + 'PROVIDER', + 'PROVIDER_KEY_NAME', + 'PUBLIC', + 'PURGE', + 'PUT', + 'QUARTER', + 'QUERY', + 'QUERY_GOVERNOR_COST_LIMIT', + 'QUEUE', + 'QUEUE_DELAY', + 'QUOTED_IDENTIFIER', + 'RAISERROR', + 'RANGE', + 'RAW', + 'RC2', + 'RC4', + 'RC4_128', + 'READ', + 'READ_COMMITTED_SNAPSHOT', + 'READ_ONLY', + 'READ_ONLY_ROUTING_LIST', + 'READ_ONLY_ROUTING_URL', + 'READ_WRITE', + 'READ_WRITE_FILEGROUPS', + 'READCOMMITTED', + 'READCOMMITTEDLOCK', + 'READONLY', + 'READPAST', + 'READS', + 'READTEXT', + 'READUNCOMMITTED', + 'READWRITE', + 'REAL', + 'REBUILD', + 'RECEIVE', + 'RECOMPILE', + 'RECONFIGURE', + 'RECORDREADER', + 'RECORDWRITER', + 'RECOVERY', + 'RECURSIVE', + 'RECURSIVE_TRIGGERS', + 'REDUCE', + 'REFERENCES', + 'REGENERATE', + 'REGEXP', + 'RELATED_CONVERSATION', + 'RELATED_CONVERSATION_GROUP', + 'RELATIVE', + 'RELOAD', + 'RELY', + 'REMOTE', + 'REMOTE_PROC_TRANSACTIONS', + 'REMOTE_SERVICE_NAME', + 'REMOVE', + 'RENAME', + 'REORGANIZE', + 'REPAIR', + 'REPAIR_ALLOW_DATA_LOSS', + 'REPAIR_FAST', + 'REPAIR_REBUILD', + 'REPEATABLE', + 'REPEATABLEREAD', + 'REPLICA', + 'REPLICATION', + 'REQUEST_MAX_CPU_TIME_SEC', + 'REQUEST_MAX_MEMORY_GRANT_PERCENT', + 'REQUEST_MEMORY_GRANT_TIMEOUT_SEC', + 'REQUIRED', + 'RESAMPLE', + 'RESEED', + 'RESERVE_DISK_SPACE', + 'RESET', + 'RESOURCE', + 'RESTART', + 'RESTORE', + 'RESTRICT', + 'RESTRICTED_USER', + 'RESULT', + 'RESUME', + 'RETAINDAYS', + 'RETENTION', + 'RETURN', + 'RETURNS', + 'REVERT', + 'REVOKE', + 'REWIND', + 'REWINDONLY', + 'REWRITE', + 'RLIKE', + 'ROBUST', + 'ROLE', + 'ROLES', + 'ROLLBACK', + 'ROLLUP', + 'ROOT', + 'ROUTE', + 'ROW', + 'ROWCOUNT', + 'ROWGUIDCOL', + 'ROWLOCK', + 'ROWS', + 'ROWS_PER_BATCH', + 'ROWTERMINATOR', + 'ROWVERSION', + 'RSA_1024', + 'RSA_2048', + 'RSA_512', + 'RULE', + 'SAFE', + 'SAFETY', + 'SAMPLE', + 'SAVE', + 'SCHEDULER', + 'SCHEMA', + 'SCHEMAS', + 'SCHEMA_AND_DATA', + 'SCHEMA_ONLY', + 'SCHEMABINDING', + 'SCHEME', + 'SCROLL', + 'SCROLL_LOCKS', + 'SEARCH', + 'SECOND', + 'SECONDARY', + 'SECONDARY_ONLY', + 'SECONDARY_ROLE', + 'SECONDS', + 'SECRET', + 'SECURITY_LOG', + 'SECURITYAUDIT', + 'SELECT', + 'SELECTIVE', + 'SELF', + 'SEMI', + 'SEND', + 'SENT', + 'SEQUENCE', + 'SERDE', + 'SERDEPROPERTIES', + 'SERIALIZABLE', + 'SERVER', + 'SERVICE', + 'SERVICE_BROKER', + 'SERVICE_NAME', + 'SESSION', + 'SESSION_TIMEOUT', + 'SET', + 'SETS', + 'SETUSER', + 'SHARED', + 'SHOW', + 'SHOW_DATABASE', + 'SHOW_STATISTICS', + 'SHOWCONTIG', + 'SHOWPLAN', + 'SHOWPLAN_ALL', + 'SHOWPLAN_TEXT', + 'SHOWPLAN_XML', + 'SHRINKDATABASE', + 'SHRINKFILE', + 'SHUTDOWN', + 'SID', + 'SIGNATURE', + 'SIMPLE', + 'SINGLE_BLOB', + 'SINGLE_CLOB', + 'SINGLE_NCLOB', + 'SINGLE_USER', + 'SINGLETON', + 'SIZE', + 'SKEWED', + 'SKIP', + 'SMALLDATETIME', + 'SMALLINT', + 'SMALLMONEY', + 'SNAPSHOT', + 'SORT', + 'SORTED', + 'SORT_IN_TEMPDB', + 'SOURCE', + 'SPARSE', + 'SPATIAL', + 'SPATIAL_WINDOW_MAX_CELLS', + 'SPECIFICATION', + 'SPLIT', + 'SQL', + 'SQL_VARIANT', + 'SQLPERF', + 'SSL', + 'STANDBY', + 'START', + 'START_DATE', + 'STARTED', + 'STARTUP_STATE', + 'STAT_HEADER', + 'STATE', + 'STATEMENT', + 'STATIC', + 'STATISTICAL_SEMANTICS', + 'STATISTICS', + 'STATISTICS_INCREMENTAL', + 'STATISTICS_NORECOMPUTE', + 'STATS', + 'STATS_STREAM', + 'STATUS', + 'STATUSONLY', + 'STOP', + 'STOP_ON_ERROR', + 'STOPAT', + 'STOPATMARK', + 'STOPBEFOREMARK', + 'STOPLIST', + 'STOPPED', + 'STORED', + 'STREAMTABLE', + 'STRING', + 'STRUCT', + 'SUBJECT', + 'SUBSCRIPTION', + 'SUMMARY', + 'SUPPORTED', + 'SUSPEND', + 'SWITCH', + 'SYMMETRIC', + 'SYNCHRONOUS_COMMIT', + 'SYNONYM', + 'SYSNAME', + 'SYSTEM', + 'TABLE', + 'TABLES', + 'TABLERESULTS', + 'TABLESAMPLE', + 'TABLOCK', + 'TABLOCKX', + 'TAKE', + 'TAPE', + 'TARGET', + 'TARGET_RECOVERY_TIME', + 'TB', + 'TBLPROPERTIES', + 'TCP', + 'TEMPORARY', + 'TERMINATED', + 'TEXT', + 'TEXTIMAGE_ON', + 'TEXTSIZE', + 'THEN', + 'THESAURUS', + 'THROW', + 'TIES', + 'TIME', + 'TIMEOUT', + 'TIMER', + 'TIMESTAMP', + 'TIMESTAMPTZ', + 'TINYINT', + 'TO', + 'TOP', + 'TORN_PAGE_DETECTION', + 'TOUCH', + 'TRACEOFF', + 'TRACEON', + 'TRACESTATUS', + 'TRACK_CAUSALITY', + 'TRACK_COLUMNS_UPDATED', + 'TRAN', + 'TRANSACTION', + 'TRANSACTIONS', + 'TRANSFER', + 'TRANSFORM', + 'TRANSFORM_NOISE_WORDS', + 'TRIGGER', + 'TRIPLE_DES', + 'TRIPLE_DES_3KEY', + 'TRUE', + 'TRUNCATE', + 'TRUNCATEONLY', + 'TRUSTWORTHY', + 'TRY', + 'TSQL', + 'TWO_DIGIT_YEAR_CUTOFF', + 'TYPE', + 'TYPE_WARNING', + 'UNARCHIVE', + 'UNBOUNDED', + 'UNCHECKED', + 'UNCOMMITTED', + 'UNDEFINED', + 'UNDO', + 'UNSET', + 'UNSIGNED', + 'UNIONTYPE', + 'UNIQUE', + 'UNIQUEIDENTIFIER', + 'UNIQUEJOIN', + 'UNKNOWN', + 'UNLIMITED', + 'UNLOAD', + 'UNLOCK', + 'UNSAFE', + 'UPDATE', + 'UPDATETEXT', + 'UPDATEUSAGE', + 'UPDLOCK', + 'URI', + 'URL', + 'USE', + 'USED', + 'USER', + 'USEROPTIONS', + 'USING', + 'UTC', + 'UTC_TMESTAMP', + 'UTCTIMESTAMP', + 'VALID_XML', + 'VALIDATE', + 'VALIDATION', + 'VALUE', + 'VALUE_TYPE', + 'VALUES', + 'VARBINARY', + 'VARCHAR', + 'VARYING', + 'VECTORIZATION', + 'VERIFYONLY', + 'VERSION', + 'VIEW', + 'VIEW_METADATA', + 'VIEWS', + 'VISIBILITY', + 'WAIT_AT_LOW_PRIORITY', + 'WAITFOR', + 'WEEK', + 'WEEKS', + 'WEIGHT', + 'WELL_FORMED_XML', + 'WHEN', + 'WHERE', + 'WHILE', + 'WINDOW', + 'WINDOWS', + 'WITH', + 'WITHIN', + 'WITHOUT', + 'WITNESS', + 'WORK', + 'WORKLOAD', + 'WRITE', + 'WRITETEXT', + 'XACT_ABORT', + 'XLOCK', + 'XMAX', + 'XMIN', + 'XML', + 'XMLDATA', + 'XMLNAMESPACES', + 'XMLSCHEMA', + 'XQUERY', + 'XSINIL', + 'YEAR', + 'YEARS', + 'YMAX', + 'YMIN', + 'ZONE', + ], + operators: [ + // Logical + 'ALL', + 'AND', + 'ANY', + 'BETWEEN', + 'EXISTS', + 'IN', + 'LIKE', + 'NOT', + 'OR', + 'SOME', + // Set + 'EXCEPT', + 'INTERSECT', + 'UNION', + // Join + 'APPLY', + 'CROSS', + 'FULL', + 'INNER', + 'JOIN', + 'LEFT', + 'OUTER', + 'RIGHT', + // Predicates + 'CONTAINS', + 'FREETEXT', + 'IS', + 'NULL', + // Pivoting + 'PIVOT', + 'UNPIVOT', + // Merging + 'MATCHED', + ], + builtinFunctions: [ + // Aggregate + 'AVG', + 'CHECKSUM_AGG', + 'COUNT', + 'COUNT_BIG', + 'GROUPING', + 'GROUPING_ID', + 'MAX', + 'MIN', + 'SUM', + 'STDEV', + 'STDEVP', + 'VAR', + 'VARP', + // Analytic + 'CUME_DIST', + 'FIRST_VALUE', + 'LAG', + 'LAST_VALUE', + 'LEAD', + 'PERCENTILE_CONT', + 'PERCENTILE_DISC', + 'PERCENT_RANK', + // Collation + 'COLLATE', + 'COLLATIONPROPERTY', + 'TERTIARY_WEIGHTS', + // Azure + 'FEDERATION_FILTERING_VALUE', + // Conversion + 'CAST', + 'CONVERT', + 'PARSE', + 'TRY_CAST', + 'TRY_CONVERT', + 'TRY_PARSE', + // Cryptographic + 'ASYMKEY_ID', + 'ASYMKEYPROPERTY', + 'CERTPROPERTY', + 'CERT_ID', + 'CRYPT_GEN_RANDOM', + 'DECRYPTBYASYMKEY', + 'DECRYPTBYCERT', + 'DECRYPTBYKEY', + 'DECRYPTBYKEYAUTOASYMKEY', + 'DECRYPTBYKEYAUTOCERT', + 'DECRYPTBYPASSPHRASE', + 'ENCRYPTBYASYMKEY', + 'ENCRYPTBYCERT', + 'ENCRYPTBYKEY', + 'ENCRYPTBYPASSPHRASE', + 'HASHBYTES', + 'IS_OBJECTSIGNED', + 'KEY_GUID', + 'KEY_ID', + 'KEY_NAME', + 'SIGNBYASYMKEY', + 'SIGNBYCERT', + 'SYMKEYPROPERTY', + 'VERIFYSIGNEDBYCERT', + 'VERIFYSIGNEDBYASYMKEY', + // Cursor + 'CURSOR_STATUS', + // Datatype + 'DATALENGTH', + 'IDENT_CURRENT', + 'IDENT_INCR', + 'IDENT_SEED', + 'IDENTITY', + 'SQL_VARIANT_PROPERTY', + // Datetime + 'CURRENT_TIMESTAMP', + 'DATEADD', + 'DATEDIFF', + 'DATEFROMPARTS', + 'DATENAME', + 'DATEPART', + 'DATETIME2FROMPARTS', + 'DATETIMEFROMPARTS', + 'DATETIMEOFFSETFROMPARTS', + 'DAY', + 'EOMONTH', + 'GETDATE', + 'GETUTCDATE', + 'ISDATE', + 'MONTH', + 'SMALLDATETIMEFROMPARTS', + 'SWITCHOFFSET', + 'SYSDATETIME', + 'SYSDATETIMEOFFSET', + 'SYSUTCDATETIME', + 'TIMEFROMPARTS', + 'TODATETIMEOFFSET', + 'YEAR', + // Logical + 'CHOOSE', + 'COALESCE', + 'IIF', + 'NULLIF', + // Mathematical + 'ABS', + 'ACOS', + 'ASIN', + 'ATAN', + 'ATN2', + 'CEILING', + 'COS', + 'COT', + 'DEGREES', + 'EXP', + 'FLOOR', + 'LOG', + 'LOG10', + 'PI', + 'POWER', + 'RADIANS', + 'RAND', + 'ROUND', + 'SIGN', + 'SIN', + 'SQRT', + 'SQUARE', + 'TAN', + // Metadata + 'APP_NAME', + 'APPLOCK_MODE', + 'APPLOCK_TEST', + 'ASSEMBLYPROPERTY', + 'COL_LENGTH', + 'COL_NAME', + 'COLUMNPROPERTY', + 'DATABASE_PRINCIPAL_ID', + 'DATABASEPROPERTYEX', + 'DB_ID', + 'DB_NAME', + 'FILE_ID', + 'FILE_IDEX', + 'FILE_NAME', + 'FILEGROUP_ID', + 'FILEGROUP_NAME', + 'FILEGROUPPROPERTY', + 'FILEPROPERTY', + 'FULLTEXTCATALOGPROPERTY', + 'FULLTEXTSERVICEPROPERTY', + 'INDEX_COL', + 'INDEXKEY_PROPERTY', + 'INDEXPROPERTY', + 'OBJECT_DEFINITION', + 'OBJECT_ID', + 'OBJECT_NAME', + 'OBJECT_SCHEMA_NAME', + 'OBJECTPROPERTY', + 'OBJECTPROPERTYEX', + 'ORIGINAL_DB_NAME', + 'PARSENAME', + 'SCHEMA_ID', + 'SCHEMA_NAME', + 'SCOPE_IDENTITY', + 'SERVERPROPERTY', + 'STATS_DATE', + 'TYPE_ID', + 'TYPE_NAME', + 'TYPEPROPERTY', + // Ranking + 'DENSE_RANK', + 'NTILE', + 'RANK', + 'ROW_NUMBER', + // Replication + 'PUBLISHINGSERVERNAME', + // Rowset + 'OPENDATASOURCE', + 'OPENQUERY', + 'OPENROWSET', + 'OPENXML', + // Security + 'CERTENCODED', + 'CERTPRIVATEKEY', + 'CURRENT_USER', + 'HAS_DBACCESS', + 'HAS_PERMS_BY_NAME', + 'IS_MEMBER', + 'IS_ROLEMEMBER', + 'IS_SRVROLEMEMBER', + 'LOGINPROPERTY', + 'ORIGINAL_LOGIN', + 'PERMISSIONS', + 'PWDENCRYPT', + 'PWDCOMPARE', + 'SESSION_USER', + 'SESSIONPROPERTY', + 'SUSER_ID', + 'SUSER_NAME', + 'SUSER_SID', + 'SUSER_SNAME', + 'SYSTEM_USER', + 'USER', + 'USER_ID', + 'USER_NAME', + // String + 'ASCII', + 'CHAR', + 'CHARINDEX', + 'CONCAT', + 'DIFFERENCE', + 'FORMAT', + 'LEFT', + 'LEN', + 'LOWER', + 'LTRIM', + 'NCHAR', + 'PATINDEX', + 'QUOTENAME', + 'REPLACE', + 'REPLICATE', + 'REVERSE', + 'RIGHT', + 'RTRIM', + 'SOUNDEX', + 'SPACE', + 'STR', + 'STUFF', + 'SUBSTRING', + 'UNICODE', + 'UPPER', + // System + 'BINARY_CHECKSUM', + 'CHECKSUM', + 'CONNECTIONPROPERTY', + 'CONTEXT_INFO', + 'CURRENT_REQUEST_ID', + 'ERROR_LINE', + 'ERROR_NUMBER', + 'ERROR_MESSAGE', + 'ERROR_PROCEDURE', + 'ERROR_SEVERITY', + 'ERROR_STATE', + 'FORMATMESSAGE', + 'GETANSINULL', + 'GET_FILESTREAM_TRANSACTION_CONTEXT', + 'HOST_ID', + 'HOST_NAME', + 'ISNULL', + 'ISNUMERIC', + 'MIN_ACTIVE_ROWVERSION', + 'NEWID', + 'NEWSEQUENTIALID', + 'ROWCOUNT_BIG', + 'XACT_STATE', + // TextImage + 'TEXTPTR', + 'TEXTVALID', + // Trigger + 'COLUMNS_UPDATED', + 'EVENTDATA', + 'TRIGGER_NESTLEVEL', + 'UPDATE', + // ChangeTracking + 'CHANGETABLE', + 'CHANGE_TRACKING_CONTEXT', + 'CHANGE_TRACKING_CURRENT_VERSION', + 'CHANGE_TRACKING_IS_COLUMN_IN_MASK', + 'CHANGE_TRACKING_MIN_VALID_VERSION', + // FullTextSearch + 'CONTAINSTABLE', + 'FREETEXTTABLE', + // SemanticTextSearch + 'SEMANTICKEYPHRASETABLE', + 'SEMANTICSIMILARITYDETAILSTABLE', + 'SEMANTICSIMILARITYTABLE', + // FileStream + 'FILETABLEROOTPATH', + 'GETFILENAMESPACEPATH', + 'GETPATHLOCATOR', + 'PATHNAME', + // ServiceBroker + 'GET_TRANSMISSION_STATUS', + ], + builtinVariables: [ + // Configuration + '@@DATEFIRST', + '@@DBTS', + '@@LANGID', + '@@LANGUAGE', + '@@LOCK_TIMEOUT', + '@@MAX_CONNECTIONS', + '@@MAX_PRECISION', + '@@NESTLEVEL', + '@@OPTIONS', + '@@REMSERVER', + '@@SERVERNAME', + '@@SERVICENAME', + '@@SPID', + '@@TEXTSIZE', + '@@VERSION', + // Cursor + '@@CURSOR_ROWS', + '@@FETCH_STATUS', + // Datetime + '@@DATEFIRST', + // Metadata + '@@PROCID', + // System + '@@ERROR', + '@@IDENTITY', + '@@ROWCOUNT', + '@@TRANCOUNT', + // Stats + '@@CONNECTIONS', + '@@CPU_BUSY', + '@@IDLE', + '@@IO_BUSY', + '@@PACKET_ERRORS', + '@@PACK_RECEIVED', + '@@PACK_SENT', + '@@TIMETICKS', + '@@TOTAL_ERRORS', + '@@TOTAL_READ', + '@@TOTAL_WRITE', + ], + pseudoColumns: ['$ACTION', '$IDENTITY', '$ROWGUID', '$PARTITION'], + tokenizer: { + root: [ + { include: '@comments' }, + { include: '@whitespace' }, + { include: '@pseudoColumns' }, + { include: '@numbers' }, + { include: '@strings' }, + { include: '@complexIdentifiers' }, + { include: '@scopes' }, + [/[;,.]/, 'delimiter'], + [/[()]/, '@brackets'], + [ + /[\w@#$]+/, + { + cases: { + '@keywords': 'keyword', + '@operators': 'operator', + '@builtinVariables': 'predefined', + '@builtinFunctions': 'predefined', + '@default': 'identifier', + }, + }, + ], + [/[<>=!%&+\-*/|~^]/, 'operator'], + ], + whitespace: [[/\s+/, 'white']], + comments: [ + [/--+.*/, 'comment'], + [/\/\*/, { token: 'comment.quote', next: '@comment' }], + ], + comment: [ + [/[^*/]+/, 'comment'], + // Not supporting nested comments, as nested comments seem to not be standard? + // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic + // [/\/\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-( + [/\*\//, { token: 'comment.quote', next: '@pop' }], + [/./, 'comment'], + ], + pseudoColumns: [ + [ + /[$][A-Za-z_][\w@#$]*/, + { + cases: { + '@pseudoColumns': 'predefined', + '@default': 'identifier', + }, + }, + ], + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, 'number'], + [/[$][+-]*\d*(\.\d*)?/, 'number'], + [/((\d+(\.\d*)?)|(\.\d+))([eE][-+]?\d+)?/, 'number'], + ], + strings: [ + [/N'/, { token: 'string', next: '@string' }], + [/'/, { token: 'string', next: '@string' }], + ], + string: [ + [/[^']+/, 'string'], + [/''/, 'string'], + [/'/, { token: 'string', next: '@pop' }], + ], + complexIdentifiers: [ + [/\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }], + [/"/, { token: 'identifier.quote', next: '@quotedIdentifier' }], + ], + bracketedIdentifier: [ + [/[^\]]+/, 'identifier'], + [/]]/, 'identifier'], + [/]/, { token: 'identifier.quote', next: '@pop' }], + ], + quotedIdentifier: [ + [/[^"]+/, 'identifier'], + [/""/, 'identifier'], + [/"/, { token: 'identifier.quote', next: '@pop' }], + ], + scopes: [ + [/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i, 'keyword'], + [/BEGIN\s+TRY\b/i, { token: 'keyword.try' }], + [/END\s+TRY\b/i, { token: 'keyword.try' }], + [/BEGIN\s+CATCH\b/i, { token: 'keyword.catch' }], + [/END\s+CATCH\b/i, { token: 'keyword.catch' }], + [/(BEGIN|CASE)\b/i, { token: 'keyword.block' }], + [/END\b/i, { token: 'keyword.block' }], + [/WHEN\b/i, { token: 'keyword.choice' }], + [/THEN\b/i, { token: 'keyword.choice' }], + ], + }, +}; + +export default { + config: richLanguageConfiguration, + definition: langDefinition, + register(monaco) { + monaco.languages.register({ id: 'hql' }); + monaco.languages.setLanguageConfiguration( + 'hql', + richLanguageConfiguration, + ); + monaco.languages.setMonarchTokensProvider('hql', langDefinition); + + // handle formatting(处理格式化) + monaco.languages.registerDocumentFormattingEditProvider('hql', { + provideDocumentFormattingEdits: function (model) { + let range = model.getFullModelRange(); + let value = model.getValue(); + let newValue = sqlFormatter.format(value); + return [ + { + range: range, + text: newValue, + }, + ]; + }, + }); + }, +}; diff --git a/linkis-web-next/src/components/editor/languages/log.ts b/linkis-web-next/src/components/editor/languages/log.ts new file mode 100644 index 00000000000..6e8b7706c62 --- /dev/null +++ b/linkis-web-next/src/components/editor/languages/log.ts @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + register(monaco: typeof import('monaco-editor')) { + monaco.languages.register({ id: 'log' }); + + monaco.languages.setMonarchTokensProvider('log', { + tokenizer: { + root: [ + [/(^[=a-zA-Z].*|\d\s.*)/, 'log-normal'], + [/\sERROR\s.*/, 'log-error'], + [/\sWARN\s.*/, 'log-warn'], + [/\sINFO\s.*/, 'log-info'], + [ + /^([0-9]{4}||[0-9]{2})-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]{3})?/, + 'log-date', + ], + [ + /^[0-9]{2}\/[0-9]{2}\/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]{3})?/, + 'log-date', + ], + [/(^\*\*Waiting queue:.*)/, 'log-info'], + [/(^\*\*result tips:.*)/, 'log-info'], + ], + }, + }); + }, +}; diff --git a/linkis-web-next/src/components/editor/languages/out.ts b/linkis-web-next/src/components/editor/languages/out.ts new file mode 100644 index 00000000000..70569b51b4e --- /dev/null +++ b/linkis-web-next/src/components/editor/languages/out.ts @@ -0,0 +1,1570 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const richLanguageConfiguration = { + comments: { + lineComment: '--', + blockComment: ['/*', '*/'], + }, + brackets: [ + ['{', '}'], + ['[', ']'], + ['(', ')'], + ], + autoClosingPairs: [ + { open: '{', close: '}' }, + { open: '[', close: ']' }, + { open: '(', close: ')' }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + ], + surroundingPairs: [ + { open: '{', close: '}' }, + { open: '[', close: ']' }, + { open: '(', close: ')' }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + ], +}; + +const langDefinition = { + defaultToken: '', + tokenPostfix: '.out', + ignoreCase: true, + + brackets: [ + { open: '[', close: ']', token: 'delimiter.square' }, + { open: '(', close: ')', token: 'delimiter.parenthesis' }, + ], + + keywords: [ + 'ABORT_AFTER_WAIT', + 'ABSENT', + 'ABSOLUTE', + 'ABORT', + 'ACCENT_SENSITIVITY', + 'ACTION', + 'ACTIVATION', + 'ACTIVE', + 'ADD', + 'ADDRESS', + 'ADMIN', + 'AES', + 'AES_128', + 'AES_192', + 'AES_256', + 'AFFINITY', + 'AFTER', + 'AGGREGATE', + 'ALGORITHM', + 'ALL_CONSTRAINTS', + 'ALL_ERRORMSGS', + 'ALL_INDEXES', + 'ALL_LEVELS', + 'ALL_SPARSE_COLUMNS', + 'ALLOW_CONNECTIONS', + 'ALLOW_MULTIPLE_EVENT_LOSS', + 'ALLOW_PAGE_LOCKS', + 'ALLOW_ROW_LOCKS', + 'ALLOW_SINGLE_EVENT_LOSS', + 'ALLOW_SNAPSHOT_ISOLATION', + 'ALLOWED', + 'ALTER', + 'ANALYZE', + 'ANONYMOUS', + 'ANSI_DEFAULTS', + 'ANSI_NULL_DEFAULT', + 'ANSI_NULL_DFLT_OFF', + 'ANSI_NULL_DFLT_ON', + 'ANSI_NULLS', + 'ANSI_PADDING', + 'ANSI_WARNINGS', + 'APPEND', + 'APPLICATION', + 'APPLICATION_LOG', + 'ARCHIVE', + 'ARITHABORT', + 'ARITHIGNORE', + 'ARRAY', + 'AS', + 'ASC', + 'ASSEMBLY', + 'ASYMMETRIC', + 'ASYNCHRONOUS_COMMIT', + 'AT', + 'ATOMIC', + 'ATTACH', + 'ATTACH_REBUILD_LOG', + 'AUDIT', + 'AUDIT_GUID', + 'AUTHENTICATION', + 'AUTHORIZATION', + 'AUTO', + 'AUTOCOMMIT', + 'AUTO_CLEANUP', + 'AUTO_CLOSE', + 'AUTO_CREATE_STATISTICS', + 'AUTO_SHRINK', + 'AUTO_UPDATE_STATISTICS', + 'AUTO_UPDATE_STATISTICS_ASYNC', + 'AUTOMATED_BACKUP_PREFERENCE', + 'AUTOMATIC', + 'AVAILABILITY', + 'AVAILABILITY_MODE', + 'BACKUP', + 'BACKUP_PRIORITY', + 'BASE64', + 'BATCHSIZE', + 'BEFORE', + 'BEGIN', + 'BEGIN_DIALOG', + 'BIGINT', + 'BINARY', + 'BINDING', + 'BIT', + 'BLOCKERS', + 'BLOCKSIZE', + 'BOOLEAN', + 'BOTH', + 'BOUNDING_BOX', + 'BREAK', + 'BROKER', + 'BROKER_INSTANCE', + 'BROWSE', + 'BUCKET', + 'BUCKETS', + 'BUCKET_COUNT', + 'BUFFER', + 'BUFFERCOUNT', + 'BULK', + 'BULK_LOGGED', + 'BY', + 'CACHE', + 'CALL', + 'CALLED', + 'CALLER', + 'CAP_CPU_PERCENT', + 'CASCADE', + 'CASE', + 'CATALOG', + 'CATCH', + 'CELLS_PER_OBJECT', + 'CERTIFICATE', + 'CHANGE', + 'CHANGE_RETENTION', + 'CHANGE_TRACKING', + 'CHANGES', + 'CHAR', + 'CHARACTER', + 'CHECK', + 'CHECK_CONSTRAINTS', + 'CHECK_EXPIRATION', + 'CHECK_POLICY', + 'CHECKALLOC', + 'CHECKCATALOG', + 'CHECKCONSTRAINTS', + 'CHECKDB', + 'CHECKFILEGROUP', + 'CHECKIDENT', + 'CHECKPOINT', + 'CHECKTABLE', + 'CLASSIFIER_FUNCTION', + 'CLEANTABLE', + 'CLEANUP', + 'CLEAR', + 'CLOSE', + 'CLUSTER', + 'CLUSTERED', + 'CLUSTERSTATUS', + 'CODEPAGE', + 'COLLATE', + 'COLLECTION', + 'COLUMN', + 'COLUMN_SET', + 'COLUMNS', + 'COLUMNSTORE', + 'COLUMNSTORE_ARCHIVE', + 'COMMENT', + 'COMMIT', + 'COMMITTED', + 'COMPACT', + 'COMPACTIONS', + 'COMPATIBILITY_LEVEL', + 'COMPRESSION', + 'COMPUTE', + 'CONCAT', + 'CONCAT_NULL_YIELDS_NULL', + 'CONCATENATE', + 'CONF', + 'CONFIGURATION', + 'CONNECT', + 'CONSTRAINT', + 'CONTAINMENT', + 'CONTENT', + 'CONTEXT', + 'CONTINUE', + 'CONTINUE_AFTER_ERROR', + 'CONTRACT', + 'CONTRACT_NAME', + 'CONTROL', + 'CONVERSATION', + 'COOKIE', + 'COPY_ONLY', + 'COUNTER', + 'CPU', + 'CREATE', + 'CREATE_NEW', + 'CREATION_DISPOSITION', + 'CREDENTIAL', + 'CRYPTOGRAPHIC', + 'CUBE', + 'CURRENT', + 'CURRENT_DATE', + 'CURSOR', + 'CURSOR_CLOSE_ON_COMMIT', + 'CURSOR_DEFAULT', + 'CYCLE', + 'DATA', + 'DATA_COMPRESSION', + 'DATA_PURITY', + 'DATABASE', + 'DATABASES', + 'DATABASE_DEFAULT', + 'DATABASE_MIRRORING', + 'DATABASE_SNAPSHOT', + 'DATAFILETYPE', + 'DATE', + 'DATE_CORRELATION_OPTIMIZATION', + 'DATEFIRST', + 'DATEFORMAT', + 'DATETIME', + 'DATETIME2', + 'DATETIMEOFFSET', + 'DAY', + 'DAYOFWEEK', + 'DAYOFYEAR', + 'DAYS', + 'DB_CHAINING', + 'DBCC', + 'DBREINDEX', + 'DBPROPERTIES', + 'DDL_DATABASE_LEVEL_EVENTS', + 'DEADLOCK_PRIORITY', + 'DEALLOCATE', + 'DEC', + 'DECIMAL', + 'DECLARE', + 'DECRYPTION', + 'DEFAULT', + 'DEFAULT_DATABASE', + 'DEFAULT_FULLTEXT_LANGUAGE', + 'DEFAULT_LANGUAGE', + 'DEFAULT_SCHEMA', + 'DEFERRED', + 'DEFINED', + 'DEFINITION', + 'DELAY', + 'DELAYED_DURABILITY', + 'DELETE', + 'DELETED', + 'DELIMITED', + 'DENSITY_VECTOR', + 'DENY', + 'DEPENDENCY', + 'DEPENDENTS', + 'DES', + 'DESC', + 'DESCRIPTION', + 'DESCRIBE', + 'DESX', + 'DETAIL', + 'DHCP', + 'DIAGNOSTICS', + 'DIALOG', + 'DIFFERENTIAL', + 'DIRECTORIES', + 'DIRECTORY', + 'DIRECTORY_NAME', + 'DISABLE', + 'DISABLE_BROKER', + 'DISABLED', + 'DISK', + 'DISTINCT', + 'DISTRIBUTE', + 'DISTRIBUTED', + 'DOCUMENT', + 'DOUBLE', + 'DOW', + 'DROP', + 'DROP_EXISTING', + 'DROPCLEANBUFFERS', + 'DUMP', + 'DURABILITY', + 'DYNAMIC', + 'EDITION', + 'ELEMENTS', + 'ELEM_TYPE', + 'ELSE', + 'EMERGENCY', + 'EMPTY', + 'EMPTYFILE', + 'ENABLE', + 'ENABLE_BROKER', + 'ENABLED', + 'ENCRYPTION', + 'END', + 'ENDPOINT', + 'ENDPOINT_URL', + 'ERRLVL', + 'ERROR', + 'ERROR_BROKER_CONVERSATIONS', + 'ERRORFILE', + 'ESCAPE', + 'ESCAPED', + 'ESTIMATEONLY', + 'EVENT', + 'EVENT_RETENTION_MODE', + 'EXCHANGE', + 'EXCLUSIVE', + 'EXEC', + 'EXECUTABLE', + 'EXECUTE', + 'EXIT', + 'EXPAND', + 'EXPORT', + 'EXPIREDATE', + 'EXPIRY_DATE', + 'EXPLAIN', + 'EXPLICIT', + 'EXPRESSION', + 'EXTENDED', + 'EXTENDED_LOGICAL_CHECKS', + 'EXTENSION', + 'EXTERNAL', + 'EXTERNAL_ACCESS', + 'EXTRACT', + 'FAIL_OPERATION', + 'FAILOVER', + 'FAILOVER_MODE', + 'FAILURE_CONDITION_LEVEL', + 'FALSE', + 'FAN_IN', + 'FAST', + 'FAST_FORWARD', + 'FETCH', + 'FIELDS', + 'FIELDTERMINATOR', + 'FILE', + 'FILEFORMAT', + 'FILEGROUP', + 'FILEGROWTH', + 'FILELISTONLY', + 'FILENAME', + 'FILEPATH', + 'FILESTREAM', + 'FILESTREAM_ON', + 'FILETABLE_COLLATE_FILENAME', + 'FILETABLE_DIRECTORY', + 'FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME', + 'FILETABLE_NAMESPACE', + 'FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME', + 'FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME', + 'FILLFACTOR', + 'FILTERING', + 'FIRE_TRIGGERS', + 'FIRST', + 'FIRSTROW', + 'FLOAT', + 'FMTONLY', + 'FOLLOWING', + 'FOR', + 'FORCE', + 'FORCE_FAILOVER_ALLOW_DATA_LOSS', + 'FORCE_SERVICE_ALLOW_DATA_LOSS', + 'FORCED', + 'FORCEPLAN', + 'FORCESCAN', + 'FORCESEEK', + 'FOREIGN', + 'FORMATFILE', + 'FORMATTED', + 'FORMSOF', + 'FORWARD_ONLY', + 'FREE', + 'FREEPROCCACHE', + 'FREESESSIONCACHE', + 'FREESYSTEMCACHE', + 'FROM', + 'FULL', + 'FULLSCAN', + 'FULLTEXT', + 'FUNCTION', + 'FUNCTIONS', + 'GB', + 'GEOGRAPHY_AUTO_GRID', + 'GEOGRAPHY_GRID', + 'GEOMETRY_AUTO_GRID', + 'GEOMETRY_GRID', + 'GET', + 'GLOBAL', + 'GO', + 'GOTO', + 'GOVERNOR', + 'GRANT', + 'GRIDS', + 'GROUP', + 'GROUP_MAX_REQUESTS', + 'HADR', + 'HASH', + 'HASHED', + 'HAVING', + 'HEADERONLY', + 'HEALTH_CHECK_TIMEOUT', + 'HELP', + 'HIERARCHYID', + 'HIGH', + 'HINT', + 'HISTOGRAM', + 'HOLDLOCK', + 'HOLD_DDLTIME', + 'HONOR_BROKER_PRIORITY', + 'HOUR', + 'HOURS', + 'IDENTITY', + 'IDENTITY_INSERT', + 'IDENTITY_VALUE', + 'IDENTITYCOL', + 'IDXPROPERTIES', + 'IF', + 'IGNORE', + 'IGNORE_CONSTRAINTS', + 'IGNORE_DUP_KEY', + 'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX', + 'IGNORE_TRIGGERS', + 'IMAGE', + 'IMMEDIATE', + 'IMPERSONATE', + 'IMPLICIT_TRANSACTIONS', + 'IMPORT', + 'IMPORTANCE', + 'INCLUDE', + 'INCREMENT', + 'INCREMENTAL', + 'INDEX', + 'INDEXES', + 'INDEXDEFRAG', + 'INFINITE', + 'INFLECTIONAL', + 'INIT', + 'INITIATOR', + 'INPATH', + 'INPUT', + 'INPUTDRIVER', + 'INPUTFORMAT', + 'INPUTBUFFER', + 'INSENSITIVE', + 'INSERT', + 'INSERTED', + 'INSTEAD', + 'INT', + 'INTEGER', + 'INTERVAL', + 'INTO', + 'IO', + 'IP', + 'ISABOUT', + 'ISOLATION', + 'ITEMS', + 'JAR', + 'JOB', + 'KB', + 'KEEP', + 'KEEP_CDC', + 'KEEP_NULLS', + 'KEEP_REPLICATION', + 'KEEPDEFAULTS', + 'KEEPFIXED', + 'KEEPIDENTITY', + 'KEEPNULLS', + 'KERBEROS', + 'KEY', + 'KEY_SOURCE', + 'KEY_TYPE', + 'KEYS', + 'KEYSET', + 'KILL', + 'KILOBYTES_PER_BATCH', + 'LABELONLY', + 'LANGUAGE', + 'LAST', + 'LASTROW', + 'LATERAL', + 'LESS', + 'LEVEL', + 'LEVEL_1', + 'LEVEL_2', + 'LEVEL_3', + 'LEVEL_4', + 'LIFETIME', + 'LIMIT', + 'LINENO', + 'LINES', + 'LIST', + 'LISTENER', + 'LISTENER_IP', + 'LISTENER_PORT', + 'LOAD', + 'LOADHISTORY', + 'LOB_COMPACTION', + 'LOCAL', + 'LOCAL_SERVICE_NAME', + 'LOCATION', + 'LOCK', + 'LOCKS', + 'LOCK_ESCALATION', + 'LOCK_TIMEOUT', + 'LOGICAL', + 'LOGIN', + 'LOGSPACE', + 'LONG', + 'LOOP', + 'LOW', + 'MACRO', + 'MAP', + 'MAPJOIN', + 'MANUAL', + 'MARK', + 'MARK_IN_USE_FOR_REMOVAL', + 'MASTER', + 'MATERIALIZED', + 'MAX_CPU_PERCENT', + 'MAX_DISPATCH_LATENCY', + 'MAX_DOP', + 'MAX_DURATION', + 'MAX_EVENT_SIZE', + 'MAX_FILES', + 'MAX_IOPS_PER_VOLUME', + 'MAX_MEMORY', + 'MAX_MEMORY_PERCENT', + 'MAX_QUEUE_READERS', + 'MAX_ROLLOVER_FILES', + 'MAX_SIZE', + 'MAXDOP', + 'MAXERRORS', + 'MAXLENGTH', + 'MAXRECURSION', + 'MAXSIZE', + 'MAXTRANSFERSIZE', + 'MAXVALUE', + 'MB', + 'MEDIADESCRIPTION', + 'MEDIANAME', + 'MEDIAPASSWORD', + 'MEDIUM', + 'MEMBER', + 'MEMORY_OPTIMIZED', + 'MEMORY_OPTIMIZED_DATA', + 'MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT', + 'MEMORY_PARTITION_MODE', + 'MERGE', + 'MESSAGE', + 'MESSAGE_FORWARD_SIZE', + 'MESSAGE_FORWARDING', + 'METADATA', + 'MICROSECOND', + 'MILLISECOND', + 'MIN_CPU_PERCENT', + 'MIN_IOPS_PER_VOLUME', + 'MIN_MEMORY_PERCENT', + 'MINUS', + 'MINUTE', + 'MINUTES', + 'MINVALUE', + 'MIRROR', + 'MIRROR_ADDRESS', + 'MODIFY', + 'MONEY', + 'MONTH', + 'MONTHS', + 'MORE', + 'MOVE', + 'MSCK', + 'MULTI_USER', + 'MUST_CHANGE', + 'NAME', + 'NANOSECOND', + 'NATIONAL', + 'NATIVE_COMPILATION', + 'NCHAR', + 'NEGOTIATE', + 'NESTED_TRIGGERS', + 'NEW_ACCOUNT', + 'NEW_BROKER', + 'NEW_PASSWORD', + 'NEWNAME', + 'NEXT', + 'NO', + 'NO_BROWSETABLE', + 'NO_CHECKSUM', + 'NO_COMPRESSION', + 'NO_EVENT_LOSS', + 'NO_INFOMSGS', + 'NO_TRUNCATE', + 'NO_WAIT', + 'NOCHECK', + 'NOCOUNT', + 'NO_DROP', + 'NOEXEC', + 'NOEXPAND', + 'NOFORMAT', + 'NOINDEX', + 'NOINIT', + 'NOLOCK', + 'NON', + 'NON_TRANSACTED_ACCESS', + 'NONCLUSTERED', + 'NONE', + 'NORECOMPUTE', + 'NORECOVERY', + 'NORELY', + 'NORESEED', + 'NORESET', + 'NOREWIND', + 'NORMAL', + 'NOSCAN', + 'NOSKIP', + 'NOTIFICATION', + 'NOTRUNCATE', + 'NOUNLOAD', + 'NOVALIDATE', + 'NOWAIT', + 'NTEXT', + 'NTLM', + 'NULLS', + 'NUMANODE', + 'NUMERIC', + 'NUMERIC_ROUNDABORT', + 'NVARCHAR', + 'OBJECT', + 'OF', + 'OFF', + 'OFFLINE', + 'OFFSET', + 'OFFSETS', + 'OLD_ACCOUNT', + 'OLD_PASSWORD', + 'ON', + 'ON_FAILURE', + 'ONLINE', + 'ONLY', + 'OPEN', + 'OPEN_EXISTING', + 'OPENTRAN', + 'OPERATOR', + 'OPTIMISTIC', + 'OPTIMIZE', + 'OPTION', + 'ORDER', + 'OUT', + 'OUTPUT', + 'OUTPUTDRIVER', + 'OUTPUTBUFFER', + 'OUTPUTFORMAT', + 'OVER', + 'OVERRIDE', + 'OWNER', + 'OWNERSHIP', + 'OVERWRITE', + 'PAD_INDEX', + 'PAGE', + 'PAGE_VERIFY', + 'PAGECOUNT', + 'PAGLOCK', + 'PARAMETERIZATION', + 'PARSEONLY', + 'PARTIAL', + 'PARTIALSCAN', + 'PARTITION', + 'PARTITIONED', + 'PARTITIONS', + 'PARTNER', + 'PASSWORD', + 'PATH', + 'PER_CPU', + 'PER_NODE', + 'PERCENT', + 'PERMISSION_SET', + 'PERSISTED', + 'PHYSICAL_ONLY', + 'PLAN', + 'PLUS', + 'POISON_MESSAGE_HANDLING', + 'POOL', + 'POPULATION', + 'PORT', + 'PRECEDING', + 'PRECISION', + 'PRETTY', + 'PRESERVE', + 'PRIMARY', + 'PRIMARY_ROLE', + 'PRINT', + 'PRIOR', + 'PRIORITY', + 'PRIORITY_LEVEL', + 'PRINCIPALS', + 'PRIVATE', + 'PRIVILEGES', + 'PROC', + 'PROCCACHE', + 'PROCEDURE', + 'PROCEDURE_NAME', + 'PROCESS', + 'PROFILE', + 'PROPERTY', + 'PROPERTY_DESCRIPTION', + 'PROPERTY_INT_ID', + 'PROPERTY_SET_GUID', + 'PROTECTION', + 'PROVIDER', + 'PROVIDER_KEY_NAME', + 'PUBLIC', + 'PURGE', + 'PUT', + 'QUARTER', + 'QUERY', + 'QUERY_GOVERNOR_COST_LIMIT', + 'QUEUE', + 'QUEUE_DELAY', + 'QUOTED_IDENTIFIER', + 'RAISERROR', + 'RANGE', + 'RAW', + 'RC2', + 'RC4', + 'RC4_128', + 'READ', + 'READ_COMMITTED_SNAPSHOT', + 'READ_ONLY', + 'READ_ONLY_ROUTING_LIST', + 'READ_ONLY_ROUTING_URL', + 'READ_WRITE', + 'READ_WRITE_FILEGROUPS', + 'READCOMMITTED', + 'READCOMMITTEDLOCK', + 'READONLY', + 'READPAST', + 'READS', + 'READTEXT', + 'READUNCOMMITTED', + 'READWRITE', + 'REAL', + 'REBUILD', + 'RECEIVE', + 'RECOMPILE', + 'RECONFIGURE', + 'RECORDREADER', + 'RECORDWRITER', + 'RECOVERY', + 'RECURSIVE', + 'RECURSIVE_TRIGGERS', + 'REDUCE', + 'REFERENCES', + 'REGENERATE', + 'REGEXP', + 'RELATED_CONVERSATION', + 'RELATED_CONVERSATION_GROUP', + 'RELATIVE', + 'RELOAD', + 'RELY', + 'REMOTE', + 'REMOTE_PROC_TRANSACTIONS', + 'REMOTE_SERVICE_NAME', + 'REMOVE', + 'RENAME', + 'REORGANIZE', + 'REPAIR', + 'REPAIR_ALLOW_DATA_LOSS', + 'REPAIR_FAST', + 'REPAIR_REBUILD', + 'REPEATABLE', + 'REPEATABLEREAD', + 'REPLICA', + 'REPLICATION', + 'REQUEST_MAX_CPU_TIME_SEC', + 'REQUEST_MAX_MEMORY_GRANT_PERCENT', + 'REQUEST_MEMORY_GRANT_TIMEOUT_SEC', + 'REQUIRED', + 'RESAMPLE', + 'RESEED', + 'RESERVE_DISK_SPACE', + 'RESET', + 'RESOURCE', + 'RESTART', + 'RESTORE', + 'RESTRICT', + 'RESTRICTED_USER', + 'RESULT', + 'RESUME', + 'RETAINDAYS', + 'RETENTION', + 'RETURN', + 'RETURNS', + 'REVERT', + 'REVOKE', + 'REWIND', + 'REWINDONLY', + 'REWRITE', + 'RLIKE', + 'ROBUST', + 'ROLE', + 'ROLES', + 'ROLLBACK', + 'ROLLUP', + 'ROOT', + 'ROUTE', + 'ROW', + 'ROWCOUNT', + 'ROWGUIDCOL', + 'ROWLOCK', + 'ROWS', + 'ROWS_PER_BATCH', + 'ROWTERMINATOR', + 'ROWVERSION', + 'RSA_1024', + 'RSA_2048', + 'RSA_512', + 'RULE', + 'SAFE', + 'SAFETY', + 'SAMPLE', + 'SAVE', + 'SCHEDULER', + 'SCHEMA', + 'SCHEMAS', + 'SCHEMA_AND_DATA', + 'SCHEMA_ONLY', + 'SCHEMABINDING', + 'SCHEME', + 'SCROLL', + 'SCROLL_LOCKS', + 'SEARCH', + 'SECOND', + 'SECONDARY', + 'SECONDARY_ONLY', + 'SECONDARY_ROLE', + 'SECONDS', + 'SECRET', + 'SECURITY_LOG', + 'SECURITYAUDIT', + 'SELECT', + 'SELECTIVE', + 'SELF', + 'SEMI', + 'SEND', + 'SENT', + 'SEQUENCE', + 'SERDE', + 'SERDEPROPERTIES', + 'SERIALIZABLE', + 'SERVER', + 'SERVICE', + 'SERVICE_BROKER', + 'SERVICE_NAME', + 'SESSION', + 'SESSION_TIMEOUT', + 'SET', + 'SETS', + 'SETUSER', + 'SHARED', + 'SHOW', + 'SHOW_DATABASE', + 'SHOW_STATISTICS', + 'SHOWCONTIG', + 'SHOWPLAN', + 'SHOWPLAN_ALL', + 'SHOWPLAN_TEXT', + 'SHOWPLAN_XML', + 'SHRINKDATABASE', + 'SHRINKFILE', + 'SHUTDOWN', + 'SID', + 'SIGNATURE', + 'SIMPLE', + 'SINGLE_BLOB', + 'SINGLE_CLOB', + 'SINGLE_NCLOB', + 'SINGLE_USER', + 'SINGLETON', + 'SIZE', + 'SKEWED', + 'SKIP', + 'SMALLDATETIME', + 'SMALLINT', + 'SMALLMONEY', + 'SNAPSHOT', + 'SORT', + 'SORTED', + 'SORT_IN_TEMPDB', + 'SOURCE', + 'SPARSE', + 'SPATIAL', + 'SPATIAL_WINDOW_MAX_CELLS', + 'SPECIFICATION', + 'SPLIT', + 'SQL', + 'SQL_VARIANT', + 'SQLPERF', + 'SSL', + 'STANDBY', + 'START', + 'START_DATE', + 'STARTED', + 'STARTUP_STATE', + 'STAT_HEADER', + 'STATE', + 'STATEMENT', + 'STATIC', + 'STATISTICAL_SEMANTICS', + 'STATISTICS', + 'STATISTICS_INCREMENTAL', + 'STATISTICS_NORECOMPUTE', + 'STATS', + 'STATS_STREAM', + 'STATUS', + 'STATUSONLY', + 'STOP', + 'STOP_ON_ERROR', + 'STOPAT', + 'STOPATMARK', + 'STOPBEFOREMARK', + 'STOPLIST', + 'STOPPED', + 'STORED', + 'STREAMTABLE', + 'STRING', + 'STRUCT', + 'SUBJECT', + 'SUBSCRIPTION', + 'SUMMARY', + 'SUPPORTED', + 'SUSPEND', + 'SWITCH', + 'SYMMETRIC', + 'SYNCHRONOUS_COMMIT', + 'SYNONYM', + 'SYSNAME', + 'SYSTEM', + 'TABLE', + 'TABLES', + 'TABLERESULTS', + 'TABLESAMPLE', + 'TABLOCK', + 'TABLOCKX', + 'TAKE', + 'TAPE', + 'TARGET', + 'TARGET_RECOVERY_TIME', + 'TB', + 'TBLPROPERTIES', + 'TCP', + 'TEMPORARY', + 'TERMINATED', + 'TEXT', + 'TEXTIMAGE_ON', + 'TEXTSIZE', + 'THEN', + 'THESAURUS', + 'THROW', + 'TIES', + 'TIME', + 'TIMEOUT', + 'TIMER', + 'TIMESTAMP', + 'TIMESTAMPTZ', + 'TINYINT', + 'TO', + 'TOP', + 'TORN_PAGE_DETECTION', + 'TOUCH', + 'TRACEOFF', + 'TRACEON', + 'TRACESTATUS', + 'TRACK_CAUSALITY', + 'TRACK_COLUMNS_UPDATED', + 'TRAN', + 'TRANSACTION', + 'TRANSACTIONS', + 'TRANSFER', + 'TRANSFORM', + 'TRANSFORM_NOISE_WORDS', + 'TRIGGER', + 'TRIPLE_DES', + 'TRIPLE_DES_3KEY', + 'TRUE', + 'TRUNCATE', + 'TRUNCATEONLY', + 'TRUSTWORTHY', + 'TRY', + 'TSQL', + 'TWO_DIGIT_YEAR_CUTOFF', + 'TYPE', + 'TYPE_WARNING', + 'UNARCHIVE', + 'UNBOUNDED', + 'UNCHECKED', + 'UNCOMMITTED', + 'UNDEFINED', + 'UNDO', + 'UNSET', + 'UNSIGNED', + 'UNIONTYPE', + 'UNIQUE', + 'UNIQUEIDENTIFIER', + 'UNIQUEJOIN', + 'UNKNOWN', + 'UNLIMITED', + 'UNLOAD', + 'UNLOCK', + 'UNSAFE', + 'UPDATE', + 'UPDATETEXT', + 'UPDATEUSAGE', + 'UPDLOCK', + 'URI', + 'URL', + 'USE', + 'USED', + 'USER', + 'USEROPTIONS', + 'USING', + 'UTC', + 'UTC_TMESTAMP', + 'UTCTIMESTAMP', + 'VALID_XML', + 'VALIDATE', + 'VALIDATION', + 'VALUE', + 'VALUE_TYPE', + 'VALUES', + 'VARBINARY', + 'VARCHAR', + 'VARYING', + 'VECTORIZATION', + 'VERIFYONLY', + 'VERSION', + 'VIEW', + 'VIEW_METADATA', + 'VIEWS', + 'VISIBILITY', + 'WAIT_AT_LOW_PRIORITY', + 'WAITFOR', + 'WEEK', + 'WEEKS', + 'WEIGHT', + 'WELL_FORMED_XML', + 'WHEN', + 'WHERE', + 'WHILE', + 'WINDOW', + 'WINDOWS', + 'WITH', + 'WITHIN', + 'WITHOUT', + 'WITNESS', + 'WORK', + 'WORKLOAD', + 'WRITE', + 'WRITETEXT', + 'XACT_ABORT', + 'XLOCK', + 'XMAX', + 'XMIN', + 'XML', + 'XMLDATA', + 'XMLNAMESPACES', + 'XMLSCHEMA', + 'XQUERY', + 'XSINIL', + 'YEAR', + 'YEARS', + 'YMAX', + 'YMIN', + 'ZONE', + ], + operators: [ + // Logical + 'ALL', + 'AND', + 'ANY', + 'BETWEEN', + 'EXISTS', + 'IN', + 'LIKE', + 'NOT', + 'OR', + 'SOME', + // Set + 'EXCEPT', + 'INTERSECT', + 'UNION', + // Join + 'APPLY', + 'CROSS', + 'FULL', + 'INNER', + 'JOIN', + 'LEFT', + 'OUTER', + 'RIGHT', + // Predicates + 'CONTAINS', + 'FREETEXT', + 'IS', + 'NULL', + // Pivoting + 'PIVOT', + 'UNPIVOT', + // Merging + 'MATCHED', + ], + builtinFunctions: [ + // Aggregate + 'AVG', + 'CHECKSUM_AGG', + 'COUNT', + 'COUNT_BIG', + 'GROUPING', + 'GROUPING_ID', + 'MAX', + 'MIN', + 'SUM', + 'STDEV', + 'STDEVP', + 'VAR', + 'VARP', + // Analytic + 'CUME_DIST', + 'FIRST_VALUE', + 'LAG', + 'LAST_VALUE', + 'LEAD', + 'PERCENTILE_CONT', + 'PERCENTILE_DISC', + 'PERCENT_RANK', + // Collation + 'COLLATE', + 'COLLATIONPROPERTY', + 'TERTIARY_WEIGHTS', + // Azure + 'FEDERATION_FILTERING_VALUE', + // Conversion + 'CAST', + 'CONVERT', + 'PARSE', + 'TRY_CAST', + 'TRY_CONVERT', + 'TRY_PARSE', + // Cryptographic + 'ASYMKEY_ID', + 'ASYMKEYPROPERTY', + 'CERTPROPERTY', + 'CERT_ID', + 'CRYPT_GEN_RANDOM', + 'DECRYPTBYASYMKEY', + 'DECRYPTBYCERT', + 'DECRYPTBYKEY', + 'DECRYPTBYKEYAUTOASYMKEY', + 'DECRYPTBYKEYAUTOCERT', + 'DECRYPTBYPASSPHRASE', + 'ENCRYPTBYASYMKEY', + 'ENCRYPTBYCERT', + 'ENCRYPTBYKEY', + 'ENCRYPTBYPASSPHRASE', + 'HASHBYTES', + 'IS_OBJECTSIGNED', + 'KEY_GUID', + 'KEY_ID', + 'KEY_NAME', + 'SIGNBYASYMKEY', + 'SIGNBYCERT', + 'SYMKEYPROPERTY', + 'VERIFYSIGNEDBYCERT', + 'VERIFYSIGNEDBYASYMKEY', + // Cursor + 'CURSOR_STATUS', + // Datatype + 'DATALENGTH', + 'IDENT_CURRENT', + 'IDENT_INCR', + 'IDENT_SEED', + 'IDENTITY', + 'SQL_VARIANT_PROPERTY', + // Datetime + 'CURRENT_TIMESTAMP', + 'DATEADD', + 'DATEDIFF', + 'DATEFROMPARTS', + 'DATENAME', + 'DATEPART', + 'DATETIME2FROMPARTS', + 'DATETIMEFROMPARTS', + 'DATETIMEOFFSETFROMPARTS', + 'DAY', + 'EOMONTH', + 'GETDATE', + 'GETUTCDATE', + 'ISDATE', + 'MONTH', + 'SMALLDATETIMEFROMPARTS', + 'SWITCHOFFSET', + 'SYSDATETIME', + 'SYSDATETIMEOFFSET', + 'SYSUTCDATETIME', + 'TIMEFROMPARTS', + 'TODATETIMEOFFSET', + 'YEAR', + // Logical + 'CHOOSE', + 'COALESCE', + 'IIF', + 'NULLIF', + // Mathematical + 'ABS', + 'ACOS', + 'ASIN', + 'ATAN', + 'ATN2', + 'CEILING', + 'COS', + 'COT', + 'DEGREES', + 'EXP', + 'FLOOR', + 'LOG', + 'LOG10', + 'PI', + 'POWER', + 'RADIANS', + 'RAND', + 'ROUND', + 'SIGN', + 'SIN', + 'SQRT', + 'SQUARE', + 'TAN', + // Metadata + 'APP_NAME', + 'APPLOCK_MODE', + 'APPLOCK_TEST', + 'ASSEMBLYPROPERTY', + 'COL_LENGTH', + 'COL_NAME', + 'COLUMNPROPERTY', + 'DATABASE_PRINCIPAL_ID', + 'DATABASEPROPERTYEX', + 'DB_ID', + 'DB_NAME', + 'FILE_ID', + 'FILE_IDEX', + 'FILE_NAME', + 'FILEGROUP_ID', + 'FILEGROUP_NAME', + 'FILEGROUPPROPERTY', + 'FILEPROPERTY', + 'FULLTEXTCATALOGPROPERTY', + 'FULLTEXTSERVICEPROPERTY', + 'INDEX_COL', + 'INDEXKEY_PROPERTY', + 'INDEXPROPERTY', + 'OBJECT_DEFINITION', + 'OBJECT_ID', + 'OBJECT_NAME', + 'OBJECT_SCHEMA_NAME', + 'OBJECTPROPERTY', + 'OBJECTPROPERTYEX', + 'ORIGINAL_DB_NAME', + 'PARSENAME', + 'SCHEMA_ID', + 'SCHEMA_NAME', + 'SCOPE_IDENTITY', + 'SERVERPROPERTY', + 'STATS_DATE', + 'TYPE_ID', + 'TYPE_NAME', + 'TYPEPROPERTY', + // Ranking + 'DENSE_RANK', + 'NTILE', + 'RANK', + 'ROW_NUMBER', + // Replication + 'PUBLISHINGSERVERNAME', + // Rowset + 'OPENDATASOURCE', + 'OPENQUERY', + 'OPENROWSET', + 'OPENXML', + // Security + 'CERTENCODED', + 'CERTPRIVATEKEY', + 'CURRENT_USER', + 'HAS_DBACCESS', + 'HAS_PERMS_BY_NAME', + 'IS_MEMBER', + 'IS_ROLEMEMBER', + 'IS_SRVROLEMEMBER', + 'LOGINPROPERTY', + 'ORIGINAL_LOGIN', + 'PERMISSIONS', + 'PWDENCRYPT', + 'PWDCOMPARE', + 'SESSION_USER', + 'SESSIONPROPERTY', + 'SUSER_ID', + 'SUSER_NAME', + 'SUSER_SID', + 'SUSER_SNAME', + 'SYSTEM_USER', + 'USER', + 'USER_ID', + 'USER_NAME', + // String + 'ASCII', + 'CHAR', + 'CHARINDEX', + 'CONCAT', + 'DIFFERENCE', + 'FORMAT', + 'LEFT', + 'LEN', + 'LOWER', + 'LTRIM', + 'NCHAR', + 'PATINDEX', + 'QUOTENAME', + 'REPLACE', + 'REPLICATE', + 'REVERSE', + 'RIGHT', + 'RTRIM', + 'SOUNDEX', + 'SPACE', + 'STR', + 'STUFF', + 'SUBSTRING', + 'UNICODE', + 'UPPER', + // System + 'BINARY_CHECKSUM', + 'CHECKSUM', + 'CONNECTIONPROPERTY', + 'CONTEXT_INFO', + 'CURRENT_REQUEST_ID', + 'ERROR_LINE', + 'ERROR_NUMBER', + 'ERROR_MESSAGE', + 'ERROR_PROCEDURE', + 'ERROR_SEVERITY', + 'ERROR_STATE', + 'FORMATMESSAGE', + 'GETANSINULL', + 'GET_FILESTREAM_TRANSACTION_CONTEXT', + 'HOST_ID', + 'HOST_NAME', + 'ISNULL', + 'ISNUMERIC', + 'MIN_ACTIVE_ROWVERSION', + 'NEWID', + 'NEWSEQUENTIALID', + 'ROWCOUNT_BIG', + 'XACT_STATE', + // TextImage + 'TEXTPTR', + 'TEXTVALID', + // Trigger + 'COLUMNS_UPDATED', + 'EVENTDATA', + 'TRIGGER_NESTLEVEL', + 'UPDATE', + // ChangeTracking + 'CHANGETABLE', + 'CHANGE_TRACKING_CONTEXT', + 'CHANGE_TRACKING_CURRENT_VERSION', + 'CHANGE_TRACKING_IS_COLUMN_IN_MASK', + 'CHANGE_TRACKING_MIN_VALID_VERSION', + // FullTextSearch + 'CONTAINSTABLE', + 'FREETEXTTABLE', + // SemanticTextSearch + 'SEMANTICKEYPHRASETABLE', + 'SEMANTICSIMILARITYDETAILSTABLE', + 'SEMANTICSIMILARITYTABLE', + // FileStream + 'FILETABLEROOTPATH', + 'GETFILENAMESPACEPATH', + 'GETPATHLOCATOR', + 'PATHNAME', + // ServiceBroker + 'GET_TRANSMISSION_STATUS', + ], + builtinVariables: [ + // Configuration + '@@DATEFIRST', + '@@DBTS', + '@@LANGID', + '@@LANGUAGE', + '@@LOCK_TIMEOUT', + '@@MAX_CONNECTIONS', + '@@MAX_PRECISION', + '@@NESTLEVEL', + '@@OPTIONS', + '@@REMSERVER', + '@@SERVERNAME', + '@@SERVICENAME', + '@@SPID', + '@@TEXTSIZE', + '@@VERSION', + // Cursor + '@@CURSOR_ROWS', + '@@FETCH_STATUS', + // Datetime + '@@DATEFIRST', + // Metadata + '@@PROCID', + // System + '@@ERROR', + '@@IDENTITY', + '@@ROWCOUNT', + '@@TRANCOUNT', + // Stats + '@@CONNECTIONS', + '@@CPU_BUSY', + '@@IDLE', + '@@IO_BUSY', + '@@PACKET_ERRORS', + '@@PACK_RECEIVED', + '@@PACK_SENT', + '@@TIMETICKS', + '@@TOTAL_ERRORS', + '@@TOTAL_READ', + '@@TOTAL_WRITE', + ], + pseudoColumns: ['$ACTION', '$IDENTITY', '$ROWGUID', '$PARTITION'], + tokenizer: { + root: [ + { include: '@comments' }, + { include: '@whitespace' }, + { include: '@pseudoColumns' }, + { include: '@numbers' }, + { include: '@strings' }, + { include: '@complexIdentifiers' }, + { include: '@scopes' }, + [/[;,.]/, 'delimiter'], + [/[()]/, '@brackets'], + [ + /[\w@#$]+/, + { + cases: { + '@keywords': 'keyword', + '@operators': 'operator', + '@builtinVariables': 'predefined', + '@builtinFunctions': 'predefined', + '@default': 'identifier', + }, + }, + ], + [/[<>=!%&+\-*/|~^]/, 'operator'], + ], + whitespace: [[/\s+/, 'white']], + comments: [ + [/--+.*/, 'comment'], + [/\/\*/, { token: 'comment.quote', next: '@comment' }], + ], + comment: [ + [/[^*/]+/, 'comment'], + // Not supporting nested comments, as nested comments seem to not be standard? + // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic + // [/\/\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-( + [/\*\//, { token: 'comment.quote', next: '@pop' }], + [/./, 'comment'], + ], + pseudoColumns: [ + [ + /[$][A-Za-z_][\w@#$]*/, + { + cases: { + '@pseudoColumns': 'predefined', + '@default': 'identifier', + }, + }, + ], + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, 'number'], + [/[$][+-]*\d*(\.\d*)?/, 'number'], + [/((\d+(\.\d*)?)|(\.\d+))([eE][-+]?\d+)?/, 'number'], + ], + strings: [ + [/N'/, { token: 'string', next: '@string' }], + [/'/, { token: 'string', next: '@string' }], + ], + string: [ + [/[^']+/, 'string'], + [/''/, 'string'], + [/'/, { token: 'string', next: '@pop' }], + ], + complexIdentifiers: [ + [/\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }], + [/"/, { token: 'identifier.quote', next: '@quotedIdentifier' }], + ], + bracketedIdentifier: [ + [/[^\]]+/, 'identifier'], + [/]]/, 'identifier'], + [/]/, { token: 'identifier.quote', next: '@pop' }], + ], + quotedIdentifier: [ + [/[^"]+/, 'identifier'], + [/""/, 'identifier'], + [/"/, { token: 'identifier.quote', next: '@pop' }], + ], + scopes: [ + [/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i, 'keyword'], + [/BEGIN\s+TRY\b/i, { token: 'keyword.try' }], + [/END\s+TRY\b/i, { token: 'keyword.try' }], + [/BEGIN\s+CATCH\b/i, { token: 'keyword.catch' }], + [/END\s+CATCH\b/i, { token: 'keyword.catch' }], + [/(BEGIN|CASE)\b/i, { token: 'keyword.block' }], + [/END\b/i, { token: 'keyword.block' }], + [/WHEN\b/i, { token: 'keyword.choice' }], + [/THEN\b/i, { token: 'keyword.choice' }], + ], + }, +}; + +export default { + config: richLanguageConfiguration, + definition: langDefinition, + register(monaco) { + monaco.languages.register({ id: 'out' }); + monaco.languages.setLanguageConfiguration( + 'out', + richLanguageConfiguration, + ); + monaco.languages.setMonarchTokensProvider('out', langDefinition); + }, +}; diff --git a/linkis-web-next/src/components/editor/languages/sas.ts b/linkis-web-next/src/components/editor/languages/sas.ts new file mode 100644 index 00000000000..038f2ea95d8 --- /dev/null +++ b/linkis-web-next/src/components/editor/languages/sas.ts @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import hql from './hql.js'; +import sqlFormatter from '../sqlFormatter/sqlFormatter'; + +const sasDefinition = { + keywords: [ + '%DO', + '%UNTIL', + '%TO', + '%WHILE', + '%END', + '%GLOBAL', + '%GOTO', + '%IF', + '%THEN', + '%ELSE', + '%LABEL', + '%LET', + '%LOCAL', + '%MACRO', + '%MEND', + ], +}; + +export default { + register(monaco) { + // Inherit and merge hql related keywords(继承和合并hql相关的keyword) + const langDefinition = hql.definition; + langDefinition.keywords.concat(sasDefinition); + monaco.languages.register({ id: 'sas' }); + monaco.languages.setLanguageConfiguration('sas', hql.config); + monaco.languages.setMonarchTokensProvider('sas', langDefinition); + + // handle formatting(处理格式化) + monaco.languages.registerDocumentFormattingEditProvider('sas', { + provideDocumentFormattingEdits: function(model) { + let range = model.getFullModelRange(); + let value = model.getValue(); + let newValue = sqlFormatter.format(value); + return [ + { + range: range, + text: newValue, + }, + ]; + }, + }); + }, +}; diff --git a/linkis-web-next/src/components/editor/languages/sh.ts b/linkis-web-next/src/components/editor/languages/sh.ts new file mode 100644 index 00000000000..823c63c48b0 --- /dev/null +++ b/linkis-web-next/src/components/editor/languages/sh.ts @@ -0,0 +1,220 @@ +/* eslint-disable quotes */ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export const conf = { + comments: { + lineComment: '#', + }, + brackets: [ + ['{', '}'], + ['[', ']'], + ['(', ')'], + ], + autoClosingPairs: [ + { open: '{', close: '}' }, + { open: '[', close: ']' }, + { open: '(', close: ')' }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: '`', close: '`' }, + ], + surroundingPairs: [ + { open: '{', close: '}' }, + { open: '[', close: ']' }, + { open: '(', close: ')' }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: '`', close: '`' }, + ], +}; +export const language = { + defaultToken: '', + ignoreCase: true, + tokenPostfix: '.shell', + brackets: [ + { token: 'delimiter.bracket', open: '{', close: '}' }, + { token: 'delimiter.parenthesis', open: '(', close: ')' }, + { token: 'delimiter.square', open: '[', close: ']' }, + ], + keywords: [ + 'if', + 'then', + 'do', + 'else', + 'elif', + 'while', + 'until', + 'for', + 'in', + 'esac', + 'fi', + 'fin', + 'fil', + 'done', + 'exit', + 'set', + 'unset', + 'export', + 'function', + ], + builtins: [ + 'ab', + 'awk', + 'bash', + 'beep', + 'cat', + 'cc', + 'cd', + 'chown', + 'chmod', + 'chroot', + 'clear', + 'cp', + 'curl', + 'cut', + 'diff', + 'echo', + 'find', + 'gawk', + 'gcc', + 'get', + 'git', + 'grep', + 'hg', + 'kill', + 'killall', + 'ln', + 'ls', + 'make', + 'mkdir', + 'openssl', + 'mv', + 'nc', + 'node', + 'npm', + 'ping', + 'ps', + 'restart', + 'rm', + 'rmdir', + 'sed', + 'service', + 'sh', + 'shopt', + 'shred', + 'source', + 'sort', + 'sleep', + 'ssh', + 'start', + 'stop', + 'su', + 'sudo', + 'svn', + 'tee', + 'telnet', + 'top', + 'touch', + 'vi', + 'vim', + 'wall', + 'wc', + 'wget', + 'who', + 'write', + 'yes', + 'zsh', + ], + // we include these common regular expressions + symbols: /[=> { + return lang.id === 'hql'; +}); +if (!findLang) { + // Register languages(注册languages) + hql.register(monaco); + log.register(monaco); + sas.register(monaco); + sh.register(monaco); + out.register(monaco); + // register theme(注册theme) + defaultView.register(monaco); + logview.register(monaco); + + // (Register Keyword Prediction) + hqlKeyword.register(monaco); + pythonKeyword.register(monaco); + sasKeyword.register(monaco); + shKeyword.register(monaco); +} + +export default monaco; diff --git a/linkis-web-next/src/components/editor/sqlFormatter/core/Formatter.ts b/linkis-web-next/src/components/editor/sqlFormatter/core/Formatter.ts new file mode 100644 index 00000000000..56c79ae3d7e --- /dev/null +++ b/linkis-web-next/src/components/editor/sqlFormatter/core/Formatter.ts @@ -0,0 +1,348 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import trimEnd from 'lodash/trimEnd'; +import tokenTypes from './tokenTypes'; +import Indentation from './Indentation'; +import InlineBlock from './InlineBlock'; +import Params from './Params'; + +/** + * + */ +export default class Formatter { + /** + * @param {Object} cfg + * @param {Object} cfg.indent + * @param {Object} cfg.params + * @param {Tokenizer} tokenizer + */ + constructor(cfg, tokenizer) { + this.cfg = cfg || {}; + this.indentation = new Indentation(this.cfg.indent); + this.inlineBlock = new InlineBlock(); + this.params = new Params(this.cfg.params); + this.tokenizer = tokenizer; + this.previousReservedWord = {}; + this.tokens = []; + this.index = 0; + } + + /** + * Formats whitespaces in a SQL string to make it easier to read. + * + * @param {String} query The SQL query string + * @return {String} formatted query + */ + format(query) { + this.tokens = this.tokenizer.tokenize(query); + const formattedQuery = this.getFormattedQueryFromTokens(); + return formattedQuery.trim(); + } + + /** + * @return {*} + */ + getFormattedQueryFromTokens() { + let formattedQuery = ''; + this.tokens.forEach((token, index) => { + this.index = index; + if (token.type === tokenTypes.WHITESPACE) { + // ignore (we do our own whitespace formatting) + } else if (token.type === tokenTypes.LINE_COMMENT) { + formattedQuery = this.formatLineComment(token, formattedQuery); + } else if (token.type === tokenTypes.BLOCK_COMMENT) { + formattedQuery = this.formatBlockComment(token, formattedQuery); + } else if (token.type === tokenTypes.RESERVED_TOPLEVEL) { + formattedQuery = this.formatToplevelReservedWord( + token, + formattedQuery, + ); + this.previousReservedWord = token; + } else if (token.type === tokenTypes.RESERVED_NEWLINE) { + formattedQuery = this.formatNewlineReservedWord( + token, + formattedQuery, + ); + this.previousReservedWord = token; + } else if (token.type === tokenTypes.RESERVED) { + formattedQuery = this.formatWithSpaces(token, formattedQuery); + this.previousReservedWord = token; + } else if (token.type === tokenTypes.OPEN_PAREN) { + formattedQuery = this.formatOpeningParentheses( + token, + formattedQuery, + ); + } else if (token.type === tokenTypes.CLOSE_PAREN) { + formattedQuery = this.formatClosingParentheses( + token, + formattedQuery, + ); + } else if (token.type === tokenTypes.PLACEHOLDER) { + formattedQuery = this.formatPlaceholder(token, formattedQuery); + } else if (token.value === ',') { + formattedQuery = this.formatComma(token, formattedQuery); + } else if (token.value === ':') { + formattedQuery = this.formatWithSpaceAfter( + token, + formattedQuery, + ); + } else if (token.value === '.') { + formattedQuery = this.formatWithoutSpaces( + token, + formattedQuery, + ); + } else if (token.value === ';') { + formattedQuery = this.formatQuerySeparator( + token, + formattedQuery, + ); + } else if (token.value === '$') { + formattedQuery = formattedQuery + token.value; + } else { + formattedQuery = this.formatWithSpaces(token, formattedQuery); + } + }); + return formattedQuery; + } + + /** + * + * @param {*} token + * @param {*} query + * @return {*} + */ + formatLineComment(token, query) { + return this.addNewline(query + token.value); + } + + /** + * + * @param {*} token + * @param {*} query + * @return {*} + */ + formatBlockComment(token, query) { + return this.addNewline( + this.addNewline(query) + this.indentComment(token.value), + ); + } + + /** + * + * @param {*} comment + * @return {*} + */ + indentComment(comment) { + return comment.replace(/\n/g, '\n' + this.indentation.getIndent()); + } + + /** + * + * @param {*} token + * @param {*} query + * @return {*} + */ + formatToplevelReservedWord(token, query) { + this.indentation.decreaseTopLevel(); + + query = this.addNewline(query); + + this.indentation.increaseToplevel(); + + query += this.equalizeWhitespace(token.value); + return this.addNewline(query); + } + + /** + * + * @param {*} token + * @param {*} query + * @return {*} + */ + formatNewlineReservedWord(token, query) { + return ( + this.addNewline(query) + this.equalizeWhitespace(token.value) + ' ' + ); + } + + /** + * Replace any sequence of whitespace characters with single space + * @param {*} string + * @return {*} + */ + equalizeWhitespace(string) { + return string.replace(/\s+/g, ' '); + } + + /** + * Opening parentheses increase the block indent level and start a new line + * @param {*} token + * @param {*} query + * @return {*} + */ + formatOpeningParentheses(token, query) { + // Take out the preceding space unless there was whitespace there in the original query + // or another opening parens or line comment + const preserveWhitespaceFor = [ + tokenTypes.WHITESPACE, + tokenTypes.OPEN_PAREN, + tokenTypes.LINE_COMMENT, + ]; + if (!preserveWhitespaceFor.includes(this.previousToken().type)) { + query = trimEnd(query); + } + query += token.value; + + this.inlineBlock.beginIfPossible(this.tokens, this.index); + + if (!this.inlineBlock.isActive()) { + this.indentation.increaseBlockLevel(); + query = this.addNewline(query); + } + return query; + } + + /** + * Closing parentheses decrease the block indent level + * @param {*} token + * @param {*} query + * @return {*} + */ + formatClosingParentheses(token, query) { + if (this.inlineBlock.isActive()) { + this.inlineBlock.end(); + return this.formatWithSpaceAfter(token, query); + } else { + this.indentation.decreaseBlockLevel(); + return this.formatWithSpaces(token, this.addNewline(query)); + } + } + + /** + * + * @param {*} token + * @param {*} query + * @return {*} + */ + formatPlaceholder(token, query) { + return query + this.params.get(token) + ' '; + } + + /** + * Commas start a new line (unless within inline parentheses or SQL "LIMIT" clause) + * @param {*} token + * @param {*} query + * @return {*} + */ + formatComma(token, query) { + query = this.trimTrailingWhitespace(query) + token.value + ' '; + + if (this.inlineBlock.isActive()) { + return query; + } else if (/^LIMIT$/i.test(this.previousReservedWord.value)) { + return query; + } else { + return this.addNewline(query); + } + } + + /** + * + * @param {*} token + * @param {*} query + * @return {*} + */ + formatWithSpaceAfter(token, query) { + return this.trimTrailingWhitespace(query) + token.value + ' '; + } + + /** + * + * @param {*} token + * @param {*} query + * @return {*} + */ + formatWithoutSpaces(token, query) { + return this.trimTrailingWhitespace(query) + token.value; + } + + /** + * + * @param {*} token + * @param {*} query + * @return {*} + */ + formatWithSpaces(token, query) { + return query + token.value + ' '; + } + + /** + * + * @param {*} token + * @param {*} query + * @return {*} + */ + formatQuerySeparator(token, query) { + return this.trimTrailingWhitespace(query) + token.value + '\n'; + } + + /** + * + * @param {*} query + * @return {*} + */ + addNewline(query) { + return trimEnd(query) + '\n' + this.indentation.getIndent(); + } + + /** + * + * @param {*} query + * @return {*} + */ + trimTrailingWhitespace(query) { + if ( + this.previousNonWhitespaceToken().type === tokenTypes.LINE_COMMENT + ) { + return trimEnd(query) + '\n'; + } else { + return trimEnd(query); + } + } + + /** + * + * @return {*} + */ + previousNonWhitespaceToken() { + let n = 1; + while (this.previousToken(n).type === tokenTypes.WHITESPACE) { + n++; + } + return this.previousToken(n); + } + + /** + * + * @param {*} offset + * @return {*} + */ + previousToken(offset = 1) { + return this.tokens[this.index - offset] || {}; + } +} diff --git a/linkis-web-next/src/components/editor/sqlFormatter/core/Indentation.ts b/linkis-web-next/src/components/editor/sqlFormatter/core/Indentation.ts new file mode 100644 index 00000000000..974ad47fc90 --- /dev/null +++ b/linkis-web-next/src/components/editor/sqlFormatter/core/Indentation.ts @@ -0,0 +1,87 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import repeat from 'lodash/repeat'; +import last from 'lodash/last'; + +const INDENT_TYPE_TOP_LEVEL = 'top-level'; +const INDENT_TYPE_BLOCK_LEVEL = 'block-level'; + +/** + * Manages indentation levels. + * + * There are two types of indentation levels: + * + * - BLOCK_LEVEL : increased by open-parenthesis + * - TOP_LEVEL : increased by RESERVED_TOPLEVEL words + */ +export default class Indentation { + /** + * @param {String} indent Indent value, default is " " (2 spaces) + */ + constructor(indent) { + this.indent = indent || ' '; + this.indentTypes = []; + } + + /** + * Returns current indentation string. + * @return {String} + */ + getIndent() { + return repeat(this.indent, this.indentTypes.length); + } + + /** + * Increases indentation by one top-level indent. + */ + increaseToplevel() { + this.indentTypes.push(INDENT_TYPE_TOP_LEVEL); + } + + /** + * Increases indentation by one block-level indent. + */ + increaseBlockLevel() { + this.indentTypes.push(INDENT_TYPE_BLOCK_LEVEL); + } + + /** + * Decreases indentation by one top-level indent. + * Does nothing when the previous indent is not top-level. + */ + decreaseTopLevel() { + if (last(this.indentTypes) === INDENT_TYPE_TOP_LEVEL) { + this.indentTypes.pop(); + } + } + + /** + * Decreases indentation by one block-level indent. + * If there are top-level indents within the block-level indent, + * throws away these as well. + */ + decreaseBlockLevel() { + while (this.indentTypes.length > 0) { + const type = this.indentTypes.pop(); + if (type !== INDENT_TYPE_TOP_LEVEL) { + break; + } + } + } +} diff --git a/linkis-web-next/src/components/editor/sqlFormatter/core/InlineBlock.ts b/linkis-web-next/src/components/editor/sqlFormatter/core/InlineBlock.ts new file mode 100644 index 00000000000..f3d69550248 --- /dev/null +++ b/linkis-web-next/src/components/editor/sqlFormatter/core/InlineBlock.ts @@ -0,0 +1,120 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import tokenTypes from './tokenTypes'; + +const INLINE_MAX_LENGTH = 50; + +/** + * Bookkeeper for inline blocks. + * + * Inline blocks are parenthized expressions that are shorter than INLINE_MAX_LENGTH. + * These blocks are formatted on a single line, unlike longer parenthized + * expressions where open-parenthesis causes newline and increase of indentation. + */ +export default class InlineBlock { + /** + * + */ + constructor() { + this.level = 0; + } + + /** + * Begins inline block when lookahead through upcoming tokens determines + * that the block would be smaller than INLINE_MAX_LENGTH. + * @param {Object[]} tokens Array of all tokens + * @param {Number} index Current token position + */ + beginIfPossible(tokens, index) { + if (this.level === 0 && this.isInlineBlock(tokens, index)) { + this.level = 1; + } else if (this.level > 0) { + this.level++; + } else { + this.level = 0; + } + } + + /** + * Finishes current inline block. + * There might be several nested ones. + */ + end() { + this.level--; + } + + /** + * True when inside an inline block + * @return {Boolean} + */ + isActive() { + return this.level > 0; + } + + /** + * Check if this should be an inline parentheses block + * Examples are "NOW()", "COUNT(*)", "int(10)", key(`somecolumn`), DECIMAL(7,2) + * @param {*} tokens + * @param {*} index + * @return {*} + */ + isInlineBlock(tokens, index) { + let length = 0; + let level = 0; + + for (let i = index; i < tokens.length; i++) { + const token = tokens[i]; + length += token.value.length; + + // Overran max length + if (length > INLINE_MAX_LENGTH) { + return false; + } + + if (token.type === tokenTypes.OPEN_PAREN) { + level++; + } else if (token.type === tokenTypes.CLOSE_PAREN) { + level--; + if (level === 0) { + return true; + } + } + + if (this.isForbiddenToken(token)) { + return false; + } + } + return false; + } + + /** + * Reserved words that cause newlines, comments and semicolons + * are not allowed inside inline parentheses block + * @param {*} param0 + * @return {*} + */ + isForbiddenToken({ type, value }) { + return ( + type === tokenTypes.RESERVED_TOPLEVEL || + type === tokenTypes.RESERVED_NEWLINE || + type === tokenTypes.COMMENT || + type === tokenTypes.BLOCK_COMMENT || + value === ';' + ); + } +} diff --git a/linkis-web-next/src/components/editor/sqlFormatter/core/Params.ts b/linkis-web-next/src/components/editor/sqlFormatter/core/Params.ts new file mode 100644 index 00000000000..ca5b52ab7c8 --- /dev/null +++ b/linkis-web-next/src/components/editor/sqlFormatter/core/Params.ts @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/** + * Handles placeholder replacement with given params. + */ +export default class Params { + /** + * @param {Object} params + */ + constructor(params) { + this.params = params; + this.index = 0; + } + + /** + * Returns param value that matches given placeholder with param key. + * @param {Object} token + * @param {String} token.key Placeholder key + * @param {String} token.value Placeholder value + * @return {String} param or token.value when params are missing + */ + get({ key, value }) { + if (!this.params) { + return value; + } + if (key) { + return this.params[key]; + } + return this.params[this.index++]; + } +} diff --git a/linkis-web-next/src/components/editor/sqlFormatter/core/Tokenizer.ts b/linkis-web-next/src/components/editor/sqlFormatter/core/Tokenizer.ts new file mode 100644 index 00000000000..4658a2498d7 --- /dev/null +++ b/linkis-web-next/src/components/editor/sqlFormatter/core/Tokenizer.ts @@ -0,0 +1,508 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import isEmpty from 'lodash/isEmpty'; +import escapeRegExp from 'lodash/escapeRegExp'; +import tokenTypes from './tokenTypes'; + +/** + * + */ +export default class Tokenizer { + /** + * @param {Object} cfg + * @param {String[]} cfg.reservedWords Reserved words in SQL + * @param {String[]} cfg.reservedToplevelWords Words that are set to new line separately + * @param {String[]} cfg.reservedNewlineWords Words that are set to newline + * @param {String[]} cfg.stringTypes String types to enable: "", '', ``, [], N'' + * @param {String[]} cfg.openParens Opening parentheses to enable, like (, [ + * @param {String[]} cfg.closeParens Closing parentheses to enable, like ), ] + * @param {String[]} cfg.indexedPlaceholderTypes Prefixes for indexed placeholders, like ? + * @param {String[]} cfg.namedPlaceholderTypes Prefixes for named placeholders, like @ and : + * @param {String[]} cfg.lineCommentTypes Line comments to enable, like # and -- + * @param {String[]} cfg.specialWordChars Special chars that can be found inside of words, like @ and # + */ + constructor(cfg) { + this.WHITESPACE_REGEX = /^(\s+)/; + this.NUMBER_REGEX = /^((-\s*)?[0-9]+(\.[0-9]+)?|0x[0-9a-fA-F]+|0b[01]+)\b/; + this.OPERATOR_REGEX = /^(!=|<>|==|<=|>=|!<|!>|\|\||::|->>|->|~~\*|~~|!~~\*|!~~|~\*|!~\*|!~|.)/; + + this.BLOCK_COMMENT_REGEX = /^(\/\*[^]*?(?:\*\/|$))/; + this.PARAMS_REGEX = cfg.paramsPattern; + this.LINE_COMMENT_REGEX = this.createLineCommentRegex(cfg.lineCommentTypes); + + this.RESERVED_TOPLEVEL_REGEX = this.createReservedWordRegex(cfg.reservedToplevelWords); + this.RESERVED_NEWLINE_REGEX = this.createReservedWordRegex(cfg.reservedNewlineWords); + this.RESERVED_PLAIN_REGEX = this.createReservedWordRegex(cfg.reservedWords); + + this.WORD_REGEX = this.createWordRegex(cfg.specialWordChars); + this.STRING_REGEX = this.createStringRegex(cfg.stringTypes); + + this.OPEN_PAREN_REGEX = this.createParenRegex(cfg.openParens); + this.CLOSE_PAREN_REGEX = this.createParenRegex(cfg.closeParens); + + this.INDEXED_PLACEHOLDER_REGEX = this.createPlaceholderRegex(cfg.indexedPlaceholderTypes, '[0-9]*'); + this.IDENT_NAMED_PLACEHOLDER_REGEX = this.createPlaceholderRegex(cfg.namedPlaceholderTypes, '[a-zA-Z0-9._$]+'); + this.STRING_NAMED_PLACEHOLDER_REGEX = this.createPlaceholderRegex( + cfg.namedPlaceholderTypes, + this.createStringPattern(cfg.stringTypes) + ); + } + + /** + * + * @param {*} lineCommentTypes + * @return {*} + */ + createLineCommentRegex(lineCommentTypes) { + return new RegExp(`^((?:${lineCommentTypes.map((c) => escapeRegExp(c)).join('|')}).*?(?:\n|\r\n|$))`); + } + + /** + * + * @param {*} reservedWords + * @return {*} + */ + createReservedWordRegex(reservedWords) { + const reservedWordsPattern = reservedWords.join('|').replace(/ /g, '\\s+'); + return new RegExp(`^(${reservedWordsPattern})\\b`, 'i'); + } + + /** + * + * @param {*} specialChars + * @return {*} + */ + createWordRegex(specialChars = []) { + return new RegExp(`^([\\w${specialChars.join('')}]+)`); + } + + /** + * + * @param {*} stringTypes + * @return {*} + */ + createStringRegex(stringTypes) { + return new RegExp( + '^(' + this.createStringPattern(stringTypes) + ')' + ); + } + + /** + * This enables the following string patterns: + * 1.backtick quoted string using `` to escape + * 2.square bracket quoted string (SQL Server) using ]] to escape + * 3.double quoted string using "" or \" to escape + * 4.single quoted string using '' or \' to escape + * 5.national character quoted string using N'' or N\' to escape + * @param {*} stringTypes + * @return {*} + */ + createStringPattern(stringTypes) { + const patterns = { + '``': '((`[^`]*($|`))+)', + '[]': '((\\[[^\\]]*($|\\]))(\\][^\\]]*($|\\]))*)', + '""': '(("[^"\\\\]*(?:\\\\.[^"\\\\]*)*("|$))+)', + '\'\'': '((\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*(\'|$))+)', + 'N\'\'': '((N\'[^N\'\\\\]*(?:\\\\.[^N\'\\\\]*)*(\'|$))+)', + }; + + return stringTypes.map((t) => patterns[t]).join('|'); + } + + /** + * + * @param {*} parens + * @return {*} + */ + createParenRegex(parens) { + return new RegExp( + '^(' + parens.map((p) => this.escapeParen(p)).join('|') + ')', + 'i' + ); + } + + /** + * + * @param {*} paren + * @return {*} + */ + escapeParen(paren) { + if (paren.length === 1) { + // A single punctuation character + return escapeRegExp(paren); + } else { + // longer word + return '\\b' + paren + '\\b'; + } + } + + /** + * + * @param {*} types + * @param {*} pattern + * @return {*} + */ + createPlaceholderRegex(types, pattern) { + if (isEmpty(types)) { + return false; + } + const typesRegex = types.map(escapeRegExp).join('|'); + + return new RegExp(`^((?:${typesRegex})(?:${pattern}))`); + } + + /** + * Takes a SQL string and breaks it into tokens. + * Each token is an object with type and value. + * + * @param {String} input The SQL string + * @return {Object[]} tokens An array of tokens. + * @return {String} token.type + * @return {String} token.value + */ + tokenize(input) { + const tokens = []; + let token; + + // Keep processing the string until it is empty + while (input.length) { + // Get the next token and the token type + token = this.getNextToken(input, token); + // Advance the string + input = input.substring(token.value.length); + + tokens.push(token); + } + return tokens; + } + + /** + * + * @param {*} input + * @param {*} previousToken + * @return {*} + */ + getNextToken(input, previousToken) { + return this.getWhitespaceToken(input) || + this.getCommentToken(input) || + this.getStringToken(input) || + this.getOpenParenToken(input) || + this.getCloseParenToken(input) || + this.getParamsToken(input) || + this.getPlaceholderToken(input) || + this.getNumberToken(input) || + this.getReservedWordToken(input, previousToken) || + this.getWordToken(input) || + this.getOperatorToken(input); + } + + /** + * + * @param {*} input + * @return {*} + */ + getWhitespaceToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.WHITESPACE, + regex: this.WHITESPACE_REGEX, + }); + } + + /** + * + * @param {*} input + * @return {*} + */ + getCommentToken(input) { + return this.getLineCommentToken(input) || this.getBlockCommentToken(input); + } + + /** + * + * @param {*} input + * @return {*} + */ + getLineCommentToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.LINE_COMMENT, + regex: this.LINE_COMMENT_REGEX, + }); + } + + /** + * + * @param {*} input + * @return {*} + */ + getBlockCommentToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.BLOCK_COMMENT, + regex: this.BLOCK_COMMENT_REGEX, + }); + } + + /** + * + * @param {*} input + * @return {*} + */ + getStringToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.STRING, + regex: this.STRING_REGEX, + }); + } + + /** + * + * @param {*} input + * @return {*} + */ + getOpenParenToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.OPEN_PAREN, + regex: this.OPEN_PAREN_REGEX, + }); + } + + /** + * + * @param {*} input + * @return {*} + */ + getCloseParenToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.CLOSE_PAREN, + regex: this.CLOSE_PAREN_REGEX, + }); + } + + getParamsToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.WORD, + regex: this.PARAMS_REGEX, + }); + } + + /** + * + * @param {*} input + * @return {*} + */ + getPlaceholderToken(input) { + return this.getIdentNamedPlaceholderToken(input) || + this.getStringNamedPlaceholderToken(input) || + this.getIndexedPlaceholderToken(input); + } + + /** + * + * @param {*} input + * @return {*} + */ + getIdentNamedPlaceholderToken(input) { + return this.getPlaceholderTokenWithKey({ + input, + regex: this.IDENT_NAMED_PLACEHOLDER_REGEX, + parseKey: (v) => v.slice(1), + }); + } + + /** + * + * @param {*} input + * @return {*} + */ + getStringNamedPlaceholderToken(input) { + return this.getPlaceholderTokenWithKey({ + input, + regex: this.STRING_NAMED_PLACEHOLDER_REGEX, + parseKey: (v) => this.getEscapedPlaceholderKey({ + key: v.slice(2, -1), + quoteChar: v.slice(-1) + }), + }); + } + + /** + * + * @param {*} input + * @return {*} + */ + getIndexedPlaceholderToken(input) { + return this.getPlaceholderTokenWithKey({ + input, + regex: this.INDEXED_PLACEHOLDER_REGEX, + parseKey: (v) => v.slice(1), + }); + } + + /** + * + * @param {*} param0 + * @return {*} + */ + getPlaceholderTokenWithKey({ + input, + regex, + parseKey + }) { + const token = this.getTokenOnFirstMatch({ + input, + regex, + type: tokenTypes.PLACEHOLDER + }); + if (token) { + token.key = parseKey(token.value); + } + return token; + } + + /** + * + * @param {*} param0 + * @return {*} + */ + getEscapedPlaceholderKey({ + key, + quoteChar + }) { + return key.replace(new RegExp(escapeRegExp('\\') + quoteChar, 'g'), quoteChar); + } + + /** + * Decimal, binary, or hex numbers + * @param {*} input + * @return {*} + */ + getNumberToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.NUMBER, + regex: this.NUMBER_REGEX, + }); + } + + /** + * Punctuation and symbols + * @param {*} input + * @return {*} + */ + getOperatorToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.OPERATOR, + regex: this.OPERATOR_REGEX, + }); + } + + /** + * + * @param {*} input + * @param {*} previousToken + * @return {*} + */ + getReservedWordToken(input, previousToken) { + // A reserved word cannot be preceded by a "." + // this makes it so in "mytable.from", "from" is not considered a reserved word + if (previousToken && previousToken.value && previousToken.value === '.') { + return; + } + return this.getToplevelReservedToken(input) || this.getNewlineReservedToken(input) || this.getPlainReservedToken(input); + } + + /** + * + * @param {*} input + * @return {*} + */ + getToplevelReservedToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.RESERVED_TOPLEVEL, + regex: this.RESERVED_TOPLEVEL_REGEX, + }); + } + + /** + * + * @param {*} input + * @return {*} + */ + getNewlineReservedToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.RESERVED_NEWLINE, + regex: this.RESERVED_NEWLINE_REGEX, + }); + } + + /** + * + * @param {*} input + * @return {*} + */ + getPlainReservedToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.RESERVED, + regex: this.RESERVED_PLAIN_REGEX, + }); + } + + /** + * + * @param {*} input + * @return {*} + */ + getWordToken(input) { + return this.getTokenOnFirstMatch({ + input, + type: tokenTypes.WORD, + regex: this.WORD_REGEX, + }); + } + + /** + * + * @param {*} param0 + * @return {*} + */ + getTokenOnFirstMatch({ + input, + type, + regex + }) { + const matches = input.match(regex); + + if (matches) { + return { + type, + value: matches[1] + }; + } + } +} diff --git a/linkis-web-next/src/components/editor/sqlFormatter/core/tokenTypes.ts b/linkis-web-next/src/components/editor/sqlFormatter/core/tokenTypes.ts new file mode 100644 index 00000000000..d4ce6c4b815 --- /dev/null +++ b/linkis-web-next/src/components/editor/sqlFormatter/core/tokenTypes.ts @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/** + * Constants for token types + */ +export default { + WHITESPACE: 'whitespace', + WORD: 'word', + STRING: 'string', + RESERVED: 'reserved', + RESERVED_TOPLEVEL: 'reserved-toplevel', + RESERVED_NEWLINE: 'reserved-newline', + OPERATOR: 'operator', + OPEN_PAREN: 'open-paren', + CLOSE_PAREN: 'close-paren', + LINE_COMMENT: 'line-comment', + BLOCK_COMMENT: 'block-comment', + NUMBER: 'number', + PLACEHOLDER: 'placeholder', +}; diff --git a/linkis-web-next/src/components/editor/sqlFormatter/languages/Db2Formatter.ts b/linkis-web-next/src/components/editor/sqlFormatter/languages/Db2Formatter.ts new file mode 100644 index 00000000000..199647b905f --- /dev/null +++ b/linkis-web-next/src/components/editor/sqlFormatter/languages/Db2Formatter.ts @@ -0,0 +1,601 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Formatter from '../core/Formatter'; +import Tokenizer from '../core/Tokenizer'; + +const reservedWords = [ + 'ABS', + 'ACTIVATE', + 'ALIAS', + 'ALL', + 'ALLOCATE', + 'ALLOW', + 'ALTER', + 'ANY', + 'ARE', + 'ARRAY', + 'AS', + 'ASC', + 'ASENSITIVE', + 'ASSOCIATE', + 'ASUTIME', + 'ASYMMETRIC', + 'AT', + 'ATOMIC', + 'ATTRIBUTES', + 'AUDIT', + 'AUTHORIZATION', + 'AUX', + 'AUXILIARY', + 'AVG', + 'BEFORE', + 'BEGIN', + 'BETWEEN', + 'BIGINT', + 'BINARY', + 'BLOB', + 'BOOLEAN', + 'BOTH', + 'BUFFERPOOL', + 'BY', + 'CACHE', + 'CALL', + 'CALLED', + 'CAPTURE', + 'CARDINALITY', + 'CASCADED', + 'CASE', + 'CAST', + 'CCSID', + 'CEIL', + 'CEILING', + 'CHAR', + 'CHARACTER', + 'CHARACTER_LENGTH', + 'CHAR_LENGTH', + 'CHECK', + 'CLOB', + 'CLONE', + 'CLOSE', + 'CLUSTER', + 'COALESCE', + 'COLLATE', + 'COLLECT', + 'COLLECTION', + 'COLLID', + 'COLUMN', + 'COMMENT', + 'COMMIT', + 'CONCAT', + 'CONDITION', + 'CONNECT', + 'CONNECTION', + 'CONSTRAINT', + 'CONTAINS', + 'CONTINUE', + 'CONVERT', + 'CORR', + 'CORRESPONDING', + 'COUNT', + 'COUNT_BIG', + 'COVAR_POP', + 'COVAR_SAMP', + 'CREATE', + 'CROSS', + 'CUBE', + 'CUME_DIST', + 'CURRENT', + 'CURRENT_DATE', + 'CURRENT_DEFAULT_TRANSFORM_GROUP', + 'CURRENT_LC_CTYPE', + 'CURRENT_PATH', + 'CURRENT_ROLE', + 'CURRENT_SCHEMA', + 'CURRENT_SERVER', + 'CURRENT_TIME', + 'CURRENT_TIMESTAMP', + 'CURRENT_TIMEZONE', + 'CURRENT_TRANSFORM_GROUP_FOR_TYPE', + 'CURRENT_USER', + 'CURSOR', + 'CYCLE', + 'DATA', + 'DATABASE', + 'DATAPARTITIONNAME', + 'DATAPARTITIONNUM', + 'DATE', + 'DAY', + 'DAYS', + 'DB2GENERAL', + 'DB2GENRL', + 'DB2SQL', + 'DBINFO', + 'DBPARTITIONNAME', + 'DBPARTITIONNUM', + 'DEALLOCATE', + 'DEC', + 'DECIMAL', + 'DECLARE', + 'DEFAULT', + 'DEFAULTS', + 'DEFINITION', + 'DELETE', + 'DENSERANK', + 'DENSE_RANK', + 'DEREF', + 'DESCRIBE', + 'DESCRIPTOR', + 'DETERMINISTIC', + 'DIAGNOSTICS', + 'DISABLE', + 'DISALLOW', + 'DISCONNECT', + 'DISTINCT', + 'DO', + 'DOCUMENT', + 'DOUBLE', + 'DROP', + 'DSSIZE', + 'DYNAMIC', + 'EACH', + 'EDITPROC', + 'ELEMENT', + 'ELSE', + 'ELSEIF', + 'ENABLE', + 'ENCODING', + 'ENCRYPTION', + 'END', + 'END-EXEC', + 'ENDING', + 'ERASE', + 'ESCAPE', + 'EVERY', + 'EXCEPTION', + 'EXCLUDING', + 'EXCLUSIVE', + 'EXEC', + 'EXECUTE', + 'EXISTS', + 'EXIT', + 'EXP', + 'EXPLAIN', + 'EXTENDED', + 'EXTERNAL', + 'EXTRACT', + 'FALSE', + 'FENCED', + 'FETCH', + 'FIELDPROC', + 'FILE', + 'FILTER', + 'FINAL', + 'FIRST', + 'FLOAT', + 'FLOOR', + 'FOR', + 'FOREIGN', + 'FREE', + 'FULL', + 'FUNCTION', + 'FUSION', + 'GENERAL', + 'GENERATED', + 'GET', + 'GLOBAL', + 'GOTO', + 'GRANT', + 'GRAPHIC', + 'GROUP', + 'GROUPING', + 'HANDLER', + 'HASH', + 'HASHED_VALUE', + 'HINT', + 'HOLD', + 'HOUR', + 'HOURS', + 'IDENTITY', + 'IF', + 'IMMEDIATE', + 'IN', + 'INCLUDING', + 'INCLUSIVE', + 'INCREMENT', + 'INDEX', + 'INDICATOR', + 'INDICATORS', + 'INF', + 'INFINITY', + 'INHERIT', + 'INNER', + 'INOUT', + 'INSENSITIVE', + 'INSERT', + 'INT', + 'INTEGER', + 'INTEGRITY', + 'INTERSECTION', + 'INTERVAL', + 'INTO', + 'IS', + 'ISOBID', + 'ISOLATION', + 'ITERATE', + 'JAR', + 'JAVA', + 'KEEP', + 'KEY', + 'LABEL', + 'LANGUAGE', + 'LARGE', + 'LATERAL', + 'LC_CTYPE', + 'LEADING', + 'LEAVE', + 'LEFT', + 'LIKE', + 'LINKTYPE', + 'LN', + 'LOCAL', + 'LOCALDATE', + 'LOCALE', + 'LOCALTIME', + 'LOCALTIMESTAMP', + 'LOCATOR', + 'LOCATORS', + 'LOCK', + 'LOCKMAX', + 'LOCKSIZE', + 'LONG', + 'LOOP', + 'LOWER', + 'MAINTAINED', + 'MATCH', + 'MATERIALIZED', + 'MAX', + 'MAXVALUE', + 'MEMBER', + 'MERGE', + 'METHOD', + 'MICROSECOND', + 'MICROSECONDS', + 'MIN', + 'MINUTE', + 'MINUTES', + 'MINVALUE', + 'MOD', + 'MODE', + 'MODIFIES', + 'MODULE', + 'MONTH', + 'MONTHS', + 'MULTISET', + 'NAN', + 'NATIONAL', + 'NATURAL', + 'NCHAR', + 'NCLOB', + 'NEW', + 'NEW_TABLE', + 'NEXTVAL', + 'NO', + 'NOCACHE', + 'NOCYCLE', + 'NODENAME', + 'NODENUMBER', + 'NOMAXVALUE', + 'NOMINVALUE', + 'NONE', + 'NOORDER', + 'NORMALIZE', + 'NORMALIZED', + 'NOT', + 'NULL', + 'NULLIF', + 'NULLS', + 'NUMERIC', + 'NUMPARTS', + 'OBID', + 'OCTET_LENGTH', + 'OF', + 'OFFSET', + 'OLD', + 'OLD_TABLE', + 'ON', + 'ONLY', + 'OPEN', + 'OPTIMIZATION', + 'OPTIMIZE', + 'OPTION', + 'ORDER', + 'OUT', + 'OUTER', + 'OVER', + 'OVERLAPS', + 'OVERLAY', + 'OVERRIDING', + 'PACKAGE', + 'PADDED', + 'PAGESIZE', + 'PARAMETER', + 'PART', + 'PARTITION', + 'PARTITIONED', + 'PARTITIONING', + 'PARTITIONS', + 'PASSWORD', + 'PATH', + 'PERCENTILE_CONT', + 'PERCENTILE_DISC', + 'PERCENT_RANK', + 'PIECESIZE', + 'PLAN', + 'POSITION', + 'POWER', + 'PRECISION', + 'PREPARE', + 'PREVVAL', + 'PRIMARY', + 'PRIQTY', + 'PRIVILEGES', + 'PROCEDURE', + 'PROGRAM', + 'PSID', + 'PUBLIC', + 'QUERY', + 'QUERYNO', + 'RANGE', + 'RANK', + 'READ', + 'READS', + 'REAL', + 'RECOVERY', + 'RECURSIVE', + 'REF', + 'REFERENCES', + 'REFERENCING', + 'REFRESH', + 'REGR_AVGX', + 'REGR_AVGY', + 'REGR_COUNT', + 'REGR_INTERCEPT', + 'REGR_R2', + 'REGR_SLOPE', + 'REGR_SXX', + 'REGR_SXY', + 'REGR_SYY', + 'RELEASE', + 'RENAME', + 'REPEAT', + 'RESET', + 'RESIGNAL', + 'RESTART', + 'RESTRICT', + 'RESULT', + 'RESULT_SET_LOCATOR', + 'RETURN', + 'RETURNS', + 'REVOKE', + 'RIGHT', + 'ROLE', + 'ROLLBACK', + 'ROLLUP', + 'ROUND_CEILING', + 'ROUND_DOWN', + 'ROUND_FLOOR', + 'ROUND_HALF_DOWN', + 'ROUND_HALF_EVEN', + 'ROUND_HALF_UP', + 'ROUND_UP', + 'ROUTINE', + 'ROW', + 'ROWNUMBER', + 'ROWS', + 'ROWSET', + 'ROW_NUMBER', + 'RRN', + 'RUN', + 'SAVEPOINT', + 'SCHEMA', + 'SCOPE', + 'SCRATCHPAD', + 'SCROLL', + 'SEARCH', + 'SECOND', + 'SECONDS', + 'SECQTY', + 'SECURITY', + 'SENSITIVE', + 'SEQUENCE', + 'SESSION', + 'SESSION_USER', + 'SIGNAL', + 'SIMILAR', + 'SIMPLE', + 'SMALLINT', + 'SNAN', + 'SOME', + 'SOURCE', + 'SPECIFIC', + 'SPECIFICTYPE', + 'SQL', + 'SQLEXCEPTION', + 'SQLID', + 'SQLSTATE', + 'SQLWARNING', + 'SQRT', + 'STACKED', + 'STANDARD', + 'START', + 'STARTING', + 'STATEMENT', + 'STATIC', + 'STATMENT', + 'STAY', + 'STDDEV_POP', + 'STDDEV_SAMP', + 'STOGROUP', + 'STORES', + 'STYLE', + 'SUBMULTISET', + 'SUBSTRING', + 'SUM', + 'SUMMARY', + 'SYMMETRIC', + 'SYNONYM', + 'SYSFUN', + 'SYSIBM', + 'SYSPROC', + 'SYSTEM', + 'SYSTEM_USER', + 'TABLE', + 'TABLESAMPLE', + 'TABLESPACE', + 'THEN', + 'TIME', + 'TIMESTAMP', + 'TIMEZONE_HOUR', + 'TIMEZONE_MINUTE', + 'TO', + 'TRAILING', + 'TRANSACTION', + 'TRANSLATE', + 'TRANSLATION', + 'TREAT', + 'TRIGGER', + 'TRIM', + 'TRUE', + 'TRUNCATE', + 'TYPE', + 'UESCAPE', + 'UNDO', + 'UNIQUE', + 'UNKNOWN', + 'UNNEST', + 'UNTIL', + 'UPPER', + 'USAGE', + 'USER', + 'USING', + 'VALIDPROC', + 'VALUE', + 'VARCHAR', + 'VARIABLE', + 'VARIANT', + 'VARYING', + 'VAR_POP', + 'VAR_SAMP', + 'VCAT', + 'VERSION', + 'VIEW', + 'VOLATILE', + 'VOLUMES', + 'WHEN', + 'WHENEVER', + 'WHILE', + 'WIDTH_BUCKET', + 'WINDOW', + 'WITH', + 'WITHIN', + 'WITHOUT', + 'WLM', + 'WRITE', + 'XMLELEMENT', + 'XMLEXISTS', + 'XMLNAMESPACES', + 'YEAR', + 'YEARS', +]; + +const reservedToplevelWords = [ + 'ADD', + 'AFTER', + 'ALTER COLUMN', + 'ALTER TABLE', + 'DELETE FROM', + 'EXCEPT', + 'FETCH FIRST', + 'FROM', + 'GROUP BY', + 'GO', + 'HAVING', + 'INSERT INTO', + 'INTERSECT', + 'LIMIT', + 'ORDER BY', + 'SELECT', + 'SET CURRENT SCHEMA', + 'SET SCHEMA', + 'SET', + 'UNION ALL', + 'UPDATE', + 'VALUES', + 'WHERE', +]; + +const reservedNewlineWords = [ + 'AND', + 'CROSS JOIN', + 'INNER JOIN', + 'JOIN', + 'LEFT JOIN', + 'LEFT OUTER JOIN', + 'OR', + 'OUTER JOIN', + 'RIGHT JOIN', + 'RIGHT OUTER JOIN', +]; + +let tokenizer: Tokenizer; + +/** + * + */ +export default class Db2Formatter { + /** + * @param {Object} cfg Different set of configurations + */ + constructor(cfg: any) { + this.cfg = cfg; + } + + /** + * Formats DB2 query to make it easier to read + * + * @param {String} query The DB2 query string + * @return {String} formatted string + */ + format(query: any) { + if (!tokenizer) { + tokenizer = new Tokenizer({ + reservedWords, + reservedToplevelWords, + reservedNewlineWords, + stringTypes: [`""`, "''", '``', '[]'], + openParens: ['('], + closeParens: [')'], + indexedPlaceholderTypes: ['?'], + namedPlaceholderTypes: [':'], + lineCommentTypes: ['--'], + specialWordChars: ['#', '@'], + }); + } + return new Formatter(this.cfg, tokenizer).format(query); + } +} diff --git a/linkis-web-next/src/components/editor/sqlFormatter/languages/N1qlFormatter.ts b/linkis-web-next/src/components/editor/sqlFormatter/languages/N1qlFormatter.ts new file mode 100644 index 00000000000..4b926779b81 --- /dev/null +++ b/linkis-web-next/src/components/editor/sqlFormatter/languages/N1qlFormatter.ts @@ -0,0 +1,276 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Formatter from '../core/Formatter'; +import Tokenizer from '../core/Tokenizer'; + +const reservedWords = [ + 'ALL', + 'ALTER', + 'ANALYZE', + 'AND', + 'ANY', + 'ARRAY', + 'AS', + 'ASC', + 'BEGIN', + 'BETWEEN', + 'BINARY', + 'BOOLEAN', + 'BREAK', + 'BUCKET', + 'BUILD', + 'BY', + 'CALL', + 'CASE', + 'CAST', + 'CLUSTER', + 'COLLATE', + 'COLLECTION', + 'COMMIT', + 'CONNECT', + 'CONTINUE', + 'CORRELATE', + 'COVER', + 'CREATE', + 'DATABASE', + 'DATASET', + 'DATASTORE', + 'DECLARE', + 'DECREMENT', + 'DELETE', + 'DERIVED', + 'DESC', + 'DESCRIBE', + 'DISTINCT', + 'DO', + 'DROP', + 'EACH', + 'ELEMENT', + 'ELSE', + 'END', + 'EVERY', + 'EXCEPT', + 'EXCLUDE', + 'EXECUTE', + 'EXISTS', + 'EXPLAIN', + 'FALSE', + 'FETCH', + 'FIRST', + 'FLATTEN', + 'FOR', + 'FORCE', + 'FROM', + 'FUNCTION', + 'GRANT', + 'GROUP', + 'GSI', + 'HAVING', + 'IF', + 'IGNORE', + 'ILIKE', + 'IN', + 'INCLUDE', + 'INCREMENT', + 'INDEX', + 'INFER', + 'INLINE', + 'INNER', + 'INSERT', + 'INTERSECT', + 'INTO', + 'IS', + 'JOIN', + 'KEY', + 'KEYS', + 'KEYSPACE', + 'KNOWN', + 'LAST', + 'LEFT', + 'LET', + 'LETTING', + 'LIKE', + 'LIMIT', + 'LSM', + 'MAP', + 'MAPPING', + 'MATCHED', + 'MATERIALIZED', + 'MERGE', + 'MINUS', + 'MISSING', + 'NAMESPACE', + 'NEST', + 'NOT', + 'NULL', + 'NUMBER', + 'OBJECT', + 'OFFSET', + 'ON', + 'OPTION', + 'OR', + 'ORDER', + 'OUTER', + 'OVER', + 'PARSE', + 'PARTITION', + 'PASSWORD', + 'PATH', + 'POOL', + 'PREPARE', + 'PRIMARY', + 'PRIVATE', + 'PRIVILEGE', + 'PROCEDURE', + 'PUBLIC', + 'RAW', + 'REALM', + 'REDUCE', + 'RENAME', + 'RETURN', + 'RETURNING', + 'REVOKE', + 'RIGHT', + 'ROLE', + 'ROLLBACK', + 'SATISFIES', + 'SCHEMA', + 'SELECT', + 'SELF', + 'SEMI', + 'SET', + 'SHOW', + 'SOME', + 'START', + 'STATISTICS', + 'STRING', + 'SYSTEM', + 'THEN', + 'TO', + 'TRANSACTION', + 'TRIGGER', + 'TRUE', + 'TRUNCATE', + 'UNDER', + 'UNION', + 'UNIQUE', + 'UNKNOWN', + 'UNNEST', + 'UNSET', + 'UPDATE', + 'UPSERT', + 'USE', + 'USER', + 'USING', + 'VALIDATE', + 'VALUE', + 'VALUED', + 'VALUES', + 'VIA', + 'VIEW', + 'WHEN', + 'WHERE', + 'WHILE', + 'WITH', + 'WITHIN', + 'WORK', + 'XOR', +]; + +const reservedToplevelWords = [ + 'DELETE FROM', + 'EXCEPT ALL', + 'EXCEPT', + 'EXPLAIN DELETE FROM', + 'EXPLAIN UPDATE', + 'EXPLAIN UPSERT', + 'FROM', + 'GROUP BY', + 'HAVING', + 'INFER', + 'INSERT INTO', + 'INTERSECT ALL', + 'INTERSECT', + 'LET', + 'LIMIT', + 'MERGE', + 'NEST', + 'ORDER BY', + 'PREPARE', + 'SELECT', + 'SET CURRENT SCHEMA', + 'SET SCHEMA', + 'SET', + 'UNION ALL', + 'UNION', + 'UNNEST', + 'UPDATE', + 'UPSERT', + 'USE KEYS', + 'VALUES', + 'WHERE', +]; + +const reservedNewlineWords = [ + 'AND', + 'INNER JOIN', + 'JOIN', + 'LEFT JOIN', + 'LEFT OUTER JOIN', + 'OR', + 'OUTER JOIN', + 'RIGHT JOIN', + 'RIGHT OUTER JOIN', + 'XOR', +]; + +let tokenizer; + +/** + * + */ +export default class N1qlFormatter { + /** + * @param {Object} cfg Different set of configurations + */ + constructor(cfg) { + this.cfg = cfg; + } + + /** + * Format the whitespace in a N1QL string to make it easier to read + * + * @param {String} query The N1QL string + * @return {String} formatted string + */ + format(query) { + if (!tokenizer) { + tokenizer = new Tokenizer({ + reservedWords, + reservedToplevelWords, + reservedNewlineWords, + stringTypes: [`""`, "''", '``'], + openParens: ['(', '[', '{'], + closeParens: [')', ']', '}'], + namedPlaceholderTypes: ['$'], + lineCommentTypes: ['#', '--'], + }); + } + return new Formatter(this.cfg, tokenizer).format(query); + } +} diff --git a/linkis-web-next/src/components/editor/sqlFormatter/languages/PlSqlFormatter.ts b/linkis-web-next/src/components/editor/sqlFormatter/languages/PlSqlFormatter.ts new file mode 100644 index 00000000000..5f44d6c6983 --- /dev/null +++ b/linkis-web-next/src/components/editor/sqlFormatter/languages/PlSqlFormatter.ts @@ -0,0 +1,463 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Formatter from '../core/Formatter'; +import Tokenizer from '../core/Tokenizer'; + +const reservedWords = [ + 'A', + 'ACCESSIBLE', + 'AGENT', + 'AGGREGATE', + 'ALL', + 'ALTER', + 'ANY', + 'ARRAY', + 'AS', + 'ASC', + 'AT', + 'ATTRIBUTE', + 'AUTHID', + 'AVG', + 'BETWEEN', + 'BFILE_BASE', + 'BINARY_INTEGER', + 'BINARY', + 'BLOB_BASE', + 'BLOCK', + 'BODY', + 'BOOLEAN', + 'BOTH', + 'BOUND', + 'BULK', + 'BY', + 'BYTE', + 'C', + 'CALL', + 'CALLING', + 'CASCADE', + 'CASE', + 'CHAR_BASE', + 'CHAR', + 'CHARACTER', + 'CHARSET', + 'CHARSETFORM', + 'CHARSETID', + 'CHECK', + 'CLOB_BASE', + 'CLONE', + 'CLOSE', + 'CLUSTER', + 'CLUSTERS', + 'COALESCE', + 'COLAUTH', + 'COLLECT', + 'COLUMNS', + 'COMMENT', + 'COMMIT', + 'COMMITTED', + 'COMPILED', + 'COMPRESS', + 'CONNECT', + 'CONSTANT', + 'CONSTRUCTOR', + 'CONTEXT', + 'CONTINUE', + 'CONVERT', + 'COUNT', + 'CRASH', + 'CREATE', + 'CREDENTIAL', + 'CURRENT', + 'CURRVAL', + 'CURSOR', + 'CUSTOMDATUM', + 'DANGLING', + 'DATA', + 'DATE_BASE', + 'DATE', + 'DAY', + 'DECIMAL', + 'DEFAULT', + 'DEFINE', + 'DELETE', + 'DESC', + 'DETERMINISTIC', + 'DIRECTORY', + 'DISTINCT', + 'DO', + 'DOUBLE', + 'DROP', + 'DURATION', + 'ELEMENT', + 'ELSIF', + 'EMPTY', + 'ESCAPE', + 'EXCEPTIONS', + 'EXCLUSIVE', + 'EXECUTE', + 'EXISTS', + 'EXIT', + 'EXTENDS', + 'EXTERNAL', + 'EXTRACT', + 'FALSE', + 'FETCH', + 'FINAL', + 'FIRST', + 'FIXED', + 'FLOAT', + 'FOR', + 'FORALL', + 'FORCE', + 'FROM', + 'FUNCTION', + 'GENERAL', + 'GOTO', + 'GRANT', + 'GROUP', + 'HASH', + 'HEAP', + 'HIDDEN', + 'HOUR', + 'IDENTIFIED', + 'IF', + 'IMMEDIATE', + 'IN', + 'INCLUDING', + 'INDEX', + 'INDEXES', + 'INDICATOR', + 'INDICES', + 'INFINITE', + 'INSTANTIABLE', + 'INT', + 'INTEGER', + 'INTERFACE', + 'INTERVAL', + 'INTO', + 'INVALIDATE', + 'IS', + 'ISOLATION', + 'JAVA', + 'LANGUAGE', + 'LARGE', + 'LEADING', + 'LENGTH', + 'LEVEL', + 'LIBRARY', + 'LIKE', + 'LIKE2', + 'LIKE4', + 'LIKEC', + 'LIMITED', + 'LOCAL', + 'LOCK', + 'LONG', + 'MAP', + 'MAX', + 'MAXLEN', + 'MEMBER', + 'MERGE', + 'MIN', + 'MINUS', + 'MINUTE', + 'MLSLABEL', + 'MOD', + 'MODE', + 'MONTH', + 'MULTISET', + 'NAME', + 'NAN', + 'NATIONAL', + 'NATIVE', + 'NATURAL', + 'NATURALN', + 'NCHAR', + 'NEW', + 'NEXTVAL', + 'NOCOMPRESS', + 'NOCOPY', + 'NOT', + 'NOWAIT', + 'NULL', + 'NULLIF', + 'NUMBER_BASE', + 'NUMBER', + 'OBJECT', + 'OCICOLL', + 'OCIDATE', + 'OCIDATETIME', + 'OCIDURATION', + 'OCIINTERVAL', + 'OCILOBLOCATOR', + 'OCINUMBER', + 'OCIRAW', + 'OCIREF', + 'OCIREFCURSOR', + 'OCIROWID', + 'OCISTRING', + 'OCITYPE', + 'OF', + 'OLD', + 'ON', + 'ONLY', + 'OPAQUE', + 'OPEN', + 'OPERATOR', + 'OPTION', + 'ORACLE', + 'ORADATA', + 'ORDER', + 'ORGANIZATION', + 'ORLANY', + 'ORLVARY', + 'OTHERS', + 'OUT', + 'OVERLAPS', + 'OVERRIDING', + 'PACKAGE', + 'PARALLEL_ENABLE', + 'PARAMETER', + 'PARAMETERS', + 'PARENT', + 'PARTITION', + 'PASCAL', + 'PCTFREE', + 'PIPE', + 'PIPELINED', + 'PLS_INTEGER', + 'PLUGGABLE', + 'POSITIVE', + 'POSITIVEN', + 'PRAGMA', + 'PRECISION', + 'PRIOR', + 'PRIVATE', + 'PROCEDURE', + 'PUBLIC', + 'RAISE', + 'RANGE', + 'RAW', + 'READ', + 'REAL', + 'RECORD', + 'REF', + 'REFERENCE', + 'RELEASE', + 'RELIES_ON', + 'REM', + 'REMAINDER', + 'RENAME', + 'RESOURCE', + 'RESULT_CACHE', + 'RESULT', + 'RETURN', + 'RETURNING', + 'REVERSE', + 'REVOKE', + 'ROLLBACK', + 'ROW', + 'ROWID', + 'ROWNUM', + 'ROWTYPE', + 'SAMPLE', + 'SAVE', + 'SAVEPOINT', + 'SB1', + 'SB2', + 'SB4', + 'SECOND', + 'SEGMENT', + 'SELF', + 'SEPARATE', + 'SEQUENCE', + 'SERIALIZABLE', + 'SHARE', + 'SHORT', + 'SIZE_T', + 'SIZE', + 'SMALLINT', + 'SOME', + 'SPACE', + 'SPARSE', + 'SQL', + 'SQLCODE', + 'SQLDATA', + 'SQLERRM', + 'SQLNAME', + 'SQLSTATE', + 'STANDARD', + 'START', + 'STATIC', + 'STDDEV', + 'STORED', + 'STRING', + 'STRUCT', + 'STYLE', + 'SUBMULTISET', + 'SUBPARTITION', + 'SUBSTITUTABLE', + 'SUBTYPE', + 'SUCCESSFUL', + 'SUM', + 'SYNONYM', + 'SYSDATE', + 'TABAUTH', + 'TABLE', + 'TDO', + 'THE', + 'THEN', + 'TIME', + 'TIMESTAMP', + 'TIMEZONE_ABBR', + 'TIMEZONE_HOUR', + 'TIMEZONE_MINUTE', + 'TIMEZONE_REGION', + 'TO', + 'TRAILING', + 'TRANSACTION', + 'TRANSACTIONAL', + 'TRIGGER', + 'TRUE', + 'TRUSTED', + 'TYPE', + 'UB1', + 'UB2', + 'UB4', + 'UID', + 'UNDER', + 'UNIQUE', + 'UNPLUG', + 'UNSIGNED', + 'UNTRUSTED', + 'USE', + 'USER', + 'USING', + 'VALIDATE', + 'VALIST', + 'VALUE', + 'VARCHAR', + 'VARCHAR2', + 'VARIABLE', + 'VARIANCE', + 'VARRAY', + 'VARYING', + 'VIEW', + 'VIEWS', + 'VOID', + 'WHENEVER', + 'WHILE', + 'WITH', + 'WORK', + 'WRAPPED', + 'WRITE', + 'YEAR', + 'ZONE', +]; + +const reservedToplevelWords = [ + 'ADD', + 'ALTER COLUMN', + 'ALTER TABLE', + 'BEGIN', + 'CONNECT BY', + 'DECLARE', + 'DELETE FROM', + 'DELETE', + 'END', + 'EXCEPT', + 'EXCEPTION', + 'FETCH FIRST', + 'FROM', + 'GROUP BY', + 'HAVING', + 'INSERT INTO', + 'INSERT', + 'INTERSECT', + 'LIMIT', + 'LOOP', + 'MODIFY', + 'ORDER BY', + 'SELECT', + 'SET CURRENT SCHEMA', + 'SET SCHEMA', + 'SET', + 'START WITH', + 'UNION ALL', + 'UNION', + 'UPDATE', + 'VALUES', + 'WHERE', +]; + +const reservedNewlineWords = [ + 'AND', + 'CROSS APPLY', + 'CROSS JOIN', + 'ELSE', + 'END', + 'INNER JOIN', + 'JOIN', + 'LEFT JOIN', + 'LEFT OUTER JOIN', + 'OR', + 'OUTER APPLY', + 'OUTER JOIN', + 'RIGHT JOIN', + 'RIGHT OUTER JOIN', + 'WHEN', + 'XOR', +]; + +let tokenizer; + +/** + * + */ +export default class PlSqlFormatter { + /** + * @param {Object} cfg Different set of configurations + */ + constructor(cfg) { + this.cfg = cfg; + } + + /** + * Format the whitespace in a PL/SQL string to make it easier to read + * + * @param {String} query The PL/SQL string + * @return {String} formatted string + */ + format(query) { + if (!tokenizer) { + tokenizer = new Tokenizer({ + reservedWords, + reservedToplevelWords, + reservedNewlineWords, + stringTypes: [`""`, "N''", "''", '``'], + openParens: ['(', 'CASE'], + closeParens: [')', 'END'], + indexedPlaceholderTypes: ['?'], + namedPlaceholderTypes: [':'], + lineCommentTypes: ['--'], + specialWordChars: ['_', '$', '#', '.', '@'], + }); + } + return new Formatter(this.cfg, tokenizer).format(query); + } +} diff --git a/linkis-web-next/src/components/editor/sqlFormatter/languages/StandardSqlFormatter.ts b/linkis-web-next/src/components/editor/sqlFormatter/languages/StandardSqlFormatter.ts new file mode 100644 index 00000000000..2c8629da430 --- /dev/null +++ b/linkis-web-next/src/components/editor/sqlFormatter/languages/StandardSqlFormatter.ts @@ -0,0 +1,379 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Formatter from '../core/Formatter'; +import Tokenizer from '../core/Tokenizer'; + +const reservedWords = [ + 'ACCESSIBLE', + 'ACTION', + 'AGAINST', + 'AGGREGATE', + 'ALGORITHM', + 'ALL', + 'ALTER', + 'ANALYSE', + 'ANALYZE', + 'AS', + 'ASC', + 'AUTOCOMMIT', + 'AUTO_INCREMENT', + 'BACKUP', + 'BEGIN', + 'BETWEEN', + 'BINLOG', + 'BOTH', + 'CASCADE', + 'CASE', + 'CHANGE', + 'CHANGED', + 'CHARACTER SET', + 'CHARSET', + 'CHECK', + 'CHECKSUM', + 'COLLATE', + 'COLLATION', + 'COLUMN', + 'COLUMNS', + 'COMMENT', + 'COMMIT', + 'COMMITTED', + 'COMPRESSED', + 'CONCURRENT', + 'CONSTRAINT', + 'CONTAINS', + 'CONVERT', + 'CREATE', + 'CROSS', + 'CURRENT_TIMESTAMP', + 'DATABASE', + 'DATABASES', + 'DAY', + 'DAY_HOUR', + 'DAY_MINUTE', + 'DAY_SECOND', + 'DEFAULT', + 'DEFINER', + 'DELAYED', + 'DELETE', + 'DESC', + 'DESCRIBE', + 'DETERMINISTIC', + 'DISTINCT', + 'DISTINCTROW', + 'DIV', + 'DO', + 'DROP', + 'DUMPFILE', + 'DUPLICATE', + 'DYNAMIC', + 'ELSE', + 'ENCLOSED', + 'END', + 'ENGINE', + 'ENGINES', + 'ENGINE_TYPE', + 'ESCAPE', + 'ESCAPED', + 'EVENTS', + 'EXEC', + 'EXECUTE', + 'EXISTS', + 'EXPLAIN', + 'EXTENDED', + 'FAST', + 'FETCH', + 'FIELDS', + 'FILE', + 'FIRST', + 'FIXED', + 'FLUSH', + 'FOR', + 'FORCE', + 'FOREIGN', + 'FULL', + 'FULLTEXT', + 'FUNCTION', + 'GLOBAL', + 'GRANT', + 'GRANTS', + 'GROUP_CONCAT', + 'HEAP', + 'HIGH_PRIORITY', + 'HOSTS', + 'HOUR', + 'HOUR_MINUTE', + 'HOUR_SECOND', + 'IDENTIFIED', + 'IF', + 'IFNULL', + 'IGNORE', + 'IN', + 'INDEX', + 'INDEXES', + 'INFILE', + 'INSERT', + 'INSERT_ID', + 'INSERT_METHOD', + 'INTERVAL', + 'INTO', + 'INVOKER', + 'IS', + 'ISOLATION', + 'KEY', + 'KEYS', + 'KILL', + 'LAST_INSERT_ID', + 'LEADING', + 'LEVEL', + 'LIKE', + 'LINEAR', + 'LINES', + 'LOAD', + 'LOCAL', + 'LOCK', + 'LOCKS', + 'LOGS', + 'LOW_PRIORITY', + 'MARIA', + 'MASTER', + 'MASTER_CONNECT_RETRY', + 'MASTER_HOST', + 'MASTER_LOG_FILE', + 'MATCH', + 'MAX_CONNECTIONS_PER_HOUR', + 'MAX_QUERIES_PER_HOUR', + 'MAX_ROWS', + 'MAX_UPDATES_PER_HOUR', + 'MAX_USER_CONNECTIONS', + 'MEDIUM', + 'MERGE', + 'MINUTE', + 'MINUTE_SECOND', + 'MIN_ROWS', + 'MODE', + 'MODIFY', + 'MONTH', + 'MRG_MYISAM', + 'MYISAM', + 'NAMES', + 'NATURAL', + 'NOT', + 'NOW()', + 'NULL', + 'OFFSET', + 'ON DELETE', + 'ON UPDATE', + 'ON', + 'ONLY', + 'OPEN', + 'OPTIMIZE', + 'OPTION', + 'OPTIONALLY', + 'OUTFILE', + 'PACK_KEYS', + 'PAGE', + 'PARTIAL', + 'PARTITION', + 'PARTITIONS', + 'PASSWORD', + 'PRIMARY', + 'PRIVILEGES', + 'PROCEDURE', + 'PROCESS', + 'PROCESSLIST', + 'PURGE', + 'QUICK', + 'RAID0', + 'RAID_CHUNKS', + 'RAID_CHUNKSIZE', + 'RAID_TYPE', + 'RANGE', + 'READ', + 'READ_ONLY', + 'READ_WRITE', + 'REFERENCES', + 'REGEXP', + 'RELOAD', + 'RENAME', + 'REPAIR', + 'REPEATABLE', + 'REPLACE', + 'REPLICATION', + 'RESET', + 'RESTORE', + 'RESTRICT', + 'RETURN', + 'RETURNS', + 'REVOKE', + 'RLIKE', + 'ROLLBACK', + 'ROW', + 'ROWS', + 'ROW_FORMAT', + 'SECOND', + 'SECURITY', + 'SEPARATOR', + 'SERIALIZABLE', + 'SESSION', + 'SHARE', + 'SHOW', + 'SHUTDOWN', + 'SLAVE', + 'SONAME', + 'SOUNDS', + 'SQL', + 'SQL_AUTO_IS_NULL', + 'SQL_BIG_RESULT', + 'SQL_BIG_SELECTS', + 'SQL_BIG_TABLES', + 'SQL_BUFFER_RESULT', + 'SQL_CACHE', + 'SQL_CALC_FOUND_ROWS', + 'SQL_LOG_BIN', + 'SQL_LOG_OFF', + 'SQL_LOG_UPDATE', + 'SQL_LOW_PRIORITY_UPDATES', + 'SQL_MAX_JOIN_SIZE', + 'SQL_NO_CACHE', + 'SQL_QUOTE_SHOW_CREATE', + 'SQL_SAFE_UPDATES', + 'SQL_SELECT_LIMIT', + 'SQL_SLAVE_SKIP_COUNTER', + 'SQL_SMALL_RESULT', + 'SQL_WARNINGS', + 'START', + 'STARTING', + 'STATUS', + 'STOP', + 'STORAGE', + 'STRAIGHT_JOIN', + 'STRING', + 'STRIPED', + 'SUPER', + 'TABLE', + 'TABLES', + 'TEMPORARY', + 'TERMINATED', + 'THEN', + 'TO', + 'TRAILING', + 'TRANSACTIONAL', + 'TRUE', + 'TRUNCATE', + 'TYPE', + 'TYPES', + 'UNCOMMITTED', + 'UNIQUE', + 'UNLOCK', + 'UNSIGNED', + 'USAGE', + 'USE', + 'USING', + 'VARIABLES', + 'VIEW', + 'WHEN', + 'WITH', + 'WORK', + 'WRITE', + 'YEAR_MONTH', +]; + +const reservedToplevelWords = [ + 'ADD', + 'AFTER', + 'ALTER COLUMN', + 'ALTER TABLE', + 'DELETE FROM', + 'EXCEPT', + 'FETCH FIRST', + 'FROM', + 'GROUP BY', + 'GO', + 'HAVING', + 'INSERT INTO', + 'INSERT', + 'INTERSECT', + 'LIMIT', + 'MODIFY', + 'ORDER BY', + 'SELECT', + 'SET CURRENT SCHEMA', + 'SET SCHEMA', + 'SET', + 'UNION ALL', + 'UNION', + 'UPDATE', + 'VALUES', + 'WHERE', +]; + +const reservedNewlineWords = [ + 'AND', + 'CROSS APPLY', + 'CROSS JOIN', + 'ELSE', + 'INNER JOIN', + 'JOIN', + 'LEFT JOIN', + 'LEFT OUTER JOIN', + 'OR', + 'OUTER APPLY', + 'OUTER JOIN', + 'RIGHT JOIN', + 'RIGHT OUTER JOIN', + 'WHEN', + 'XOR', +]; + +let tokenizer; + +/** + * + */ +export default class StandardSqlFormatter { + /** + * @param {Object} cfg Different set of configurations + */ + constructor(cfg) { + this.cfg = cfg; + } + + /** + * Format the whitespace in a Standard SQL string to make it easier to read + * + * @param {String} query The Standard SQL string + * @return {String} formatted string + */ + format(query) { + if (!tokenizer) { + tokenizer = new Tokenizer({ + reservedWords, + reservedToplevelWords, + reservedNewlineWords, + stringTypes: [`""`, "N''", "''", '``', '[]'], + openParens: ['(', 'CASE'], + closeParens: [')', 'END'], + indexedPlaceholderTypes: ['?'], + namedPlaceholderTypes: ['@', ':'], + lineCommentTypes: ['#', '--'], + paramsPattern: /^(\$\{[^\}\r\n]+\})/, + }); + } + return new Formatter(this.cfg, tokenizer).format(query); + } +} diff --git a/linkis-web-next/src/components/editor/sqlFormatter/sqlFormatter.ts b/linkis-web-next/src/components/editor/sqlFormatter/sqlFormatter.ts new file mode 100644 index 00000000000..780b04badf8 --- /dev/null +++ b/linkis-web-next/src/components/editor/sqlFormatter/sqlFormatter.ts @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Db2Formatter from './languages/Db2Formatter'; +import N1qlFormatter from './languages/N1qlFormatter'; +import PlSqlFormatter from './languages/PlSqlFormatter'; +import StandardSqlFormatter from './languages/StandardSqlFormatter'; + +export default { + /** + * Format whitespaces in a query to make it easier to read. + * + * @param {String} query + * @param {Object} cfg + * @param {String} cfg.language Query language, default is Standard SQL + * @param {String} cfg.indent Characters used for indentation, default is " " (2 spaces) + * @param {Object} cfg.params Collection of params for placeholder replacement + * @return {String} + */ + format: (query, cfg) => { + cfg = cfg || {}; + + switch (cfg.language) { + case 'db2': + return new Db2Formatter(cfg).format(query); + case 'n1ql': + return new N1qlFormatter(cfg).format(query); + case 'pl/sql': + return new PlSqlFormatter(cfg).format(query); + case 'sql': + case undefined: + return new StandardSqlFormatter(cfg).format(query); + default: + throw Error(`Unsupported SQL dialect: ${cfg.language}`); + } + }, +}; diff --git a/linkis-web-next/src/components/editor/theme/defaultView.ts b/linkis-web-next/src/components/editor/theme/defaultView.ts new file mode 100644 index 00000000000..9b858e3f7ab --- /dev/null +++ b/linkis-web-next/src/components/editor/theme/defaultView.ts @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + register(monaco: any) { + monaco.editor.defineTheme('defaultview', { + base: 'vs', + inherit: true, + rules: [{ background: '#FFFFFF' }], + colors: { + 'editor.lineHighlightBackground': '#ffffff', + 'editorGutter.background': '#f7f7f7', + }, + }); + }, +}; diff --git a/linkis-web-next/src/components/editor/theme/logView.ts b/linkis-web-next/src/components/editor/theme/logView.ts new file mode 100644 index 00000000000..285e701d15d --- /dev/null +++ b/linkis-web-next/src/components/editor/theme/logView.ts @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + register(monaco: typeof import('monaco-editor')) { + monaco.editor.defineTheme('logview', { + base: 'vs', + inherit: true, + rules: [ + { token: 'log-info', foreground: '4b71ca' }, + { token: 'log-error', foreground: 'ff0000', fontStyle: 'bold' }, + { token: 'log-warn', foreground: 'FFA500' }, + { token: 'log-date', foreground: '008800' }, + { token: 'log-normal', foreground: '808080' }, + ], + colors: { + 'editor.lineHighlightBackground': '#ffffff', + 'editorGutter.background': '#f7f7f7', + }, + }); + }, +}; diff --git a/linkis-web-next/src/components/editor/util.ts b/linkis-web-next/src/components/editor/util.ts new file mode 100644 index 00000000000..ce696fd5718 --- /dev/null +++ b/linkis-web-next/src/components/editor/util.ts @@ -0,0 +1,69 @@ +/* eslint-disable import/no-extraneous-dependencies */ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'; + +export const useMonaco = (language = 'json') => { + let monacoEditor: monaco.editor.IStandaloneCodeEditor | null = null; + let initReadOnly = false; + const updateVal = async (val: string) => { + monacoEditor?.setValue(val); + setTimeout(async () => { + if (initReadOnly) monacoEditor?.updateOptions({ readOnly: false }); + await monacoEditor + ?.getAction?.('editor.action.formatDocument') + ?.run(); + if (initReadOnly) monacoEditor?.updateOptions({ readOnly: true }); + }, 100); + }; + + const createEditor = ( + el: HTMLElement | null, + editorOption: monaco.editor.IStandaloneEditorConstructionOptions = {}, + ) => { + if (monacoEditor) { + return; + } + initReadOnly = !!editorOption.readOnly; + monacoEditor = + el && + monaco.editor.create(el, { + language, + minimap: { enabled: false }, + theme: 'vs-light', + multiCursorModifier: 'ctrlCmd', + scrollbar: { + verticalScrollbarSize: 8, + horizontalScrollbarSize: 8, + }, + tabSize: 2, + automaticLayout: true, // 自适应宽高 + ...editorOption, + }); + return monacoEditor; + }; + const onFormatDoc = () => { + monacoEditor?.getAction?.('editor.action.formatDocument')?.run(); + }; + return { + updateVal, + getEditor: () => monacoEditor, + createEditor, + onFormatDoc, + }; +}; diff --git a/linkis-web-next/src/components/sidebar/index.less b/linkis-web-next/src/components/sidebar/index.less new file mode 100644 index 00000000000..779ca5dcbcd --- /dev/null +++ b/linkis-web-next/src/components/sidebar/index.less @@ -0,0 +1,29 @@ + +.menu-wrapper { + width: 200px; + height: 100vh; +} + +#menu { + padding-top: 16px; + height: 100%; +} + +.title-text { + display: flex; + height: 22px; + transform: translateX(40px) translateY(-5px); + font-family: PingFangSC-Regular; + font-size: 14px; + color: #0F1222; + text-align: justify; + font-weight: 400; +} +:deep(.fes-menu-item-label){ + height: 54px; +} +img{ + transform: translateX(17px) translateY(20px); + width: 14px; + height: 14px; +} \ No newline at end of file diff --git a/linkis-web-next/src/components/sidebar/index.vue b/linkis-web-next/src/components/sidebar/index.vue new file mode 100644 index 00000000000..9412676ecc8 --- /dev/null +++ b/linkis-web-next/src/components/sidebar/index.vue @@ -0,0 +1,120 @@ + + + + + + diff --git a/linkis-web-next/src/config/const.ts b/linkis-web-next/src/config/const.ts new file mode 100644 index 00000000000..913e8006e82 --- /dev/null +++ b/linkis-web-next/src/config/const.ts @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const DEVPROCESS = { + DEVELOPMENTCENTER: 'dev', // Develop center(开发中心) + PRODUCTCENTER: 'prod', // Production center(生产中心) +}; + +const ORCHESTRATORMODES = { + WORKFLOW: 'pom_work_flow', // Workflow Orchestration(工作流编排) + SINGLETASK: 'pom_single_task', // single task scheduling(单任务编排) + CONSTSTORCHESTRATOR: 'pom_consist_orchestrator', // Combination arrangement(组合编排) +}; +export { DEVPROCESS, ORCHESTRATORMODES }; diff --git a/linkis-web-next/src/config/db.ts b/linkis-web-next/src/config/db.ts new file mode 100644 index 00000000000..4e858e2961c --- /dev/null +++ b/linkis-web-next/src/config/db.ts @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// What table needs to be built for each application add here(各应用需要建什么表在这里添加) +export const config = { + version: 4, + stores: { + project: '&projectID', + tab: '&id', + log: '&tabId', + history: '&tabId', + result: '&tabId', + globalCache: '&key, value', + progress: '&tabId', + node: '&nodeId', + tree: '&treeId', + }, +}; diff --git a/linkis-web-next/src/config/scriptis.ts b/linkis-web-next/src/config/scriptis.ts new file mode 100644 index 00000000000..93206d9f1ed --- /dev/null +++ b/linkis-web-next/src/config/scriptis.ts @@ -0,0 +1,343 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default Object.freeze([ + { + rule: /\.(bi)$/i, + executable: false, + logo: 'fi-bi', + color: '#9771E7', + isCanBeNew: false, + isCanBeOpen: true, + }, + { + rule: /\.(sql)$/i, + lang: 'hql', + executable: true, + application: 'spark', + runType: 'sql', + ext: '.sql', + scriptType: 'hive', + abbr: 'sql', + logo: 'fi-spark', + color: '#FF9900', + isCanBeNew: true, + label: 'Sql', + isCanBeOpen: true, + flowType: 'sql', + }, + { + rule: /\.(hql)$/i, + lang: 'hql', + executable: true, + application: 'hive', + runType: 'hql', + ext: '.hql', + scriptType: 'hql', + abbr: 'hql', + logo: 'fi-hive', + color: '#F4CF38', + isCanBeNew: true, + label: 'Hive', + isCanBeOpen: true, + flowType: 'hql', + }, + { + rule: /\.(out)$/i, + lang: 'out', + executable: true, + application: 'pipeline', + runType: 'pipeline', + ext: '.out', + scriptType: 'storage', + abbr: 'stor', + logo: 'fi-storage', + color: '#4DB091', + isCanBeNew: true, + label: 'Storage', + isCanBeOpen: true, + }, + { + rule: /\.scala$/i, + lang: 'java', + executable: true, + application: 'spark', + runType: 'scala', + ext: '.scala', + scriptType: 'scala', + abbr: 'scala', + logo: 'fi-scala', + color: '#ED4014', + isCanBeNew: true, + label: 'Scala', + isCanBeOpen: true, + flowType: 'scala', + }, + { + rule: /\.scala$/i, + lang: 'java', + executable: true, + application: 'spark', + runType: 'function.mdq', + ext: '.scala', + scriptType: 'scala', + abbr: 'scala', + logo: 'fi-scala', + color: '#ED4014', + isCanBeNew: false, + label: 'Scala', + isCanBeOpen: true, + }, + { + rule: /\.jdbc$/i, + lang: 'hql', + executable: true, + application: 'jdbc', + runType: 'jdbc', + ext: '.jdbc', + scriptType: 'jdbc', + abbr: 'jdbc', + logo: 'fi-jdbc', + color: '#444444', + isCanBeNew: true, + label: 'JDBC', + isCanBeOpen: true, + }, + { + rule: /\.python$/i, + lang: 'python', + executable: true, + application: 'python', + runType: 'python', + ext: '.python', + scriptType: 'python', + abbr: 'py', + logo: 'fi-python', + color: '#3573A6', + isCanBeNew: true, + label: 'Python', + isCanBeOpen: true, + flowType: 'python', + }, + { + rule: /\.py$/i, + lang: 'python', + executable: true, + application: 'spark', + runType: 'py', + ext: '.py', + scriptType: 'pythonSpark', + abbr: 'py', + logo: 'fi-spark-python', + color: '#3573A6', + isCanBeNew: true, + label: 'PythonSpark', + isCanBeOpen: true, + flowType: 'pyspark', + }, + { + rule: /\.r$/i, + lang: 'r', + executable: true, + application: 'spark', + runType: 'r', + ext: '.r', + scriptType: 'r', + abbr: 'r', + logo: 'fi-r', + color: '#2D8CF0', + isCanBeNew: true, + label: 'R', + isCanBeOpen: true, + }, + { + rule: /\.sh$/i, + lang: 'sh', + executable: true, + application: 'shell', + runType: 'shell', + ext: '.sh', + scriptType: 'shell', + abbr: 'shell', + logo: 'fi-scriptis', + color: '#444444', + isCanBeNew: false, + label: 'Shell', + isCanBeOpen: true, + flowType: 'shell', + }, + { + rule: /\.sh$/i, + lang: 'sh', + executable: true, + application: 'shell', + runType: 'sh', + ext: '.sh', + scriptType: 'shell', + abbr: 'shell', + logo: 'fi-scriptis', + color: '#444444', + isCanBeNew: true, + label: 'Shell', + isCanBeOpen: true, + flowType: 'shell', + }, + { + rule: /\.qmlsql$/i, + lang: 'hql', + executable: false, + application: 'spark', + runType: 'sql', + ext: '.qmlsql', + scriptType: 'qmlsql', + abbr: 'qmlsql', + logo: 'fi-spark', + color: '#FF9900', + isCanBeNew: false, + label: 'QMLSQL', + isCanBeOpen: true, + }, + { + rule: /\.qmlpy$/i, + lang: 'python', + executable: false, + application: 'spark', + runType: 'python', + ext: '.qmlpy', + scriptType: 'qmlpy', + abbr: 'qmlpy', + logo: 'fi-python', + color: '#3573A6', + isCanBeNew: false, + label: 'QMLPy', + isCanBeOpen: true, + }, + { + rule: /\.txt$/i, + lang: 'text', + executable: false, + application: null, + runType: null, + ext: '.txt', + scriptType: 'txt', + abbr: '', + logo: 'fi-txt', + color: '#444444', + isCanBeNew: false, + isCanBeOpen: true, + }, + { + rule: /\.log$/i, + lang: 'text', + executable: false, + application: null, + runType: null, + ext: '.log', + scriptType: 'txt', + abbr: '', + logo: 'fi-log', + color: '#444444', + isCanBeNew: false, + isCanBeOpen: true, + }, + { + rule: /\."flowexecution"$/i, + lang: 'text', + executable: false, + application: 'flowexecution', + runType: 'json', + ext: '.txt', + scriptType: 'json', + abbr: '', + logo: 'fi-workflow', + color: '#444444', + isCanBeNew: false, + isCanBeOpen: true, + }, + { + rule: /\."appjoint"$/i, + lang: 'text', + executable: false, + application: 'appjoint', + runType: null, + ext: '.txt', + scriptType: 'json', + abbr: '', + logo: 'fi-workflow', + color: '#444444', + isCanBeNew: false, + isCanBeOpen: true, + }, + { + rule: /\.xls$/i, + logo: 'fi-xls', + color: '#36AF47', + isCanBeNew: false, + isCanBeOpen: false, + }, + { + rule: /\.xlsx$/i, + logo: 'fi-xlsx', + color: '#36AF47', + isCanBeNew: false, + isCanBeOpen: false, + }, + { + rule: /\.csv$/i, + logo: 'fi-csv', + color: '#36AF47', + isCanBeNew: false, + isCanBeOpen: false, + }, + { + rule: /\.jar$/i, + logo: 'fi-jar', + color: '#E45F3D', + isCanBeNew: false, + isCanBeOpen: false, + }, + { + rule: /\.ngql$/i, + lang: 'hql', + executable: true, + application: 'nebula', + runType: 'nebula', + ext: '.ngql', + scriptType: 'Nebula', + abbr: 'nebula', + logo: 'fi-txt', + color: '#3573A6', + isCanBeNew: true, + label: 'Nebula', + isCanBeOpen: true, + }, + { + rule: /(表详情)|(Table\sdetails)/, + executable: false, + isCanBeOpen: true, + }, + { + rule: /(建表向导)|(Table\screation\sguide)/, + executable: false, + isCanBeOpen: true, + }, + { + rule: /(库详情)|(Db\sdetails)/, + executable: false, + isCanBeOpen: true, + }, +]); diff --git a/linkis-web-next/src/dss/assets/images/Linkis.svg b/linkis-web-next/src/dss/assets/images/Linkis.svg new file mode 100644 index 00000000000..c31bb40ce11 --- /dev/null +++ b/linkis-web-next/src/dss/assets/images/Linkis.svg @@ -0,0 +1,23 @@ + + + + logo + + + + diff --git a/linkis-web-next/src/dss/assets/images/loginbgc.svg b/linkis-web-next/src/dss/assets/images/loginbgc.svg new file mode 100644 index 00000000000..800af4d038f --- /dev/null +++ b/linkis-web-next/src/dss/assets/images/loginbgc.svg @@ -0,0 +1,1947 @@ + + + + + 编组 7 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/linkis-web-next/src/dss/assets/styles/app.less b/linkis-web-next/src/dss/assets/styles/app.less new file mode 100644 index 00000000000..63a881c58bc --- /dev/null +++ b/linkis-web-next/src/dss/assets/styles/app.less @@ -0,0 +1,92 @@ +// /* +// * Licensed to the Apache Software Foundation (ASF) under one or more +// * contributor license agreements. See the NOTICE file distributed with +// * this work for additional information regarding copyright ownership. +// * The ASF licenses this file to You under the Apache License, Version 2.0 +// * (the "License"); you may not use this file except in compliance with +// * the License. You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, software +// * distributed under the License is distributed on an "AS IS" BASIS, +// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// * See the License for the specific language governing permissions and +// * limitations under the License. +// */ + +// @import '@/common/style/variables.scss'; +// @import 'normalize.scss'; + +// * { +// box-sizing: border-box; +// -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +// } +// *:before, +// *:after { +// box-sizing: border-box; +// } +// body{ +// font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, +// "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +// font-variant-numeric: tabular-nums; +// font-size: $font-size-small; +// color: $text-color; +// line-height: $line-height-base; +// } +// .layout { +// position: $absolute; +// left: 0; +// right: 0; +// top: 0; +// bottom: 0; +// background-color: $body-background; +// } +// .layout-content { +// height: 100%; +// } +// .layout-body{ +// width: 100%; +// height: 100%; +// box-sizing: border-box; +// // padding: 54px 0 0; +// position: $relative; +// } +// .layout-top { +// padding: 54px 0 0; +// } +// .ivu-message { +// z-index: 2000 !important; +// } +// // Set the style of the scrollbar(设置滚动条的样式) +// ::-webkit-scrollbar { +// width: 8px; +// height: 8px; +// } +// //rolling groove(滚动槽) +// ::-webkit-scrollbar-track { +// box-shadow: inset 0 0 2px $shadow-color; +// -webkit-box-shadow: inset 0 0 2px $shadow-color; +// border-radius: $border-radius-large; +// -webkit-border-radius: $border-radius-large; +// -moz-border-radius: $border-radius-large; +// -ms-border-radius: $border-radius-large; +// -o-border-radius: $border-radius-large; +// } +// //scroll bar slider(滚动条滑块) +// ::-webkit-scrollbar-thumb { +// box-shadow: inset 0 0 2px $shadow-color; +// border-radius: $border-radius-large; +// background: $scrollbar-color; +// -webkit-box-shadow: inset 0 0 2px $shadow-color; +// -webkit-border-radius: $border-radius-large; +// -moz-border-radius: $border-radius-large; +// -ms-border-radius: $border-radius-large; +// -o-border-radius: $border-radius-large; +// } +// ::-webkit-scrollbar-thumb:window-inactive { +// background: $scrollbar-color; +// } +// .we-editor .monaco-editor .margin { +// background-color: #f2f3f6; +// } diff --git a/linkis-web-next/src/dss/assets/styles/normalize.less b/linkis-web-next/src/dss/assets/styles/normalize.less new file mode 100644 index 00000000000..eb4e5552ad4 --- /dev/null +++ b/linkis-web-next/src/dss/assets/styles/normalize.less @@ -0,0 +1,387 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */ +/** + * 1. Change the default font family in all browsers (opinionated). + * 2. Correct the line height in all browsers. + * 3. Prevent adjustments of font size after orientation changes in + * IE on Windows Phone and in iOS. + */ +/* Document + ========================================================================== */ +html { + font-family: sans-serif; /* 1 */ + line-height: 1.15; /* 2 */ + -ms-text-size-adjust: 100%; /* 3 */ + -webkit-text-size-adjust: 100%; /* 3 */ +} +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers (opinionated). + */ +body { + margin: 0; +} +/** + * Add the correct display in IE 9-. + */ +article, +aside, +footer, +header, +nav, +section { + display: block; +} +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} +/* Grouping content + ========================================================================== */ +/** + * Add the correct display in IE 9-. + * 1. Add the correct display in IE. + */ +figcaption, +figure, +main { /* 1 */ + display: block; +} +/** + * Add the correct margin in IE 8. + */ +figure { + margin: 1em 40px; +} +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} +/* Text-level semantics + ========================================================================== */ +/** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ +a { + background-color: transparent; /* 1 */ + -webkit-text-decoration-skip: objects; /* 2 */ +} +/** + * Remove the outline on focused links when they are also active or hovered + * in all browsers (opinionated). + */ +a:active, +a:hover { + outline-width: 0; +} +/** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ +b, +strong { + font-weight: inherit; +} +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; +} +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} +/** + * Add the correct font style in Android 4.3-. + */ +dfn { + font-style: italic; +} +/** + * Add the correct background and color in IE 9-. + */ +mark { + background-color: #ff0; + color: #000; +} +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; +} +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} +/* Embedded content + ========================================================================== */ +/** + * Add the correct display in IE 9-. + */ +audio, +video { + display: inline-block; +} +/** + * Add the correct display in iOS 4-7. + */ +audio:not([controls]) { + display: none; + height: 0; +} +/** + * Remove the border on images inside links in IE 10-. + */ +img { + border-style: none; +} +/** + * Hide the overflow in IE. + */ +svg:not(:root) { + overflow: hidden; +} +/* Forms + ========================================================================== */ +/** + * 1. Change the font styles in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: sans-serif; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ +button, +input { /* 1 */ + overflow: visible; +} +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { /* 1 */ + text-transform: none; +} +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ +button, +html [type="button"], /* 1 */ +[type="reset"], +[type="submit"] { + -webkit-appearance: button; /* 2 */ +} +/** + * Remove the inner border and padding in Firefox. + */ +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} +/** + * Restore the focus styles unset by the previous rule. + */ +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} +/** + * Change the border, margin, and padding in all browsers (opinionated). + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} +/** + * 1. Add the correct display in IE 9-. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ +progress { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} +/** + * Remove the default vertical scrollbar in IE. + */ +textarea { + overflow: auto; +} +/** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} +/** + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. + */ +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} +/* Interactive + ========================================================================== */ +/* + * Add the correct display in IE 9-. + * 1. Add the correct display in Edge, IE, and Firefox. + */ +details, /* 1 */ +menu { + display: block; +} +/* + * Add the correct display in all browsers. + */ +summary { + display: list-item; +} +/* Scripting + ========================================================================== */ +/** + * Add the correct display in IE 9-. + */ +canvas { + display: inline-block; +} +/** + * Add the correct display in IE. + */ +template { + display: none; +} +/* Hidden + ========================================================================== */ +/** + * Add the correct display in IE 10-. + */ +[hidden] { + display: none; +} +ul, +ol { + list-style: none; +} diff --git a/linkis-web-next/src/dss/dssRouter.ts b/linkis-web-next/src/dss/dssRouter.ts new file mode 100644 index 00000000000..ad0cfccc6c4 --- /dev/null +++ b/linkis-web-next/src/dss/dssRouter.ts @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default [ + // log view(日志查看) + { + path: '/log', + name: 'log', + meta: { + title: 'Log', + publicPage: true, + }, + component: () => import('./view/logPage/index.vue'), + }, + { + path: '/commonIframe', + name: 'commonIframe', + meta: { + title: 'DSS Component', + publicPage: true, + }, + component: () => import('./view/commonIframe/index.vue'), + }, + { + path: '/login', + name: 'login', + meta: { + title: 'Login', + publicPage: true, + }, + component: () => import('./view/login/index.vue'), + }, + // Public pages, not subject to permission control(公用页面,不受权限控制) + { + path: '/500', + name: 'serverErrorPage', + meta: { + title: '服务器错误', + publicPage: true, + }, + component: () => import('./view/500.vue'), + }, + { + path: '/404', + name: 'pageNotFound', + meta: { + title: '404', + publicPage: true, + }, + component: () => import('./view/404.vue'), + }, + { + path: '/403', + name: 'pageForbidden', + meta: { + title: '403', + publicPage: true, + }, + component: () => import('./view/403.vue'), + }, + // svg available icon preview(svg可用图标预览) + { + path: '/icon', + name: 'icon', + meta: { + title: 'icon', + publicPage: true, + }, + component: () => import('./view/icon.vue'), + }, + { + path: '/:catchAll(.*)', + meta: { + title: 'Linkis', + publicPage: true, + }, + component: () => import('./view/404.vue'), + }, +]; diff --git a/linkis-web-next/src/dss/module/footer/index.js b/linkis-web-next/src/dss/module/footer/index.js new file mode 100644 index 00000000000..6d1b5d8f3f0 --- /dev/null +++ b/linkis-web-next/src/dss/module/footer/index.js @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +export default { + name: 'Footer', + events: ['Footer:updateRunningJob', 'Footer:getRunningJob'], + component: () => import('./index.vue'), +}; diff --git a/linkis-web-next/src/dss/module/footer/index.scss b/linkis-web-next/src/dss/module/footer/index.scss new file mode 100644 index 00000000000..85b963d71fb --- /dev/null +++ b/linkis-web-next/src/dss/module/footer/index.scss @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import '@/common/style/variables.scss'; +.layout-footer { + position: $fixed; + right: 10px; + bottom: 10px; + width: 100px; + height: 50px; + line-height: 40px; + background: transparent; + overflow: hidden; + padding: 5px; + z-index: 9999; +} +.footer-channel { + border: $border-width-base $border-style-base $border-color-base; + border-radius: $border-radius-small; + box-shadow: $shadow-base; + background-image: linear-gradient(39deg, $background-color-select-hover 0%, $background-color-base 100%); + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + opacity: 0.8; + cursor: move; + .footer-channel-job { + color: $success-color; + font-weight: 900; + margin-right: 5px; + } + .footer-channel-job-num { + font-size: $font-size-small; + color: $text-color; + } +} diff --git a/linkis-web-next/src/dss/module/footer/index.vue b/linkis-web-next/src/dss/module/footer/index.vue new file mode 100644 index 00000000000..6ff551ad980 --- /dev/null +++ b/linkis-web-next/src/dss/module/footer/index.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/linkis-web-next/src/dss/module/header/index.js b/linkis-web-next/src/dss/module/header/index.js new file mode 100644 index 00000000000..8fb35348a8f --- /dev/null +++ b/linkis-web-next/src/dss/module/header/index.js @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +export default { + name: 'Header', + component: () => import('./index.vue'), + dispatchs: ['Footer:getRunningJob', 'dssIndexedDB:deleteDb'], +}; diff --git a/linkis-web-next/src/dss/module/header/index.scss b/linkis-web-next/src/dss/module/header/index.scss new file mode 100644 index 00000000000..ad758b39b07 --- /dev/null +++ b/linkis-web-next/src/dss/module/header/index.scss @@ -0,0 +1,91 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import '@/common/style/variables.scss'; +@import '@/common/style/headerCommon.scss'; +.proj-select { + margin-left: 25px; + vertical-align: middle; + color: #fff; + margin-top: -2px; + display: flex; +} +.project-dro { + vertical-align: top; + height: 100%; + margin-left: 80px; + .project { + font-size: 14px; + display: flex; + justify-content: center; + align-items: center; + flex-wrap: nowrap; + height: 54px; + } + .proj-list { + height: 400px; + overflow-y: auto; + background-color: $background-color-header; + padding: 0 15px; + .proj-name { + padding:7px 15px; + height: 30px; + line-height: 30px; + font-size: $font-size-large; + border-bottom: 1px solid rgba(255,255,255,0.08); + padding-bottom: 35px; + color: $text-tille-light-color; + font-size: 16px; + &::before { + content: ''; + font-weight: bold; + padding-left: 12px; + border-left: 3px solid #2d8cf0; + color: rgba(255,255,255,0.85); + } + } + .name-bar { + display: flex; + justify-content: flex-start; + align-items: center; + flex-wrap: wrap; + padding: 0 $padding-25; + .proj-item { + // width: 200px; + padding: 0 10px; + margin-right: 15px; + font-size: $font-size-14; + color: $text-tille-light-color; + cursor: pointer; + &:hover { + color: $dark-selected-color + } + &.active { + color: $dark-active-color + } + } + } + } + /deep/ .ivu-select-dropdown { + padding: 0; + margin: 0; + } +} +.workspace-icon { + margin: 0 10px 0 25px; + display: inline-block; +} \ No newline at end of file diff --git a/linkis-web-next/src/dss/module/header/index.vue b/linkis-web-next/src/dss/module/header/index.vue new file mode 100644 index 00000000000..c1ebe127619 --- /dev/null +++ b/linkis-web-next/src/dss/module/header/index.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/linkis-web-next/src/dss/module/header/navMenu/index.scss b/linkis-web-next/src/dss/module/header/navMenu/index.scss new file mode 100644 index 00000000000..4865cc0133a --- /dev/null +++ b/linkis-web-next/src/dss/module/header/navMenu/index.scss @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import '@/common/style/variables.scss'; +.nav-menu { + position: relative; + background: $dark-bg; + box-shadow: $shadow-base; + position: fixed; + width: 100%; + z-index: 9999; + .nav-menu-left { + width: 270px; + height: 100%; + display: inline-block; + color: #fff; + .nav-menu-left-item { + position: $relative; + line-height: 20px; + padding: 12px 14px 12px 20px; + border-bottom: 1px solid #515a6e; + cursor: pointer; + &:hover { + background: #fff; + color: $dark-bg; + } + &.actived { + background: #fff; + color: $dark-bg; + } + &:last-child { + border-bottom: none + } + .nav-menu-left-main-title, .nav-menu-left-sub-title { + font-size: 14px; + } + .nav-menu-left-icon { + position: $absolute; + right: 10px; + color: #fff; + top: 16px + } + } + } + .nav-menu-right { + position: absolute; + top: 0; + bottom: 0; + right: 0; + left: 270px; + color: $text-color; + padding: 10px; + background: #fff; + .nav-menu-right-item { + margin: 10px; + .nav-menu-right-item-title { + border-bottom: 1px solid #eee; + font-size: 14px; + } + .nav-menu-right-item-child { + cursor: pointer; + margin: 10px; + &:hover { + text-decoration: underline; + color: $primary-color; + } + .nav-menu-right-item-icon { + margin-right: 4px; + color: #2d8cf0 !important; + } + } + } + } +} diff --git a/linkis-web-next/src/dss/module/header/navMenu/index.vue b/linkis-web-next/src/dss/module/header/navMenu/index.vue new file mode 100644 index 00000000000..60e1a2375b2 --- /dev/null +++ b/linkis-web-next/src/dss/module/header/navMenu/index.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/linkis-web-next/src/dss/module/header/userMenu.vue b/linkis-web-next/src/dss/module/header/userMenu.vue new file mode 100644 index 00000000000..6c5216fcff1 --- /dev/null +++ b/linkis-web-next/src/dss/module/header/userMenu.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/linkis-web-next/src/dss/module/index.js b/linkis-web-next/src/dss/module/index.js new file mode 100644 index 00000000000..5fbb8f231c6 --- /dev/null +++ b/linkis-web-next/src/dss/module/index.js @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mixinDispatch from '@/common/service/moduleMixin'; + +const requireComponent = require.context( + // relative path to its component directory(其组件目录的相对路径) + './', + // whether to query its subdirectories(是否查询其子目录) + true, + /([a-z|A-Z])+\/index\.js$/ +); + +const requireComponentVue = require.context( + // relative path to its component directory(其组件目录的相对路径) + './', + // whether to query its subdirectories(是否查询其子目录) + true, + /([a-z|A-Z])+.vue$/ +); + +mixinDispatch(requireComponent, requireComponentVue) diff --git a/linkis-web-next/src/dss/module/indexedDB/index.js b/linkis-web-next/src/dss/module/indexedDB/index.js new file mode 100644 index 00000000000..e9bc1882c4d --- /dev/null +++ b/linkis-web-next/src/dss/module/indexedDB/index.js @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { db } from '@/common/service/db/index.js'; + +export default { + name: 'dssIndexedDB', + methods: { + deleteDb() { + db.db.delete(); + }, + } +} \ No newline at end of file diff --git a/linkis-web-next/src/dss/module/resourceSimple/engine.vue b/linkis-web-next/src/dss/module/resourceSimple/engine.vue new file mode 100644 index 00000000000..b603f10df4f --- /dev/null +++ b/linkis-web-next/src/dss/module/resourceSimple/engine.vue @@ -0,0 +1,422 @@ + + + + + + + diff --git a/linkis-web-next/src/dss/module/resourceSimple/index.js b/linkis-web-next/src/dss/module/resourceSimple/index.js new file mode 100644 index 00000000000..1048a846174 --- /dev/null +++ b/linkis-web-next/src/dss/module/resourceSimple/index.js @@ -0,0 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +export default { + name: 'resourceSimple', + component: () => import('./index.vue'), + dispatchs: ['Workbench:add', 'Footer:updateRunningJob'], +} +; diff --git a/linkis-web-next/src/dss/module/resourceSimple/index.scss b/linkis-web-next/src/dss/module/resourceSimple/index.scss new file mode 100644 index 00000000000..783e44f8404 --- /dev/null +++ b/linkis-web-next/src/dss/module/resourceSimple/index.scss @@ -0,0 +1,438 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import '@/common/style/variables.scss'; +.resource-simple-content { + height: 400px; + .queue-manager { + position: $relative; + width: 100%; + height: 100%; + .queue-manager-select-warpper { + position: $absolute; + top: 0; + right: 0; + .queue-manager-select { + width: 200px; + } + } + .queue-manager-title { + height: 32px; + line-height: 32px; + font-size: $font-size-base; + font-weight: bold; + } + .queue-manager-used { + margin-bottom: 10px; + .queue-manager-circle-warpper { + padding: 20px; + display: flex; + justify-content: center; + .queue-manager-circle { + margin-right: 30px; + } + } + } + .queue-manager-top { + .queue-manager-top-content { + height: 180px; + overflow-y: auto; + } + .queue-manager-item { + height: 20px; + line-height: 20px; + display: flex; + margin: 8px 0 8px 20px; + span { + display: inline-block; + } + .queue-manager-name { + width: 80px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + .queue-manager-total { + margin-left: 10px; + } + .queue-manager-status { + position: $relative; + width: 400px; + height: 20px; + display: flex; + align-items: center; + font-size: 10px; + background: $background-color-base; + border-radius: 10px; + .queue-manager-status-busy { + position: $absolute; + left: 0; + background: $warning-color; + height: 100%; + border-radius: 10px; + z-index: 1; + } + .queue-manager-status-idle { + background: $success-color; + height: 100%; + border-radius: 10px; + position: $absolute; + z-index: 0; + } + .queue-manager-status-label { + position: $absolute; + right: 6px; + color: $tooltip-color ; + } + } + } + } + } + .job-manager { + height: 400px; + overflow-y: auto; + .job-manager-empty { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + } + .job-manager-type { + .job-manager-title { + height: 32px; + line-height: 32px; + font-size: $font-size-base; + font-weight: bold; + } + .job-manager-item-wrapper { + display: flex; + align-items: center; + height: 40px; + line-height: 40px; + margin: 2px 10px 2px 20px; + position: $relative; + cursor: pointer; + background: $background-color-base; + border: $border-width-base $border-style-base $tooltip-color ; + &:hover { + background: $tooltip-color ; + } + &.actived { + background: $tooltip-color ; + } + .job-manager-item-icon { + padding: 10px; + &::before { + font-size: 24px; + } + } + .job-manager-item-label { + font-weight: bold; + width: 380px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .job-manager-item-progress-label { + position: $absolute; + right: 40px; + } + .job-manager-item-progress { + display: inline-block; + position: $absolute; + top: -1px; + left: 0; + height: 40px; + background: rgba(45, 140, 240, 0.3); + } + .job-manager-item-active { + background: rgba(0, 128, 0, 0.57); + color: $tooltip-color ; + position: $absolute; + top: -1px; + left: 0; + &::before { + font-size: 10px; + } + } + .job-manager-item-close { + position: $absolute; + right: 16px; + &:hover { + color: rgba(45, 140, 240, 0.3); + } + } + } + } + } +} +.task-manager { + padding: 0 10px; + .task-content { + border: $border-width-base $border-style-base $border-color-split; + box-shadow: $shadow-card; + border-radius: 10px; + color: $text-color ; + margin: 5px 0; + margin-bottom: 15px; + padding: 0 0 10px; + .item-title { + font-size: $font-size-base; + background: $primary-color; + padding: 6px 20px; + border-radius: 10px 0; + display: inline-block; + color: $tooltip-color ; + } + } + .manager-li { + padding: 6px 5px 6px 30px; + display: flex; + font-size: $font-size-small; + margin: 6px 0; + align-items: center; + &:hover { + background: $background-color-base; + } + .manager-li-title { + text-align: center; + margin-right: 10px; + line-height: 32px; + box-sizing: border-box; + display: flex; + align-items: center; + border: $border-width-base $border-style-base $primary-color; + border-left-width: 10px; + border-radius: $border-radius-small; + cursor: pointer; + &.init { + border-color: $subsidiary-color; + } + &.schedule { + border-color: $pink-color + } + .item-label { + width: 90px; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + display: inline-block; + text-decoration: underline; + } + } + .item-center { + width: 500px; + .sql-text { + max-width: 550px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + } + .item-delete { + flex-basis: 30px; + font-weight: bold; + font-size: 20px; + text-align: center; + margin-left: 10px; + cursor: pointer; + } + } +} +.header-tab { + display: flex; + justify-content: center; +} +.resource-simple-footer { + display: flex; + justify-content: flex-end; + align-items: center; + &.legendShow { + justify-content: space-between; + } + .footer-legend { + .footer-legend-point { + width: 10px; + height: 10px; + border-radius: 50%; + display: inline-block; + } + .point-init { + background-color: $subsidiary-color; + } + .point-schedule { + background-color: $pink-color ; + } + .point-running { + background-color: $primary-color; + } + .point-idle { + background-color: $success-color; + } + .point-busy { + background-color: $warning-color; + } + .point-starting { + background-color: $primary-color; + } + .footer-legend-label { + margin-right: 10px; + display: inline-block; + } + } +} +// engine manager style(引擎管理器样式) +.engine-box { + height: 100%; + overflow-y: auto; + position: $relative; + .no-data { + font-size: $font-size-base; + font-weight: 600; + font-family: "宋体"; + color: $text-color; + position: $absolute; + top: 30%; + left: 50%; + transform: translateX(-50%); + } + &::-webkit-scrollbar { + width: 6px; + height: 1px; + } + &::-webkit-scrollbar-thumb { + border-radius: $border-radius-base; + box-shadow: $shadow-inset; + background: $background-color-base; + } + &::-webkit-scrollbar-track { + border-radius:$border-radius-base; + box-shadow: $shadow-inset; + background: $tooltip-color ; + } +} +.engine-content { + padding: 0 15px; + .engine-header-bar { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 10px; + margin-bottom: 10px; + .data-type-title { + font-size: 18px; + font-weight: bold; + } + .classify { + flex-basis: 30%; + display: flex; + justify-content: space-around; + align-items: center; + >span { + margin-right: 5px; + width: 40px; + font-size: $font-size-base; + } + } + } + .engine-list { + display: flex; + align-items: center; + padding-left: 30px; + .engline-name { + flex-basis: 62px; + font-size: 16px; + margin-right: 20px; + } + .engine-ul { + flex: 1; + display: flex; + justify-content: flex-start; + align-items: center; + flex-wrap: wrap; + .engine-li { + border: $border-width-base $border-style-base $border-color-base; + border-radius: $border-radius-base; + padding: 5px; + position: $relative; + width: 60px; + height: 60px; + margin: 8px 20px 8px 0; + box-sizing: border-box; + display: flex; + justify-content: center; + align-items: center; + &:hover { + background-color: $background-color-base; + border-radius: $border-radius-base; + cursor: pointer; + } + &.active.yellow { + border: $border-width-base $border-style-base $yellow-color; + background-color: $background-color-base; + } + &.active.green { + border: $border-width-base $border-style-base $success-color; + background-color: $background-color-base; + } + &.active.blue { + border: $border-width-base $border-style-base $primary-color; + background-color: $background-color-base; + } + .engine-icon { + &::before { + font-size: 40px; + } + } + .engine-icon.yellow { + &::before { + color: $yellow-color; + } + } + .engine-icon.green { + &::before { + color: $success-color; + } + } + .engine-icon.blue { + &::before { + color: $primary-color; + } + } + .engine-right { + position: $absolute; + top: 0; + left: 0; + border-radius: 0 0 5px 0; + font-weight: bold; + &:before { + color: $background-color-base; + } + &.yellow { + background-color: $yellow-color; + } + &.green { + background-color: $success-color; + } + &.blue { + background-color: $primary-color; + } + } + } + } + } +} diff --git a/linkis-web-next/src/dss/module/resourceSimple/index.vue b/linkis-web-next/src/dss/module/resourceSimple/index.vue new file mode 100644 index 00000000000..ca1b75b4844 --- /dev/null +++ b/linkis-web-next/src/dss/module/resourceSimple/index.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/linkis-web-next/src/dss/module/resourceSimple/job.vue b/linkis-web-next/src/dss/module/resourceSimple/job.vue new file mode 100644 index 00000000000..1d384d5b3ec --- /dev/null +++ b/linkis-web-next/src/dss/module/resourceSimple/job.vue @@ -0,0 +1,352 @@ + + + + diff --git a/linkis-web-next/src/dss/module/resourceSimple/point.vue b/linkis-web-next/src/dss/module/resourceSimple/point.vue new file mode 100644 index 00000000000..719d8a0f09a --- /dev/null +++ b/linkis-web-next/src/dss/module/resourceSimple/point.vue @@ -0,0 +1,45 @@ + + + + diff --git a/linkis-web-next/src/dss/module/resourceSimple/queue.vue b/linkis-web-next/src/dss/module/resourceSimple/queue.vue new file mode 100644 index 00000000000..cd37f63d46d --- /dev/null +++ b/linkis-web-next/src/dss/module/resourceSimple/queue.vue @@ -0,0 +1,162 @@ + + + + diff --git a/linkis-web-next/src/dss/view/403.vue b/linkis-web-next/src/dss/view/403.vue new file mode 100644 index 00000000000..927c3c7fb6c --- /dev/null +++ b/linkis-web-next/src/dss/view/403.vue @@ -0,0 +1,23 @@ + + + diff --git a/linkis-web-next/src/dss/view/404.vue b/linkis-web-next/src/dss/view/404.vue new file mode 100644 index 00000000000..176a5409615 --- /dev/null +++ b/linkis-web-next/src/dss/view/404.vue @@ -0,0 +1,31 @@ + + + + diff --git a/linkis-web-next/src/dss/view/500.vue b/linkis-web-next/src/dss/view/500.vue new file mode 100644 index 00000000000..5396a706191 --- /dev/null +++ b/linkis-web-next/src/dss/view/500.vue @@ -0,0 +1,41 @@ + + + + diff --git a/linkis-web-next/src/dss/view/app.vue b/linkis-web-next/src/dss/view/app.vue new file mode 100644 index 00000000000..3fbca9e61be --- /dev/null +++ b/linkis-web-next/src/dss/view/app.vue @@ -0,0 +1,28 @@ + + + + + diff --git a/linkis-web-next/src/dss/view/commonIframe/index.vue b/linkis-web-next/src/dss/view/commonIframe/index.vue new file mode 100644 index 00000000000..7ac99d6a09d --- /dev/null +++ b/linkis-web-next/src/dss/view/commonIframe/index.vue @@ -0,0 +1,101 @@ + + +