diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000..b133c49 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,5 @@ +> 1% +last 2 versions +not dead +not ie 11 +chrome 79 diff --git a/.eslintignore b/.eslintignore index 348631b..73cfa7d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -12,4 +12,9 @@ dist .husky .local /bin +/src/mock Dockerfile +commitlint.config.js + +components.d.ts +auto-imports.d.ts diff --git a/.eslintrc.js b/.eslintrc.js index 0779710..05107a2 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,6 +1,4 @@ -// @ts-check -const { defineConfig } = require('eslint-define-config'); -module.exports = defineConfig({ +module.exports = { root: true, env: { browser: true, @@ -15,28 +13,50 @@ module.exports = defineConfig({ jsxPragma: 'React', ecmaFeatures: { jsx: true, + tsx: true, }, }, + plugins: ['@typescript-eslint', 'prettier', 'import'], extends: [ - 'plugin:vue/vue3-recommended', + 'eslint:recommended', 'plugin:@typescript-eslint/recommended', + 'plugin:vue/vue3-recommended', 'prettier', - 'plugin:prettier/recommended', + ], + overrides: [ + { + files: ['*.ts', '*.tsx', '*.vue'], + rules: { + 'no-undef': 'off', + }, + }, ], rules: { - 'vue/script-setup-uses-vars': 'error', - '@typescript-eslint/ban-ts-ignore': 'off', - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-var-requires': 'off', - '@typescript-eslint/no-empty-function': 'off', - 'vue/custom-event-name-casing': 'off', - 'no-use-before-define': 'off', - '@typescript-eslint/no-use-before-define': 'off', + // js/ts + // 'no-console': ['warn', { allow: ['error'] }], + 'no-restricted-syntax': ['error', 'LabeledStatement', 'WithStatement'], + camelcase: ['error', { properties: 'never' }], + + 'no-var': 'error', + 'no-empty': ['error', { allowEmptyCatch: true }], + 'no-void': 'error', + 'prefer-const': ['warn', { destructuring: 'all', ignoreReadBeforeAssign: true }], + 'prefer-template': 'error', + 'object-shorthand': ['error', 'always', { ignoreConstructors: false, avoidQuotes: true }], + 'block-scoped-var': 'error', + 'no-constant-condition': ['error', { checkLoops: false }], + + 'no-redeclare': 'off', + '@typescript-eslint/no-redeclare': 'error', '@typescript-eslint/ban-ts-comment': 'off', '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-non-null-asserted-optional-chain': 'off', + // '@typescript-eslint/consistent-type-imports': ['error', { disallowTypeAnnotations: false }], + '@typescript-eslint/no-var-requires': 'off', '@typescript-eslint/no-unused-vars': [ 'error', { @@ -51,29 +71,43 @@ module.exports = defineConfig({ varsIgnorePattern: '^_', }, ], - 'space-before-function-paren': 'off', - 'vue/attributes-order': 'off', - 'vue/one-component-per-file': 'off', - 'vue/html-closing-bracket-newline': 'off', - 'vue/max-attributes-per-line': 'off', - 'vue/multiline-html-element-content-newline': 'off', - 'vue/singleline-html-element-content-newline': 'off', - 'vue/attribute-hyphenation': 'off', + // vue + 'vue/no-v-html': 'off', 'vue/require-default-prop': 'off', 'vue/require-explicit-emits': 'off', - 'vue/html-self-closing': [ + 'vue/multi-word-component-names': 'off', + 'vue/one-component-per-file': 'off', + + // prettier + 'prettier/prettier': 'error', + + // import + 'import/first': 'error', + 'import/no-duplicates': 'error', + 'import/order': [ 'error', { - html: { - void: 'always', - normal: 'never', - component: 'always', - }, - svg: 'always', - math: 'always', + groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'], + + pathGroups: [ + { + pattern: 'vue', + group: 'external', + position: 'before', + }, + { + pattern: '@vue/**', + group: 'external', + position: 'before', + }, + { + pattern: 'ant-design-vue', + group: 'internal', + }, + ], + pathGroupsExcludedImportTypes: ['type'], }, ], - 'vue/multi-word-component-names': 'off', }, -}); +}; diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..d6e52a9 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,6 @@ +* text=auto eol=lf +*.ts linguist-detectable=false +*.css linguist-detectable=false +*.scss linguist-detectable=false +*.js linguist-detectable=true +*.vue linguist-detectable=true diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4aad502..f061383 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -6,30 +6,48 @@ env: on: push: branches: [main] + jobs: repo-sync: runs-on: ubuntu-latest steps: - - name: Checkout Code - uses: actions/checkout@v2 - with: - # Full git history is needed to get a proper list of changed files within `super-linter` - fetch-depth: 0 - - name: Setup Node.js v14.x - uses: actions/setup-node@v2 + - name: Checkout + uses: actions/checkout@v3 + + # 设置服务器时区为东八区 + - name: Set time zone + run: sudo timedatectl set-timezone 'Asia/Shanghai' + + - name: Setup node + uses: actions/setup-node@v3 with: - node-version: '14.x' + node-version: '16' + registry-url: https://registry.npmjs.com/ - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: latest - - name: Install - run: pnpm install + - name: Cache ~/.pnpm-store + uses: actions/cache@v3 + env: + cache-name: cache-pnpm-store + with: + path: ~/.pnpm-store + key: ${{ runner.os }}-preview-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-preview-${{ env.cache-name }}- + ${{ runner.os }}-preview- + ${{ runner.os }}- + + - name: Install dependencies + run: pnpm i --frozen-lockfile - name: Build run: pnpm build + env: + FORCE_COLOR: 2 - name: Deploy uses: peaceiris/actions-gh-pages@v3 @@ -60,6 +78,6 @@ jobs: # 注意替换为你的 Gitee 仓库,仓库名严格区分大小写,请准确填写,否则会出错 gitee-repo: buqiyuan/vite-vue3-lowcode # 是否强制使用 HTTPS - https: false + https: true # 要部署的分支,默认是 master,若是其他分支,则需要指定(指定的分支必须存在) branch: gh-pages diff --git a/.gitignore b/.gitignore index b754ad6..7d0a892 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,7 @@ testem.log # System Files .DS_Store Thumbs.db + +# auto generate file +components.d.ts +auto-imports.d.ts diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..0f160f1 --- /dev/null +++ b/.npmrc @@ -0,0 +1,5 @@ +# shamefully-hoist=true +# strict-peer-dependencies=false + +registry = https://registry.npmmirror.com + diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 94dc813..f7e6b5f 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,6 @@ { "recommendations": [ - "johnsoncodehk.volar", + "vue.volar", "dbaeumer.vscode-eslint", "stylelint.vscode-stylelint", "esbenp.prettier-vscode", diff --git a/.vscode/settings.json b/.vscode/settings.json index 27afe4f..2ebf0dd 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,11 +1,32 @@ { "typescript.tsdk": "./node_modules/typescript/lib", - "volar.tsPlugin": true, - "volar.tsPluginStatus": false, "npm.packageManager": "pnpm", "editor.tabSize": 2, + "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", "files.eol": "\n", + "eslint.probe": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "html", + "vue", + "markdown", + "json", + "jsonc" + ], + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "html", + "vue", + "markdown", + "json", + "jsonc" + ], "search.exclude": { "**/node_modules": true, "**/*.log": true, @@ -55,9 +76,9 @@ "**/yarn.lock": true }, "stylelint.enable": true, - "stylelint.packageManager": "yarn", + "stylelint.packageManager": "pnpm", "path-intellisense.mappings": { - "/@/": "${workspaceRoot}/src" + "@/": "${workspaceRoot}/src" }, "[javascriptreact]": { "editor.defaultFormatter": "esbenp.prettier-vscode" @@ -83,28 +104,24 @@ "[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, + "[jsonc]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "[vue]": { "editor.codeActionsOnSave": { - "source.fixAll.eslint": false + "source.fixAll.stylelint": true } }, - "i18n-ally.localesPaths": [ - "src/locales/lang" - ], + "i18n-ally.localesPaths": ["src/locales/lang"], "i18n-ally.keystyle": "nested", "i18n-ally.sortKeys": true, "i18n-ally.namespace": true, "i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}", - "i18n-ally.enabledParsers": [ - "ts" - ], + "i18n-ally.enabledParsers": ["ts"], "i18n-ally.sourceLanguage": "en", "i18n-ally.displayLanguage": "zh-CN", - "i18n-ally.enabledFrameworks": [ - "vue", - "react" - ], + "i18n-ally.enabledFrameworks": ["vue", "react"] } diff --git a/auto-imports.d.ts b/auto-imports.d.ts index 8f911ba..cf8e8fa 100644 --- a/auto-imports.d.ts +++ b/auto-imports.d.ts @@ -1,17 +1,19 @@ // Generated by 'unplugin-auto-import' -// We suggest you to commit this file into source control +export {}; declare global { + const EffectScope: typeof import('vue')['EffectScope']; const computed: typeof import('vue')['computed']; const createApp: typeof import('vue')['createApp']; const customRef: typeof import('vue')['customRef']; const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']; const defineComponent: typeof import('vue')['defineComponent']; const effectScope: typeof import('vue')['effectScope']; - const EffectScope: typeof import('vue')['EffectScope']; const getCurrentInstance: typeof import('vue')['getCurrentInstance']; const getCurrentScope: typeof import('vue')['getCurrentScope']; const h: typeof import('vue')['h']; const inject: typeof import('vue')['inject']; + const isProxy: typeof import('vue')['isProxy']; + const isReactive: typeof import('vue')['isReactive']; const isReadonly: typeof import('vue')['isReadonly']; const isRef: typeof import('vue')['isRef']; const markRaw: typeof import('vue')['markRaw']; @@ -50,5 +52,6 @@ declare global { const useSlots: typeof import('vue')['useSlots']; const watch: typeof import('vue')['watch']; const watchEffect: typeof import('vue')['watchEffect']; + const watchPostEffect: typeof import('vue')['watchPostEffect']; + const watchSyncEffect: typeof import('vue')['watchSyncEffect']; } -export {}; diff --git a/components.d.ts b/components.d.ts index 33d3c72..45e3280 100644 --- a/components.d.ts +++ b/components.d.ts @@ -1,8 +1,11 @@ // generated by unplugin-vue-components // We suggest you to commit this file into source control -// Read more: https://github.com/vuejs/vue-next/pull/3399 +// Read more: https://github.com/vuejs/core/pull/3399 +import '@vue/runtime-core'; -declare module 'vue' { +export {}; + +declare module '@vue/runtime-core' { export interface GlobalComponents { ElAside: typeof import('element-plus/es')['ElAside']; ElButton: typeof import('element-plus/es')['ElButton']; @@ -26,8 +29,11 @@ declare module 'vue' { ElTag: typeof import('element-plus/es')['ElTag']; ElTooltip: typeof import('element-plus/es')['ElTooltip']; ElTree: typeof import('element-plus/es')['ElTree']; - InfiniteScroll: typeof import('element-plus/es')['ElInfiniteScroll']; + RouterLink: typeof import('vue-router')['RouterLink']; + RouterView: typeof import('vue-router')['RouterView']; } -} -export {}; + export interface ComponentCustomProperties { + vInfiniteScroll: typeof import('element-plus/es')['ElInfiniteScroll']; + } +} diff --git a/package.json b/package.json index 1124045..dc69ee2 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "bootstrap": "pnpm install", "serve": "npm run dev", "dev": "cross-env --max_old_space_size=4096 vite", - "build": "cross-env vite build", + "build": "rimraf dist && cross-env NODE_ENV=production vite build", "build:no-cache": "pnpm clean:cache && npm run build", "build-tsc": "vue-tsc --noEmit && vite build", "preview": "npm run build && vite preview", @@ -15,77 +15,89 @@ "log": "conventional-changelog -p angular -i CHANGELOG.md -s", "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite", "clean:lib": "rimraf node_modules", + "format": "prettier --write .", + "lint": "eslint . --ext .vue,.js,.ts,.jsx,.tsx,.md,.json --max-warnings 0 && pretty-quick --check --branch main", + "lint:fix": "eslint --fix . --ext .vue,.js,.ts,.jsx,.tsx,.md,.json && pretty-quick --branch main", "lint:eslint": "eslint --cache --max-warnings 0 \"{src,mock}/**/*.{vue,ts,tsx}\" --fix", "lint:prettier": "prettier --write \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"", "lint:stylelint": "stylelint --cache --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/", "lint:lint-staged": "lint-staged", "deploy": "npm run build && npx gh-pages -d dist", - "test:gzip": "npx http-server dist --cors --gzip -c-1", - "test:br": "npx http-server dist --cors --brotli -c-1", + "prepare": "husky install", + "postversion": "git push && git push origin --tags", "reinstall": "rimraf pnpm-lock.yaml && rimraf package.lock.json && rimraf node_modules && npm run bootstrap", - "prepare": "husky install" + "version": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md", + "test:gzip": "npx http-server dist --cors --gzip -c-1", + "test:br": "npx http-server dist --cors --brotli -c-1" }, "dependencies": { - "@element-plus/icons-vue": "^0.2.4", + "@element-plus/icons-vue": "^2.0.6", "@vant/touch-emulator": "^1.3.2", - "@vueuse/core": "^7.5.3", - "@vueuse/integrations": "^7.5.3", + "@vueuse/core": "^8.7.5", + "@vueuse/integrations": "^8.7.5", "animate.css": "^4.1.1", - "axios": "^0.24.0", - "dayjs": "^1.10.7", - "dexie": "^3.2.0", - "element-plus": "1.3.0-beta.5", + "axios": "^0.27.2", + "dayjs": "^1.11.3", + "dexie": "^3.2.2", + "element-plus": "2.2.8", "lodash-es": "^4.17.21", - "monaco-editor": "^0.31.1", - "nanoid": "^3.1.32", + "monaco-editor": "^0.33.0", + "nanoid": "^4.0.0", "normalize.css": "^8.0.1", "nprogress": "^1.0.0-1", - "pinia": "^2.0.9", + "pinia": "^2.0.14", "qrcode": "^1.5.0", - "qs": "^6.10.3", - "vant": "3.4.1", - "vue": "3.2.26", - "vue-router": "^4.0.12", + "qs": "^6.11.0", + "vant": "3.5.2", + "vue": "3.2.37", + "vue-router": "^4.0.16", "vuedraggable": "^4.1.0" }, "devDependencies": { - "@commitlint/cli": "^16.0.2", - "@commitlint/config-conventional": "^16.0.0", - "@types/lodash-es": "^4.17.5", - "@types/node": "^17.0.8", - "@typescript-eslint/eslint-plugin": "^5.9.1", - "@typescript-eslint/parser": "^5.9.1", - "@vitejs/plugin-legacy": "^1.6.4", - "@vitejs/plugin-vue": "^2.0.1", - "@vitejs/plugin-vue-jsx": "^1.3.3", - "@vue/compiler-sfc": "3.2.26", + "@commitlint/cli": "^17.0.3", + "@commitlint/config-conventional": "^17.0.3", + "@types/lodash-es": "^4.17.6", + "@types/node": "^18.0.0", + "@typescript-eslint/eslint-plugin": "^5.30.3", + "@typescript-eslint/parser": "^5.30.3", + "@vitejs/plugin-legacy": "^1.8.2", + "@vitejs/plugin-vue": "^2.3.3", + "@vitejs/plugin-vue-jsx": "^1.3.10", "commitizen": "^4.2.4", "conventional-changelog-cli": "^2.2.2", "cross-env": "^7.0.3", - "eslint": "^8.7.0", - "eslint-config-prettier": "^8.3.0", - "eslint-define-config": "^1.2.2", - "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-vue": "^8.3.0", - "husky": "^7.0.4", - "lint-staged": "^12.1.7", - "postcss-html": "^1.3.0", - "prettier": "^2.5.1", - "sass": "1.48.0", - "stylelint": "^14.2.0", + "eslint": "^8.19.0", + "eslint-config-prettier": "^8.5.0", + "eslint-define-config": "^1.5.1", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-vue": "^9.1.1", + "husky": "^8.0.1", + "lint-staged": "^13.0.3", + "postcss": "^8.4.14", + "postcss-html": "^1.4.1", + "postcss-scss": "^4.0.4", + "prettier": "^2.7.1", + "pretty-quick": "^3.1.3", + "rimraf": "^3.0.2", + "sass": "1.53.0", + "stylelint": "^14.9.1", "stylelint-config-html": "^1.0.0", "stylelint-config-prettier": "^9.0.3", - "stylelint-config-recommended": "^6.0.0", - "stylelint-config-standard": "^24.0.0", + "stylelint-config-recommended": "^8.0.0", + "stylelint-config-standard": "^26.0.0", "stylelint-order": "^5.0.0", - "stylelint-scss": "^4.1.0", - "typescript": "^4.5.4", - "unplugin-auto-import": "^0.5.11", - "unplugin-vue-components": "^0.17.11", - "vite": "2.7.12", - "vite-plugin-windicss": "^1.6.2", - "vue-eslint-parser": "^8.0.1", - "windicss": "^3.4.2" + "stylelint-scss": "^4.2.0", + "typescript": "^4.7.4", + "unplugin-auto-import": "^0.9.2", + "unplugin-vue-components": "^0.21.0", + "unplugin-vue-define-options": "^0.6.1", + "vite": "2.9.13", + "vite-plugin-checker": "^0.4.7", + "vite-plugin-windicss": "^1.8.6", + "vue-eslint-parser": "^9.0.3", + "vue-tsc": "^0.38.2", + "windicss": "^3.5.6" }, "repository": { "type": "git", @@ -104,17 +116,14 @@ }, "homepage": "https://github.com/buqiyuan/vite-vue3-lowcode#readme", "engines": { - "node": "^12 || >=14" + "node": ">=14" }, "lint-staged": { "*.{js,jsx,ts,tsx}": [ "eslint --fix", "prettier --write" ], - "{!(package)*.json,*.code-snippets,.!(browserslist)*rc}": [ - "prettier --write--parser json" - ], - "package.json": [ + "*.json": [ "prettier --write" ], "*.vue": [ @@ -129,5 +138,6 @@ "*.md": [ "prettier --write" ] - } + }, + "packageManager": "^pnpm@6.32.4" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 586d729..30889ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,139 +1,153 @@ -lockfileVersion: 5.3 +lockfileVersion: 5.4 specifiers: - '@commitlint/cli': ^16.0.2 - '@commitlint/config-conventional': ^16.0.0 - '@element-plus/icons-vue': ^0.2.4 - '@types/lodash-es': ^4.17.5 - '@types/node': ^17.0.8 - '@typescript-eslint/eslint-plugin': ^5.9.1 - '@typescript-eslint/parser': ^5.9.1 + '@commitlint/cli': ^17.0.3 + '@commitlint/config-conventional': ^17.0.3 + '@element-plus/icons-vue': ^2.0.6 + '@types/lodash-es': ^4.17.6 + '@types/node': ^18.0.0 + '@typescript-eslint/eslint-plugin': ^5.30.3 + '@typescript-eslint/parser': ^5.30.3 '@vant/touch-emulator': ^1.3.2 - '@vitejs/plugin-legacy': ^1.6.4 - '@vitejs/plugin-vue': ^2.0.1 - '@vitejs/plugin-vue-jsx': ^1.3.3 - '@vue/compiler-sfc': 3.2.26 - '@vueuse/core': ^7.5.3 - '@vueuse/integrations': ^7.5.3 + '@vitejs/plugin-legacy': ^1.8.2 + '@vitejs/plugin-vue': ^2.3.3 + '@vitejs/plugin-vue-jsx': ^1.3.10 + '@vueuse/core': ^8.7.5 + '@vueuse/integrations': ^8.7.5 animate.css: ^4.1.1 - axios: ^0.24.0 + axios: ^0.27.2 commitizen: ^4.2.4 conventional-changelog-cli: ^2.2.2 cross-env: ^7.0.3 - dayjs: ^1.10.7 - dexie: ^3.2.0 - element-plus: 1.3.0-beta.5 - eslint: ^8.7.0 - eslint-config-prettier: ^8.3.0 - eslint-define-config: ^1.2.2 - eslint-plugin-prettier: ^4.0.0 - eslint-plugin-vue: ^8.3.0 - husky: ^7.0.4 - lint-staged: ^12.1.7 + dayjs: ^1.11.3 + dexie: ^3.2.2 + element-plus: 2.2.8 + eslint: ^8.19.0 + eslint-config-prettier: ^8.5.0 + eslint-define-config: ^1.5.1 + eslint-plugin-import: ^2.26.0 + eslint-plugin-prettier: ^4.2.1 + eslint-plugin-vue: ^9.1.1 + husky: ^8.0.1 + lint-staged: ^13.0.3 lodash-es: ^4.17.21 - monaco-editor: ^0.31.1 - nanoid: ^3.1.32 + monaco-editor: ^0.33.0 + nanoid: ^4.0.0 normalize.css: ^8.0.1 nprogress: ^1.0.0-1 - pinia: ^2.0.9 - postcss-html: ^1.3.0 - prettier: ^2.5.1 + pinia: ^2.0.14 + postcss: ^8.4.14 + postcss-html: ^1.4.1 + postcss-scss: ^4.0.4 + prettier: ^2.7.1 + pretty-quick: ^3.1.3 qrcode: ^1.5.0 - qs: ^6.10.3 - sass: 1.48.0 - stylelint: ^14.2.0 + qs: ^6.11.0 + rimraf: ^3.0.2 + sass: 1.53.0 + stylelint: ^14.9.1 stylelint-config-html: ^1.0.0 stylelint-config-prettier: ^9.0.3 - stylelint-config-recommended: ^6.0.0 - stylelint-config-standard: ^24.0.0 + stylelint-config-recommended: ^8.0.0 + stylelint-config-standard: ^26.0.0 stylelint-order: ^5.0.0 - stylelint-scss: ^4.1.0 - typescript: ^4.5.4 - unplugin-auto-import: ^0.5.11 - unplugin-vue-components: ^0.17.11 - vant: 3.4.1 - vite: 2.7.12 - vite-plugin-windicss: ^1.6.2 - vue: 3.2.26 - vue-eslint-parser: ^8.0.1 - vue-router: ^4.0.12 + stylelint-scss: ^4.2.0 + typescript: ^4.7.4 + unplugin-auto-import: ^0.9.2 + unplugin-vue-components: ^0.21.0 + unplugin-vue-define-options: ^0.6.1 + vant: 3.5.2 + vite: 2.9.13 + vite-plugin-checker: ^0.4.7 + vite-plugin-windicss: ^1.8.6 + vue: 3.2.37 + vue-eslint-parser: ^9.0.3 + vue-router: ^4.0.16 + vue-tsc: ^0.38.2 vuedraggable: ^4.1.0 - windicss: ^3.4.2 + windicss: ^3.5.6 dependencies: - '@element-plus/icons-vue': 0.2.4_vue@3.2.26 + '@element-plus/icons-vue': 2.0.6_vue@3.2.37 '@vant/touch-emulator': 1.3.2 - '@vueuse/core': 7.5.3_vue@3.2.26 - '@vueuse/integrations': 7.5.3_vue@3.2.26 + '@vueuse/core': 8.7.5_vue@3.2.37 + '@vueuse/integrations': 8.7.5_44yexj3ri2snr37tpylk774ef4 animate.css: 4.1.1 - axios: 0.24.0 - dayjs: 1.10.7 - dexie: 3.2.0 - element-plus: 1.3.0-beta.5_vue@3.2.26 + axios: 0.27.2 + dayjs: 1.11.3 + dexie: 3.2.2 + element-plus: 2.2.8_vue@3.2.37 lodash-es: 4.17.21 - monaco-editor: 0.31.1 - nanoid: 3.1.32 + monaco-editor: 0.33.0 + nanoid: 4.0.0 normalize.css: 8.0.1 nprogress: 1.0.0-1 - pinia: 2.0.9_typescript@4.5.4+vue@3.2.26 + pinia: 2.0.14_j6bzmzd4ujpabbp5objtwxyjp4 qrcode: 1.5.0 - qs: 6.10.3 - vant: 3.4.1_vue@3.2.26 - vue: 3.2.26 - vue-router: 4.0.12_vue@3.2.26 - vuedraggable: 4.1.0_vue@3.2.26 + qs: 6.11.0 + vant: 3.5.2_vue@3.2.37 + vue: 3.2.37 + vue-router: 4.0.16_vue@3.2.37 + vuedraggable: 4.1.0_vue@3.2.37 devDependencies: - '@commitlint/cli': 16.0.2_@types+node@17.0.8 - '@commitlint/config-conventional': 16.0.0 - '@types/lodash-es': 4.17.5 - '@types/node': 17.0.8 - '@typescript-eslint/eslint-plugin': 5.9.1_bbe74534e31a8c21f1b3522447c55341 - '@typescript-eslint/parser': 5.9.1_eslint@8.7.0+typescript@4.5.4 - '@vitejs/plugin-legacy': 1.6.4_vite@2.7.12 - '@vitejs/plugin-vue': 2.0.1_vite@2.7.12+vue@3.2.26 - '@vitejs/plugin-vue-jsx': 1.3.3 - '@vue/compiler-sfc': 3.2.26 - commitizen: 4.2.4_@types+node@17.0.8 + '@commitlint/cli': 17.0.3 + '@commitlint/config-conventional': 17.0.3 + '@types/lodash-es': 4.17.6 + '@types/node': 18.0.0 + '@typescript-eslint/eslint-plugin': 5.30.3_xuuykav7urhdozug7htlfgar3u + '@typescript-eslint/parser': 5.30.3_4x5o4skxv6sl53vpwefgt23khm + '@vitejs/plugin-legacy': 1.8.2_vite@2.9.13 + '@vitejs/plugin-vue': 2.3.3_vite@2.9.13+vue@3.2.37 + '@vitejs/plugin-vue-jsx': 1.3.10 + commitizen: 4.2.4 conventional-changelog-cli: 2.2.2 cross-env: 7.0.3 - eslint: 8.7.0 - eslint-config-prettier: 8.3.0_eslint@8.7.0 - eslint-define-config: 1.2.2 - eslint-plugin-prettier: 4.0.0_4660519532e4c3b0a9e5bb6623cfedf6 - eslint-plugin-vue: 8.3.0_eslint@8.7.0 - husky: 7.0.4 - lint-staged: 12.1.7 - postcss-html: 1.3.0 - prettier: 2.5.1 - sass: 1.48.0 - stylelint: 14.2.0 - stylelint-config-html: 1.0.0_2d1bcf73d0f2e8e613ccd6d821b0344f - stylelint-config-prettier: 9.0.3_stylelint@14.2.0 - stylelint-config-recommended: 6.0.0_stylelint@14.2.0 - stylelint-config-standard: 24.0.0_stylelint@14.2.0 - stylelint-order: 5.0.0_stylelint@14.2.0 - stylelint-scss: 4.1.0_stylelint@14.2.0 - typescript: 4.5.4 - unplugin-auto-import: 0.5.11_@vueuse+core@7.5.3+vite@2.7.12 - unplugin-vue-components: 0.17.11_vite@2.7.12+vue@3.2.26 - vite: 2.7.12_sass@1.48.0 - vite-plugin-windicss: 1.6.2_vite@2.7.12 - vue-eslint-parser: 8.0.1_eslint@8.7.0 - windicss: 3.4.2 + eslint: 8.19.0 + eslint-config-prettier: 8.5.0_eslint@8.19.0 + eslint-define-config: 1.5.1 + eslint-plugin-import: 2.26.0_xgi3rtbx7oxkcq3vxqkef6isyu + eslint-plugin-prettier: 4.2.1_7uxdfn2xinezdgvmbammh6ev5i + eslint-plugin-vue: 9.1.1_eslint@8.19.0 + husky: 8.0.1 + lint-staged: 13.0.3 + postcss: 8.4.14 + postcss-html: 1.4.1 + postcss-scss: 4.0.4_postcss@8.4.14 + prettier: 2.7.1 + pretty-quick: 3.1.3_prettier@2.7.1 + rimraf: 3.0.2 + sass: 1.53.0 + stylelint: 14.9.1 + stylelint-config-html: 1.0.0_rbvrlex3zkw5dqq3eg5f64dp2u + stylelint-config-prettier: 9.0.3_stylelint@14.9.1 + stylelint-config-recommended: 8.0.0_stylelint@14.9.1 + stylelint-config-standard: 26.0.0_stylelint@14.9.1 + stylelint-order: 5.0.0_stylelint@14.9.1 + stylelint-scss: 4.2.0_stylelint@14.9.1 + typescript: 4.7.4 + unplugin-auto-import: 0.9.2_5smtrbmayeckluww3ebuwm6kim + unplugin-vue-components: 0.21.0_vite@2.9.13+vue@3.2.37 + unplugin-vue-define-options: 0.6.1_vite@2.9.13+vue@3.2.37 + vite: 2.9.13_sass@1.53.0 + vite-plugin-checker: 0.4.7_vite@2.9.13 + vite-plugin-windicss: 1.8.6_vite@2.9.13 + vue-eslint-parser: 9.0.3_eslint@8.19.0 + vue-tsc: 0.38.2_typescript@4.7.4 + windicss: 3.5.6 packages: - /@antfu/utils/0.3.0: - resolution: {integrity: sha512-UU8TLr/EoXdg7OjMp0h9oDoIAVr+Z/oW9cpOxQQyrsz6Qzd2ms/1CdWx8fl2OQdFpxGmq5Vc4TwfLHId6nAZjA==} + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} dependencies: - '@types/throttle-debounce': 2.1.0 + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.14 dev: true - /@antfu/utils/0.4.0: - resolution: {integrity: sha512-gqkpvjkgFUu+s3kP+Ly33OKpo5zvVY3FDFhv5BIb98SncS3KD6DNxPfNDjwHIoyXbz1leWo1j8DtRLZ1D2Jv+Q==} - dependencies: - '@types/throttle-debounce': 2.1.0 + /@antfu/utils/0.5.2: + resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==} dev: true /@babel/code-frame/7.16.7: @@ -143,77 +157,84 @@ packages: '@babel/highlight': 7.16.7 dev: true - /@babel/compat-data/7.16.4: - resolution: {integrity: sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==} + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/compat-data/7.18.6: + resolution: {integrity: sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.16.7: - resolution: {integrity: sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==} + /@babel/core/7.18.6: + resolution: {integrity: sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.16.7 - '@babel/generator': 7.16.7 - '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.16.7 - '@babel/helper-module-transforms': 7.16.7 - '@babel/helpers': 7.16.7 - '@babel/parser': 7.16.7 - '@babel/template': 7.16.7 - '@babel/traverse': 7.16.7 - '@babel/types': 7.16.7 + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.18.7 + '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.18.6 + '@babel/helper-module-transforms': 7.18.6 + '@babel/helpers': 7.18.6 + '@babel/parser': 7.18.6 + '@babel/template': 7.18.6 + '@babel/traverse': 7.18.6 + '@babel/types': 7.18.7 convert-source-map: 1.8.0 - debug: 4.3.3 + debug: 4.3.4 gensync: 1.0.0-beta.2 - json5: 2.2.0 + json5: 2.2.1 semver: 6.3.0 - source-map: 0.5.7 transitivePeerDependencies: - supports-color dev: true - /@babel/generator/7.16.7: - resolution: {integrity: sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg==} + /@babel/generator/7.18.7: + resolution: {integrity: sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.18.7 + '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 - source-map: 0.5.7 dev: true - /@babel/helper-annotate-as-pure/7.16.7: - resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==} + /@babel/helper-annotate-as-pure/7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.18.7 dev: true - /@babel/helper-compilation-targets/7.16.7_@babel+core@7.16.7: - resolution: {integrity: sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==} + /@babel/helper-compilation-targets/7.18.6_@babel+core@7.18.6: + resolution: {integrity: sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.16.4 - '@babel/core': 7.16.7 - '@babel/helper-validator-option': 7.16.7 - browserslist: 4.19.1 + '@babel/compat-data': 7.18.6 + '@babel/core': 7.18.6 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.1 semver: 6.3.0 dev: true - /@babel/helper-create-class-features-plugin/7.16.7_@babel+core@7.16.7: - resolution: {integrity: sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==} + /@babel/helper-create-class-features-plugin/7.18.6_@babel+core@7.18.6: + resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.16.7 - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-function-name': 7.16.7 - '@babel/helper-member-expression-to-functions': 7.16.7 - '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/helper-replace-supers': 7.16.7 - '@babel/helper-split-export-declaration': 7.16.7 + '@babel/core': 7.18.6 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.6 + '@babel/helper-function-name': 7.18.6 + '@babel/helper-member-expression-to-functions': 7.18.6 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 transitivePeerDependencies: - supports-color dev: true @@ -222,7 +243,12 @@ packages: resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.18.7 + dev: true + + /@babel/helper-environment-visitor/7.18.6: + resolution: {integrity: sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==} + engines: {node: '>=6.9.0'} dev: true /@babel/helper-function-name/7.16.7: @@ -230,59 +256,81 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-get-function-arity': 7.16.7 - '@babel/template': 7.16.7 - '@babel/types': 7.16.7 + '@babel/template': 7.18.6 + '@babel/types': 7.18.7 + dev: true + + /@babel/helper-function-name/7.18.6: + resolution: {integrity: sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.6 + '@babel/types': 7.18.7 dev: true /@babel/helper-get-function-arity/7.16.7: resolution: {integrity: sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.18.7 dev: true /@babel/helper-hoist-variables/7.16.7: resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.18.7 dev: true - /@babel/helper-member-expression-to-functions/7.16.7: - resolution: {integrity: sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==} + /@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.18.7 + dev: true + + /@babel/helper-member-expression-to-functions/7.18.6: + resolution: {integrity: sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.7 dev: true /@babel/helper-module-imports/7.16.7: resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.18.7 dev: true - /@babel/helper-module-transforms/7.16.7: - resolution: {integrity: sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==} + /@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-module-imports': 7.16.7 - '@babel/helper-simple-access': 7.16.7 - '@babel/helper-split-export-declaration': 7.16.7 - '@babel/helper-validator-identifier': 7.16.7 - '@babel/template': 7.16.7 - '@babel/traverse': 7.16.7 - '@babel/types': 7.16.7 + '@babel/types': 7.18.7 + dev: true + + /@babel/helper-module-transforms/7.18.6: + resolution: {integrity: sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.18.6 + '@babel/template': 7.18.6 + '@babel/traverse': 7.18.6 + '@babel/types': 7.18.7 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-optimise-call-expression/7.16.7: - resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==} + /@babel/helper-optimise-call-expression/7.18.6: + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.18.7 dev: true /@babel/helper-plugin-utils/7.16.7: @@ -290,31 +338,43 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-replace-supers/7.16.7: - resolution: {integrity: sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==} + /@babel/helper-plugin-utils/7.18.6: + resolution: {integrity: sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-replace-supers/7.18.6: + resolution: {integrity: sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-member-expression-to-functions': 7.16.7 - '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/traverse': 7.16.7 - '@babel/types': 7.16.7 + '@babel/helper-environment-visitor': 7.18.6 + '@babel/helper-member-expression-to-functions': 7.18.6 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/traverse': 7.18.6 + '@babel/types': 7.18.7 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-simple-access/7.16.7: - resolution: {integrity: sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==} + /@babel/helper-simple-access/7.18.6: + resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.18.7 dev: true /@babel/helper-split-export-declaration/7.16.7: resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.18.7 + dev: true + + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.7 dev: true /@babel/helper-validator-identifier/7.16.7: @@ -322,18 +382,22 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option/7.16.7: - resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} + /@babel/helper-validator-identifier/7.18.6: + resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option/7.18.6: + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.16.7: - resolution: {integrity: sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==} + /@babel/helpers/7.18.6: + resolution: {integrity: sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.16.7 - '@babel/traverse': 7.16.7 - '@babel/types': 7.16.7 + '@babel/template': 7.18.6 + '@babel/traverse': 7.18.6 + '@babel/types': 7.18.7 transitivePeerDependencies: - supports-color dev: true @@ -347,56 +411,67 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.16.7: - resolution: {integrity: sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==} + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.18.6 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.18.6: + resolution: {integrity: sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.18.7 - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.16.7: + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.18.6: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.7 + '@babel/core': 7.18.6 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.16.7: + /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.18.6: resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.7 - '@babel/helper-plugin-utils': 7.16.7 + '@babel/core': 7.18.6 + '@babel/helper-plugin-utils': 7.18.6 dev: true - /@babel/plugin-syntax-typescript/7.16.7_@babel+core@7.16.7: - resolution: {integrity: sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==} + /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.18.6: + resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.7 - '@babel/helper-plugin-utils': 7.16.7 + '@babel/core': 7.18.6 + '@babel/helper-plugin-utils': 7.18.6 dev: true - /@babel/plugin-transform-typescript/7.16.7_@babel+core@7.16.7: - resolution: {integrity: sha512-Hzx1lvBtOCWuCEwMmYOfpQpO7joFeXLgoPuzZZBtTxXqSqUGUubvFGZv2ygo1tB5Bp9q6PXV3H0E/kf7KM0RLA==} + /@babel/plugin-transform-typescript/7.18.6_@babel+core@7.18.6: + resolution: {integrity: sha512-ijHNhzIrLj5lQCnI6aaNVRtGVuUZhOXFLRVFs7lLrkXTHip4FKty5oAuQdk4tywG0/WjXmjTfQCWmuzrvFer1w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.7 - '@babel/helper-create-class-features-plugin': 7.16.7_@babel+core@7.16.7 - '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-typescript': 7.16.7_@babel+core@7.16.7 + '@babel/core': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.18.6_@babel+core@7.18.6 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.18.6 transitivePeerDependencies: - supports-color dev: true - /@babel/standalone/7.16.7: - resolution: {integrity: sha512-NlZijlgcJ45JRdk/3c+Q034+Ngi9oJBgemfVRLULb6iv6lyQaHm4LeRNtWtPWNmr3auRrMs/nc8ZQ/8OyIbeuw==} + /@babel/standalone/7.18.7: + resolution: {integrity: sha512-AIOn3ON0KhYqAbvmkT11vi/YAlhrPn6RSPQb8Hl3PUZoE1yFwut5fQ9/oJ4Dvf2SGmO41pF7xmwP2W1RT0uJCA==} engines: {node: '>=6.9.0'} dev: true @@ -404,24 +479,51 @@ packages: resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.16.7 - '@babel/parser': 7.16.7 - '@babel/types': 7.16.7 + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.18.6 + '@babel/types': 7.18.7 + dev: true + + /@babel/template/7.18.6: + resolution: {integrity: sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.18.6 + '@babel/types': 7.18.7 dev: true /@babel/traverse/7.16.7: resolution: {integrity: sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.16.7 - '@babel/generator': 7.16.7 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.18.7 '@babel/helper-environment-visitor': 7.16.7 '@babel/helper-function-name': 7.16.7 '@babel/helper-hoist-variables': 7.16.7 '@babel/helper-split-export-declaration': 7.16.7 - '@babel/parser': 7.16.7 - '@babel/types': 7.16.7 - debug: 4.3.3 + '@babel/parser': 7.18.6 + '@babel/types': 7.18.7 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/traverse/7.18.6: + resolution: {integrity: sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.18.7 + '@babel/helper-environment-visitor': 7.18.6 + '@babel/helper-function-name': 7.18.6 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.18.6 + '@babel/types': 7.18.7 + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -435,16 +537,24 @@ packages: to-fast-properties: 2.0.0 dev: true - /@commitlint/cli/16.0.2_@types+node@17.0.8: - resolution: {integrity: sha512-Jt7iaBjoLGC5Nq4dHPTvTYnqPGkElFPBtTXTvBpTgatZApczyjI2plE0oG4GYWPp1suHIS/VdVDOMpPZjGVusg==} - engines: {node: '>=v12'} + /@babel/types/7.18.7: + resolution: {integrity: sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.18.6 + to-fast-properties: 2.0.0 + + /@commitlint/cli/17.0.3: + resolution: {integrity: sha512-oAo2vi5d8QZnAbtU5+0cR2j+A7PO8zuccux65R/EycwvsZrDVyW518FFrnJK2UQxbRtHFFIG+NjQ6vOiJV0Q8A==} + engines: {node: '>=v14'} hasBin: true dependencies: - '@commitlint/format': 16.0.0 - '@commitlint/lint': 16.0.0 - '@commitlint/load': 16.0.0_@types+node@17.0.8 - '@commitlint/read': 16.0.0 - '@commitlint/types': 16.0.0 + '@commitlint/format': 17.0.0 + '@commitlint/lint': 17.0.3 + '@commitlint/load': 17.0.3 + '@commitlint/read': 17.0.0 + '@commitlint/types': 17.0.0 + execa: 5.1.1 lodash: 4.17.21 resolve-from: 5.0.0 resolve-global: 1.0.0 @@ -452,205 +562,213 @@ packages: transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - - '@types/node' dev: true - /@commitlint/config-conventional/16.0.0: - resolution: {integrity: sha512-mN7J8KlKFn0kROd+q9PB01sfDx/8K/R25yITspL1No8PB4oj9M1p77xWjP80hPydqZG9OvQq+anXK3ZWeR7s3g==} - engines: {node: '>=v12'} + /@commitlint/config-conventional/17.0.3: + resolution: {integrity: sha512-HCnzTm5ATwwwzNVq5Y57poS0a1oOOcd5pc1MmBpLbGmSysc4i7F/++JuwtdFPu16sgM3H9J/j2zznRLOSGVO2A==} + engines: {node: '>=v14'} dependencies: - conventional-changelog-conventionalcommits: 4.6.3 + conventional-changelog-conventionalcommits: 5.0.0 dev: true - /@commitlint/config-validator/16.0.0: - resolution: {integrity: sha512-i80DGlo1FeC5jZpuoNV9NIjQN/m2dDV3jYGWg+1Wr+KldptkUHXj+6GY1Akll66lJ3D8s6aUGi3comPLHPtWHg==} - engines: {node: '>=v12'} + /@commitlint/config-validator/17.0.3: + resolution: {integrity: sha512-3tLRPQJKapksGE7Kee9axv+9z5I2GDHitDH4q63q7NmNA0wkB+DAorJ0RHz2/K00Zb1/MVdHzhCga34FJvDihQ==} + engines: {node: '>=v14'} dependencies: - '@commitlint/types': 16.0.0 - ajv: 6.12.6 + '@commitlint/types': 17.0.0 + ajv: 8.11.0 dev: true - /@commitlint/ensure/16.0.0: - resolution: {integrity: sha512-WdMySU8DCTaq3JPf0tZFCKIUhqxaL54mjduNhu8v4D2AMUVIIQKYMGyvXn94k8begeW6iJkTf9cXBArayskE7Q==} - engines: {node: '>=v12'} + /@commitlint/ensure/17.0.0: + resolution: {integrity: sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A==} + engines: {node: '>=v14'} dependencies: - '@commitlint/types': 16.0.0 + '@commitlint/types': 17.0.0 lodash: 4.17.21 dev: true - /@commitlint/execute-rule/16.0.0: - resolution: {integrity: sha512-8edcCibmBb386x5JTHSPHINwA5L0xPkHQFY8TAuDEt5QyRZY/o5DF8OPHSa5Hx2xJvGaxxuIz4UtAT6IiRDYkw==} - engines: {node: '>=v12'} + /@commitlint/execute-rule/17.0.0: + resolution: {integrity: sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==} + engines: {node: '>=v14'} dev: true - /@commitlint/format/16.0.0: - resolution: {integrity: sha512-9yp5NCquXL1jVMKL0ZkRwJf/UHdebvCcMvICuZV00NQGYSAL89O398nhqrqxlbjBhM5EZVq0VGcV5+7r3D4zAA==} - engines: {node: '>=v12'} + /@commitlint/format/17.0.0: + resolution: {integrity: sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==} + engines: {node: '>=v14'} dependencies: - '@commitlint/types': 16.0.0 + '@commitlint/types': 17.0.0 chalk: 4.1.2 dev: true - /@commitlint/is-ignored/16.0.0: - resolution: {integrity: sha512-gmAQcwIGC/R/Lp0CEb2b5bfGC7MT5rPe09N8kOGjO/NcdNmfFSZMquwrvNJsq9hnAP0skRdHIsqwlkENkN4Lag==} - engines: {node: '>=v12'} + /@commitlint/is-ignored/17.0.3: + resolution: {integrity: sha512-/wgCXAvPtFTQZxsVxj7owLeRf5wwzcXLaYmrZPR4a87iD4sCvUIRl1/ogYrtOyUmHwWfQsvjqIB4mWE/SqWSnA==} + engines: {node: '>=v14'} dependencies: - '@commitlint/types': 16.0.0 - semver: 7.3.5 + '@commitlint/types': 17.0.0 + semver: 7.3.7 dev: true - /@commitlint/lint/16.0.0: - resolution: {integrity: sha512-HNl15bRC0h+pLzbMzQC3tM0j1aESXsLYhElqKnXcf5mnCBkBkHzu6WwJW8rZbfxX+YwJmNljN62cPhmdBo8x0A==} - engines: {node: '>=v12'} + /@commitlint/lint/17.0.3: + resolution: {integrity: sha512-2o1fk7JUdxBUgszyt41sHC/8Nd5PXNpkmuOo9jvGIjDHzOwXyV0PSdbEVTH3xGz9NEmjohFHr5l+N+T9fcxong==} + engines: {node: '>=v14'} dependencies: - '@commitlint/is-ignored': 16.0.0 - '@commitlint/parse': 16.0.0 - '@commitlint/rules': 16.0.0 - '@commitlint/types': 16.0.0 + '@commitlint/is-ignored': 17.0.3 + '@commitlint/parse': 17.0.0 + '@commitlint/rules': 17.0.0 + '@commitlint/types': 17.0.0 dev: true - /@commitlint/load/16.0.0_@types+node@17.0.8: - resolution: {integrity: sha512-7WhrGCkP6K/XfjBBguLkkI2XUdiiIyMGlNsSoSqgRNiD352EiffhFEApMy1/XOU+viwBBm/On0n5p0NC7e9/4A==} - engines: {node: '>=v12'} + /@commitlint/load/17.0.3: + resolution: {integrity: sha512-3Dhvr7GcKbKa/ey4QJ5MZH3+J7QFlARohUow6hftQyNjzoXXROm+RwpBes4dDFrXG1xDw9QPXA7uzrOShCd4bw==} + engines: {node: '>=v14'} dependencies: - '@commitlint/config-validator': 16.0.0 - '@commitlint/execute-rule': 16.0.0 - '@commitlint/resolve-extends': 16.0.0 - '@commitlint/types': 16.0.0 + '@commitlint/config-validator': 17.0.3 + '@commitlint/execute-rule': 17.0.0 + '@commitlint/resolve-extends': 17.0.3 + '@commitlint/types': 17.0.0 + '@types/node': 18.0.0 chalk: 4.1.2 cosmiconfig: 7.0.1 - cosmiconfig-typescript-loader: 1.0.2_faf01e1d5a40372a98081522dcafc186 + cosmiconfig-typescript-loader: 2.0.2_qiyc72axg2v44xl4yovan2v55u lodash: 4.17.21 resolve-from: 5.0.0 - typescript: 4.5.4 + typescript: 4.7.4 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - - '@types/node' dev: true - /@commitlint/message/16.0.0: - resolution: {integrity: sha512-CmK2074SH1Ws6kFMEKOKH/7hMekGVbOD6vb4alCOo2+33ZSLUIX8iNkDYyrw38Jwg6yWUhLjyQLUxREeV+QIUA==} - engines: {node: '>=v12'} + /@commitlint/message/17.0.0: + resolution: {integrity: sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw==} + engines: {node: '>=v14'} dev: true - /@commitlint/parse/16.0.0: - resolution: {integrity: sha512-F9EjFlMw4MYgBEqoRrWZZKQBzdiJzPBI0qFDFqwUvfQsMmXEREZ242T4R5bFwLINWaALFLHEIa/FXEPa6QxCag==} - engines: {node: '>=v12'} + /@commitlint/parse/17.0.0: + resolution: {integrity: sha512-cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A==} + engines: {node: '>=v14'} dependencies: - '@commitlint/types': 16.0.0 + '@commitlint/types': 17.0.0 conventional-changelog-angular: 5.0.13 conventional-commits-parser: 3.2.4 dev: true - /@commitlint/read/16.0.0: - resolution: {integrity: sha512-H4T2zsfmYQK9B+JtoQaCXWBHUhgIJyOzWZjSfuIV9Ce69/OgHoffNpLZPF2lX6yKuDrS1SQFhI/kUCjVc/e4ew==} - engines: {node: '>=v12'} + /@commitlint/read/17.0.0: + resolution: {integrity: sha512-zkuOdZayKX3J6F6mPnVMzohK3OBrsEdOByIqp4zQjA9VLw1hMsDEFQ18rKgUc2adkZar+4S01QrFreDCfZgbxA==} + engines: {node: '>=v14'} dependencies: - '@commitlint/top-level': 16.0.0 - '@commitlint/types': 16.0.0 + '@commitlint/top-level': 17.0.0 + '@commitlint/types': 17.0.0 fs-extra: 10.0.0 git-raw-commits: 2.0.11 dev: true - /@commitlint/resolve-extends/16.0.0: - resolution: {integrity: sha512-Z/w9MAQUcxeawpCLtjmkVNXAXOmB2nhW+LYmHEZcx9O6UTauF/1+uuZ2/r0MtzTe1qw2JD+1QHVhEWYHVPlkdA==} - engines: {node: '>=v12'} + /@commitlint/resolve-extends/17.0.3: + resolution: {integrity: sha512-H/RFMvrcBeJCMdnVC4i8I94108UDccIHrTke2tyQEg9nXQnR5/Hd6MhyNWkREvcrxh9Y+33JLb+PiPiaBxCtBA==} + engines: {node: '>=v14'} dependencies: - '@commitlint/config-validator': 16.0.0 - '@commitlint/types': 16.0.0 + '@commitlint/config-validator': 17.0.3 + '@commitlint/types': 17.0.0 import-fresh: 3.3.0 lodash: 4.17.21 resolve-from: 5.0.0 resolve-global: 1.0.0 dev: true - /@commitlint/rules/16.0.0: - resolution: {integrity: sha512-AOl0y2SBTdJ1bvIv8nwHvQKRT/jC1xb09C5VZwzHoT8sE8F54KDeEzPCwHQFgUcWdGLyS10kkOTAH2MyA8EIlg==} - engines: {node: '>=v12'} + /@commitlint/rules/17.0.0: + resolution: {integrity: sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ==} + engines: {node: '>=v14'} dependencies: - '@commitlint/ensure': 16.0.0 - '@commitlint/message': 16.0.0 - '@commitlint/to-lines': 16.0.0 - '@commitlint/types': 16.0.0 + '@commitlint/ensure': 17.0.0 + '@commitlint/message': 17.0.0 + '@commitlint/to-lines': 17.0.0 + '@commitlint/types': 17.0.0 execa: 5.1.1 dev: true - /@commitlint/to-lines/16.0.0: - resolution: {integrity: sha512-iN/qU38TCKU7uKOg6RXLpD49wNiuI0TqMqybHbjefUeP/Jmzxa8ishryj0uLyVdrAl1ZjGeD1ukXGMTtvqz8iA==} - engines: {node: '>=v12'} + /@commitlint/to-lines/17.0.0: + resolution: {integrity: sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==} + engines: {node: '>=v14'} dev: true - /@commitlint/top-level/16.0.0: - resolution: {integrity: sha512-/Jt6NLxyFkpjL5O0jxurZPCHURZAm7cQCqikgPCwqPAH0TLgwqdHjnYipl8J+AGnAMGDip4FNLoYrtgIpZGBYw==} - engines: {node: '>=v12'} + /@commitlint/top-level/17.0.0: + resolution: {integrity: sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ==} + engines: {node: '>=v14'} dependencies: find-up: 5.0.0 dev: true - /@commitlint/types/16.0.0: - resolution: {integrity: sha512-+0FvYOAS39bJ4aKjnYn/7FD4DfWkmQ6G/06I4F0Gvu4KS5twirEg8mIcLhmeRDOOKn4Tp8PwpLwBiSA6npEMQA==} - engines: {node: '>=v12'} + /@commitlint/types/17.0.0: + resolution: {integrity: sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==} + engines: {node: '>=v14'} dependencies: chalk: 4.1.2 dev: true - /@cspotcode/source-map-consumer/0.8.0: - resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==} - engines: {node: '>= 12'} + /@cspotcode/source-map-support/0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 dev: true - /@cspotcode/source-map-support/0.7.0: - resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==} - engines: {node: '>=12'} + /@csstools/selector-specificity/2.0.1_444rcjjorr3kpoqtvoodsr46pu: + resolution: {integrity: sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 + postcss-selector-parser: ^6.0.10 dependencies: - '@cspotcode/source-map-consumer': 0.8.0 + postcss: 8.4.14 + postcss-selector-parser: 6.0.10 dev: true - /@ctrl/tinycolor/3.4.0: - resolution: {integrity: sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==} + /@ctrl/tinycolor/3.4.1: + resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==} engines: {node: '>=10'} dev: false - /@drauu/core/0.2.1: - resolution: {integrity: sha512-5CVvRnGNWjk9KVEhVRpLntEEMw3rgcph+lTx2Z+/X0Dli+PIVyPUEnxiOqtOlf5RYcckXZJujVtco1J6RDbecA==} - dependencies: - perfect-freehand: 1.0.16 - dev: false - optional: true - - /@element-plus/icons-vue/0.2.4_vue@3.2.26: - resolution: {integrity: sha512-RsJNyL58rwxtsjeMy34o8txkL6UlME1stWsUlRpTac6UE9Bx9gdJvnDXbIKhOJqBLX17fBjmposdrn6VTqim2w==} + /@element-plus/icons-vue/2.0.6_vue@3.2.37: + resolution: {integrity: sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew==} peerDependencies: vue: ^3.2.0 dependencies: - vue: 3.2.26 + vue: 3.2.37 dev: false - /@eslint/eslintrc/1.0.5: - resolution: {integrity: sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==} + /@eslint/eslintrc/1.3.0: + resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.3 - espree: 9.3.0 - globals: 13.12.0 - ignore: 4.0.6 + debug: 4.3.4 + espree: 9.3.2 + globals: 13.15.0 + ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 - minimatch: 3.0.4 + minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color dev: true + /@floating-ui/core/0.7.3: + resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==} + dev: false + + /@floating-ui/dom/0.5.4: + resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==} + dependencies: + '@floating-ui/core': 0.7.3 + dev: false + /@humanwhocodes/config-array/0.9.2: resolution: {integrity: sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.3 - minimatch: 3.0.4 + debug: 4.3.4 + minimatch: 3.1.2 transitivePeerDependencies: - supports-color dev: true @@ -664,6 +782,51 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.14 + dev: true + + /@jridgewell/resolve-uri/3.0.8: + resolution: {integrity: sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/trace-mapping/0.3.14: + resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} + dependencies: + '@jridgewell/resolve-uri': 3.0.8 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/trace-mapping/0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.0.8 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -689,14 +852,18 @@ packages: resolution: {integrity: sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ==} dev: false - /@rollup/pluginutils/4.1.2: - resolution: {integrity: sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ==} + /@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} dependencies: estree-walker: 2.0.2 picomatch: 2.3.0 dev: true + /@sxzz/popperjs-es/2.11.7: + resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} + dev: false + /@tsconfig/node10/1.0.8: resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} dev: true @@ -713,31 +880,36 @@ packages: resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} dev: true - /@types/cookie/0.3.3: - resolution: {integrity: sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow==} - dev: false - optional: true - /@types/json-schema/7.0.9: resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==} dev: true - /@types/lodash-es/4.17.5: - resolution: {integrity: sha512-SHBoI8/0aoMQWAgUHMQ599VM6ZiSKg8sh/0cFqqlQQMyY9uEplc0ULU5yQNzcvdR4ZKa0ey8+vFmahuRbOCT1A==} + /@types/json5/0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/lodash-es/4.17.6: + resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} dependencies: '@types/lodash': 4.14.178 - dev: true /@types/lodash/4.14.178: resolution: {integrity: sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==} + + /@types/lodash/4.14.182: + resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} + dev: false + + /@types/minimatch/3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} dev: true /@types/minimist/1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/node/17.0.8: - resolution: {integrity: sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==} + /@types/node/18.0.0: + resolution: {integrity: sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==} dev: true /@types/normalize-package-data/2.4.1: @@ -748,12 +920,11 @@ packages: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} dev: true - /@types/throttle-debounce/2.1.0: - resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==} - dev: true + /@types/web-bluetooth/0.0.14: + resolution: {integrity: sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==} - /@typescript-eslint/eslint-plugin/5.9.1_bbe74534e31a8c21f1b3522447c55341: - resolution: {integrity: sha512-Xv9tkFlyD4MQGpJgTo6wqDqGvHIRmRgah/2Sjz1PUnJTawjHWIwBivUE9x0QtU2WVii9baYgavo/bHjrZJkqTw==} + /@typescript-eslint/eslint-plugin/5.30.3_xuuykav7urhdozug7htlfgar3u: + resolution: {integrity: sha512-QEgE1uahnDbWEkZlidq7uKB630ny1NN8KbLPmznX+8hYsYpoV1/quG1Nzvs141FVuumuS7O0EpqYw3RB4AVzRg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -763,42 +934,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 5.9.1_eslint@8.7.0+typescript@4.5.4 - '@typescript-eslint/parser': 5.9.1_eslint@8.7.0+typescript@4.5.4 - '@typescript-eslint/scope-manager': 5.9.1 - '@typescript-eslint/type-utils': 5.9.1_eslint@8.7.0+typescript@4.5.4 - debug: 4.3.3 - eslint: 8.7.0 + '@typescript-eslint/parser': 5.30.3_4x5o4skxv6sl53vpwefgt23khm + '@typescript-eslint/scope-manager': 5.30.3 + '@typescript-eslint/type-utils': 5.30.3_4x5o4skxv6sl53vpwefgt23khm + '@typescript-eslint/utils': 5.30.3_4x5o4skxv6sl53vpwefgt23khm + debug: 4.3.4 + eslint: 8.19.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.4 - typescript: 4.5.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/experimental-utils/5.9.1_eslint@8.7.0+typescript@4.5.4: - resolution: {integrity: sha512-cb1Njyss0mLL9kLXgS/eEY53SZQ9sT519wpX3i+U457l2UXRDuo87hgKfgRazmu9/tQb0x2sr3Y0yrU+Zz0y+w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.9.1 - '@typescript-eslint/types': 5.9.1 - '@typescript-eslint/typescript-estree': 5.9.1_typescript@4.5.4 - eslint: 8.7.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.7.0 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 transitivePeerDependencies: - supports-color - - typescript dev: true - /@typescript-eslint/parser/5.9.1_eslint@8.7.0+typescript@4.5.4: - resolution: {integrity: sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g==} + /@typescript-eslint/parser/5.30.3_4x5o4skxv6sl53vpwefgt23khm: + resolution: {integrity: sha512-ddwGEPC3E49DduAUC8UThQafHRE5uc1NE8jdOgl+w8/NrYF50MJQNeD3u4JZrqAXdY9rJz0CdQ9HpNME20CzkA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -807,26 +960,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.9.1 - '@typescript-eslint/types': 5.9.1 - '@typescript-eslint/typescript-estree': 5.9.1_typescript@4.5.4 - debug: 4.3.3 - eslint: 8.7.0 - typescript: 4.5.4 + '@typescript-eslint/scope-manager': 5.30.3 + '@typescript-eslint/types': 5.30.3 + '@typescript-eslint/typescript-estree': 5.30.3_typescript@4.7.4 + debug: 4.3.4 + eslint: 8.19.0 + typescript: 4.7.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.9.1: - resolution: {integrity: sha512-8BwvWkho3B/UOtzRyW07ffJXPaLSUKFBjpq8aqsRvu6HdEuzCY57+ffT7QoV4QXJXWSU1+7g3wE4AlgImmQ9pQ==} + /@typescript-eslint/scope-manager/5.30.3: + resolution: {integrity: sha512-yVJIIUXeo/vv6Alj6lKBvsqnRs5hcxUpN3Dg3aD9Zv6r7p6Nn106jJcr5rnpRHAReEb/aMI2RWrt3JmL17eCVA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.9.1 - '@typescript-eslint/visitor-keys': 5.9.1 + '@typescript-eslint/types': 5.30.3 + '@typescript-eslint/visitor-keys': 5.30.3 dev: true - /@typescript-eslint/type-utils/5.9.1_eslint@8.7.0+typescript@4.5.4: - resolution: {integrity: sha512-tRSpdBnPRssjlUh35rE9ug5HrUvaB9ntREy7gPXXKwmIx61TNN7+l5YKgi1hMKxo5NvqZCfYhA5FvyuJG6X6vg==} + /@typescript-eslint/type-utils/5.30.3_4x5o4skxv6sl53vpwefgt23khm: + resolution: {integrity: sha512-IIzakE7OXOqdwPaXhRiPnaZ8OuJJYBLufOffd9fqzkI4IMFIYq8KC7bghdnF7QUJTirURRErQFrJ/w5UpwIqaw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -835,22 +988,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 5.9.1_eslint@8.7.0+typescript@4.5.4 - debug: 4.3.3 - eslint: 8.7.0 - tsutils: 3.21.0_typescript@4.5.4 - typescript: 4.5.4 + '@typescript-eslint/utils': 5.30.3_4x5o4skxv6sl53vpwefgt23khm + debug: 4.3.4 + eslint: 8.19.0 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.9.1: - resolution: {integrity: sha512-SsWegWudWpkZCwwYcKoDwuAjoZXnM1y2EbEerTHho19Hmm+bQ56QG4L4jrtCu0bI5STaRTvRTZmjprWlTw/5NQ==} + /@typescript-eslint/types/5.30.3: + resolution: {integrity: sha512-vshU3pjSTgBPNgfd55JLYngHkXuwQP68fxYFUAg1Uq+JrR3xG/XjvL9Dmv28CpOERtqwkaR4QQ3mD0NLZcE2Xw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.9.1_typescript@4.5.4: - resolution: {integrity: sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A==} + /@typescript-eslint/typescript-estree/5.30.3_typescript@4.7.4: + resolution: {integrity: sha512-jqVh5N9AJx6+7yRgoA+ZelAFrHezgI9pzI9giv7s84DDOmtpFwTgURcpICDHyz9x6vAeOu91iACZ4dBTVfzIyA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -858,32 +1011,50 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.9.1 - '@typescript-eslint/visitor-keys': 5.9.1 - debug: 4.3.3 - globby: 11.0.4 + '@typescript-eslint/types': 5.30.3 + '@typescript-eslint/visitor-keys': 5.30.3 + debug: 4.3.4 + globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.4 - typescript: 4.5.4 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils/5.30.3_4x5o4skxv6sl53vpwefgt23khm: + resolution: {integrity: sha512-OEaBXGxxdIy35H+jyXfYAMQ66KMJczK9hEhL3gR6IRbWe5PyK+bPDC9zbQNVII6rNFTfF/Mse0z21NlEU+vOMw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.9 + '@typescript-eslint/scope-manager': 5.30.3 + '@typescript-eslint/types': 5.30.3 + '@typescript-eslint/typescript-estree': 5.30.3_typescript@4.7.4 + eslint: 8.19.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.19.0 transitivePeerDependencies: - supports-color + - typescript dev: true - /@typescript-eslint/visitor-keys/5.9.1: - resolution: {integrity: sha512-Xh37pNz9e9ryW4TVdwiFzmr4hloty8cFj8GTWMXh3Z8swGwyQWeCcNgF0hm6t09iZd6eiZmIf4zHedQVP6TVtg==} + /@typescript-eslint/visitor-keys/5.30.3: + resolution: {integrity: sha512-ep2xtHOhnSRt6fDP9DSSxrA/FqZhdMF7/Y9fYsxrKss2uWJMbzJyBJ/We1fKc786BJ10pHwrzUlhvpz8i7XzBg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.9.1 - eslint-visitor-keys: 3.1.0 + '@typescript-eslint/types': 5.30.3 + eslint-visitor-keys: 3.3.0 dev: true - /@vant/icons/1.7.3: - resolution: {integrity: sha512-tW4EqzxN4kXw1rnlnQJQHofEifPbt/gECOWiibomht8QLyvoGuE4iUmDFS288dJ07ZjuTy0bhdABj0SENo2fmQ==} + /@vant/icons/1.8.0: + resolution: {integrity: sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg==} dev: false - /@vant/popperjs/1.1.0: - resolution: {integrity: sha512-8MD1gz146awV/uPxYjz4pet22f7a9YVKqk7T+gFkWFwT9mEcrIUEg/xPrdOnWKLP9puXyYtm7oVfSDSefZ/p/w==} + /@vant/popperjs/1.2.1: + resolution: {integrity: sha512-qzQlrPE4aOsBzfrktDVwzQy/QICCTKifmjrruhY58+Q2fobUYp/T9QINluIafzsD3VJwgP8+HFVLBsyDmy3VZQ==} dependencies: '@popperjs/core': 2.11.0 dev: false @@ -892,153 +1063,179 @@ packages: resolution: {integrity: sha512-Om6e8kCAnmk/q8byngKreff7Hyn6XxwOGr8yedP3y3LEVoE+iyj8/+Mn+AYvGEQ00GK0MlgAfyaV4emXAYj1Hw==} dev: false - /@vant/use/1.3.4: - resolution: {integrity: sha512-XvZkPCjcmEBhD+T3vB68thOG6P9jazld6aBTMenhbAQd4FT/x9AiKIWPJx4MvhYoSIWt7fju6K01XTJldWs1hw==} + /@vant/use/1.4.1: + resolution: {integrity: sha512-YonNN0SuJLEJuqdoMcVAJm2JUZWkHNrW81QzeF6FLyG5HFUGlmTM5Sby7gdS3Z/8UDMlkWRQpJxBWbmVzmUWxQ==} dev: false - /@vitejs/plugin-legacy/1.6.4_vite@2.7.12: - resolution: {integrity: sha512-geH2F3hTRN++E4n9NZ0JFumxIWUKqW4FA9PAgM7Q6RvUOUUYW4tlURhEmCBYfZSN24H/yX3mEolX+wFVErsAYQ==} + /@vitejs/plugin-legacy/1.8.2_vite@2.9.13: + resolution: {integrity: sha512-NCOKU+pU+cxLMR9P9RTolEuOK+h+zYBXlknj+zGcKSj/NXBZYgA1GAH1FnO4zijoWRiTaiOm2ha9LQrELE7XHg==} engines: {node: '>=12.0.0'} peerDependencies: - vite: ^2.0.0 + vite: ^2.8.0 dependencies: - '@babel/standalone': 7.16.7 - core-js: 3.20.1 - magic-string: 0.25.7 + '@babel/standalone': 7.18.7 + core-js: 3.23.3 + magic-string: 0.26.2 regenerator-runtime: 0.13.9 - systemjs: 6.11.0 - vite: 2.7.12_sass@1.48.0 + systemjs: 6.12.1 + vite: 2.9.13_sass@1.53.0 dev: true - /@vitejs/plugin-vue-jsx/1.3.3: - resolution: {integrity: sha512-VSBXVqMcxbgX85rgJC1eMWuZ9hzOJhWPvGYlKxyymPokE/i3Gykh5ljkCoNdxnKgIyFqv4WutYoYY93fgjbTxA==} + /@vitejs/plugin-vue-jsx/1.3.10: + resolution: {integrity: sha512-Cf5zznh4yNMiEMBfTOztaDVDmK1XXfgxClzOSUVUc8WAmHzogrCUeM8B05ABzuGtg0D1amfng+mUmSIOFGP3Pw==} engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.16.7 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.16.7 - '@babel/plugin-transform-typescript': 7.16.7_@babel+core@7.16.7 - '@rollup/pluginutils': 4.1.2 - '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.16.7 + '@babel/core': 7.18.6 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.18.6 + '@babel/plugin-transform-typescript': 7.18.6_@babel+core@7.18.6 + '@rollup/pluginutils': 4.2.1 + '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.18.6 hash-sum: 2.0.0 transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-vue/2.0.1_vite@2.7.12+vue@3.2.26: - resolution: {integrity: sha512-wtdMnGVvys9K8tg+DxowU1ytTrdVveXr3LzdhaKakysgGXyrsfaeds2cDywtvujEASjWOwWL/OgWM+qoeM8Plg==} + /@vitejs/plugin-vue/2.3.3_vite@2.9.13+vue@3.2.37: + resolution: {integrity: sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==} engines: {node: '>=12.0.0'} peerDependencies: vite: ^2.5.10 vue: ^3.2.25 dependencies: - vite: 2.7.12_sass@1.48.0 - vue: 3.2.26 + vite: 2.9.13_sass@1.53.0 + vue: 3.2.37 + dev: true + + /@volar/code-gen/0.38.2: + resolution: {integrity: sha512-H81I6d7rZB7teqL+zhK/Xz1v0/kKkUwkB0Aq6b4+BTCqcJeiZkoWxd0gFhrhWTnUoqiM83lhoTGo2vkvx5YagQ==} + dependencies: + '@volar/source-map': 0.38.2 + dev: true + + /@volar/source-map/0.38.2: + resolution: {integrity: sha512-DWcYbYt9SPwk0r4VmXk1F0v4X5+hCqH1JRkAWSeJymQyXCQ2OQDEbY2PF12a7y2qn4FUBD2gOba2TynAqI8ZFQ==} + dev: true + + /@volar/vue-code-gen/0.38.2: + resolution: {integrity: sha512-whLunD6phSGWBUHZKdTxeglrpzQu26ii8CRVapFdjfyMaVhQ7ESNeIAhkTVyg2ovOPc0PiDYPQEPzfWAADIWog==} + dependencies: + '@volar/code-gen': 0.38.2 + '@volar/source-map': 0.38.2 + '@vue/compiler-core': 3.2.37 + '@vue/compiler-dom': 3.2.37 + '@vue/shared': 3.2.37 + dev: true + + /@volar/vue-typescript/0.38.2: + resolution: {integrity: sha512-5IKvSK2m5yUmH6iu/tNScVlvJGuiHawTfSmjxaMs+/tod25WeK37LEdf+pdKtlJ30bYTQmmkAuEfG01QvvBRGQ==} + dependencies: + '@volar/code-gen': 0.38.2 + '@volar/source-map': 0.38.2 + '@volar/vue-code-gen': 0.38.2 + '@vue/compiler-sfc': 3.2.37 + '@vue/reactivity': 3.2.37 dev: true /@vue/babel-helper-vue-transform-on/1.0.2: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} dev: true - /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.16.7: + /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.18.6: resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==} dependencies: '@babel/helper-module-imports': 7.16.7 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.16.7 + '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.18.6 '@babel/template': 7.16.7 '@babel/traverse': 7.16.7 '@babel/types': 7.16.7 '@vue/babel-helper-vue-transform-on': 1.0.2 camelcase: 6.2.1 - html-tags: 3.1.0 + html-tags: 3.2.0 svg-tags: 1.0.0 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /@vue/compiler-core/3.2.26: - resolution: {integrity: sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==} + /@vue/compiler-core/3.2.37: + resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} dependencies: - '@babel/parser': 7.16.7 - '@vue/shared': 3.2.26 + '@babel/parser': 7.18.6 + '@vue/shared': 3.2.37 estree-walker: 2.0.2 source-map: 0.6.1 - /@vue/compiler-dom/3.2.26: - resolution: {integrity: sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==} + /@vue/compiler-dom/3.2.37: + resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} dependencies: - '@vue/compiler-core': 3.2.26 - '@vue/shared': 3.2.26 + '@vue/compiler-core': 3.2.37 + '@vue/shared': 3.2.37 - /@vue/compiler-sfc/3.2.26: - resolution: {integrity: sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw==} + /@vue/compiler-sfc/3.2.37: + resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} dependencies: - '@babel/parser': 7.16.7 - '@vue/compiler-core': 3.2.26 - '@vue/compiler-dom': 3.2.26 - '@vue/compiler-ssr': 3.2.26 - '@vue/reactivity-transform': 3.2.26 - '@vue/shared': 3.2.26 + '@babel/parser': 7.18.6 + '@vue/compiler-core': 3.2.37 + '@vue/compiler-dom': 3.2.37 + '@vue/compiler-ssr': 3.2.37 + '@vue/reactivity-transform': 3.2.37 + '@vue/shared': 3.2.37 estree-walker: 2.0.2 magic-string: 0.25.7 - postcss: 8.4.5 + postcss: 8.4.14 source-map: 0.6.1 - /@vue/compiler-ssr/3.2.26: - resolution: {integrity: sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag==} + /@vue/compiler-ssr/3.2.37: + resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} dependencies: - '@vue/compiler-dom': 3.2.26 - '@vue/shared': 3.2.26 + '@vue/compiler-dom': 3.2.37 + '@vue/shared': 3.2.37 - /@vue/devtools-api/6.0.0-beta.21.1: - resolution: {integrity: sha512-FqC4s3pm35qGVeXRGOjTsRzlkJjrBLriDS9YXbflHLsfA9FrcKzIyWnLXoNm+/7930E8rRakXuAc2QkC50swAw==} + /@vue/devtools-api/6.2.0: + resolution: {integrity: sha512-pF1G4wky+hkifDiZSWn8xfuLOJI1ZXtuambpBEYaf7Xaf6zC/pM29rvAGpd3qaGXnr4BAXU1Pxz/VfvBGwexGA==} dev: false - /@vue/reactivity-transform/3.2.26: - resolution: {integrity: sha512-XKMyuCmzNA7nvFlYhdKwD78rcnmPb7q46uoR00zkX6yZrUmcCQ5OikiwUEVbvNhL5hBJuvbSO95jB5zkUon+eQ==} + /@vue/reactivity-transform/3.2.37: + resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} dependencies: - '@babel/parser': 7.16.7 - '@vue/compiler-core': 3.2.26 - '@vue/shared': 3.2.26 + '@babel/parser': 7.18.6 + '@vue/compiler-core': 3.2.37 + '@vue/shared': 3.2.37 estree-walker: 2.0.2 magic-string: 0.25.7 - /@vue/reactivity/3.2.26: - resolution: {integrity: sha512-h38bxCZLW6oFJVDlCcAiUKFnXI8xP8d+eO0pcDxx+7dQfSPje2AO6M9S9QO6MrxQB7fGP0DH0dYQ8ksf6hrXKQ==} + /@vue/reactivity/3.2.37: + resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} dependencies: - '@vue/shared': 3.2.26 - dev: false + '@vue/shared': 3.2.37 - /@vue/runtime-core/3.2.26: - resolution: {integrity: sha512-BcYi7qZ9Nn+CJDJrHQ6Zsmxei2hDW0L6AB4vPvUQGBm2fZyC0GXd/4nVbyA2ubmuhctD5RbYY8L+5GUJszv9mQ==} + /@vue/runtime-core/3.2.37: + resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} dependencies: - '@vue/reactivity': 3.2.26 - '@vue/shared': 3.2.26 - dev: false + '@vue/reactivity': 3.2.37 + '@vue/shared': 3.2.37 - /@vue/runtime-dom/3.2.26: - resolution: {integrity: sha512-dY56UIiZI+gjc4e8JQBwAifljyexfVCkIAu/WX8snh8vSOt/gMSEGwPRcl2UpYpBYeyExV8WCbgvwWRNt9cHhQ==} + /@vue/runtime-dom/3.2.37: + resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} dependencies: - '@vue/runtime-core': 3.2.26 - '@vue/shared': 3.2.26 + '@vue/runtime-core': 3.2.37 + '@vue/shared': 3.2.37 csstype: 2.6.19 - dev: false - /@vue/server-renderer/3.2.26_vue@3.2.26: - resolution: {integrity: sha512-Jp5SggDUvvUYSBIvYEhy76t4nr1vapY/FIFloWmQzn7UxqaHrrBpbxrqPcTrSgGrcaglj0VBp22BKJNre4aA1w==} + /@vue/server-renderer/3.2.37_vue@3.2.37: + resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} peerDependencies: - vue: 3.2.26 + vue: 3.2.37 dependencies: - '@vue/compiler-ssr': 3.2.26 - '@vue/shared': 3.2.26 - vue: 3.2.26 - dev: false + '@vue/compiler-ssr': 3.2.37 + '@vue/shared': 3.2.37 + vue: 3.2.37 - /@vue/shared/3.2.26: - resolution: {integrity: sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==} + /@vue/shared/3.2.37: + resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} - /@vueuse/core/7.5.3_vue@3.2.26: - resolution: {integrity: sha512-D9j5ymHFMFRXQqCp0yZJkf/bvBGiz0MrKUa364p+L8dMyd5zyq2K1JmHyvoBd4xbTFRfmQ1h878u6YE5LCkDVQ==} + /@vueuse/core/8.7.5_vue@3.2.37: + resolution: {integrity: sha512-tqgzeZGoZcXzoit4kOGLWJibDMLp0vdm6ZO41SSUQhkhtrPhAg6dbIEPiahhUu6sZAmSYvVrZgEr5aKD51nrLA==} peerDependencies: '@vue/composition-api': ^1.1.0 vue: ^2.6.0 || ^3.2.0 @@ -1048,34 +1245,63 @@ packages: vue: optional: true dependencies: - '@vueuse/shared': 7.5.3_vue@3.2.26 - vue: 3.2.26 - vue-demi: 0.12.1_vue@3.2.26 - dev: false + '@types/web-bluetooth': 0.0.14 + '@vueuse/metadata': 8.7.5 + '@vueuse/shared': 8.7.5_vue@3.2.37 + vue: 3.2.37 + vue-demi: 0.12.1_vue@3.2.37 - /@vueuse/integrations/7.5.3_vue@3.2.26: - resolution: {integrity: sha512-1GCIHKrGzS14uq2UDX7Bu6kNZEgQ/GslF62ZaEQF9HzRf6Eg0BCuwPBzUbm2eUdRMdCLpZypcODwRw+ZEDA0hA==} + /@vueuse/integrations/8.7.5_44yexj3ri2snr37tpylk774ef4: + resolution: {integrity: sha512-1vCOriEXhthpU9zczTqtG4a+YJFgkyUbK/Cc91Ey0VOdL6saMNjLsrGX7cae6troFyDCbF61eL6Y8epsNc3TXw==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + universal-cookie: + optional: true dependencies: - '@vueuse/core': 7.5.3_vue@3.2.26 - '@vueuse/shared': 7.5.3_vue@3.2.26 - vue-demi: 0.12.1_vue@3.2.26 - optionalDependencies: - axios: 0.24.0 - drauu: 0.2.1 - focus-trap: 6.7.1 - fuse.js: 6.5.3 - jwt-decode: 3.1.2 - nprogress: 0.2.0 + '@vueuse/core': 8.7.5_vue@3.2.37 + '@vueuse/shared': 8.7.5_vue@3.2.37 + axios: 0.27.2 + nprogress: 1.0.0-1 qrcode: 1.5.0 - universal-cookie: 4.0.4 + vue-demi: 0.12.1_vue@3.2.37 transitivePeerDependencies: - '@vue/composition-api' - - debug - vue dev: false - /@vueuse/shared/7.5.3_vue@3.2.26: - resolution: {integrity: sha512-BJ71cxHN5VByW1S58Gl85NFJaQu93F7Vs7K/MuAKsIIuHm9PBbkR5Vxkg9ko9cBdiKVt+FNoo13BhdbA+Vwycg==} + /@vueuse/metadata/8.7.5: + resolution: {integrity: sha512-emJZKRQSaEnVqmlu39NpNp8iaW+bPC2kWykWoWOZMSlO/0QVEmO/rt8A5VhOEJTKLX3vwTevqbiRy9WJRwVOQg==} + + /@vueuse/shared/8.7.5_vue@3.2.37: + resolution: {integrity: sha512-THXPvMBFmg6Gf6AwRn/EdTh2mhqwjGsB2Yfp374LNQSQVKRHtnJ0I42bsZTn7nuEliBxqUrGQm/lN6qUHmhJLw==} peerDependencies: '@vue/composition-api': ^1.1.0 vue: ^2.6.0 || ^3.2.0 @@ -1085,30 +1311,29 @@ packages: vue: optional: true dependencies: - vue: 3.2.26 - vue-demi: 0.12.1_vue@3.2.26 - dev: false + vue: 3.2.37 + vue-demi: 0.12.1_vue@3.2.37 - /@windicss/config/1.6.2: - resolution: {integrity: sha512-xULo0Lm1wF7c7HGyjVegalfOw/ZkBjrpWZ4CnCD5Nhdlu+3kcXCwjOSgVgnSXgh3pg7CnMSdZ/vtnIlgPBqvKA==} + /@windicss/config/1.8.6: + resolution: {integrity: sha512-WVS41qUJtd44g2iWzTAE8tpgk8gD0yAr1RwwaWi7FAECKm3LVNMLOoToum9R/QKFE2n64EUVJpIvSUNby8rlhg==} dependencies: - debug: 4.3.3 - jiti: 1.12.9 - windicss: 3.4.2 + debug: 4.3.4 + jiti: 1.14.0 + windicss: 3.5.6 transitivePeerDependencies: - supports-color dev: true - /@windicss/plugin-utils/1.6.2: - resolution: {integrity: sha512-W3TkqWwLeMfnqXc8LxVoaGEBioEJ114x2RYxDfex6iM3MPzL57qo+jZ5Wv4bvQQ5Id+Yt4gHTZbpgTzBRDouEQ==} + /@windicss/plugin-utils/1.8.6: + resolution: {integrity: sha512-YY6EcUsgkosaQkIseFiIoHfU1H5boOAs/l74QWLI6ryNeHLMq2e04QVsFz+Rt+U8b8PRNxXPC8ADbxE05X7I7g==} dependencies: - '@antfu/utils': 0.4.0 - '@windicss/config': 1.6.2 - debug: 4.3.3 - fast-glob: 3.2.10 - magic-string: 0.25.7 - micromatch: 4.0.4 - windicss: 3.4.2 + '@antfu/utils': 0.5.2 + '@windicss/config': 1.8.6 + debug: 4.3.4 + fast-glob: 3.2.11 + magic-string: 0.26.2 + micromatch: 4.0.5 + windicss: 3.5.6 transitivePeerDependencies: - supports-color dev: true @@ -1121,12 +1346,12 @@ packages: through: 2.3.8 dev: true - /acorn-jsx/5.3.2_acorn@8.7.0: + /acorn-jsx/5.3.2_acorn@8.7.1: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.7.0 + acorn: 8.7.1 dev: true /acorn-walk/8.2.0: @@ -1134,8 +1359,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn/8.7.0: - resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} + /acorn/8.7.1: + resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -1161,6 +1386,15 @@ packages: uri-js: 4.4.1 dev: true + /ajv/8.11.0: + resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + /ajv/8.8.2: resolution: {integrity: sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==} dependencies: @@ -1228,7 +1462,7 @@ packages: engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /arg/4.1.3: @@ -1239,33 +1473,69 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true + /array-differ/3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} + dev: true + /array-ify/1.0.0: resolution: {integrity: sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=} dev: true + /array-includes/3.1.5: + resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + get-intrinsic: 1.1.1 + is-string: 1.0.7 + dev: true + /array-union/2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true + /array.prototype.flat/1.3.0: + resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + es-shim-unscopables: 1.0.0 + dev: true + /arrify/1.0.1: - resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=} + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} dev: true + /arrify/2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + dev: true + /astral-regex/2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} dev: true - /async-validator/4.0.7: - resolution: {integrity: sha512-Pj2IR7u8hmUEDOwB++su6baaRi+QvsgajuFB9j95foM1N2gy5HM4z60hfusIO0fBPG5uLAEl6yCJr1jNSVugEQ==} + /async-validator/4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} dev: false - /axios/0.24.0: - resolution: {integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==} + /asynckit/0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + + /axios/0.27.2: + resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} dependencies: - follow-redirects: 1.14.6 + follow-redirects: 1.15.1 + form-data: 4.0.0 transitivePeerDependencies: - debug dev: false @@ -1283,6 +1553,10 @@ packages: engines: {node: '>=8'} dev: true + /boolbase/1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -1290,6 +1564,12 @@ packages: concat-map: 0.0.1 dev: true + /brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + /braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -1297,22 +1577,15 @@ packages: fill-range: 7.0.1 dev: true - /browserslist/4.19.1: - resolution: {integrity: sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==} + /browserslist/4.21.1: + resolution: {integrity: sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001294 - electron-to-chromium: 1.4.30 - escalade: 3.1.1 - node-releases: 2.0.1 - picocolors: 1.0.0 - dev: true - - /builtins/4.0.0: - resolution: {integrity: sha512-qC0E2Dxgou1IHhvJSLwGDSTvokbRovU5zZFuDY6oY8Y2lF3nGt5Ad8YZK7GMtqzY84Wu7pXTPeHQeHcXSXsRhw==} - dependencies: - semver: 7.3.5 + caniuse-lite: 1.0.30001361 + electron-to-chromium: 1.4.177 + node-releases: 2.0.5 + update-browserslist-db: 1.0.4_browserslist@4.21.1 dev: true /cachedir/2.2.0: @@ -1325,7 +1598,6 @@ packages: dependencies: function-bind: 1.1.1 get-intrinsic: 1.1.1 - dev: false /callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -1350,8 +1622,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001294: - resolution: {integrity: sha512-LiMlrs1nSKZ8qkNhpUf5KD0Al1KCBE3zaT7OLOwEkagXMEDij98SiOovn9wxVGQpklk9vVC/pUSqgYmkmKOS8g==} + /caniuse-lite/1.0.30001361: + resolution: {integrity: sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==} dev: true /chalk/2.4.2: @@ -1363,6 +1635,14 @@ packages: supports-color: 5.5.0 dev: true + /chalk/3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + /chalk/4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -1390,6 +1670,21 @@ packages: fsevents: 2.3.2 dev: true + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /clean-stack/2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -1475,22 +1770,34 @@ packages: resolution: {integrity: sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==} dev: true - /colorette/2.0.16: - resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==} + /colorette/2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} dev: true + /combined-stream/1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false + /commander/8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} dev: true - /commitizen/4.2.4_@types+node@17.0.8: + /commander/9.3.0: + resolution: {integrity: sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==} + engines: {node: ^12.20.0 || >=14} + dev: true + + /commitizen/4.2.4: resolution: {integrity: sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==} engines: {node: '>= 10'} hasBin: true dependencies: cachedir: 2.2.0 - cz-conventional-changelog: 3.2.0_@types+node@17.0.8 + cz-conventional-changelog: 3.2.0 dedent: 0.7.0 detect-indent: 6.0.0 find-node-modules: 2.1.2 @@ -1506,7 +1813,6 @@ packages: transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - - '@types/node' dev: true /compare-func/2.0.0: @@ -1563,6 +1869,15 @@ packages: q: 1.5.1 dev: true + /conventional-changelog-conventionalcommits/5.0.0: + resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + lodash: 4.17.21 + q: 1.5.1 + dev: true + /conventional-changelog-core/4.2.4: resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==} engines: {node: '>=10'} @@ -1688,14 +2003,8 @@ packages: safe-buffer: 5.1.2 dev: true - /cookie/0.4.1: - resolution: {integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==} - engines: {node: '>= 0.6'} - dev: false - optional: true - - /core-js/3.20.1: - resolution: {integrity: sha512-btdpStYFQScnNVQ5slVcr858KP0YWYjV16eGJQw8Gg7CWtu/2qNvIM3qVRIR3n1pK2R9NNOrTevbvAYxajwEjg==} + /core-js/3.23.3: + resolution: {integrity: sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q==} requiresBuild: true dev: true @@ -1703,17 +2012,17 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cosmiconfig-typescript-loader/1.0.2_faf01e1d5a40372a98081522dcafc186: - resolution: {integrity: sha512-27ZehvijYqAKVzta5xtZBS3PAliC8CmnWkGXN0vgxAZz7yqxpMjf3aG7flxF5rEiu8FAD7nZZXtOI+xUGn+bVg==} + /cosmiconfig-typescript-loader/2.0.2_qiyc72axg2v44xl4yovan2v55u: + resolution: {integrity: sha512-KmE+bMjWMXJbkWCeY4FJX/npHuZPNr9XF9q9CIQ/bpFwi1qHfCmSiKarrCcRa0LO4fWjk93pVoeRtJAkTGcYNw==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@types/node': '*' typescript: '>=3' dependencies: - '@types/node': 17.0.8 + '@types/node': 18.0.0 cosmiconfig: 7.0.1 - ts-node: 10.4.0_faf01e1d5a40372a98081522dcafc186 - typescript: 4.5.4 + ts-node: 10.8.1_qiyc72axg2v44xl4yovan2v55u + typescript: 4.7.4 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -1751,6 +2060,11 @@ packages: which: 2.0.2 dev: true + /css-functions-list/3.1.0: + resolution: {integrity: sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==} + engines: {node: '>=12.22'} + dev: true + /cssesc/3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -1759,24 +2073,22 @@ packages: /csstype/2.6.19: resolution: {integrity: sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==} - dev: false - /cz-conventional-changelog/3.2.0_@types+node@17.0.8: + /cz-conventional-changelog/3.2.0: resolution: {integrity: sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==} engines: {node: '>= 10'} dependencies: chalk: 2.4.2 - commitizen: 4.2.4_@types+node@17.0.8 + commitizen: 4.2.4 conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.3 optionalDependencies: - '@commitlint/load': 16.0.0_@types+node@17.0.8 + '@commitlint/load': 17.0.3 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - - '@types/node' dev: true /dargs/7.0.0: @@ -1788,13 +2100,23 @@ packages: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true - /dayjs/1.10.7: - resolution: {integrity: sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==} + /dayjs/1.11.3: + resolution: {integrity: sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==} dev: false - /debug/4.3.3: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} - engines: {node: '>=6.0'} + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -1804,8 +2126,8 @@ packages: ms: 2.1.2 dev: true - /debug/4.3.3_supports-color@9.2.1: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1814,7 +2136,6 @@ packages: optional: true dependencies: ms: 2.1.2 - supports-color: 9.2.1 dev: true /decamelize-keys/1.1.0: @@ -1837,6 +2158,19 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true + /define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /delayed-stream/1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: false + /detect-file/1.0.0: resolution: {integrity: sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=} engines: {node: '>=0.10.0'} @@ -1847,8 +2181,8 @@ packages: engines: {node: '>=8'} dev: true - /dexie/3.2.0: - resolution: {integrity: sha512-OpS8ss1CLHYAhxRu6hT+/Gt1uLhKCf0O18xHBdRGlemOWXXRiiOZ0ty1/bACIJzGt1DGmvarzrPwYYt9EkRZfw==} + /dexie/3.2.2: + resolution: {integrity: sha512-q5dC3HPmir2DERlX+toCBbHQXW5MsyrFqPFcovkH9N2S/UW/H3H5AWAB6iEOExeraAu+j+zRDG+zg/D7YhH0qg==} engines: {node: '>=6.0'} dev: false @@ -1868,6 +2202,13 @@ packages: path-type: 4.0.0 dev: true + /doctrine/2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + /doctrine/3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -1909,33 +2250,31 @@ packages: is-obj: 2.0.0 dev: true - /drauu/0.2.1: - resolution: {integrity: sha512-bGp/yplU9fXKB4S4utn63vQSCW6QAtN3mPTIpGvcaWhSwvFuBb34A33NkyT4bFGwTWdN9iu491507ObOXmd1ug==} - requiresBuild: true - dependencies: - '@drauu/core': 0.2.1 - dev: false - optional: true - - /electron-to-chromium/1.4.30: - resolution: {integrity: sha512-609z9sIMxDHg+TcR/VB3MXwH+uwtrYyeAwWc/orhnr90ixs6WVGSrt85CDLGUdNnLqCA7liv426V20EecjvflQ==} + /electron-to-chromium/1.4.177: + resolution: {integrity: sha512-FYPir3NSBEGexSZUEeht81oVhHfLFl6mhUKSkjHN/iB/TwEIt/WHQrqVGfTLN5gQxwJCQkIJBe05eOXjI7omgg==} dev: true - /element-plus/1.3.0-beta.5_vue@3.2.26: - resolution: {integrity: sha512-su0sHN4ZkR5ISyP1McyiqY5wqrgZgKq0El0lSohjvjEWR3ODlgdmMfQolV0ZqTXKlO2mS16hO7nTFwX9PvZNTQ==} + /element-plus/2.2.8_vue@3.2.37: + resolution: {integrity: sha512-+cubFh1rgeGcc2LeBm7hv/1BKFJre/LIIdRntm9OLaIhysCxigjEwcxk9gbVT4KsbcjmoqZUr4/mwhIhQV6mvw==} peerDependencies: vue: ^3.2.0 dependencies: - '@ctrl/tinycolor': 3.4.0 - '@element-plus/icons-vue': 0.2.4_vue@3.2.26 - '@popperjs/core': 2.11.0 - '@vueuse/core': 7.5.3_vue@3.2.26 - async-validator: 4.0.7 - dayjs: 1.10.7 + '@ctrl/tinycolor': 3.4.1 + '@element-plus/icons-vue': 2.0.6_vue@3.2.37 + '@floating-ui/dom': 0.5.4 + '@popperjs/core': /@sxzz/popperjs-es/2.11.7 + '@types/lodash': 4.14.182 + '@types/lodash-es': 4.17.6 + '@vueuse/core': 8.7.5_vue@3.2.37 + async-validator: 4.2.5 + dayjs: 1.11.3 + escape-html: 1.0.3 lodash: 4.17.21 + lodash-es: 4.17.21 + lodash-unified: 1.0.2_3ib2ivapxullxkx3xftsimdk7u memoize-one: 6.0.0 - normalize-wheel-es: 1.1.1 - vue: 3.2.26 + normalize-wheel-es: 1.1.2 + vue: 3.2.37 transitivePeerDependencies: - '@vue/composition-api' dev: false @@ -1951,6 +2290,12 @@ packages: resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} dev: false + /end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + /entities/2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true @@ -1966,164 +2311,256 @@ packages: is-arrayish: 0.2.1 dev: true - /esbuild-android-arm64/0.13.15: - resolution: {integrity: sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==} + /es-abstract/1.20.1: + resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.1.1 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + is-callable: 1.2.4 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.2 + object-keys: 1.1.1 + object.assign: 4.1.2 + regexp.prototype.flags: 1.4.3 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 + unbox-primitive: 1.0.2 + dev: true + + /es-shim-unscopables/1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.4 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /esbuild-android-64/0.14.48: + resolution: {integrity: sha512-3aMjboap/kqwCUpGWIjsk20TtxVoKck8/4Tu19rubh7t5Ra0Yrpg30Mt1QXXlipOazrEceGeWurXKeFJgkPOUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64/0.14.48: + resolution: {integrity: sha512-vptI3K0wGALiDq+EvRuZotZrJqkYkN5282iAfcffjI5lmGG9G1ta/CIVauhY42MBXwEgDJkweiDcDMRLzBZC4g==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.13.15: - resolution: {integrity: sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==} + /esbuild-darwin-64/0.14.48: + resolution: {integrity: sha512-gGQZa4+hab2Va/Zww94YbshLuWteyKGD3+EsVon8EWTWhnHFRm5N9NbALNbwi/7hQ/hM1Zm4FuHg+k6BLsl5UA==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.13.15: - resolution: {integrity: sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==} + /esbuild-darwin-arm64/0.14.48: + resolution: {integrity: sha512-bFjnNEXjhZT+IZ8RvRGNJthLWNHV5JkCtuOFOnjvo5pC0sk2/QVk0Qc06g2PV3J0TcU6kaPC3RN9yy9w2PSLEA==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.13.15: - resolution: {integrity: sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==} + /esbuild-freebsd-64/0.14.48: + resolution: {integrity: sha512-1NOlwRxmOsnPcWOGTB10JKAkYSb2nue0oM1AfHWunW/mv3wERfJmnYlGzL3UAOIUXZqW8GeA2mv+QGwq7DToqA==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.13.15: - resolution: {integrity: sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==} + /esbuild-freebsd-arm64/0.14.48: + resolution: {integrity: sha512-gXqKdO8wabVcYtluAbikDH2jhXp+Klq5oCD5qbVyUG6tFiGhrC9oczKq3vIrrtwcxDQqK6+HDYK8Zrd4bCA9Gw==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.13.15: - resolution: {integrity: sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==} + /esbuild-linux-32/0.14.48: + resolution: {integrity: sha512-ghGyDfS289z/LReZQUuuKq9KlTiTspxL8SITBFQFAFRA/IkIvDpnZnCAKTCjGXAmUqroMQfKJXMxyjJA69c/nQ==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.13.15: - resolution: {integrity: sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==} + /esbuild-linux-64/0.14.48: + resolution: {integrity: sha512-vni3p/gppLMVZLghI7oMqbOZdGmLbbKR23XFARKnszCIBpEMEDxOMNIKPmMItQrmH/iJrL1z8Jt2nynY0bE1ug==} + engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.13.15: - resolution: {integrity: sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==} + /esbuild-linux-arm/0.14.48: + resolution: {integrity: sha512-+VfSV7Akh1XUiDNXgqgY1cUP1i2vjI+BmlyXRfVz5AfV3jbpde8JTs5Q9sYgaoq5cWfuKfoZB/QkGOI+QcL1Tw==} + engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.13.15: - resolution: {integrity: sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==} - cpu: [arm64] + /esbuild-linux-arm64/0.14.48: + resolution: {integrity: sha512-3CFsOlpoxlKPRevEHq8aAntgYGYkE1N9yRYAcPyng/p4Wyx0tPR5SBYsxLKcgPB9mR8chHEhtWYz6EZ+H199Zw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.14.48: + resolution: {integrity: sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.14.48: + resolution: {integrity: sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==} + engines: {node: '>=12'} + cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.13.15: - resolution: {integrity: sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==} - cpu: [mips64el] + /esbuild-linux-riscv64/0.14.48: + resolution: {integrity: sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==} + engines: {node: '>=12'} + cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.13.15: - resolution: {integrity: sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==} - cpu: [ppc64] + /esbuild-linux-s390x/0.14.48: + resolution: {integrity: sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==} + engines: {node: '>=12'} + cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.13.15: - resolution: {integrity: sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==} + /esbuild-netbsd-64/0.14.48: + resolution: {integrity: sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.13.15: - resolution: {integrity: sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==} + /esbuild-openbsd-64/0.14.48: + resolution: {integrity: sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.13.15: - resolution: {integrity: sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==} + /esbuild-sunos-64/0.14.48: + resolution: {integrity: sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.13.15: - resolution: {integrity: sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==} + /esbuild-windows-32/0.14.48: + resolution: {integrity: sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.13.15: - resolution: {integrity: sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==} + /esbuild-windows-64/0.14.48: + resolution: {integrity: sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==} + engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.13.15: - resolution: {integrity: sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==} + /esbuild-windows-arm64/0.14.48: + resolution: {integrity: sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild/0.13.15: - resolution: {integrity: sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==} + /esbuild/0.14.48: + resolution: {integrity: sha512-w6N1Yn5MtqK2U1/WZTX9ZqUVb8IOLZkZ5AdHkT6x3cHDMVsYWC7WPdiLmx19w3i4Rwzy5LqsEMtVihG3e4rFzA==} + engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.13.15 - esbuild-darwin-64: 0.13.15 - esbuild-darwin-arm64: 0.13.15 - esbuild-freebsd-64: 0.13.15 - esbuild-freebsd-arm64: 0.13.15 - esbuild-linux-32: 0.13.15 - esbuild-linux-64: 0.13.15 - esbuild-linux-arm: 0.13.15 - esbuild-linux-arm64: 0.13.15 - esbuild-linux-mips64le: 0.13.15 - esbuild-linux-ppc64le: 0.13.15 - esbuild-netbsd-64: 0.13.15 - esbuild-openbsd-64: 0.13.15 - esbuild-sunos-64: 0.13.15 - esbuild-windows-32: 0.13.15 - esbuild-windows-64: 0.13.15 - esbuild-windows-arm64: 0.13.15 + esbuild-android-64: 0.14.48 + esbuild-android-arm64: 0.14.48 + esbuild-darwin-64: 0.14.48 + esbuild-darwin-arm64: 0.14.48 + esbuild-freebsd-64: 0.14.48 + esbuild-freebsd-arm64: 0.14.48 + esbuild-linux-32: 0.14.48 + esbuild-linux-64: 0.14.48 + esbuild-linux-arm: 0.14.48 + esbuild-linux-arm64: 0.14.48 + esbuild-linux-mips64le: 0.14.48 + esbuild-linux-ppc64le: 0.14.48 + esbuild-linux-riscv64: 0.14.48 + esbuild-linux-s390x: 0.14.48 + esbuild-netbsd-64: 0.14.48 + esbuild-openbsd-64: 0.14.48 + esbuild-sunos-64: 0.14.48 + esbuild-windows-32: 0.14.48 + esbuild-windows-64: 0.14.48 + esbuild-windows-arm64: 0.14.48 dev: true /escalade/3.1.1: @@ -2131,6 +2568,10 @@ packages: engines: {node: '>=6'} dev: true + /escape-html/1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: false + /escape-string-regexp/1.0.5: resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} engines: {node: '>=0.8.0'} @@ -2141,23 +2582,94 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-prettier/8.3.0_eslint@8.7.0: - resolution: {integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==} + /escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + + /eslint-config-prettier/8.5.0_eslint@8.19.0: + resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.7.0 + eslint: 8.19.0 dev: true - /eslint-define-config/1.2.2: - resolution: {integrity: sha512-xZpBJNM5UGKyBGvOySj8B7vUjgqITf3Ga27FdrbaoitfiTT9G1qVh1fBuz8Y1DkG5MpyxtTPyV6s0rpMGMSgDA==} - engines: {node: '>= 16.9.0', npm: '>= 7.0.0', pnpm: '>= 6.17.0'} + /eslint-define-config/1.5.1: + resolution: {integrity: sha512-6gxrmN7aKGffaO8dCtMMKyo3IxbWymMQ248p4lf8GbaFRcLsqOXHFdUhhM0Hcy1NudvnpwHcfbDf7Nh9pIm1TA==} + engines: {node: '>= 14.6.0', npm: '>= 6.0.0', pnpm: '>= 7.0.0'} dev: true - /eslint-plugin-prettier/4.0.0_4660519532e4c3b0a9e5bb6623cfedf6: - resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} - engines: {node: '>=6.0.0'} + /eslint-import-resolver-node/0.3.6: + resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} + dependencies: + debug: 3.2.7 + resolve: 1.22.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils/2.7.3_bzaq7d2i4y5c5mw2ofduwxq46a: + resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.30.3_4x5o4skxv6sl53vpwefgt23khm + debug: 3.2.7 + eslint-import-resolver-node: 0.3.6 + find-up: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import/2.26.0_xgi3rtbx7oxkcq3vxqkef6isyu: + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.30.3_4x5o4skxv6sl53vpwefgt23khm + array-includes: 3.1.5 + array.prototype.flat: 1.3.0 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.19.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.3_bzaq7d2i4y5c5mw2ofduwxq46a + has: 1.0.3 + is-core-module: 2.9.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.5 + resolve: 1.22.1 + tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-prettier/4.2.1_7uxdfn2xinezdgvmbammh6ev5i: + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} peerDependencies: eslint: '>=7.28.0' eslint-config-prettier: '*' @@ -2166,23 +2678,26 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.7.0 - eslint-config-prettier: 8.3.0_eslint@8.7.0 - prettier: 2.5.1 + eslint: 8.19.0 + eslint-config-prettier: 8.5.0_eslint@8.19.0 + prettier: 2.7.1 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-vue/8.3.0_eslint@8.7.0: - resolution: {integrity: sha512-IIuLHw4vQxGlHcoP2dG6t/2OVdQf2qoyAzEGAxreU1afZOHGA7y3TWq8I+r3ZA6Wjs6xpeUWGHlT31QGr9Rb5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint-plugin-vue/9.1.1_eslint@8.19.0: + resolution: {integrity: sha512-W9n5PB1X2jzC7CK6riG0oAcxjmKrjTF6+keL1rni8n57DZeilx/Fulz+IRJK3lYseLNAygN0I62L7DvioW40Tw==} + engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.7.0 - eslint-utils: 3.0.0_eslint@8.7.0 + eslint: 8.19.0 + eslint-utils: 3.0.0_eslint@8.19.0 natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.10 semver: 7.3.5 - vue-eslint-parser: 8.0.1_eslint@8.7.0 + vue-eslint-parser: 9.0.3_eslint@8.19.0 + xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color dev: true @@ -2195,29 +2710,21 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope/6.0.0: - resolution: {integrity: sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - - /eslint-scope/7.1.0: - resolution: {integrity: sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==} + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.7.0: + /eslint-utils/3.0.0_eslint@8.19.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.7.0 + eslint: 8.19.0 eslint-visitor-keys: 2.1.0 dev: true @@ -2226,40 +2733,35 @@ packages: engines: {node: '>=10'} dev: true - /eslint-visitor-keys/3.1.0: - resolution: {integrity: sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /eslint-visitor-keys/3.2.0: - resolution: {integrity: sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==} + /eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.7.0: - resolution: {integrity: sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==} + /eslint/8.19.0: + resolution: {integrity: sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.0.5 + '@eslint/eslintrc': 1.3.0 '@humanwhocodes/config-array': 0.9.2 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.3 + debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.1.0 - eslint-utils: 3.0.0_eslint@8.7.0 - eslint-visitor-keys: 3.2.0 - espree: 9.3.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.19.0 + eslint-visitor-keys: 3.3.0 + espree: 9.3.2 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 - globals: 13.12.0 + globals: 13.15.0 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -2268,7 +2770,7 @@ packages: json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.0.4 + minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.1 regexpp: 3.2.0 @@ -2280,22 +2782,13 @@ packages: - supports-color dev: true - /espree/9.2.0: - resolution: {integrity: sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.7.0 - acorn-jsx: 5.3.2_acorn@8.7.0 - eslint-visitor-keys: 3.1.0 - dev: true - - /espree/9.3.0: - resolution: {integrity: sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==} + /espree/9.3.2: + resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.7.0 - acorn-jsx: 5.3.2_acorn@8.7.0 - eslint-visitor-keys: 3.2.0 + acorn: 8.7.1 + acorn-jsx: 5.3.2_acorn@8.7.1 + eslint-visitor-keys: 3.3.0 dev: true /esquery/1.4.0: @@ -2330,6 +2823,21 @@ packages: engines: {node: '>=0.10.0'} dev: true + /execa/4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + /execa/5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -2345,6 +2853,21 @@ packages: strip-final-newline: 2.0.0 dev: true + /execa/6.1.0: + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 3.0.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + /execall/2.0.0: resolution: {integrity: sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==} engines: {node: '>=8'} @@ -2376,26 +2899,15 @@ packages: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} dev: true - /fast-glob/3.2.10: - resolution: {integrity: sha512-s9nFhFnvR63wls6/kM88kQqDhMu0AfdjqouE2l5GVQPbqLgyFjjU5ry/r2yKsJxpb9Py1EYNqieFrmMaX4v++A==} + /fast-glob/3.2.11: + resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.4 - dev: true - - /fast-glob/3.2.7: - resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} - engines: {node: '>=8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.4 + micromatch: 4.0.5 dev: true /fast-json-stable-stringify/2.1.0: @@ -2403,7 +2915,7 @@ packages: dev: true /fast-levenshtein/2.0.6: - resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true /fastest-levenshtein/1.0.12: @@ -2449,7 +2961,7 @@ packages: dev: true /find-up/2.1.0: - resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} dependencies: locate-path: 2.0.0 @@ -2492,16 +3004,8 @@ packages: resolution: {integrity: sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==} dev: true - /focus-trap/6.7.1: - resolution: {integrity: sha512-a6czHbT9twVpy2RpkWQA9vIgwQgB9Nx1PIxNNUxQT4nugG/3QibwxO+tWTh9i+zSY2SFiX4pnYhTaFaQF/6ZAg==} - requiresBuild: true - dependencies: - tabbable: 5.2.1 - dev: false - optional: true - - /follow-redirects/1.14.6: - resolution: {integrity: sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==} + /follow-redirects/1.15.1: + resolution: {integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -2510,6 +3014,15 @@ packages: optional: true dev: false + /form-data/4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + /fs-extra/10.0.0: resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} engines: {node: '>=12'} @@ -2543,16 +3056,23 @@ packages: /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + functions-have-names: 1.2.3 + dev: true + /functional-red-black-tree/1.0.1: - resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} dev: true - /fuse.js/6.5.3: - resolution: {integrity: sha512-sA5etGE7yD/pOqivZRBvUBd/NaL2sjAu6QuSaFoe1H2BrJSkH/T/UXAJ8CdXdw7DvY3Hs8CXKYkDWX7RiP5KOg==} - engines: {node: '>=10'} - requiresBuild: true - dev: false - optional: true + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true /gensync/1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -2569,7 +3089,6 @@ packages: function-bind: 1.1.1 has: 1.0.3 has-symbols: 1.0.2 - dev: false /get-pkg-repo/4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} @@ -2587,11 +3106,26 @@ packages: engines: {node: '>=10'} dev: true + /get-stream/5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + /get-stream/6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} dev: true + /get-symbol-description/1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + dev: true + /git-raw-commits/2.0.11: resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} engines: {node: '>=10'} @@ -2658,13 +3192,13 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.4 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 dev: true /global-dirs/0.1.1: - resolution: {integrity: sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=} + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} engines: {node: '>=4'} dependencies: ini: 1.3.8 @@ -2711,27 +3245,27 @@ packages: engines: {node: '>=4'} dev: true - /globals/13.12.0: - resolution: {integrity: sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==} + /globals/13.15.0: + resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globby/11.0.4: - resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} + /globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.7 + fast-glob: 3.2.11 ignore: 5.2.0 merge2: 1.4.1 slash: 3.0.0 dev: true /globjoin/0.1.4: - resolution: {integrity: sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=} + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} dev: true /graceful-fs/4.2.8: @@ -2743,7 +3277,7 @@ packages: engines: {node: '>=0.4.7'} hasBin: true dependencies: - minimist: 1.2.5 + minimist: 1.2.6 neo-async: 2.6.2 source-map: 0.6.1 wordwrap: 1.0.0 @@ -2756,6 +3290,10 @@ packages: engines: {node: '>=6'} dev: true + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + /has-flag/3.0.0: resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} engines: {node: '>=4'} @@ -2766,10 +3304,27 @@ packages: engines: {node: '>=8'} dev: true + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.1.1 + dev: true + /has-symbols/1.0.2: resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} engines: {node: '>= 0.4'} - dev: false + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.2 + dev: true /has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} @@ -2799,8 +3354,8 @@ packages: lru-cache: 6.0.0 dev: true - /html-tags/3.1.0: - resolution: {integrity: sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==} + /html-tags/3.2.0: + resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==} engines: {node: '>=8'} dev: true @@ -2813,14 +3368,24 @@ packages: entities: 3.0.1 dev: true + /human-signals/1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + dev: true + /human-signals/2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} dev: true - /husky/7.0.4: - resolution: {integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==} - engines: {node: '>=12'} + /human-signals/3.0.1: + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} + dev: true + + /husky/8.0.1: + resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==} + engines: {node: '>=14'} hasBin: true dev: true @@ -2831,11 +3396,6 @@ packages: safer-buffer: 2.1.2 dev: true - /ignore/4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - dev: true - /ignore/5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} @@ -2858,14 +3418,8 @@ packages: engines: {node: '>=8'} dev: true - /import-meta-resolve/1.1.1: - resolution: {integrity: sha512-JiTuIvVyPaUg11eTrNDx5bgQ/yMKMZffc7YSjvQeSMXy58DO2SQ8BtAf3xteZvmzvjYh14wnqNjL8XVeDy2o9A==} - dependencies: - builtins: 4.0.0 - dev: true - /imurmurhash/0.1.4: - resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true @@ -2908,10 +3462,25 @@ packages: through: 2.3.8 dev: true + /internal-slot/1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.1.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + /is-arrayish/0.2.1: resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} dev: true + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + /is-binary-path/2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -2919,12 +3488,32 @@ packages: binary-extensions: 2.2.0 dev: true - /is-core-module/2.8.0: - resolution: {integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==} + /is-boolean-object/1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable/1.2.4: + resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module/2.9.0: + resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} dependencies: has: 1.0.3 dev: true + /is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-extglob/2.1.1: resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} engines: {node: '>=0.10.0'} @@ -2951,6 +3540,18 @@ packages: is-extglob: 2.1.1 dev: true + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -2971,16 +3572,49 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + /is-regexp/2.1.0: resolution: {integrity: sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==} engines: {node: '>=6'} dev: true + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + /is-stream/2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} dev: true + /is-stream/3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string/1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + /is-text-path/1.0.1: resolution: {integrity: sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=} engines: {node: '>=0.10.0'} @@ -2988,14 +3622,16 @@ packages: text-extensions: 1.9.0 dev: true - /is-typedarray/1.0.0: - resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} - dev: true - /is-utf8/0.2.1: resolution: {integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=} dev: true + /is-weakref/1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + /is-windows/1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -3009,8 +3645,8 @@ packages: resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} dev: true - /jiti/1.12.9: - resolution: {integrity: sha512-TdcJywkQtcwLxogc4rSMAi479G2eDPzfW0fLySks7TPhgZZ4s/tM6stnzayIh3gS/db3zExWJyUx4cNWrwAmoQ==} + /jiti/1.14.0: + resolution: {integrity: sha512-4IwstlaKQc9vCTC+qUXLM1hajy2ImiL9KnLvVYiaHOtS/v3wRjhLlGl121AmgDgx/O43uKmxownJghS5XMya2A==} hasBin: true dev: true @@ -3048,19 +3684,28 @@ packages: dev: true /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true /json-stringify-safe/5.0.1: resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} dev: true - /json5/2.2.0: - resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==} - engines: {node: '>=6'} + /json5/1.0.1: + resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} hasBin: true dependencies: - minimist: 1.2.5 + minimist: 1.2.6 + dev: true + + /json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-parser/3.0.0: + resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} dev: true /jsonfile/4.0.0: @@ -3082,19 +3727,13 @@ packages: engines: {'0': node >= 0.2.0} dev: true - /jwt-decode/3.1.2: - resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==} - requiresBuild: true - dev: false - optional: true - /kind-of/6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} dev: true - /known-css-properties/0.24.0: - resolution: {integrity: sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==} + /known-css-properties/0.25.0: + resolution: {integrity: sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==} dev: true /kolorist/1.5.1: @@ -3109,8 +3748,8 @@ packages: type-check: 0.4.0 dev: true - /lilconfig/2.0.4: - resolution: {integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==} + /lilconfig/2.0.5: + resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} engines: {node: '>=10'} dev: true @@ -3118,31 +3757,32 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /lint-staged/12.1.7: - resolution: {integrity: sha512-bltv/ejiLWtowExpjU+s5z8j1Byjg9AlmaAjMmqNbIicY69u6sYIwXGg0dCn0TlkrrY2CphtHIXAkbZ+1VoWQQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /lint-staged/13.0.3: + resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==} + engines: {node: ^14.13.1 || >=16.0.0} hasBin: true dependencies: cli-truncate: 3.1.0 - colorette: 2.0.16 - commander: 8.3.0 - debug: 4.3.3_supports-color@9.2.1 - execa: 5.1.1 - lilconfig: 2.0.4 - listr2: 3.13.5 - micromatch: 4.0.4 + colorette: 2.0.19 + commander: 9.3.0 + debug: 4.3.4 + execa: 6.1.0 + lilconfig: 2.0.5 + listr2: 4.0.5 + micromatch: 4.0.5 normalize-path: 3.0.0 - object-inspect: 1.12.0 + object-inspect: 1.12.2 + pidtree: 0.6.0 string-argv: 0.3.1 - supports-color: 9.2.1 - yaml: 1.10.2 + yaml: 2.1.1 transitivePeerDependencies: - enquirer + - supports-color dev: true - /listr2/3.13.5: - resolution: {integrity: sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==} - engines: {node: '>=10.0.0'} + /listr2/4.0.5: + resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} + engines: {node: '>=12'} peerDependencies: enquirer: '>= 2.3.0 < 3' peerDependenciesMeta: @@ -3150,11 +3790,11 @@ packages: optional: true dependencies: cli-truncate: 2.1.0 - colorette: 2.0.16 + colorette: 2.0.19 log-update: 4.0.0 p-map: 4.0.0 rfdc: 1.3.0 - rxjs: 7.5.1 + rxjs: 7.5.5 through: 2.3.8 wrap-ansi: 7.0.0 dev: true @@ -3169,20 +3809,13 @@ packages: strip-bom: 3.0.0 dev: true - /local-pkg/0.4.0: - resolution: {integrity: sha512-2XBWjO/v63JeR1HPzLJxdTVRQDB84Av2p2KtBA5ahvpyLUPubcAU6iXlAJrONcY7aSqgJhXxElAnKtnYsRolPQ==} - engines: {node: '>=14'} - dependencies: - mlly: 0.2.10 - dev: true - /local-pkg/0.4.1: resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==} engines: {node: '>=14'} dev: true /locate-path/2.0.0: - resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} dependencies: p-locate: 2.0.0 @@ -3206,6 +3839,22 @@ packages: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} dev: false + /lodash-unified/1.0.2_3ib2ivapxullxkx3xftsimdk7u: + resolution: {integrity: sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==} + peerDependencies: + '@types/lodash-es': '*' + lodash: '*' + lodash-es: '*' + dependencies: + '@types/lodash-es': 4.17.6 + lodash: 4.17.21 + lodash-es: 4.17.21 + dev: false + + /lodash.debounce/4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + /lodash.ismatch/4.4.0: resolution: {integrity: sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=} dev: true @@ -3218,8 +3867,12 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true + /lodash.pick/4.4.0: + resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} + dev: true + /lodash.truncate/4.4.2: - resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} dev: true /lodash/4.17.21: @@ -3252,6 +3905,13 @@ packages: dependencies: sourcemap-codec: 1.4.8 + /magic-string/0.26.2: + resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==} + engines: {node: '>=12'} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + /make-error/1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true @@ -3326,9 +3986,29 @@ packages: resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} engines: {node: '>=8.6'} dependencies: - braces: 3.0.2 - picomatch: 2.3.0 - dev: true + braces: 3.0.2 + picomatch: 2.3.0 + dev: true + + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false /mimic-fn/1.2.0: resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} @@ -3340,6 +4020,11 @@ packages: engines: {node: '>=6'} dev: true + /mimic-fn/4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + /min-indent/1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -3351,6 +4036,19 @@ packages: brace-expansion: 1.1.11 dev: true + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch/5.1.0: + resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist-options/4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -3364,10 +4062,15 @@ packages: resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} dev: true - /mlly/0.2.10: - resolution: {integrity: sha512-xfyW6c2QBGArtctzNnTV5leOKX8nOMz2simeubtXofdsdSJFSNw+Ncvrs8kxcN3pBrQLXuYBHNFV6NgZ5Ryf4A==} + /minimist/1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + dev: true + + /mlly/0.5.4: + resolution: {integrity: sha512-gFlsLWCjVwu/LM/ZfYUkmnbBoz7eyBIMUwVQYDqhd8IvtNFDeZ95uwAyxHE2Xx7tQwePQaCo4fECZ9MWFEUTgQ==} dependencies: - import-meta-resolve: 1.1.1 + pathe: 0.3.2 + pkg-types: 0.3.3 dev: true /modify-values/1.0.1: @@ -3375,40 +4078,66 @@ packages: engines: {node: '>=0.10.0'} dev: true - /monaco-editor/0.31.1: - resolution: {integrity: sha512-FYPwxGZAeP6mRRyrr5XTGHD9gRXVjy7GUzF4IPChnyt3fS5WrNxIkS8DNujWf6EQy0Zlzpxw8oTVE+mWI2/D1Q==} + /monaco-editor/0.33.0: + resolution: {integrity: sha512-VcRWPSLIUEgQJQIE0pVT8FcGBIgFoxz7jtqctE+IiCxWugD0DwgyQBcZBhdSrdMC84eumoqMZsGl2GTreOzwqw==} dev: false + /mri/1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /ms/2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true + /multimatch/4.0.0: + resolution: {integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==} + engines: {node: '>=8'} + dependencies: + '@types/minimatch': 3.0.5 + array-differ: 3.0.0 + array-union: 2.1.0 + arrify: 2.0.1 + minimatch: 3.1.2 + dev: true + /mute-stream/0.0.7: resolution: {integrity: sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=} dev: true - /nanoid/3.1.32: - resolution: {integrity: sha512-F8mf7R3iT9bvThBoW4tGXhXFHCctyCiUUPrWF8WaTqa3h96d9QybkSeba43XVOOE3oiLfkVDe4bT8MeGmkrTxw==} + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /nanoid/4.0.0: + resolution: {integrity: sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==} + engines: {node: ^14 || ^16 || >=18} + hasBin: true + dev: false + /natural-compare/1.4.0: - resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true /neo-async/2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true - /node-releases/2.0.1: - resolution: {integrity: sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==} + /node-releases/2.0.5: + resolution: {integrity: sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==} dev: true /normalize-package-data/2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.21.0 + resolve: 1.22.1 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: true @@ -3418,7 +4147,7 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 4.0.2 - is-core-module: 2.8.0 + is-core-module: 2.9.0 semver: 7.3.5 validate-npm-package-license: 3.0.4 dev: true @@ -3428,12 +4157,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /normalize-selector/0.2.0: - resolution: {integrity: sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=} - dev: true - - /normalize-wheel-es/1.1.1: - resolution: {integrity: sha512-157VNH4CngrcsvF8xOVOe22cwniIR3nxSltdctvQeHZj8JttEeOXffK28jucWfWBXs0QNetAumjc1GiInnwX4w==} + /normalize-wheel-es/1.1.2: + resolution: {integrity: sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==} dev: false /normalize.css/8.0.1: @@ -3447,18 +4172,49 @@ packages: path-key: 3.1.1 dev: true - /nprogress/0.2.0: - resolution: {integrity: sha1-y480xTIT2JVyP8urkH6UIq28r7E=} - requiresBuild: true - dev: false - optional: true + /npm-run-path/5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true /nprogress/1.0.0-1: resolution: {integrity: sha512-Gr/Km0nIMbR7hOB0fjGx7nR0oRjTy9M61dXiQL5bfTBq0cQ+hNgt6gxE062j7Bxm+L/IjNVOr41iu2hrDeuedw==} dev: false - /object-inspect/1.12.0: - resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} + /nth-check/2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /object-inspect/1.12.2: + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign/4.1.2: + resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.values/1.1.5: + resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true /once/1.4.0: resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} @@ -3480,6 +4236,13 @@ packages: mimic-fn: 2.1.0 dev: true + /onetime/6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -3518,7 +4281,7 @@ packages: dev: true /p-locate/2.0.0: - resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} dependencies: p-limit: 1.3.0 @@ -3545,7 +4308,7 @@ packages: dev: true /p-try/1.0.0: - resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} dev: true @@ -3584,7 +4347,7 @@ packages: dev: true /path-exists/3.0.0: - resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} dev: true @@ -3602,6 +4365,11 @@ packages: engines: {node: '>=8'} dev: true + /path-key/4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true @@ -3618,10 +4386,9 @@ packages: engines: {node: '>=8'} dev: true - /perfect-freehand/1.0.16: - resolution: {integrity: sha512-D4+avUeR8CHSl2vaPbPYX/dNpSMRYO3VOFp7qSSc+LRkSgzQbLATVnXosy7VxtsSHEh1C5t8K8sfmo0zCVnfWQ==} - dev: false - optional: true + /pathe/0.3.2: + resolution: {integrity: sha512-qhnmX0TOqlCvdWWTkoM83wh5J8fZ2yhbDEc9MlsnAEtEc+JCwxUKEwmd6pkY9hRe6JR1Uecbc14VcAKX2yFSTA==} + dev: true /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -3631,6 +4398,17 @@ packages: engines: {node: '>=8.6'} dev: true + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pidtree/0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + /pify/2.3.0: resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} engines: {node: '>=0.10.0'} @@ -3641,8 +4419,8 @@ packages: engines: {node: '>=4'} dev: true - /pinia/2.0.9_typescript@4.5.4+vue@3.2.26: - resolution: {integrity: sha512-iuYdxLJKQ07YPyOHYH05wNG9eKWqkP/4y4GE8+RqEYtz5fwHgPA5kr6zQbg/DoEJGnR2XCm1w1vdt6ppzL9ATg==} + /pinia/2.0.14_j6bzmzd4ujpabbp5objtwxyjp4: + resolution: {integrity: sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==} peerDependencies: '@vue/composition-api': ^1.4.0 typescript: '>=4.4.4' @@ -3653,70 +4431,87 @@ packages: typescript: optional: true dependencies: - '@vue/devtools-api': 6.0.0-beta.21.1 - typescript: 4.5.4 - vue: 3.2.26 - vue-demi: 0.12.1_vue@3.2.26 + '@vue/devtools-api': 6.2.0 + typescript: 4.7.4 + vue: 3.2.37 + vue-demi: 0.12.1_vue@3.2.37 dev: false + /pkg-types/0.3.3: + resolution: {integrity: sha512-6AJcCMnjUQPQv/Wk960w0TOmjhdjbeaQJoSKWRQv9N3rgkessCu6J0Ydsog/nw1MbpnxHuPzYbfOn2KmlZO1FA==} + dependencies: + jsonc-parser: 3.0.0 + mlly: 0.5.4 + pathe: 0.3.2 + dev: true + /pngjs/5.0.0: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} dev: false - /postcss-html/1.3.0: - resolution: {integrity: sha512-ewbwd7OGW4dLsErtvZH9HpVMEcXnlhYSzKsr7MepGlOT8imHTIZ/+pdfEruLS+hTYapLTQAWDnoQcJpsYU4uRw==} + /postcss-html/1.4.1: + resolution: {integrity: sha512-OKihuWxPuBQrQeLNsavP7ytJ9IYNj/ViAXB2v7Qjh56LnfESKrkahKA9si4VfPN8xtz6oqUE6KdL0bTPrHJr6g==} engines: {node: ^12 || >=14} dependencies: htmlparser2: 7.2.0 - postcss: 8.4.5 - postcss-safe-parser: 6.0.0_postcss@8.4.5 + postcss: 8.4.14 + postcss-safe-parser: 6.0.0_postcss@8.4.14 dev: true /postcss-media-query-parser/0.2.3: - resolution: {integrity: sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=} + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} dev: true /postcss-resolve-nested-selector/0.1.1: - resolution: {integrity: sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=} + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} dev: true - /postcss-safe-parser/6.0.0_postcss@8.4.5: + /postcss-safe-parser/6.0.0_postcss@8.4.14: resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 dependencies: - postcss: 8.4.5 + postcss: 8.4.14 + dev: true + + /postcss-scss/4.0.4_postcss@8.4.14: + resolution: {integrity: sha512-aBBbVyzA8b3hUL0MGrpydxxXKXFZc5Eqva0Q3V9qsBOLEMsjb6w49WfpsoWzpEgcqJGW4t7Rio8WXVU9Gd8vWg==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.14 dev: true - /postcss-selector-parser/6.0.8: - resolution: {integrity: sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==} + /postcss-selector-parser/6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 dev: true - /postcss-sorting/7.0.1_postcss@8.4.5: + /postcss-sorting/7.0.1_postcss@8.4.14: resolution: {integrity: sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==} peerDependencies: postcss: ^8.3.9 dependencies: - postcss: 8.4.5 + postcss: 8.4.14 dev: true /postcss-value-parser/4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss/8.4.5: - resolution: {integrity: sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==} + /postcss/8.4.14: + resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.1.32 + nanoid: 3.3.4 picocolors: 1.0.0 - source-map-js: 1.0.1 + source-map-js: 1.0.2 /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -3730,16 +4525,39 @@ packages: fast-diff: 1.2.0 dev: true - /prettier/2.5.1: - resolution: {integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==} + /prettier/2.7.1: + resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} engines: {node: '>=10.13.0'} hasBin: true dev: true + /pretty-quick/3.1.3_prettier@2.7.1: + resolution: {integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==} + engines: {node: '>=10.13'} + hasBin: true + peerDependencies: + prettier: '>=2.0.0' + dependencies: + chalk: 3.0.0 + execa: 4.1.0 + find-up: 4.1.0 + ignore: 5.2.0 + mri: 1.2.0 + multimatch: 4.0.0 + prettier: 2.7.1 + dev: true + /process-nextick-args/2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true + /pump/3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} @@ -3761,8 +4579,8 @@ packages: yargs: 15.4.1 dev: false - /qs/6.10.3: - resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} + /qs/6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: side-channel: 1.0.4 @@ -3838,7 +4656,7 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /redent/3.0.0: @@ -3853,6 +4671,15 @@ packages: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} dev: true + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + dev: true + /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} @@ -3896,18 +4723,11 @@ packages: global-dirs: 0.1.1 dev: true - /resolve/1.20.0: - resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} - dependencies: - is-core-module: 2.8.0 - path-parse: 1.0.7 - dev: true - - /resolve/1.21.0: - resolution: {integrity: sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==} + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: - is-core-module: 2.8.0 + is-core-module: 2.9.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -3925,7 +4745,7 @@ packages: engines: {node: '>=8'} dependencies: onetime: 5.1.2 - signal-exit: 3.0.6 + signal-exit: 3.0.7 dev: true /reusify/1.0.4: @@ -3970,8 +4790,8 @@ packages: tslib: 1.14.1 dev: true - /rxjs/7.5.1: - resolution: {integrity: sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==} + /rxjs/7.5.5: + resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==} dependencies: tslib: 2.3.1 dev: true @@ -3988,9 +4808,9 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /sass/1.48.0: - resolution: {integrity: sha512-hQi5g4DcfjcipotoHZ80l7GNJHGqQS5LwMBjVYB/TaT0vcSSpbgM8Ad7cgfsB2M0MinbkEQQPO9+sjjSiwxqmw==} - engines: {node: '>=8.9.0'} + /sass/1.53.0: + resolution: {integrity: sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==} + engines: {node: '>=12.0.0'} hasBin: true dependencies: chokidar: 3.5.2 @@ -3998,6 +4818,10 @@ packages: source-map-js: 1.0.1 dev: true + /scule/0.2.1: + resolution: {integrity: sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg==} + dev: true + /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -4016,6 +4840,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver/7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /set-blocking/2.0.0: resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=} dev: false @@ -4037,13 +4869,16 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.1 - object-inspect: 1.12.0 - dev: false + object-inspect: 1.12.2 /signal-exit/3.0.6: resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==} dev: true + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -4082,11 +4917,11 @@ packages: /source-map-js/1.0.1: resolution: {integrity: sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==} engines: {node: '>=0.10.0'} + dev: true - /source-map/0.5.7: - resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: true /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} @@ -4117,11 +4952,6 @@ packages: resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} dev: true - /specificity/0.4.1: - resolution: {integrity: sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==} - hasBin: true - dev: true - /split/1.0.1: resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} dependencies: @@ -4164,6 +4994,22 @@ packages: strip-ansi: 7.0.1 dev: true + /string.prototype.trimend/1.0.5: + resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /string.prototype.trimstart/1.0.5: + resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + /string_decoder/1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: @@ -4204,7 +5050,7 @@ packages: dev: true /strip-bom/3.0.0: - resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} dev: true @@ -4218,6 +5064,11 @@ packages: engines: {node: '>=6'} dev: true + /strip-final-newline/3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + /strip-indent/3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -4235,115 +5086,122 @@ packages: engines: {node: '>=8'} dev: true + /strip-literal/0.4.0: + resolution: {integrity: sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA==} + dependencies: + acorn: 8.7.1 + dev: true + /style-search/0.1.0: - resolution: {integrity: sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=} + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} dev: true - /stylelint-config-html/1.0.0_2d1bcf73d0f2e8e613ccd6d821b0344f: + /stylelint-config-html/1.0.0_rbvrlex3zkw5dqq3eg5f64dp2u: resolution: {integrity: sha512-rKQUUWDpaYC7ybsS6tLxddjn6DxhjSIXybElSmcTyVQj3ExhmU3q+l41ktrlwHRyY0M5SkTkZiwngvYPYmsgSQ==} engines: {node: ^12 || >=14} peerDependencies: postcss-html: ^1.0.0 stylelint: '>=14.0.0' dependencies: - postcss-html: 1.3.0 - stylelint: 14.2.0 + postcss-html: 1.4.1 + stylelint: 14.9.1 dev: true - /stylelint-config-prettier/9.0.3_stylelint@14.2.0: + /stylelint-config-prettier/9.0.3_stylelint@14.9.1: resolution: {integrity: sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==} engines: {node: '>= 12'} hasBin: true peerDependencies: stylelint: '>=11.0.0' dependencies: - stylelint: 14.2.0 + stylelint: 14.9.1 dev: true - /stylelint-config-recommended/6.0.0_stylelint@14.2.0: - resolution: {integrity: sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==} + /stylelint-config-recommended/8.0.0_stylelint@14.9.1: + resolution: {integrity: sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ==} peerDependencies: - stylelint: ^14.0.0 + stylelint: ^14.8.0 dependencies: - stylelint: 14.2.0 + stylelint: 14.9.1 dev: true - /stylelint-config-standard/24.0.0_stylelint@14.2.0: - resolution: {integrity: sha512-+RtU7fbNT+VlNbdXJvnjc3USNPZRiRVp/d2DxOF/vBDDTi0kH5RX2Ny6errdtZJH3boO+bmqIYEllEmok4jiuw==} + /stylelint-config-standard/26.0.0_stylelint@14.9.1: + resolution: {integrity: sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ==} peerDependencies: - stylelint: ^14.0.0 + stylelint: ^14.9.0 dependencies: - stylelint: 14.2.0 - stylelint-config-recommended: 6.0.0_stylelint@14.2.0 + stylelint: 14.9.1 + stylelint-config-recommended: 8.0.0_stylelint@14.9.1 dev: true - /stylelint-order/5.0.0_stylelint@14.2.0: + /stylelint-order/5.0.0_stylelint@14.9.1: resolution: {integrity: sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==} peerDependencies: stylelint: ^14.0.0 dependencies: - postcss: 8.4.5 - postcss-sorting: 7.0.1_postcss@8.4.5 - stylelint: 14.2.0 + postcss: 8.4.14 + postcss-sorting: 7.0.1_postcss@8.4.14 + stylelint: 14.9.1 dev: true - /stylelint-scss/4.1.0_stylelint@14.2.0: - resolution: {integrity: sha512-BNYTo7MMamhFOlcaAWp2dMpjg6hPyM/FFqfDIYzmYVLMmQJqc8lWRIiTqP4UX5bresj9Vo0dKC6odSh43VP2NA==} + /stylelint-scss/4.2.0_stylelint@14.9.1: + resolution: {integrity: sha512-HHHMVKJJ5RM9pPIbgJ/XA67h9H0407G68Rm69H4fzFbFkyDMcTV1Byep3qdze5+fJ3c0U7mJrbj6S0Fg072uZA==} peerDependencies: - stylelint: ^14.0.0 + stylelint: ^14.5.1 dependencies: lodash: 4.17.21 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.1 - postcss-selector-parser: 6.0.8 + postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 - stylelint: 14.2.0 + stylelint: 14.9.1 dev: true - /stylelint/14.2.0: - resolution: {integrity: sha512-i0DrmDXFNpDsWiwx6SPRs4/pyw4kvZgqpDGvsTslQMY7hpUl6r33aQvNSn6cnTg2wtZ9rreFElI7XAKpOWi1vQ==} + /stylelint/14.9.1: + resolution: {integrity: sha512-RdAkJdPiLqHawCSnu21nE27MjNXaVd4WcOHA4vK5GtIGjScfhNnaOuWR2wWdfKFAvcWQPOYe311iveiVKSmwsA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true dependencies: + '@csstools/selector-specificity': 2.0.1_444rcjjorr3kpoqtvoodsr46pu balanced-match: 2.0.0 colord: 2.9.2 cosmiconfig: 7.0.1 - debug: 4.3.3 + css-functions-list: 3.1.0 + debug: 4.3.4 execall: 2.0.0 - fast-glob: 3.2.7 + fast-glob: 3.2.11 fastest-levenshtein: 1.0.12 file-entry-cache: 6.0.1 get-stdin: 8.0.0 global-modules: 2.0.0 - globby: 11.0.4 + globby: 11.1.0 globjoin: 0.1.4 - html-tags: 3.1.0 + html-tags: 3.2.0 ignore: 5.2.0 import-lazy: 4.0.0 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.24.0 + known-css-properties: 0.25.0 mathml-tag-names: 2.1.3 meow: 9.0.0 - micromatch: 4.0.4 + micromatch: 4.0.5 normalize-path: 3.0.0 - normalize-selector: 0.2.0 picocolors: 1.0.0 - postcss: 8.4.5 + postcss: 8.4.14 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.1 - postcss-safe-parser: 6.0.0_postcss@8.4.5 - postcss-selector-parser: 6.0.8 + postcss-safe-parser: 6.0.0_postcss@8.4.14 + postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 - specificity: 0.4.1 string-width: 4.2.3 strip-ansi: 6.0.1 style-search: 0.1.0 + supports-hyperlinks: 2.2.0 svg-tags: 1.0.0 - table: 6.7.5 + table: 6.8.0 v8-compile-cache: 2.3.0 - write-file-atomic: 3.0.3 + write-file-atomic: 4.0.1 transitivePeerDependencies: - supports-color dev: true @@ -4362,9 +5220,12 @@ packages: has-flag: 4.0.0 dev: true - /supports-color/9.2.1: - resolution: {integrity: sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==} - engines: {node: '>=12'} + /supports-hyperlinks/2.2.0: + resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 dev: true /supports-preserve-symlinks-flag/1.0.0: @@ -4373,20 +5234,15 @@ packages: dev: true /svg-tags/1.0.0: - resolution: {integrity: sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=} + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} dev: true - /systemjs/6.11.0: - resolution: {integrity: sha512-7YPIY44j+BoY+E6cGBSw0oCU8SNTTIHKZgftcBdwWkDzs/M86Fdlr21FrzAyph7Zo8r3CFGscyFe4rrBtixrBg==} + /systemjs/6.12.1: + resolution: {integrity: sha512-hqTN6kW+pN6/qro6G9OZ7ceDQOcYno020zBQKpZQLsJhYTDMCMNfXi/Y8duF5iW+4WWZr42ry0MMkcRGpbwG2A==} dev: true - /tabbable/5.2.1: - resolution: {integrity: sha512-40pEZ2mhjaZzK0BnI+QGNjJO8UYx9pP5v7BGe17SORTO0OEuuaAwQTkAp8whcZvqon44wKFOikD+Al11K3JICQ==} - dev: false - optional: true - - /table/6.7.5: - resolution: {integrity: sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==} + /table/6.8.0: + resolution: {integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==} engines: {node: '>=10.0.0'} dependencies: ajv: 8.8.2 @@ -4415,7 +5271,7 @@ packages: dev: true /text-table/0.2.0: - resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true /through/2.3.8: @@ -4435,6 +5291,10 @@ packages: readable-stream: 3.6.0 dev: true + /tiny-invariant/1.2.0: + resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==} + dev: true + /tmp/0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -4443,9 +5303,8 @@ packages: dev: true /to-fast-properties/2.0.0: - resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - dev: true /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -4459,8 +5318,8 @@ packages: engines: {node: '>=8'} dev: true - /ts-node/10.4.0_faf01e1d5a40372a98081522dcafc186: - resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} + /ts-node/10.8.1_qiyc72axg2v44xl4yovan2v55u: + resolution: {integrity: sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -4473,22 +5332,32 @@ packages: '@swc/wasm': optional: true dependencies: - '@cspotcode/source-map-support': 0.7.0 + '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.8 '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.8 - acorn: 8.7.0 + '@types/node': 18.0.0 + acorn: 8.7.1 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.5.4 + typescript: 4.7.4 + v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true + /tsconfig-paths/3.14.1: + resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.1 + minimist: 1.2.6 + strip-bom: 3.0.0 + dev: true + /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true @@ -4497,14 +5366,14 @@ packages: resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} dev: true - /tsutils/3.21.0_typescript@4.5.4: + /tsutils/3.21.0_typescript@4.7.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.5.4 + typescript: 4.7.4 dev: true /type-check/0.4.0: @@ -4539,17 +5408,10 @@ packages: engines: {node: '>=8'} dev: true - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: true - - /typescript/4.5.4: - resolution: {integrity: sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==} + /typescript/4.7.4: + resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /uglify-js/3.14.5: resolution: {integrity: sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==} @@ -4559,14 +5421,34 @@ packages: dev: true optional: true - /universal-cookie/4.0.4: - resolution: {integrity: sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw==} - requiresBuild: true + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - '@types/cookie': 0.3.3 - cookie: 0.4.1 - dev: false - optional: true + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unimport/0.4.1_vite@2.9.13: + resolution: {integrity: sha512-0j7Xk55XOR33f+4hHGva1pauchJEn6QNcjYvmB8bu1UnSphYfOmGlGUfhFa/uzA5JqWJqFkvLU192VXwj4ZU4A==} + dependencies: + '@rollup/pluginutils': 4.2.1 + escape-string-regexp: 5.0.0 + fast-glob: 3.2.11 + local-pkg: 0.4.1 + magic-string: 0.26.2 + mlly: 0.5.4 + pathe: 0.3.2 + scule: 0.2.1 + strip-literal: 0.4.0 + unplugin: 0.7.1_vite@2.9.13 + transitivePeerDependencies: + - esbuild + - rollup + - vite + - webpack + dev: true /universalify/0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -4578,8 +5460,8 @@ packages: engines: {node: '>= 10.0.0'} dev: true - /unplugin-auto-import/0.5.11_@vueuse+core@7.5.3+vite@2.7.12: - resolution: {integrity: sha512-MJ3POLe/IysRHF4yd32FkKDoxqSRoiuIHm89ys67B8FLuz2Pvh9poeqTVe6IhJsNxwv0+GSdFfj5Dpq24lhm4g==} + /unplugin-auto-import/0.9.2_5smtrbmayeckluww3ebuwm6kim: + resolution: {integrity: sha512-cihfSyWtDyOvpD+bKQ77XSJF2Ix3N3ueatd59slBKgl995fbfExf2qXk/KialZE4/pPNjdGNEJl5ZwAhYj+e1g==} engines: {node: '>=14'} peerDependencies: '@vueuse/core': '*' @@ -4587,13 +5469,13 @@ packages: '@vueuse/core': optional: true dependencies: - '@antfu/utils': 0.4.0 - '@rollup/pluginutils': 4.1.2 - '@vueuse/core': 7.5.3_vue@3.2.26 + '@antfu/utils': 0.5.2 + '@rollup/pluginutils': 4.2.1 + '@vueuse/core': 8.7.5_vue@3.2.37 local-pkg: 0.4.1 - magic-string: 0.25.7 - resolve: 1.21.0 - unplugin: 0.3.0_vite@2.7.12 + magic-string: 0.26.2 + unimport: 0.4.1_vite@2.9.13 + unplugin: 0.7.1_vite@2.9.13 transitivePeerDependencies: - esbuild - rollup @@ -4601,44 +5483,62 @@ packages: - webpack dev: true - /unplugin-vue-components/0.17.11_vite@2.7.12+vue@3.2.26: - resolution: {integrity: sha512-u5MQ0TbikszRelCt6EA/HskGtGkGLDxi7tQ4/4tcEPWkH3yXSZRJCOeLF5MSdxN1SiGjaJ0I9zeHjoZFC3FvRw==} + /unplugin-vue-components/0.21.0_vite@2.9.13+vue@3.2.37: + resolution: {integrity: sha512-U7uOMNmRJ2eAv9CNjP8QRvxs6nAe3FVQUEIUphC1FGguBp3BWSLgGAcSHaX2nQy0gFoDY2mLF2M52W/t/eDaKg==} engines: {node: '>=14'} peerDependencies: '@babel/parser': ^7.15.8 - '@babel/traverse': ^7.15.4 vue: 2 || 3 peerDependenciesMeta: '@babel/parser': optional: true - '@babel/traverse': - optional: true dependencies: - '@antfu/utils': 0.3.0 - '@rollup/pluginutils': 4.1.2 - chokidar: 3.5.2 - debug: 4.3.3 - fast-glob: 3.2.7 - local-pkg: 0.4.0 - magic-string: 0.25.7 - minimatch: 3.0.4 - resolve: 1.20.0 - unplugin: 0.2.21_vite@2.7.12 - vue: 3.2.26 + '@antfu/utils': 0.5.2 + '@rollup/pluginutils': 4.2.1 + chokidar: 3.5.3 + debug: 4.3.4 + fast-glob: 3.2.11 + local-pkg: 0.4.1 + magic-string: 0.26.2 + minimatch: 5.1.0 + resolve: 1.22.1 + unplugin: 0.7.1_vite@2.9.13 + vue: 3.2.37 transitivePeerDependencies: + - esbuild - rollup - supports-color - vite - webpack dev: true - /unplugin/0.2.21_vite@2.7.12: - resolution: {integrity: sha512-IJ15/L5XbhnV7J09Zjk0FT5HEkBjkXucWAXQWRsmEtUxmmxwh23yavrmDbCF6ZPxWiVB28+wnKIHePTRRpQPbQ==} + /unplugin-vue-define-options/0.6.1_vite@2.9.13+vue@3.2.37: + resolution: {integrity: sha512-YZQxE3vC7Tb4Ev10blfYPC23hR3t8UNynoVSt2bY9GtHB2usxpywPQqRj7xdUtuj6JsDfrZ9wRKKbEkcMEXI1A==} + engines: {node: '>=14.17.0'} + peerDependencies: + vue: ^3.2.25 + dependencies: + '@rollup/pluginutils': 4.2.1 + '@vue/compiler-sfc': 3.2.37 + unplugin: 0.6.3_vite@2.9.13 + vue: 3.2.37 + transitivePeerDependencies: + - esbuild + - rollup + - vite + - webpack + dev: true + + /unplugin/0.6.3_vite@2.9.13: + resolution: {integrity: sha512-CoW88FQfCW/yabVc4bLrjikN9HC8dEvMU4O7B6K2jsYMPK0l6iAnd9dpJwqGcmXJKRCU9vwSsy653qg+RK0G6A==} peerDependencies: + esbuild: '>=0.13' rollup: ^2.50.0 vite: ^2.3.0 webpack: 4 || 5 peerDependenciesMeta: + esbuild: + optional: true rollup: optional: true vite: @@ -4646,16 +5546,18 @@ packages: webpack: optional: true dependencies: - vite: 2.7.12_sass@1.48.0 - webpack-virtual-modules: 0.4.3 + chokidar: 3.5.3 + vite: 2.9.13_sass@1.53.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.4.4 dev: true - /unplugin/0.3.0_vite@2.7.12: - resolution: {integrity: sha512-9yLlOo+XC4NdIRgpkDSHOAHkQDq2x4mbuVNO/eKVa3C8WTn5wWGfzEFfRJFL8euqnX3Gf7hEur0AhXxy+WSwkg==} + /unplugin/0.7.1_vite@2.9.13: + resolution: {integrity: sha512-Z6hNDXDNh9aimMkPU1mEjtk+2ova8gh0y7rJeJdGH1vWZOHwF2lLQiQ/R97rv9ymmzEQXsR2fyMet72T8jy6ew==} peerDependencies: esbuild: '>=0.13' rollup: ^2.50.0 - vite: ^2.3.0 + vite: ^2.3.0 || ^3.0.0-0 webpack: 4 || 5 peerDependenciesMeta: esbuild: @@ -4667,8 +5569,22 @@ packages: webpack: optional: true dependencies: - vite: 2.7.12_sass@1.48.0 - webpack-virtual-modules: 0.4.3 + acorn: 8.7.1 + chokidar: 3.5.3 + vite: 2.9.13_sass@1.53.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.4.4 + dev: true + + /update-browserslist-db/1.0.4_browserslist@4.21.1: + resolution: {integrity: sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.1 + escalade: 3.1.1 + picocolors: 1.0.0 dev: true /uri-js/4.4.1: @@ -4687,6 +5603,10 @@ packages: hasBin: true dev: true + /v8-compile-cache-lib/3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true @@ -4698,33 +5618,57 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vant/3.4.1_vue@3.2.26: - resolution: {integrity: sha512-sW9NFy+wZBgWIX4ohYT+warctQeAdG44pqSkbp+vbPdKNocfWjRRzB0KyWtp3DkphzySaSY426GtJgE4eA4Oog==} + /vant/3.5.2_vue@3.2.37: + resolution: {integrity: sha512-RR2SEE/ZHH30Z7a9iLBxskvSzs8rwaU2vDhR7HtBjgXreADzGjU75XxV2ogwrtaj2YU1IaBYC8xXjn3VXRxREw==} peerDependencies: vue: ^3.0.0 dependencies: - '@vant/icons': 1.7.3 - '@vant/popperjs': 1.1.0 - '@vant/use': 1.3.4 - vue: 3.2.26 + '@vant/icons': 1.8.0 + '@vant/popperjs': 1.2.1 + '@vant/use': 1.4.1 + vue: 3.2.37 dev: false - /vite-plugin-windicss/1.6.2_vite@2.7.12: - resolution: {integrity: sha512-JFZmWo2XumDIoOk6wOW7RugVFpq0ACJ7DRT0dPi8KJ0fCNyYF+Wu6xyig7/QOQEAfoMbYxnVeU3CWGU4D5PlyA==} + /vite-plugin-checker/0.4.7_vite@2.9.13: + resolution: {integrity: sha512-cpuyopyDWyZO777Q0MM5dO2jmC9UKXQL4PfpxXYIjQ7uQWYGNMEw/hRP3oc/CUTiajB6Ndl1y3Fu93rOboahJA==} + hasBin: true + peerDependencies: + vite: '>=2' + dependencies: + '@babel/code-frame': 7.18.6 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + chokidar: 3.5.3 + commander: 8.3.0 + fast-glob: 3.2.11 + lodash.debounce: 4.0.8 + lodash.pick: 4.4.0 + npm-run-path: 4.0.1 + strip-ansi: 6.0.1 + tiny-invariant: 1.2.0 + vite: 2.9.13_sass@1.53.0 + vscode-languageclient: 7.0.0 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.5 + vscode-uri: 3.0.3 + dev: true + + /vite-plugin-windicss/1.8.6_vite@2.9.13: + resolution: {integrity: sha512-D4G4qmumgklPiPrq/ZALqq8Mby6krskFVShbmb5c+0VCSsLUN96qyFRTwi81rNIHwFvlbpqflgh+BpUM/9VjQg==} peerDependencies: vite: ^2.0.1 dependencies: - '@windicss/plugin-utils': 1.6.2 - debug: 4.3.3 + '@windicss/plugin-utils': 1.8.6 + debug: 4.3.4 kolorist: 1.5.1 - vite: 2.7.12_sass@1.48.0 - windicss: 3.4.2 + vite: 2.9.13_sass@1.53.0 + windicss: 3.5.6 transitivePeerDependencies: - supports-color dev: true - /vite/2.7.12_sass@1.48.0: - resolution: {integrity: sha512-KvPYToRQWhRfBeVkyhkZ5hASuHQkqZUUdUcE3xyYtq5oYEPIJ0h9LWiWTO6v990glmSac2cEPeYeXzpX5Z6qKQ==} + /vite/2.9.13_sass@1.53.0: + resolution: {integrity: sha512-AsOBAaT0AD7Mhe8DuK+/kE4aWYFMx/i0ZNi98hJclxb4e0OhQcZYUrvLjIaQ8e59Ui7txcvKMiJC1yftqpQoDw==} engines: {node: '>=12.2.0'} hasBin: true peerDependencies: @@ -4739,16 +5683,56 @@ packages: stylus: optional: true dependencies: - esbuild: 0.13.15 - postcss: 8.4.5 - resolve: 1.21.0 + esbuild: 0.14.48 + postcss: 8.4.14 + resolve: 1.22.1 rollup: 2.62.0 - sass: 1.48.0 + sass: 1.53.0 optionalDependencies: fsevents: 2.3.2 dev: true - /vue-demi/0.12.1_vue@3.2.26: + /vscode-jsonrpc/6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + dev: true + + /vscode-languageclient/7.0.0: + resolution: {integrity: sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==} + engines: {vscode: ^1.52.0} + dependencies: + minimatch: 3.1.2 + semver: 7.3.7 + vscode-languageserver-protocol: 3.16.0 + dev: true + + /vscode-languageserver-protocol/3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + dev: true + + /vscode-languageserver-textdocument/1.0.5: + resolution: {integrity: sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg==} + dev: true + + /vscode-languageserver-types/3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + dev: true + + /vscode-languageserver/7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + dependencies: + vscode-languageserver-protocol: 3.16.0 + dev: true + + /vscode-uri/3.0.3: + resolution: {integrity: sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==} + dev: true + + /vue-demi/0.12.1_vue@3.2.37: resolution: {integrity: sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==} engines: {node: '>=12'} hasBin: true @@ -4760,57 +5744,80 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.26 - dev: false + vue: 3.2.37 - /vue-eslint-parser/8.0.1_eslint@8.7.0: - resolution: {integrity: sha512-lhWjDXJhe3UZw2uu3ztX51SJAPGPey1Tff2RK3TyZURwbuI4vximQLzz4nQfCv8CZq4xx7uIiogHMMoSJPr33A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /vue-eslint-parser/9.0.3_eslint@8.19.0: + resolution: {integrity: sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og==} + engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - debug: 4.3.3 - eslint: 8.7.0 - eslint-scope: 6.0.0 - eslint-visitor-keys: 3.1.0 - espree: 9.2.0 + debug: 4.3.4 + eslint: 8.19.0 + eslint-scope: 7.1.1 + eslint-visitor-keys: 3.3.0 + espree: 9.3.2 esquery: 1.4.0 lodash: 4.17.21 - semver: 7.3.5 + semver: 7.3.7 transitivePeerDependencies: - supports-color dev: true - /vue-router/4.0.12_vue@3.2.26: - resolution: {integrity: sha512-CPXvfqe+mZLB1kBWssssTiWg4EQERyqJZes7USiqfW9B5N2x+nHlnsM1D3b5CaJ6qgCvMmYJnz+G0iWjNCvXrg==} + /vue-router/4.0.16_vue@3.2.37: + resolution: {integrity: sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA==} peerDependencies: - vue: ^3.0.0 + vue: ^3.2.0 dependencies: - '@vue/devtools-api': 6.0.0-beta.21.1 - vue: 3.2.26 + '@vue/devtools-api': 6.2.0 + vue: 3.2.37 dev: false - /vue/3.2.26: - resolution: {integrity: sha512-KD4lULmskL5cCsEkfhERVRIOEDrfEL9CwAsLYpzptOGjaGFNWo3BQ9g8MAb7RaIO71rmVOziZ/uEN/rHwcUIhg==} + /vue-tsc/0.38.2_typescript@4.7.4: + resolution: {integrity: sha512-+OMmpw9BZC9khul3I1HGtWchv7BCiaM7NvfdilVAiOFkjnivIoaW6jJm6YPQJaEPouePtpkDUWovyzgNxWdDsw==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/vue-typescript': 0.38.2 + typescript: 4.7.4 + dev: true + + /vue/3.2.37: + resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==} dependencies: - '@vue/compiler-dom': 3.2.26 - '@vue/compiler-sfc': 3.2.26 - '@vue/runtime-dom': 3.2.26 - '@vue/server-renderer': 3.2.26_vue@3.2.26 - '@vue/shared': 3.2.26 - dev: false + '@vue/compiler-dom': 3.2.37 + '@vue/compiler-sfc': 3.2.37 + '@vue/runtime-dom': 3.2.37 + '@vue/server-renderer': 3.2.37_vue@3.2.37 + '@vue/shared': 3.2.37 - /vuedraggable/4.1.0_vue@3.2.26: + /vuedraggable/4.1.0_vue@3.2.37: resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} peerDependencies: vue: ^3.0.1 dependencies: sortablejs: 1.14.0 - vue: 3.2.26 + vue: 3.2.37 dev: false - /webpack-virtual-modules/0.4.3: - resolution: {integrity: sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==} + /webpack-sources/3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack-virtual-modules/0.4.4: + resolution: {integrity: sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==} + dev: true + + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 dev: true /which-module/2.0.0: @@ -4832,8 +5839,8 @@ packages: isexe: 2.0.0 dev: true - /windicss/3.4.2: - resolution: {integrity: sha512-YieqWaXiwPu0JJoB7z03RXdjZjQQJtMZAeXUXu/j3JXSMhIgV/2rUXu4Q7QrworRlbaASZlFhxjnL/78aAty+Q==} + /windicss/3.5.6: + resolution: {integrity: sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==} engines: {node: '>= 12'} hasBin: true dev: true @@ -4868,13 +5875,17 @@ packages: resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} dev: true - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + /write-file-atomic/4.0.1: + resolution: {integrity: sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} dependencies: imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.6 - typedarray-to-buffer: 3.1.5 + signal-exit: 3.0.7 + dev: true + + /xml-name-validator/4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} dev: true /xtend/4.0.2: @@ -4900,6 +5911,11 @@ packages: engines: {node: '>= 6'} dev: true + /yaml/2.1.1: + resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==} + engines: {node: '>= 14'} + dev: true + /yargs-parser/18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} diff --git a/preview/App.vue b/preview/App.vue index 1a063e0..ee64a81 100644 --- a/preview/App.vue +++ b/preview/App.vue @@ -7,46 +7,46 @@ diff --git a/preview/main.ts b/preview/main.ts index 28e8912..b014aec 100644 --- a/preview/main.ts +++ b/preview/main.ts @@ -1,21 +1,21 @@ -import { createApp } from 'vue' -import App from './App.vue' +import { createApp } from 'vue'; +import App from './App.vue'; -import router from './router' +import router from './router'; -import { setupVant } from '@/plugins/vant' +import { setupVant } from '@/plugins/vant'; -import 'animate.css' +import 'animate.css'; -const app = createApp(App) +const app = createApp(App); // 安装vant插件 -setupVant(app) +setupVant(app); -app.config.globalProperties.$$refs = {} +app.config.globalProperties.$$refs = {}; // if (import.meta.env.DEV) { -window.$$refs = app.config.globalProperties.$$refs +window.$$refs = app.config.globalProperties.$$refs; // } -app.use(router).mount('#app') +app.use(router).mount('#app'); diff --git a/preview/router.ts b/preview/router.ts index 840324c..5fa8837 100644 --- a/preview/router.ts +++ b/preview/router.ts @@ -6,30 +6,30 @@ * @Description: 路由表 * @FilePath: \vite-vue3-lowcode\preview\router.ts */ -import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router' -import type { VisualEditorModelValue } from '@/visual-editor/visual-editor.utils' -import { CacheEnum } from '@/enums' +import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'; +import type { VisualEditorModelValue } from '@/visual-editor/visual-editor.utils'; +import { CacheEnum } from '@/enums'; const routes: Array = [ { path: '/:pathMatch(.*)*', - component: () => import('./views/preview.vue') - } -] + component: () => import('./views/preview.vue'), + }, +]; const router = createRouter({ history: createWebHashHistory(), - routes -}) + routes, +}); // 获取本地缓存的页面数据 const jsonData: VisualEditorModelValue = JSON.parse( - localStorage.getItem(CacheEnum.PAGE_DATA_KEY) as string -) + localStorage.getItem(CacheEnum.PAGE_DATA_KEY) as string, +); router.beforeEach((to) => { - document.title = jsonData?.pages?.[to.path]?.title ?? document.title - return true -}) + document.title = jsonData?.pages?.[to.path]?.title ?? document.title; + return true; +}); -export default router +export default router; diff --git a/preview/utils/http/httpEnum.ts b/preview/utils/http/httpEnum.ts index 38e905a..ed1e4a7 100644 --- a/preview/utils/http/httpEnum.ts +++ b/preview/utils/http/httpEnum.ts @@ -5,7 +5,7 @@ export enum ResultEnum { SUCCESS = 0, ERROR = -1, TIMEOUT = 10042, - TYPE = 'success' + TYPE = 'success', } /** @@ -16,7 +16,7 @@ export enum RequestEnum { POST = 'POST', PATCH = 'PATCH', PUT = 'PUT', - DELETE = 'DELETE' + DELETE = 'DELETE', } /** @@ -30,5 +30,5 @@ export enum ContentTypeEnum { // form-data 一般配合qs FORM_URLENCODED = 'application/x-www-form-urlencoded;charset=UTF-8', // form-data 上传 - FORM_DATA = 'multipart/form-data;charset=UTF-8' + FORM_DATA = 'multipart/form-data;charset=UTF-8', } diff --git a/preview/utils/http/request.ts b/preview/utils/http/request.ts index b3582d2..d7a17ff 100644 --- a/preview/utils/http/request.ts +++ b/preview/utils/http/request.ts @@ -10,8 +10,8 @@ import axios, { AxiosRequestConfig } from 'axios'; import qs from 'qs'; // import store from '@/store' import { Toast } from 'vant'; -import router from '@/router'; import { ContentTypeEnum } from './httpEnum'; +import router from '@/router'; // create an axios instance const service = axios.create({ @@ -85,7 +85,7 @@ service.interceptors.response.use( if (error.message?.includes('timeout')) { Toast('请求超时!'); } - console.log('err' + error); // for debug + console.log(`err${error}`); // for debug return Promise.reject(error); }, ); diff --git a/preview/views/comp-render.tsx b/preview/views/comp-render.tsx index fa76bcc..ba19005 100644 --- a/preview/views/comp-render.tsx +++ b/preview/views/comp-render.tsx @@ -6,17 +6,17 @@ * @Description: * @FilePath: \vite-vue3-lowcode\preview\views\comp-render.tsx */ -import { defineComponent, PropType } from 'vue' -import type { VisualEditorBlockData } from '@/visual-editor/visual-editor.utils' -import { visualConfig } from '@/visual.config' +import { defineComponent, PropType } from 'vue'; +import type { VisualEditorBlockData } from '@/visual-editor/visual-editor.utils'; +import { visualConfig } from '@/visual.config'; export default defineComponent({ name: 'CompRender', props: { element: { type: Object as PropType, - default: () => ({}) - } + default: () => ({}), + }, }, setup(props) { return visualConfig.componentMap[props.element.componentKey].render({ @@ -24,7 +24,7 @@ export default defineComponent({ props: props.element.props || {}, model: {}, block: props.element, - custom: {} - }) - } -}) + custom: {}, + }); + }, +}); diff --git a/preview/views/preview.vue b/preview/views/preview.vue index 15935f4..ce7951c 100644 --- a/preview/views/preview.vue +++ b/preview/views/preview.vue @@ -13,59 +13,59 @@ diff --git a/preview/views/slot-item.vue b/preview/views/slot-item.vue index b22b3b2..c86e5b2 100644 --- a/preview/views/slot-item.vue +++ b/preview/views/slot-item.vue @@ -19,82 +19,84 @@ diff --git a/src/App.vue b/src/App.vue index 466f2e2..19b6741 100644 --- a/src/App.vue +++ b/src/App.vue @@ -7,21 +7,21 @@ diff --git a/src/common/types/index.ts b/src/common/types/index.ts index 2ce7c25..2f91013 100644 --- a/src/common/types/index.ts +++ b/src/common/types/index.ts @@ -1,5 +1,5 @@ export interface NavItem { - path: string - name: string - isActive: boolean + path: string; + name: string; + isActive: boolean; } diff --git a/src/enums/httpEnum.ts b/src/enums/httpEnum.ts index 38e905a..ed1e4a7 100644 --- a/src/enums/httpEnum.ts +++ b/src/enums/httpEnum.ts @@ -5,7 +5,7 @@ export enum ResultEnum { SUCCESS = 0, ERROR = -1, TIMEOUT = 10042, - TYPE = 'success' + TYPE = 'success', } /** @@ -16,7 +16,7 @@ export enum RequestEnum { POST = 'POST', PATCH = 'PATCH', PUT = 'PUT', - DELETE = 'DELETE' + DELETE = 'DELETE', } /** @@ -30,5 +30,5 @@ export enum ContentTypeEnum { // form-data 一般配合qs FORM_URLENCODED = 'application/x-www-form-urlencoded;charset=UTF-8', // form-data 上传 - FORM_DATA = 'multipart/form-data;charset=UTF-8' + FORM_DATA = 'multipart/form-data;charset=UTF-8', } diff --git a/src/enums/index.ts b/src/enums/index.ts index 1666432..055411b 100644 --- a/src/enums/index.ts +++ b/src/enums/index.ts @@ -10,5 +10,5 @@ * @description 本地缓存枚举 */ export enum CacheEnum { - PAGE_DATA_KEY = 'PAGE_DATA_KEY' + PAGE_DATA_KEY = 'PAGE_DATA_KEY', } diff --git a/src/hooks/useAnimate.ts b/src/hooks/useAnimate.ts index fdcee54..90fcf60 100644 --- a/src/hooks/useAnimate.ts +++ b/src/hooks/useAnimate.ts @@ -7,55 +7,55 @@ * @FilePath: \vite-vue3-lowcode\src\hooks\useAnimate.ts */ -import type { Animation } from '@/visual-editor/visual-editor.utils' +import type { Animation } from '@/visual-editor/visual-editor.utils'; export const useAnimate = async ( animateEl: HTMLElement, animations: Animation | Animation[], - prefixCls = 'animate__' + prefixCls = 'animate__', ) => { - animations = Array.isArray(animations) ? animations : [animations] + animations = Array.isArray(animations) ? animations : [animations]; const play = (animate: Animation) => new Promise((resolve) => { if (animateEl) { - const animationName = `${prefixCls}${animate.value}` + const animationName = `${prefixCls}${animate.value}`; // 过滤可能残留的animate.css动画类名 animateEl.classList.value = animateEl.classList.value .split(' ') .filter((item) => !item.includes(prefixCls)) - .join(' ') + .join(' '); // 设置动画属性 const setAnimate = () => { - animateEl.style.setProperty('--animate-duration', `${animate.duration}s`) - animateEl.style.setProperty('animation-delay', `${animate.delay}s`) + animateEl.style.setProperty('--animate-duration', `${animate.duration}s`); + animateEl.style.setProperty('animation-delay', `${animate.delay}s`); animateEl.style.setProperty( 'animation-iteration-count', - `${animate.infinite ? 'infinite' : animate.count}` - ) - animateEl?.classList.add(`${prefixCls}animated`, animationName) - } + `${animate.infinite ? 'infinite' : animate.count}`, + ); + animateEl?.classList.add(`${prefixCls}animated`, animationName); + }; // 动画结束时,删除类名 const handleAnimationEnd = (event?: AnimationEvent) => { - event?.stopPropagation() - animateEl.classList.remove(`${prefixCls}animated`, animationName) - animateEl.removeEventListener('animationend', handleAnimationEnd) - resolve('animation end') - } + event?.stopPropagation(); + animateEl.classList.remove(`${prefixCls}animated`, animationName); + animateEl.removeEventListener('animationend', handleAnimationEnd); + resolve('animation end'); + }; - setAnimate() + setAnimate(); - animateEl?.addEventListener('animationend', handleAnimationEnd, { once: true }) + animateEl?.addEventListener('animationend', handleAnimationEnd, { once: true }); // animateEl?.addEventListener('animationcancel', handleAnimationEnd, { once: true }) } else { - resolve('动画执行失败!执行动画元素不存在!') + resolve('动画执行失败!执行动画元素不存在!'); } - }) + }); for (const item of animations) { - await play(item) + await play(item); } -} +}; diff --git a/src/hooks/useGlobalProperties.ts b/src/hooks/useGlobalProperties.ts index 4c5e3bb..f789c23 100644 --- a/src/hooks/useGlobalProperties.ts +++ b/src/hooks/useGlobalProperties.ts @@ -5,23 +5,23 @@ * @description:useGlobalProperties * @update: 2021/5/3 21:13 */ -import { getCurrentInstance } from 'vue' -import { RouteLocationNormalizedLoaded, Router } from 'vue-router' +import { getCurrentInstance } from 'vue'; +import { RouteLocationNormalizedLoaded, Router } from 'vue-router'; interface GlobalProperties { - $$refs: any - $route: RouteLocationNormalizedLoaded - $router: Router + $$refs: any; + $route: RouteLocationNormalizedLoaded; + $router: Router; } export const useGlobalProperties = () => { const globalProperties = getCurrentInstance()!.appContext.config - .globalProperties as GlobalProperties + .globalProperties as GlobalProperties; - const registerRef = (el, _vid: string) => el && (globalProperties.$$refs[_vid] = el) + const registerRef = (el, _vid: string) => el && (globalProperties.$$refs[_vid] = el); return { globalProperties, - registerRef - } -} + registerRef, + }; +}; diff --git a/src/packages/base-widgets/button/index.tsx b/src/packages/base-widgets/button/index.tsx index 45d0382..1e3ed19 100644 --- a/src/packages/base-widgets/button/index.tsx +++ b/src/packages/base-widgets/button/index.tsx @@ -1,11 +1,11 @@ -import { Button } from 'vant' +import { Button } from 'vant'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; import { createEditorInputProp, createEditorSelectProp, - createEditorSwitchProp -} from '@/visual-editor/visual-editor.props' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' + createEditorSwitchProp, +} from '@/visual-editor/visual-editor.props'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; export default { key: 'button', @@ -13,21 +13,21 @@ export default { label: '按钮', preview: () => , render: ({ props, block, styles }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); return () => (
- ) + ); }, resize: { height: true, - width: true + width: true, }, events: [ { label: '点击按钮,且按钮状态不为加载或禁用时触发', value: 'click' }, - { label: '开始触摸按钮时触发', value: 'touchstart' } + { label: '开始触摸按钮时触发', value: 'touchstart' }, ], props: { text: createEditorInputProp({ label: '按钮文字', defaultValue: '按钮' }), @@ -36,48 +36,48 @@ export default { options: [ { label: '主要按钮', - value: 'primary' + value: 'primary', }, { label: '成功按钮', - value: 'success' + value: 'success', }, { label: '默认按钮', - value: 'default' + value: 'default', }, { label: '警告按钮', - value: 'warning' + value: 'warning', }, { label: '危险按钮', - value: 'danger' - } + value: 'danger', + }, ], - defaultValue: 'default' + defaultValue: 'default', }), size: createEditorSelectProp({ label: '按钮尺寸', options: [ { label: '大型', - value: 'large' + value: 'large', }, { label: '普通', - value: 'normal' + value: 'normal', }, { label: '小型', - value: 'small' + value: 'small', }, { label: '迷你', - value: 'mini' - } + value: 'mini', + }, ], - defaultValue: 'normal' + defaultValue: 'normal', }), 'native-type': createEditorSelectProp({ label: '原生button的type属性', @@ -85,14 +85,14 @@ export default { { label: '普通button', value: 'button' }, { label: '表单提交按钮', - value: 'submit' + value: 'submit', }, { label: '表单重置按钮', - value: 'reset' - } + value: 'reset', + }, ], - defaultValue: 'button' + defaultValue: 'button', }), to: createEditorInputProp({ label: '路由跳转' }), url: createEditorInputProp({ label: '跳转链接' }), @@ -103,7 +103,7 @@ export default { block: createEditorSwitchProp({ label: '是否为块级元素', defaultValue: false }), color: createEditorInputProp({ label: '按钮颜色', - tips: '按钮颜色,支持传入 linear-gradient 渐变色' + tips: '按钮颜色,支持传入 linear-gradient 渐变色', }), disabled: createEditorSwitchProp({ label: '是否禁用按钮' }), hairline: createEditorSwitchProp({ label: '是否使用 0.5px 边框' }), @@ -113,17 +113,17 @@ export default { options: [ { label: '左侧', - value: 'left' + value: 'left', }, { label: '右侧', - value: 'right' - } - ] + value: 'right', + }, + ], }), 'icon-prefix': createEditorInputProp({ label: '图标类名前缀', - tips: '图标类名前缀,同 Icon 组件的 class-prefix 属性' + tips: '图标类名前缀,同 Icon 组件的 class-prefix 属性', }), loading: createEditorSwitchProp({ label: '是否显示为加载状态' }), 'loading-size': createEditorInputProp({ label: '加载图标大小' }), @@ -132,9 +132,9 @@ export default { label: '加载图标类型', options: [ { label: 'circular', value: 'circular' }, - { label: 'spinner', value: 'spinner' } + { label: 'spinner', value: 'spinner' }, ], - defaultValue: 'circular' - }) - } -} as VisualEditorComponent + defaultValue: 'circular', + }), + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/checkbox/createFieldProps.ts b/src/packages/base-widgets/checkbox/createFieldProps.ts index bfa097f..463838b 100644 --- a/src/packages/base-widgets/checkbox/createFieldProps.ts +++ b/src/packages/base-widgets/checkbox/createFieldProps.ts @@ -1,8 +1,8 @@ import { createEditorInputProp, createEditorSelectProp, - createEditorSwitchProp -} from '@/visual-editor/visual-editor.props' + createEditorSwitchProp, +} from '@/visual-editor/visual-editor.props'; /** * @name: createFieldProps @@ -19,21 +19,21 @@ export const createFieldProps = () => ({ options: [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '居中', - value: 'center' + value: 'center', }, { label: '右对齐', - value: 'right' - } + value: 'right', + }, ], - defaultValue: 'left' + defaultValue: 'left', }), border: createEditorSwitchProp({ label: '是否显示内边框', defaultValue: true }), readonly: createEditorSwitchProp({ label: '是否为只读状态' }), required: createEditorSwitchProp({ label: '是否显示表单必填星号' }), - rules: createEditorInputProp({ label: '表单校验规则' }) -}) + rules: createEditorInputProp({ label: '表单校验规则' }), +}); diff --git a/src/packages/base-widgets/checkbox/index.tsx b/src/packages/base-widgets/checkbox/index.tsx index 783aeda..cbebe1f 100644 --- a/src/packages/base-widgets/checkbox/index.tsx +++ b/src/packages/base-widgets/checkbox/index.tsx @@ -6,17 +6,17 @@ * @Description: 表单项类型 - 复选框 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\checkbox\index.tsx */ -import { computed } from 'vue' -import { Field, Checkbox, CheckboxGroup } from 'vant' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { createFieldProps } from './createFieldProps' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' +import { computed } from 'vue'; +import { Field, Checkbox, CheckboxGroup } from 'vant'; +import { createFieldProps } from './createFieldProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; import { createEditorInputProp, createEditorSelectProp, createEditorCrossSortableProp, - createEditorModelBindProp -} from '@/visual-editor/visual-editor.props' + createEditorModelBindProp, +} from '@/visual-editor/visual-editor.props'; export default { key: 'checkbox', @@ -33,14 +33,16 @@ export default { ), render: ({ styles, block, props }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); const checkList = computed({ get() { - return typeof props.modelValue === 'string' ? props.modelValue.split(',') : props.modelValue + return typeof props.modelValue === 'string' + ? props.modelValue.split(',') + : props.modelValue; }, - set: (val) => (props.modelValue = val) - }) + set: (val) => (props.modelValue = val), + }); return () => (
@@ -61,16 +63,16 @@ export default { ))} - ) + ), }} />
- ) + ); }, props: { modelValue: createEditorInputProp({ label: '默认值', - defaultValue: [] + defaultValue: [], }), name: createEditorModelBindProp({ label: '字段绑定', defaultValue: '' }), label: createEditorInputProp({ label: '输入框左侧文本', defaultValue: '复选框' }), @@ -81,33 +83,33 @@ export default { defaultValue: [ { label: '胡萝卜', value: 'carrot' }, { label: '白菜', value: 'cabbage' }, - { label: '猪', value: 'pig' } - ] + { label: '猪', value: 'pig' }, + ], }), direction: createEditorSelectProp({ label: '排列方向', options: [ { label: '水平', - value: 'horizontal' + value: 'horizontal', }, { label: '垂直', - value: 'vertical' - } + value: 'vertical', + }, ], - defaultValue: 'horizontal' + defaultValue: 'horizontal', }), - ...createFieldProps() + ...createFieldProps(), }, events: [ { label: '当绑定值变化时触发的事件', value: 'change' }, - { label: '点击复选框时触发', value: 'click' } + { label: '点击复选框时触发', value: 'click' }, ], resize: { - width: true + width: true, }, model: { - default: '绑定字段' - } -} as VisualEditorComponent + default: '绑定字段', + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/datetimePicker/createFieldProps.ts b/src/packages/base-widgets/datetimePicker/createFieldProps.ts index bfa097f..463838b 100644 --- a/src/packages/base-widgets/datetimePicker/createFieldProps.ts +++ b/src/packages/base-widgets/datetimePicker/createFieldProps.ts @@ -1,8 +1,8 @@ import { createEditorInputProp, createEditorSelectProp, - createEditorSwitchProp -} from '@/visual-editor/visual-editor.props' + createEditorSwitchProp, +} from '@/visual-editor/visual-editor.props'; /** * @name: createFieldProps @@ -19,21 +19,21 @@ export const createFieldProps = () => ({ options: [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '居中', - value: 'center' + value: 'center', }, { label: '右对齐', - value: 'right' - } + value: 'right', + }, ], - defaultValue: 'left' + defaultValue: 'left', }), border: createEditorSwitchProp({ label: '是否显示内边框', defaultValue: true }), readonly: createEditorSwitchProp({ label: '是否为只读状态' }), required: createEditorSwitchProp({ label: '是否显示表单必填星号' }), - rules: createEditorInputProp({ label: '表单校验规则' }) -}) + rules: createEditorInputProp({ label: '表单校验规则' }), +}); diff --git a/src/packages/base-widgets/datetimePicker/index.tsx b/src/packages/base-widgets/datetimePicker/index.tsx index 6e87291..c182d23 100644 --- a/src/packages/base-widgets/datetimePicker/index.tsx +++ b/src/packages/base-widgets/datetimePicker/index.tsx @@ -1,25 +1,25 @@ -import { Field, Popup, DatetimePicker } from 'vant' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { createFieldProps } from './createFieldProps' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' +import { useAttrs, reactive } from 'vue'; +import { Field, Popup, DatetimePicker } from 'vant'; +import dayjs from 'dayjs'; +import { createFieldProps } from './createFieldProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; import { createEditorInputNumberProp, createEditorInputProp, createEditorModelBindProp, createEditorSelectProp, - createEditorSwitchProp -} from '@/visual-editor/visual-editor.props' -import { useAttrs, reactive } from 'vue' -import { isDate } from '@/visual-editor/utils/is' -import dayjs from 'dayjs' + createEditorSwitchProp, +} from '@/visual-editor/visual-editor.props'; +import { isDate } from '@/visual-editor/utils/is'; const dateType = { 'month-day': 'MM-DD', 'year-month': 'YYYY-MM', date: 'YYYY-MM-DD', datehour: 'YYYY-MM-DD HH', - datetime: 'YYYY-MM-DD HH:mm:ss' -} + datetime: 'YYYY-MM-DD HH:mm:ss', +}; export default { key: 'datetimePicker', @@ -27,23 +27,25 @@ export default { label: '表单项类型 - 时间选择器', preview: () => , render: ({ styles, block, props }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); - const attrs = useAttrs() + const attrs = useAttrs(); const state = reactive({ showPicker: false, text: '', - currentDate: new Date() - }) + currentDate: new Date(), + }); const onConfirm = (value) => { - const date = isDate(value) ? dayjs(value).format(props.format || dateType[props.type]) : value - props.modelValue = date - state.text = date - state.showPicker = false - console.log(props) - } + const date = isDate(value) + ? dayjs(value).format(props.format || dateType[props.type]) + : value; + props.modelValue = date; + state.text = date; + state.showPicker = false; + console.log(props); + }; return () => (
@@ -60,7 +62,7 @@ export default { {props.placeholder} ) : ( state.text - ) + ), }} /> @@ -74,7 +76,7 @@ export default { />
- ) + ); }, props: { modelValue: createEditorInputProp({ label: '默认值' }), @@ -86,60 +88,60 @@ export default { options: [ { label: 'date', - value: 'date' + value: 'date', }, { label: 'datetime', - value: 'datetime' + value: 'datetime', }, { label: 'year-month', - value: 'year-month' + value: 'year-month', }, { label: 'month-day', - value: 'month-day' + value: 'month-day', }, { label: 'datehour', - value: 'datehour' - } + value: 'datehour', + }, ], - defaultValue: 'datetime' + defaultValue: 'datetime', }), format: createEditorInputProp({ label: '自定义日期格式化值', tips: 'YYYY-MM-DD HH:mm:ss', - defaultValue: '' + defaultValue: '', }), cancelButtonText: createEditorInputProp({ label: '取消按钮文字' }), columnsOrder: createEditorInputProp({ label: '自定义列排序数组', - tips: '可选值为:year、month、day、hour、minute,传多个值以英文逗号隔开' + tips: '可选值为:year、month、day、hour、minute,传多个值以英文逗号隔开', }), confirmButtonText: createEditorInputProp({ label: '确认按钮文字' }), filter: createEditorInputProp({ label: '选项过滤函数' }), formatter: createEditorInputProp({ label: '选项格式化函数' }), itemHeight: createEditorInputProp({ label: '选项高度', - tips: '支持 px vw vh rem 单位,默认 px' + tips: '支持 px vw vh rem 单位,默认 px', }), loading: createEditorSwitchProp({ label: '是否显示加载状态' }), showToolbar: createEditorSwitchProp({ label: '是否显示顶部栏' }), swipeDuration: createEditorInputProp({ label: '快速滑动时惯性滚动的时长,单位ms' }), visibleItemCount: createEditorInputNumberProp({ label: '可见的选项个数', defaultValue: 6 }), placeholder: createEditorInputProp({ label: '占位符', defaultValue: '请选择' }), - ...createFieldProps() + ...createFieldProps(), }, events: [ { label: '当值变化时触发的事件', value: 'change' }, { label: '点击完成按钮时触发的事件', value: 'confirm' }, - { label: '点击取消按钮时触发的事件', value: 'cancel' } + { label: '点击取消按钮时触发的事件', value: 'cancel' }, ], resize: { - width: true + width: true, }, model: { - default: '绑定字段' - } -} as VisualEditorComponent + default: '绑定字段', + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/divider/index.tsx b/src/packages/base-widgets/divider/index.tsx index bc45f90..e4fde09 100644 --- a/src/packages/base-widgets/divider/index.tsx +++ b/src/packages/base-widgets/divider/index.tsx @@ -6,16 +6,16 @@ * @Description: 分割线 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\divider\index.tsx */ -import { Divider } from 'vant' +import { computed } from 'vue'; +import { Divider } from 'vant'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; import { createEditorColorProp, createEditorSwitchProp, createEditorInputProp, - createEditorSelectProp -} from '@/visual-editor/visual-editor.props' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' -import { computed } from 'vue' + createEditorSelectProp, +} from '@/visual-editor/visual-editor.props'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; export default { key: 'divider', @@ -23,23 +23,23 @@ export default { label: '分割线', preview: () => 文本, render: ({ props, block, styles }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); const style = computed(() => ({ width: '100%', color: props['text-color'], - borderColor: props['divider-color'] - })) + borderColor: props['divider-color'], + })); return () => (
registerRef(el, block._vid)} {...props} style={style.value}> {{ - default: () => props.text + default: () => props.text, }}
- ) + ); }, props: { text: createEditorInputProp({ label: '展示文本', defaultValue: '文本' }), @@ -48,12 +48,12 @@ export default { options: [ { label: '左边', value: 'left' }, { label: '中间', value: 'center' }, - { label: '右边', value: 'right' } + { label: '右边', value: 'right' }, ], - defaultValue: 'center' + defaultValue: 'center', }), dashed: createEditorSwitchProp({ label: '是否为虚线' }), 'text-color': createEditorColorProp({ label: '文本颜色' }), - 'divider-color': createEditorColorProp({ label: '分割线颜色' }) - } -} as VisualEditorComponent + 'divider-color': createEditorColorProp({ label: '分割线颜色' }), + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/image/index.tsx b/src/packages/base-widgets/image/index.tsx index 094bff6..be5dede 100644 --- a/src/packages/base-widgets/image/index.tsx +++ b/src/packages/base-widgets/image/index.tsx @@ -7,14 +7,14 @@ * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\image\index.tsx */ import { Image } from 'vant'; +import { Picture } from '@element-plus/icons-vue'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; import { createEditorInputProp, createEditorSelectProp, createEditorSwitchProp, } from '@/visual-editor/visual-editor.props'; -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; import { useGlobalProperties } from '@/hooks/useGlobalProperties'; -import { Picture } from '@element-plus/icons-vue'; export default { key: 'image', diff --git a/src/packages/base-widgets/index.ts b/src/packages/base-widgets/index.ts index 5b84961..9e184b6 100644 --- a/src/packages/base-widgets/index.ts +++ b/src/packages/base-widgets/index.ts @@ -1,11 +1,11 @@ -const modules = import.meta.globEager('./*/index.tsx') +const modules = import.meta.globEager('./*/index.tsx'); -const components = {} +const components = {}; Object.keys(modules).forEach((key: string) => { - const name = key.replace(/\.\/(.*)\/index\.(tsx|vue)/, '$1') - components[name] = modules[key]?.default || modules[key] -}) + const name = key.replace(/\.\/(.*)\/index\.(tsx|vue)/, '$1'); + components[name] = modules[key]?.default || modules[key]; +}); -console.log(components, 'base-widgets') -export default components +console.log(components, 'base-widgets'); +export default components; diff --git a/src/packages/base-widgets/input/createFieldProps.ts b/src/packages/base-widgets/input/createFieldProps.ts index fa98a82..1009242 100644 --- a/src/packages/base-widgets/input/createFieldProps.ts +++ b/src/packages/base-widgets/input/createFieldProps.ts @@ -2,8 +2,8 @@ import { createEditorInputProp, createEditorSelectProp, createEditorSwitchProp, - createEditorModelBindProp -} from '@/visual-editor/visual-editor.props' + createEditorModelBindProp, +} from '@/visual-editor/visual-editor.props'; /** * @name: createFieldProps @@ -15,7 +15,7 @@ import { export const createFieldProps = () => ({ modelValue: createEditorInputProp({ label: '默认值', - defaultValue: '' + defaultValue: '', }), name: createEditorModelBindProp({ label: '字段绑定', defaultValue: '' }), label: createEditorInputProp({ label: '输入框左侧文本', defaultValue: '输入框' }), @@ -27,9 +27,9 @@ export const createFieldProps = () => ({ { label: '文本域', value: 'textarea' }, { label: '密码', value: 'password' }, { label: '电话', value: 'tel' }, - { label: '小数点', value: 'digit' } + { label: '小数点', value: 'digit' }, ], - defaultValue: 'text' + defaultValue: 'text', }), placeholder: createEditorInputProp({ label: '占位提示文字', defaultValue: '请输入' }), colon: createEditorSwitchProp({ label: '是否在 label 后面添加冒号' }), @@ -41,18 +41,18 @@ export const createFieldProps = () => ({ options: [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '居中', - value: 'center' + value: 'center', }, { label: '右对齐', - value: 'right' - } + value: 'right', + }, ], - defaultValue: 'left' + defaultValue: 'left', }), readonly: createEditorSwitchProp({ label: '是否为只读状态' }), required: createEditorSwitchProp({ label: '是否显示表单必填星号' }), @@ -62,80 +62,80 @@ export const createFieldProps = () => ({ 'arrow-direction': createEditorInputProp({ label: '箭头方向', defaultValue: '', - tips: '箭头方向,可选值为 left up down' + tips: '箭头方向,可选值为 left up down', }), autosize: createEditorSwitchProp({ label: '自适应内容高度', defaultValue: false, - tips: '是否自适应内容高度,只对 textarea 有效,可传入对象,如 { maxHeight: 100, minHeight: 50 },单位为px' + tips: '是否自适应内容高度,只对 textarea 有效,可传入对象,如 { maxHeight: 100, minHeight: 50 },单位为px', }), border: createEditorSwitchProp({ label: '是否显示内边框', defaultValue: true }), center: createEditorSwitchProp({ label: '内容垂直居中' }), 'clear-icon': createEditorInputProp({ label: '清除图标', - tips: '清除图标名称或图片链接' + tips: '清除图标名称或图片链接', }), 'clear-trigger': createEditorSelectProp({ label: '清除图标显示时机', options: [ { label: '输入框不为空时展示', value: 'always' }, - { label: '输入框聚焦且不为空时展示', value: 'focus' } + { label: '输入框聚焦且不为空时展示', value: 'focus' }, ], defaultValue: 'always', - tips: '显示清除图标的时机,always 表示输入框不为空时展示,focus 表示输入框聚焦且不为空时展示' + tips: '显示清除图标的时机,always 表示输入框不为空时展示,focus 表示输入框聚焦且不为空时展示', }), clearable: createEditorSwitchProp({ label: '是否启用清除图标', defaultValue: false, - tips: '是否启用清除图标,点击清除图标后会清空输入框' + tips: '是否启用清除图标,点击清除图标后会清空输入框', }), clickable: createEditorSwitchProp({ label: '是否开启点击反馈' }), 'format-trigger': createEditorInputProp({ label: '格式化函数触发的时机' }), formatter: createEditorInputProp({ label: '输入内容格式化函数' }), 'icon-prefix': createEditorInputProp({ label: '图标类名前缀', - tips: '图标类名前缀,同 Icon 组件的 class-prefix 属性' + tips: '图标类名前缀,同 Icon 组件的 class-prefix 属性', }), 'input-align': createEditorSelectProp({ label: '输入框对齐方式', options: [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '居中', - value: 'center' + value: 'center', }, { label: '右对齐', - value: 'right' - } + value: 'right', + }, ], - defaultValue: 'left' + defaultValue: 'left', }), 'label-align': createEditorSelectProp({ label: '左侧文本对齐方式', options: [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '居中', - value: 'center' + value: 'center', }, { label: '右对齐', - value: 'right' - } + value: 'right', + }, ], - defaultValue: 'left' + defaultValue: 'left', }), 'label-width': createEditorInputProp({ label: '左侧文本宽度' }), maxlength: createEditorInputProp({ label: '输入的最大字符数', defaultValue: 500 }), 'show-word-limit': createEditorSwitchProp({ label: '是否显示字数统计', - tips: '需要设置 maxlength 属性' - }) -}) + tips: '需要设置 maxlength 属性', + }), +}); diff --git a/src/packages/base-widgets/input/index.tsx b/src/packages/base-widgets/input/index.tsx index 766b3d5..5f1f690 100644 --- a/src/packages/base-widgets/input/index.tsx +++ b/src/packages/base-widgets/input/index.tsx @@ -6,10 +6,10 @@ * @Description: 表单项类型 - 输入框 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\input\index.tsx */ -import { Field } from 'vant' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { createFieldProps } from './createFieldProps' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' +import { Field } from 'vant'; +import { createFieldProps } from './createFieldProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; export default { key: 'input', @@ -19,11 +19,11 @@ export default { ), render: ({ styles, block, props }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); - let rules = [] + let rules = []; try { - rules = JSON.parse(props.rules) + rules = JSON.parse(props.rules); } catch (e) {} return () => ( @@ -36,7 +36,7 @@ export default { rules={rules} /> - ) + ); }, events: [ { label: '输入框内容变化时触发', value: 'update:model-value' }, @@ -46,13 +46,13 @@ export default { { label: '点击组件时触发', value: 'click' }, { label: '点击输入区域时触发', value: 'click-input' }, { label: '点击左侧图标时触发', value: 'click-left-icon' }, - { label: '点击右侧图标时触发', value: 'click-right-icon' } + { label: '点击右侧图标时触发', value: 'click-right-icon' }, ], props: createFieldProps(), resize: { - width: true + width: true, }, model: { - default: '绑定字段' - } -} as VisualEditorComponent + default: '绑定字段', + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/nav-bar/index.tsx b/src/packages/base-widgets/nav-bar/index.tsx index e7d22ab..0792ae1 100644 --- a/src/packages/base-widgets/nav-bar/index.tsx +++ b/src/packages/base-widgets/nav-bar/index.tsx @@ -6,11 +6,11 @@ * @Description: 导航栏 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\nav-bar\index.tsx */ -import { NavBar } from 'vant' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { createEditorInputProp, createEditorSwitchProp } from '@/visual-editor/visual-editor.props' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' -import { onBeforeUnmount, onMounted } from 'vue' +import { onBeforeUnmount, onMounted } from 'vue'; +import { NavBar } from 'vant'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { createEditorInputProp, createEditorSwitchProp } from '@/visual-editor/visual-editor.props'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; export default { key: 'nav-bar', @@ -20,42 +20,42 @@ export default { ), render: ({ props, block }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); onMounted(() => { - const compEl = window.$$refs[block._vid]?.$el - const draggableEl = compEl?.closest('div[data-draggable]') - const navbarEl = draggableEl?.querySelector('.van-nav-bar--fixed') as HTMLDivElement + const compEl = window.$$refs[block._vid]?.$el; + const draggableEl = compEl?.closest('div[data-draggable]'); + const navbarEl = draggableEl?.querySelector('.van-nav-bar--fixed') as HTMLDivElement; const dragArea = document.querySelector( - '.simulator-editor-content > .dragArea ' - ) as HTMLDivElement + '.simulator-editor-content > .dragArea ', + ) as HTMLDivElement; if (draggableEl && navbarEl && dragArea) { - navbarEl.style.position = 'unset' - draggableEl.style.position = 'fixed' - draggableEl.style.top = '0' - draggableEl.style.left = '0' - draggableEl.style.width = '100%' - dragArea.style.paddingTop = '50px' + navbarEl.style.position = 'unset'; + draggableEl.style.position = 'fixed'; + draggableEl.style.top = '0'; + draggableEl.style.left = '0'; + draggableEl.style.width = '100%'; + dragArea.style.paddingTop = '50px'; } else { - document.body.style.paddingTop = '46px' - const slotEl = compEl?.closest('__slot-item') + document.body.style.paddingTop = '46px'; + const slotEl = compEl?.closest('__slot-item'); if (slotEl) { - slotEl.style.position = 'fixed' - slotEl.style.bottom = '0' + slotEl.style.position = 'fixed'; + slotEl.style.bottom = '0'; } } - }) + }); onBeforeUnmount(() => { const dragArea = document.querySelector( - '.simulator-editor-content > .dragArea ' - ) as HTMLDivElement + '.simulator-editor-content > .dragArea ', + ) as HTMLDivElement; if (dragArea) { - dragArea.style.paddingTop = '' + dragArea.style.paddingTop = ''; } - }) + }); - return () => registerRef(el, block._vid)} {...props} /> + return () => registerRef(el, block._vid)} {...props} />; }, props: { title: createEditorInputProp({ label: '标题', defaultValue: '标题' }), @@ -69,15 +69,15 @@ export default { border: createEditorSwitchProp({ label: '是否显示下边框', defaultValue: false }), leftText: createEditorInputProp({ label: '左侧文案', defaultValue: '返回' }), rightText: createEditorInputProp({ label: '右侧文案', defaultValue: '按钮' }), - leftArrow: createEditorSwitchProp({ label: '是否显示左侧箭头', defaultValue: true }) + leftArrow: createEditorSwitchProp({ label: '是否显示左侧箭头', defaultValue: true }), }, events: [ { label: '点击左侧按钮时触发', value: 'click-left' }, - { label: '点击右侧按钮时触发', value: 'click-right' } + { label: '点击右侧按钮时触发', value: 'click-right' }, ], showStyleConfig: false, draggable: false, resize: { - width: true - } -} as VisualEditorComponent + width: true, + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/notice-bar/createFieldProps.ts b/src/packages/base-widgets/notice-bar/createFieldProps.ts index d9576cd..2ad4d1c 100644 --- a/src/packages/base-widgets/notice-bar/createFieldProps.ts +++ b/src/packages/base-widgets/notice-bar/createFieldProps.ts @@ -9,8 +9,8 @@ import { createEditorInputProp, createEditorSelectProp, - createEditorSwitchProp -} from '@/visual-editor/visual-editor.props' + createEditorSwitchProp, +} from '@/visual-editor/visual-editor.props'; export const createFieldProps = () => ({ background: createEditorInputProp({ label: '滚动条背景' }), @@ -22,23 +22,23 @@ export const createFieldProps = () => ({ options: [ { label: '默认', - value: '' + value: '', }, { label: '可关闭', - value: 'closeable' + value: 'closeable', }, { label: '链接', - value: 'link' - } - ] + value: 'link', + }, + ], }), scrollable: createEditorSwitchProp({ label: '是否开启滚动播放,内容长度溢出时默认开启' }), speed: createEditorInputProp({ label: '滚动速率 (px/s)' }), text: createEditorInputProp({ label: '通知文本内容', - defaultValue: '在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。' + defaultValue: '在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。', }), - wrapable: createEditorSwitchProp({ label: '是否开启文本换行,只在禁用滚动时生效' }) -}) + wrapable: createEditorSwitchProp({ label: '是否开启文本换行,只在禁用滚动时生效' }), +}); diff --git a/src/packages/base-widgets/notice-bar/index.tsx b/src/packages/base-widgets/notice-bar/index.tsx index 0c3dba9..5041d6d 100644 --- a/src/packages/base-widgets/notice-bar/index.tsx +++ b/src/packages/base-widgets/notice-bar/index.tsx @@ -6,10 +6,10 @@ * @Description: * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\notice-bar\index.tsx */ -import { NoticeBar } from 'vant' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { createFieldProps } from './createFieldProps' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' +import { NoticeBar } from 'vant'; +import { createFieldProps } from './createFieldProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; export default { key: 'NoticeBar', @@ -23,24 +23,24 @@ export default { /> ), render: ({ block, props, styles }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); return () => (
registerRef(el, block._vid)} style={{ width: '100%' }} {...props} />
- ) + ); }, events: [ { label: '点击通知栏时触发', value: 'click' }, { label: '关闭通知栏时触发', value: 'close' }, - { label: '每当滚动栏重新开始滚动时触发', value: 'replay' } + { label: '每当滚动栏重新开始滚动时触发', value: 'replay' }, ], props: createFieldProps(), resize: { - width: true + width: true, }, model: { - default: '绑定字段' - } -} as VisualEditorComponent + default: '绑定字段', + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/picker/createFieldProps.ts b/src/packages/base-widgets/picker/createFieldProps.ts index bfa097f..463838b 100644 --- a/src/packages/base-widgets/picker/createFieldProps.ts +++ b/src/packages/base-widgets/picker/createFieldProps.ts @@ -1,8 +1,8 @@ import { createEditorInputProp, createEditorSelectProp, - createEditorSwitchProp -} from '@/visual-editor/visual-editor.props' + createEditorSwitchProp, +} from '@/visual-editor/visual-editor.props'; /** * @name: createFieldProps @@ -19,21 +19,21 @@ export const createFieldProps = () => ({ options: [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '居中', - value: 'center' + value: 'center', }, { label: '右对齐', - value: 'right' - } + value: 'right', + }, ], - defaultValue: 'left' + defaultValue: 'left', }), border: createEditorSwitchProp({ label: '是否显示内边框', defaultValue: true }), readonly: createEditorSwitchProp({ label: '是否为只读状态' }), required: createEditorSwitchProp({ label: '是否显示表单必填星号' }), - rules: createEditorInputProp({ label: '表单校验规则' }) -}) + rules: createEditorInputProp({ label: '表单校验规则' }), +}); diff --git a/src/packages/base-widgets/picker/index.tsx b/src/packages/base-widgets/picker/index.tsx index b8fbb27..da146c6 100644 --- a/src/packages/base-widgets/picker/index.tsx +++ b/src/packages/base-widgets/picker/index.tsx @@ -6,16 +6,16 @@ * @Description: 表单项类型 - 选择器 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\picker\index.tsx */ -import { Field, Popup, Picker } from 'vant' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { createFieldProps } from './createFieldProps' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' +import { reactive, useAttrs } from 'vue'; +import { Field, Popup, Picker } from 'vant'; +import { createFieldProps } from './createFieldProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; import { createEditorCrossSortableProp, createEditorInputProp, - createEditorModelBindProp -} from '@/visual-editor/visual-editor.props' -import { reactive, useAttrs } from 'vue' + createEditorModelBindProp, +} from '@/visual-editor/visual-editor.props'; export default { key: 'picker', @@ -23,31 +23,31 @@ export default { label: '表单项类型 - 选择器', preview: () => , render: ({ styles, block, props }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); - const attrs = useAttrs() + const attrs = useAttrs(); const state = reactive({ showPicker: false, text: '', - defaultIndex: 0 - }) + defaultIndex: 0, + }); const customFieldName = { text: 'label', - value: 'value' - } + value: 'value', + }; const onConfirm = (value) => { - props.modelValue = value.value - state.text = value[props.valueKey || 'text'] - state.showPicker = false - console.log(props) - } + props.modelValue = value.value; + state.text = value[props.valueKey || 'text']; + state.showPicker = false; + console.log(props); + }; return () => { if (props.modelValue) { - state.defaultIndex = props.columns?.findIndex((item) => item.value == props.modelValue) - state.text = props.columns[state.defaultIndex]?.label + state.defaultIndex = props.columns?.findIndex((item) => item.value == props.modelValue); + state.text = props.columns[state.defaultIndex]?.label; } return ( @@ -66,7 +66,7 @@ export default { {props.placeholder} ) : ( state.text - ) + ), }}
@@ -81,8 +81,8 @@ export default { /> - ) - } + ); + }; }, props: { modelValue: createEditorInputProp({ label: '默认值' }), @@ -94,21 +94,21 @@ export default { multiple: false, defaultValue: [ { label: '杭州', value: 'hangzhou' }, - { label: '上海', value: 'shanghai' } - ] + { label: '上海', value: 'shanghai' }, + ], }), placeholder: createEditorInputProp({ label: '占位符', defaultValue: '请选择' }), - ...createFieldProps() + ...createFieldProps(), }, events: [ { label: '点击完成按钮时触发', value: 'confirm' }, { label: '点击取消按钮时触发', value: 'cancel' }, - { label: '选项改变时触发', value: 'change' } + { label: '选项改变时触发', value: 'change' }, ], resize: { - width: true + width: true, }, model: { - default: '绑定字段' - } -} as VisualEditorComponent + default: '绑定字段', + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/process/index.tsx b/src/packages/base-widgets/process/index.tsx index d142696..2081e44 100644 --- a/src/packages/base-widgets/process/index.tsx +++ b/src/packages/base-widgets/process/index.tsx @@ -6,14 +6,14 @@ * @Description: 进度条 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\process\index.tsx */ -import { Progress } from 'vant' +import { Progress } from 'vant'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; import { createEditorColorProp, createEditorSwitchProp, createEditorInputProp, - createEditorInputNumberProp -} from '@/visual-editor/visual-editor.props' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' + createEditorInputNumberProp, +} from '@/visual-editor/visual-editor.props'; export default { key: 'process', @@ -21,13 +21,13 @@ export default { label: '进度条', preview: () => , render: ({ props, styles }) => { - const RenderProgress = () => + const RenderProgress = () => ; return () => (
- ) + ); }, props: { percentage: createEditorInputNumberProp({ label: '进度百分比', defaultValue: 50 }), @@ -38,6 +38,6 @@ export default { pivotText: createEditorInputProp({ label: '进度文字内容' }), pivotColor: createEditorColorProp({ label: '进度文字背景色', defaultValue: '#1989fa' }), textColor: createEditorColorProp({ label: '进度文字颜色', defaultValue: '#ffffff' }), - showPivot: createEditorSwitchProp({ label: '是否显示进度文字', defaultValue: true }) - } -} as VisualEditorComponent + showPivot: createEditorSwitchProp({ label: '是否显示进度文字', defaultValue: true }), + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/radio/createFieldProps.ts b/src/packages/base-widgets/radio/createFieldProps.ts index bfa097f..463838b 100644 --- a/src/packages/base-widgets/radio/createFieldProps.ts +++ b/src/packages/base-widgets/radio/createFieldProps.ts @@ -1,8 +1,8 @@ import { createEditorInputProp, createEditorSelectProp, - createEditorSwitchProp -} from '@/visual-editor/visual-editor.props' + createEditorSwitchProp, +} from '@/visual-editor/visual-editor.props'; /** * @name: createFieldProps @@ -19,21 +19,21 @@ export const createFieldProps = () => ({ options: [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '居中', - value: 'center' + value: 'center', }, { label: '右对齐', - value: 'right' - } + value: 'right', + }, ], - defaultValue: 'left' + defaultValue: 'left', }), border: createEditorSwitchProp({ label: '是否显示内边框', defaultValue: true }), readonly: createEditorSwitchProp({ label: '是否为只读状态' }), required: createEditorSwitchProp({ label: '是否显示表单必填星号' }), - rules: createEditorInputProp({ label: '表单校验规则' }) -}) + rules: createEditorInputProp({ label: '表单校验规则' }), +}); diff --git a/src/packages/base-widgets/radio/index.tsx b/src/packages/base-widgets/radio/index.tsx index 4cdb70d..a9e82c8 100644 --- a/src/packages/base-widgets/radio/index.tsx +++ b/src/packages/base-widgets/radio/index.tsx @@ -6,16 +6,16 @@ * @Description: 表单项类型 - 单选框 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\radio\index.tsx */ -import { Field, Radio, RadioGroup } from 'vant' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { createFieldProps } from './createFieldProps' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' +import { Field, Radio, RadioGroup } from 'vant'; +import { createFieldProps } from './createFieldProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; import { createEditorCrossSortableProp, createEditorInputProp, createEditorModelBindProp, - createEditorSelectProp -} from '@/visual-editor/visual-editor.props' + createEditorSelectProp, +} from '@/visual-editor/visual-editor.props'; export default { key: 'radio', @@ -28,7 +28,7 @@ export default { ), render: ({ styles, block, props }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); return () => (
@@ -49,11 +49,11 @@ export default { ))} - ) + ), }} />
- ) + ); }, props: { modelValue: createEditorInputProp({ label: '默认值', defaultValue: '' }), @@ -66,30 +66,30 @@ export default { defaultValue: [ { label: '胡萝卜', value: 'carrot' }, { label: '白菜', value: 'cabbage' }, - { label: '猪', value: 'pig' } - ] + { label: '猪', value: 'pig' }, + ], }), direction: createEditorSelectProp({ label: '排列方向', options: [ { label: '水平', - value: 'horizontal' + value: 'horizontal', }, { label: '垂直', - value: 'vertical' - } + value: 'vertical', + }, ], - defaultValue: 'horizontal' + defaultValue: 'horizontal', }), - ...createFieldProps() + ...createFieldProps(), }, events: [{ label: '点击单选框时触发', value: 'click' }], resize: { - width: true + width: true, }, model: { - default: '绑定字段' - } -} as VisualEditorComponent + default: '绑定字段', + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/rate/createFieldProps.ts b/src/packages/base-widgets/rate/createFieldProps.ts index bfa097f..463838b 100644 --- a/src/packages/base-widgets/rate/createFieldProps.ts +++ b/src/packages/base-widgets/rate/createFieldProps.ts @@ -1,8 +1,8 @@ import { createEditorInputProp, createEditorSelectProp, - createEditorSwitchProp -} from '@/visual-editor/visual-editor.props' + createEditorSwitchProp, +} from '@/visual-editor/visual-editor.props'; /** * @name: createFieldProps @@ -19,21 +19,21 @@ export const createFieldProps = () => ({ options: [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '居中', - value: 'center' + value: 'center', }, { label: '右对齐', - value: 'right' - } + value: 'right', + }, ], - defaultValue: 'left' + defaultValue: 'left', }), border: createEditorSwitchProp({ label: '是否显示内边框', defaultValue: true }), readonly: createEditorSwitchProp({ label: '是否为只读状态' }), required: createEditorSwitchProp({ label: '是否显示表单必填星号' }), - rules: createEditorInputProp({ label: '表单校验规则' }) -}) + rules: createEditorInputProp({ label: '表单校验规则' }), +}); diff --git a/src/packages/base-widgets/rate/index.tsx b/src/packages/base-widgets/rate/index.tsx index 6cf748e..8cb27d5 100644 --- a/src/packages/base-widgets/rate/index.tsx +++ b/src/packages/base-widgets/rate/index.tsx @@ -7,8 +7,8 @@ * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\rate\index.tsx */ import { Field, Rate } from 'vant'; -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; import { createFieldProps } from './createFieldProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; import { useGlobalProperties } from '@/hooks/useGlobalProperties'; import { createEditorInputNumberProp, diff --git a/src/packages/base-widgets/slider/createFieldProps.ts b/src/packages/base-widgets/slider/createFieldProps.ts index bfa097f..463838b 100644 --- a/src/packages/base-widgets/slider/createFieldProps.ts +++ b/src/packages/base-widgets/slider/createFieldProps.ts @@ -1,8 +1,8 @@ import { createEditorInputProp, createEditorSelectProp, - createEditorSwitchProp -} from '@/visual-editor/visual-editor.props' + createEditorSwitchProp, +} from '@/visual-editor/visual-editor.props'; /** * @name: createFieldProps @@ -19,21 +19,21 @@ export const createFieldProps = () => ({ options: [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '居中', - value: 'center' + value: 'center', }, { label: '右对齐', - value: 'right' - } + value: 'right', + }, ], - defaultValue: 'left' + defaultValue: 'left', }), border: createEditorSwitchProp({ label: '是否显示内边框', defaultValue: true }), readonly: createEditorSwitchProp({ label: '是否为只读状态' }), required: createEditorSwitchProp({ label: '是否显示表单必填星号' }), - rules: createEditorInputProp({ label: '表单校验规则' }) -}) + rules: createEditorInputProp({ label: '表单校验规则' }), +}); diff --git a/src/packages/base-widgets/slider/index.tsx b/src/packages/base-widgets/slider/index.tsx index a17ac45..55abd2b 100644 --- a/src/packages/base-widgets/slider/index.tsx +++ b/src/packages/base-widgets/slider/index.tsx @@ -7,8 +7,9 @@ * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\slider\index.tsx */ import { Field, Slider } from 'vant'; -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { omit } from 'lodash-es'; import { createFieldProps } from './createFieldProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; import { useGlobalProperties } from '@/hooks/useGlobalProperties'; import { createEditorInputNumberProp, @@ -16,7 +17,6 @@ import { createEditorModelBindProp, createEditorSwitchProp, } from '@/visual-editor/visual-editor.props'; -import { omit } from 'lodash-es'; export default { key: 'slider', diff --git a/src/packages/base-widgets/stepper/createFieldProps.ts b/src/packages/base-widgets/stepper/createFieldProps.ts index bfa097f..463838b 100644 --- a/src/packages/base-widgets/stepper/createFieldProps.ts +++ b/src/packages/base-widgets/stepper/createFieldProps.ts @@ -1,8 +1,8 @@ import { createEditorInputProp, createEditorSelectProp, - createEditorSwitchProp -} from '@/visual-editor/visual-editor.props' + createEditorSwitchProp, +} from '@/visual-editor/visual-editor.props'; /** * @name: createFieldProps @@ -19,21 +19,21 @@ export const createFieldProps = () => ({ options: [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '居中', - value: 'center' + value: 'center', }, { label: '右对齐', - value: 'right' - } + value: 'right', + }, ], - defaultValue: 'left' + defaultValue: 'left', }), border: createEditorSwitchProp({ label: '是否显示内边框', defaultValue: true }), readonly: createEditorSwitchProp({ label: '是否为只读状态' }), required: createEditorSwitchProp({ label: '是否显示表单必填星号' }), - rules: createEditorInputProp({ label: '表单校验规则' }) -}) + rules: createEditorInputProp({ label: '表单校验规则' }), +}); diff --git a/src/packages/base-widgets/stepper/index.tsx b/src/packages/base-widgets/stepper/index.tsx index 532c7d8..7e05b39 100644 --- a/src/packages/base-widgets/stepper/index.tsx +++ b/src/packages/base-widgets/stepper/index.tsx @@ -6,18 +6,18 @@ * @Description: '表单项类型 - 步进器 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\stepper\index.tsx */ -import { Field, Stepper } from 'vant' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { createFieldProps } from './createFieldProps' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' +import { watchEffect } from 'vue'; +import { Field, Stepper } from 'vant'; +import { createFieldProps } from './createFieldProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; import { createEditorInputNumberProp, createEditorInputProp, createEditorSwitchProp, createEditorSelectProp, - createEditorModelBindProp -} from '@/visual-editor/visual-editor.props' -import { watchEffect } from 'vue' + createEditorModelBindProp, +} from '@/visual-editor/visual-editor.props'; export default { key: 'stepper', @@ -32,11 +32,11 @@ export default { > ), render: ({ styles, block, props }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); watchEffect(() => { - props.name = Array.isArray(props.name) ? [...props.name].pop() : props.name - }) + props.name = Array.isArray(props.name) ? [...props.name].pop() : props.name; + }); return () => (
@@ -50,11 +50,11 @@ export default { v-model={props.modelValue} {...props} > - ) + ), }} />
- ) + ); }, props: { modelValue: createEditorInputNumberProp({ label: '默认值', defaultValue: 0 }), @@ -66,12 +66,12 @@ export default { allowEmpty: createEditorSwitchProp({ label: '是否允许输入的值为空', defaultValue: false }), buttonSize: createEditorInputProp({ label: '按钮大小以及输入框高度,默认单位为 px', - defaultValue: '28px' + defaultValue: '28px', }), decimalLength: createEditorInputProp({ label: '固定显示的小数位数', defaultValue: '' }), defaultValue: createEditorInputProp({ label: '初始值,当 v-model 为空时生效', - defaultValue: '1' + defaultValue: '1', }), disableInput: createEditorSwitchProp({ label: '是否禁用输入框', defaultValue: false }), disableMinus: createEditorSwitchProp({ label: '是否禁用减少按钮', defaultValue: false }), @@ -90,17 +90,17 @@ export default { options: [ { label: '默认', - value: '' + value: '', }, - { label: '圆角风格', value: 'round' } + { label: '圆角风格', value: 'round' }, ], - defaultValue: '' - }) + defaultValue: '', + }), }, resize: { - width: true + width: true, }, model: { - default: '绑定字段' - } -} as VisualEditorComponent + default: '绑定字段', + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/swipe/createFieldProps.ts b/src/packages/base-widgets/swipe/createFieldProps.ts index 30a113a..678fc2b 100644 --- a/src/packages/base-widgets/swipe/createFieldProps.ts +++ b/src/packages/base-widgets/swipe/createFieldProps.ts @@ -9,14 +9,17 @@ import { createEditorInputProp, createEditorSwitchProp, - createEditorCrossSortableProp -} from '@/visual-editor/visual-editor.props' + createEditorCrossSortableProp, +} from '@/visual-editor/visual-editor.props'; export const createFieldProps = () => ({ images: createEditorCrossSortableProp({ label: '图片列表', labelPosition: 'top', - defaultValue: ['https://img.yzcdn.cn/vant/apple-1.jpg', 'https://img.yzcdn.cn/vant/apple-2.jpg'] + defaultValue: [ + 'https://img.yzcdn.cn/vant/apple-1.jpg', + 'https://img.yzcdn.cn/vant/apple-2.jpg', + ], }), // width: createEditorInputProp({ label: '滑块宽度,单位为 px', defaultValue: 'auto' }), height: createEditorInputProp({ label: '滑块高度,单位为 px', defaultValue: '200' }), @@ -29,5 +32,5 @@ export const createFieldProps = () => ({ showIndicators: createEditorSwitchProp({ label: '是否显示指示器', defaultValue: true }), stopPropagation: createEditorSwitchProp({ label: '是否阻止滑动事件冒泡', defaultValue: true }), touchable: createEditorSwitchProp({ label: '是否可以通过手势滑动', defaultValue: true }), - vertical: createEditorSwitchProp({ label: '是否为纵向滚动', defaultValue: false }) -}) + vertical: createEditorSwitchProp({ label: '是否为纵向滚动', defaultValue: false }), +}); diff --git a/src/packages/base-widgets/swipe/index.tsx b/src/packages/base-widgets/swipe/index.tsx index 81933d8..81ba449 100644 --- a/src/packages/base-widgets/swipe/index.tsx +++ b/src/packages/base-widgets/swipe/index.tsx @@ -6,16 +6,16 @@ * @Description: 轮播图组件 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\swipe\index.tsx */ -import { Swipe, SwipeItem } from 'vant' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { createFieldProps } from './createFieldProps' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' +import { Swipe, SwipeItem } from 'vant'; +import { createFieldProps } from './createFieldProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; const swipeItemStyle = `color: #fff; font-size: 20px; line-height: 150px; text-align: center; -background-color: #39a9ed;` +background-color: #39a9ed;`; export default { key: 'swipe', @@ -30,7 +30,7 @@ export default { ), render: ({ block, props }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); return () => (
@@ -48,15 +48,15 @@ export default { ))}
- ) + ); }, props: createFieldProps(), events: [{ label: '每一页轮播结束后触发', value: 'change' }], showStyleConfig: false, resize: { - width: true + width: true, }, model: { - default: '绑定字段' - } -} as VisualEditorComponent + default: '绑定字段', + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/switch/createFieldProps.ts b/src/packages/base-widgets/switch/createFieldProps.ts index bfa097f..463838b 100644 --- a/src/packages/base-widgets/switch/createFieldProps.ts +++ b/src/packages/base-widgets/switch/createFieldProps.ts @@ -1,8 +1,8 @@ import { createEditorInputProp, createEditorSelectProp, - createEditorSwitchProp -} from '@/visual-editor/visual-editor.props' + createEditorSwitchProp, +} from '@/visual-editor/visual-editor.props'; /** * @name: createFieldProps @@ -19,21 +19,21 @@ export const createFieldProps = () => ({ options: [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '居中', - value: 'center' + value: 'center', }, { label: '右对齐', - value: 'right' - } + value: 'right', + }, ], - defaultValue: 'left' + defaultValue: 'left', }), border: createEditorSwitchProp({ label: '是否显示内边框', defaultValue: true }), readonly: createEditorSwitchProp({ label: '是否为只读状态' }), required: createEditorSwitchProp({ label: '是否显示表单必填星号' }), - rules: createEditorInputProp({ label: '表单校验规则' }) -}) + rules: createEditorInputProp({ label: '表单校验规则' }), +}); diff --git a/src/packages/base-widgets/switch/index.tsx b/src/packages/base-widgets/switch/index.tsx index 265104c..6451437 100644 --- a/src/packages/base-widgets/switch/index.tsx +++ b/src/packages/base-widgets/switch/index.tsx @@ -6,16 +6,16 @@ * @Description: 表单项类型 - 开关 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\switch\index.tsx */ -import { Field, Switch } from 'vant' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { createFieldProps } from './createFieldProps' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' +import { Field, Switch } from 'vant'; +import { createFieldProps } from './createFieldProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; import { createEditorInputProp, createEditorSwitchProp, createEditorColorProp, - createEditorModelBindProp -} from '@/visual-editor/visual-editor.props' + createEditorModelBindProp, +} from '@/visual-editor/visual-editor.props'; export default { key: 'switch', @@ -25,7 +25,7 @@ export default { }} /> ), render: ({ styles, block, props }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); return () => (
@@ -40,11 +40,11 @@ export default { {...props} v-model={props.modelValue} /> - ) + ), }} />
- ) + ); }, props: { modelValue: createEditorInputProp({ label: '默认值', defaultValue: 'false' }), @@ -57,16 +57,16 @@ export default { disabled: createEditorSwitchProp({ label: '是否为禁用状态' }), loading: createEditorSwitchProp({ label: '是否为加载状态' }), size: createEditorInputProp({ label: '开关尺寸', defaultValue: '20px' }), - ...createFieldProps() + ...createFieldProps(), }, events: [ { label: '开关状态切换时触发', value: 'change' }, - { label: '点击时触发', value: 'click' } + { label: '点击时触发', value: 'click' }, ], resize: { - width: true + width: true, }, model: { - default: '绑定字段' - } -} as VisualEditorComponent + default: '绑定字段', + }, +} as VisualEditorComponent; diff --git a/src/packages/base-widgets/tabbar/index.tsx b/src/packages/base-widgets/tabbar/index.tsx index 9cc90ce..20f1d03 100644 --- a/src/packages/base-widgets/tabbar/index.tsx +++ b/src/packages/base-widgets/tabbar/index.tsx @@ -6,7 +6,9 @@ * @Description: 导航栏 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\tabbar\index.tsx */ +import { onMounted, onBeforeUnmount } from 'vue'; import { Tabbar, TabbarItem } from 'vant'; +import { getTabbarItem } from './tabbar-item'; import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; import { createEditorCrossSortableProp, @@ -15,10 +17,8 @@ import { createEditorColorProp, } from '@/visual-editor/visual-editor.props'; import { useGlobalProperties } from '@/hooks/useGlobalProperties'; -import { getTabbarItem } from './tabbar-item'; import { createNewBlock } from '@/visual-editor/visual-editor.utils'; import { BASE_URL } from '@/visual-editor/utils'; -import { onMounted, onBeforeUnmount } from 'vue'; const defaultTabbarItems = [ { diff --git a/src/packages/base-widgets/text/fontArr.ts b/src/packages/base-widgets/text/fontArr.ts index 14d3c8b..b1e90c4 100644 --- a/src/packages/base-widgets/text/fontArr.ts +++ b/src/packages/base-widgets/text/fontArr.ts @@ -50,5 +50,5 @@ export const fontArr = [ { label: '方正姚体', value: 'FZYaoti' }, { label: '思源黑体', value: 'Source Han Sans CN' }, { label: '思源宋体', value: 'Source Han Serif SC' }, - { label: '文泉驿微米黑', value: 'WenQuanYi Micro Hei' } -] + { label: '文泉驿微米黑', value: 'WenQuanYi Micro Hei' }, +]; diff --git a/src/packages/base-widgets/text/index.tsx b/src/packages/base-widgets/text/index.tsx index 3bf47cd..49b4502 100644 --- a/src/packages/base-widgets/text/index.tsx +++ b/src/packages/base-widgets/text/index.tsx @@ -6,15 +6,15 @@ * @Description: 文本 * @FilePath: \vite-vue3-lowcode\src\packages\base-widgets\text\index.tsx */ -import { useGlobalProperties } from '@/hooks/useGlobalProperties' +import { fontArr } from './fontArr'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; import { createEditorColorProp, createEditorInputProp, createEditorSelectProp, - createEditorInputNumberProp -} from '@/visual-editor/visual-editor.props' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { fontArr } from './fontArr' + createEditorInputNumberProp, +} from '@/visual-editor/visual-editor.props'; export default { key: 'text', @@ -22,7 +22,7 @@ export default { label: '文本', preview: () => 预览文本, render: ({ props, block, styles }) => { - const { registerRef } = useGlobalProperties() + const { registerRef } = useGlobalProperties(); return () => (
{props.text || '默认文本'}
- ) + ); }, props: { text: createEditorInputProp({ label: '显示文本' }), @@ -44,7 +44,7 @@ export default { color: createEditorColorProp({ label: '字体颜色' }), size: createEditorInputNumberProp({ label: '字体大小', - defaultValue: 16 - }) - } -} as VisualEditorComponent + defaultValue: 16, + }), + }, +} as VisualEditorComponent; diff --git a/src/packages/container-component/form/compProps.ts b/src/packages/container-component/form/compProps.ts index 12ea480..41c0695 100644 --- a/src/packages/container-component/form/compProps.ts +++ b/src/packages/container-component/form/compProps.ts @@ -11,24 +11,24 @@ import { createEditorInputProp, createEditorSelectProp, createEditorSwitchProp, - createEditorTableProp -} from '@/visual-editor/visual-editor.props' + createEditorTableProp, +} from '@/visual-editor/visual-editor.props'; // 对齐方式 const alignOptions = [ { label: '左对齐', - value: 'left' + value: 'left', }, { label: '右对齐', - value: 'right' + value: 'right', }, { label: '居中对齐', - value: 'center' - } -] + value: 'center', + }, +]; export const compProps = { 'slots.default.children': createEditorTableProp({ @@ -37,37 +37,37 @@ export const compProps = { options: [ { label: '显示值', field: 'label' }, { label: '绑定值', field: 'value' }, - { label: '备注', field: 'comments' } + { label: '备注', field: 'comments' }, ], - showKey: 'label' + showKey: 'label', }, - defaultValue: [] + defaultValue: [], }), colon: createEditorSwitchProp({ label: '是否在 label 后面添加冒号' }), disabled: createEditorSwitchProp({ label: '是否禁用表单中的所有输入框' }), errorMessageAlign: createEditorSelectProp({ label: '错误提示文案对齐方式', defaultValue: 'left', - options: alignOptions + options: alignOptions, }), inputAlign: createEditorSelectProp({ label: '输入框对齐方式', defaultValue: 'left', - options: alignOptions + options: alignOptions, }), labelAlign: createEditorSelectProp({ label: '表单项 label 对齐方式', defaultValue: 'left', - options: alignOptions + options: alignOptions, }), labelWidth: createEditorInputProp({ label: '表单项 label 宽度,默认单位为px' }), readonly: createEditorSwitchProp({ label: '是否将表单中的所有输入框设置为只读状态' }), scrollToError: createEditorSwitchProp({ - label: '在提交表单且校验不通过时滚动至错误的表单项' + label: '在提交表单且校验不通过时滚动至错误的表单项', }), showError: createEditorSwitchProp({ label: '是否在校验不通过时标红输入框' }), showErrorMessage: createEditorSwitchProp({ - label: '是否在校验不通过时在输入框下方展示错误提示' + label: '是否在校验不通过时在输入框下方展示错误提示', }), submitOnEnter: createEditorSwitchProp({ label: '是否在按下回车键时提交表单' }), validateFirst: createEditorSwitchProp({ label: '是否在某一项校验不通过时停止校验' }), @@ -76,17 +76,17 @@ export const compProps = { options: [ { label: 'onChange', - value: 'onChange' + value: 'onChange', }, { label: 'onSubmit', - value: 'onSubmit' + value: 'onSubmit', }, { label: 'onBlur', - value: 'onBlur' - } + value: 'onBlur', + }, ], - defaultValue: 'onBlur' - }) -} + defaultValue: 'onBlur', + }), +}; diff --git a/src/packages/container-component/form/index.tsx b/src/packages/container-component/form/index.tsx index 64898ed..7e4f782 100644 --- a/src/packages/container-component/form/index.tsx +++ b/src/packages/container-component/form/index.tsx @@ -6,11 +6,11 @@ * @Description: * @FilePath: \vite-vue3-lowcode\src\packages\container-component\form\index.tsx */ -import { Form, Field, Button } from 'vant' -import { renderSlot, useSlots } from 'vue' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' -import { compProps } from './compProps' +import { renderSlot, useSlots } from 'vue'; +import { Form, Field, Button } from 'vant'; +import { compProps } from './compProps'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; export default { key: 'form', @@ -27,13 +27,13 @@ export default { ), - render: function ({ props, styles, block }) { - const slots = useSlots() - const { registerRef } = useGlobalProperties() + render({ props, styles, block }) { + const slots = useSlots(); + const { registerRef } = useGlobalProperties(); const onSubmit = (values) => { - console.log('onSubmit:', values) - } + console.log('onSubmit:', values); + }; return () => (
@@ -46,15 +46,15 @@ export default { {renderSlot(slots, 'default')}
- ) + ); }, resize: { height: true, - width: true + width: true, }, events: [ { label: '提交表单且验证通过后触发', value: 'submit' }, - { label: '提交表单且验证不通过后触发', value: 'failed' } + { label: '提交表单且验证不通过后触发', value: 'failed' }, ], - props: compProps -} as VisualEditorComponent + props: compProps, +} as VisualEditorComponent; diff --git a/src/packages/container-component/index.ts b/src/packages/container-component/index.ts index 2d88646..6d4f2cd 100644 --- a/src/packages/container-component/index.ts +++ b/src/packages/container-component/index.ts @@ -1,11 +1,11 @@ -const modules = import.meta.globEager('./*/index.tsx') +const modules = import.meta.globEager('./*/index.tsx'); -const components = {} +const components = {}; Object.keys(modules).forEach((key: string) => { - const name = key.replace(/\.\/(.*)\/index\.(tsx|vue)/, '$1') - components[name] = modules[key]?.default || modules[key] -}) + const name = key.replace(/\.\/(.*)\/index\.(tsx|vue)/, '$1'); + components[name] = modules[key]?.default || modules[key]; +}); -console.log(components, 'container-component') -export default components +console.log(components, 'container-component'); +export default components; diff --git a/src/packages/container-component/layout/index.tsx b/src/packages/container-component/layout/index.tsx index 3b50d12..6ea4f6e 100644 --- a/src/packages/container-component/layout/index.tsx +++ b/src/packages/container-component/layout/index.tsx @@ -1,17 +1,16 @@ -import { Col, Row } from 'vant' -import { renderSlot, useSlots } from 'vue' -import { createEditorInputProp, createEditorSelectProp } from '@/visual-editor/visual-editor.props' -import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils' -import styleModule from './index.module.scss' -import { useGlobalProperties } from '@/hooks/useGlobalProperties' -import { watchEffect } from 'vue' +import { renderSlot, useSlots, watchEffect } from 'vue'; +import { Col, Row } from 'vant'; +import styleModule from './index.module.scss'; +import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; +import { createEditorInputProp, createEditorSelectProp } from '@/visual-editor/visual-editor.props'; +import { useGlobalProperties } from '@/hooks/useGlobalProperties'; interface SlotItem { - value: string - [prop: string]: any + value: string; + [prop: string]: any; } -const slotsTemp = {} as any +const slotsTemp = {} as any; const createSlots = (str: string): SlotItem => str.split(':').reduce( @@ -19,12 +18,12 @@ const createSlots = (str: string): SlotItem => prev[`slot${index}`] = { key: `slot${index}`, span: curr, - children: [] - } - return prev + children: [], + }; + return prev; }, - { value: str } - ) + { value: str }, + ); export default { key: 'layout', @@ -38,20 +37,20 @@ export default { ), render: ({ props, styles, block, custom }) => { - const slots = useSlots() - const { registerRef } = useGlobalProperties() + const slots = useSlots(); + const { registerRef } = useGlobalProperties(); - slotsTemp[block._vid] ??= {} + slotsTemp[block._vid] ??= {}; watchEffect(() => { if (Object.keys(props.slots || {}).length) { Object.keys(props.slots).forEach((key) => { if (slotsTemp[block._vid][key]?.children) { - props.slots[key].children = slotsTemp[block._vid][key].children + props.slots[key].children = slotsTemp[block._vid][key].children; } - }) + }); } - }) + }); return () => (
@@ -64,20 +63,20 @@ export default { {Object.values(Object.keys(props.slots).length ? props.slots : createSlots('12:12')) ?.filter((item) => typeof item !== 'string') .map((spanItem: SlotItem, spanIndex) => { - slotsTemp[block._vid][`slot${spanIndex}`] = spanItem + slotsTemp[block._vid][`slot${spanIndex}`] = spanItem; return ( <> {renderSlot(slots, `slot${spanIndex}`)} - ) + ); })}
- ) + ); }, resize: { height: true, - width: true + width: true, }, props: { gutter: createEditorInputProp({ label: '列间隔' }), @@ -90,9 +89,9 @@ export default { { label: '18:6', value: createSlots('18:6') }, { label: '8:8:8', value: createSlots('8:8:8') }, { label: '6:12:6', value: createSlots('6:12:6') }, - { label: '6:6:6:6', value: createSlots('6:6:6:6') } + { label: '6:6:6:6', value: createSlots('6:6:6:6') }, ], - defaultValue: createSlots('12:12') + defaultValue: createSlots('12:12'), }), justify: createEditorSelectProp({ label: '主轴对齐方式', @@ -101,16 +100,16 @@ export default { { label: '居中排列', value: 'center' }, { label: '均匀对齐', value: 'space-around' }, { label: '两端对齐', value: 'space-between' }, - { label: '右对齐', value: 'end' } - ] + { label: '右对齐', value: 'end' }, + ], }), align: createEditorSelectProp({ label: '交叉轴对齐方式', options: [ { label: '顶部对齐', value: 'top' }, { label: '垂直居中', value: 'center' }, - { label: '底部对齐', value: 'bottom' } - ] - }) - } -} as VisualEditorComponent + { label: '底部对齐', value: 'bottom' }, + ], + }), + }, +} as VisualEditorComponent; diff --git a/src/plugins/vant.ts b/src/plugins/vant.ts index 05a26b3..b4b5459 100644 --- a/src/plugins/vant.ts +++ b/src/plugins/vant.ts @@ -1,9 +1,8 @@ -import type { App } from 'vue' -import '@vant/touch-emulator' -import 'vant/lib/index.css' - -import { Lazyload } from 'vant' +import { Lazyload } from 'vant'; +import type { App } from 'vue'; +import '@vant/touch-emulator'; +import 'vant/lib/index.css'; export const setupVant = (app: App) => { - app.use(Lazyload) -} + app.use(Lazyload); +}; diff --git a/src/router/index.ts b/src/router/index.ts index 6d311a2..10a183e 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,28 +1,28 @@ -import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router' -import NProgress from 'nprogress' // progress bar -import 'nprogress/css/nprogress.css' // 进度条样式 +import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'; +import NProgress from 'nprogress'; // progress bar +import 'nprogress/css/nprogress.css'; // 进度条样式 -NProgress.configure({ showSpinner: false }) // NProgress Configuration +NProgress.configure({ showSpinner: false }); // NProgress Configuration const routes: Array = [ { path: '/:pathMatch(.*)*', - component: () => import('@/visual-editor/index.vue') - } -] + component: () => import('@/visual-editor/index.vue'), + }, +]; const router = createRouter({ history: createWebHashHistory(), - routes -}) + routes, +}); router.beforeEach(() => { - NProgress.start() // start progress bar - return true -}) + NProgress.start(); // start progress bar + return true; +}); router.afterEach(() => { - NProgress.done() // finish progress bar -}) + NProgress.done(); // finish progress bar +}); -export default router +export default router; diff --git a/src/store/index.ts b/src/store/index.ts index efaf6c9..7468a14 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -1,5 +1,5 @@ -import type { App } from 'vue'; import { createPinia } from 'pinia'; +import type { App } from 'vue'; const store = createPinia(); diff --git a/src/visual-editor/components/common/format-input-number/index.tsx b/src/visual-editor/components/common/format-input-number/index.tsx index f16fb4e..fa45049 100644 --- a/src/visual-editor/components/common/format-input-number/index.tsx +++ b/src/visual-editor/components/common/format-input-number/index.tsx @@ -8,10 +8,10 @@ */ import { defineComponent } from 'vue'; import { ElInput, ElIcon } from 'element-plus'; -import type { PropType } from 'vue'; import { useVModel } from '@vueuse/core'; -import styles from './index.module.scss'; import { ArrowDown, ArrowUp } from '@element-plus/icons-vue'; +import styles from './index.module.scss'; +import type { PropType } from 'vue'; export const FormatInputNumber = defineComponent({ props: { diff --git a/src/visual-editor/components/common/monaco-editor/MonacoEditor.tsx b/src/visual-editor/components/common/monaco-editor/MonacoEditor.tsx index 0c59be3..73240c1 100644 --- a/src/visual-editor/components/common/monaco-editor/MonacoEditor.tsx +++ b/src/visual-editor/components/common/monaco-editor/MonacoEditor.tsx @@ -5,11 +5,11 @@ * @description:MonacoEditor * @update: 2021/4/30 0:01 */ -import { Monaco } from './monaco' -import { defineComponent, onMounted, PropType, shallowRef, ref, onBeforeUnmount, watch } from 'vue' -import styles from './MonacoEditor.module.scss' -let subscription: Monaco.IDisposable | undefined -let preventTriggerChangeEvent = false +import { defineComponent, onMounted, PropType, shallowRef, ref, onBeforeUnmount, watch } from 'vue'; +import { Monaco } from './monaco'; +import styles from './MonacoEditor.module.scss'; +let subscription: Monaco.IDisposable | undefined; +let preventTriggerChangeEvent = false; export default defineComponent({ name: 'MonacoEditor', @@ -17,45 +17,45 @@ export default defineComponent({ code: { // 代码 type: String as PropType, - required: true + required: true, }, layout: { // 布局 type: Object as PropType, required: true, - default: () => ({}) + default: () => ({}), }, options: { type: Object as PropType, - default: () => ({}) + default: () => ({}), }, vid: [String, Number], onChange: { type: Function as PropType< (value: string, event: Monaco.editor.IModelContentChangedEvent) => void - > + >, }, title: { type: String as PropType, - default: '' - } + default: '', + }, }, setup(props) { // 需要一个shallowRef: 只监听value,不关心实际对象 - const editorRef = shallowRef(null) + const editorRef = shallowRef(null); // 需要生成编辑器的Dom - const containerDomRef = ref(null) + const containerDomRef = ref(null); // 格式化代码 const formatCode = () => { window.requestIdleCallback( () => { - editorRef.value!.getAction('editor.action.formatDocument').run() + editorRef.value!.getAction('editor.action.formatDocument').run(); }, - { timeout: 800 } - ) - } + { timeout: 800 }, + ); + }; onMounted(() => { // 组件初始化时创建一个MonacoEditor的实例 @@ -66,44 +66,44 @@ export default defineComponent({ formatOnPaste: true, // 当粘贴的时候自动进行一次格式化代码 tabSize: 2, // tab缩进长度 minimap: { - enabled: false // 不需要小的缩略图 + enabled: false, // 不需要小的缩略图 }, fontFamily: '微软雅黑', //字体 // automaticLayout: true, //编辑器自适应布局,可能会影响性能 overviewRulerBorder: false, scrollBeyondLastLine: false, //滚动配置,溢出才滚动 - ...props.options - }) + ...props.options, + }); // 如果代码有变化,会在这里监听到,当受到外部数据改变时,不需要触发change事件 subscription = editorRef.value.onDidChangeModelContent((event) => { if (!preventTriggerChangeEvent) { // getValue: 获取编辑器中的所有文本 - props.onChange?.(editorRef.value!.getValue(), event) + props.onChange?.(editorRef.value!.getValue(), event); } - }) - formatCode() - editorRef.value.layout(props.layout) - }) + }); + formatCode(); + editorRef.value.layout(props.layout); + }); onBeforeUnmount(() => { // 组件销毁时卸载编辑器 if (subscription) { - subscription.dispose() + subscription.dispose(); } - }) + }); // 更新编辑器 const refreshEditor = () => { if (editorRef.value) { - const editor = editorRef.value + const editor = editorRef.value; // 获取编辑器的textModel文本 - const model = editor.getModel() + const model = editor.getModel(); // 如果代码发生变化 这里需要更新一版 if (model && props.code !== model.getValue()) { // 这是进行一次常规化的操作 文档原文:Push an "undo stop" in the undo-redo stack. - editor.pushUndoStop() - preventTriggerChangeEvent = true + editor.pushUndoStop(); + preventTriggerChangeEvent = true; /** * @function 开始编辑编辑器, 文档原文:Push edit operations, basically editing the model. This is the preferred way of editing the model. The edit operations will land on the undo stack. * @param 编辑操作之前的光标状态。调用撤销或重做时,将返回此光标状态 @@ -115,20 +115,20 @@ export default defineComponent({ [ { range: model.getFullModelRange(), - text: props.code - } + text: props.code, + }, ], - () => null - ) + () => null, + ); } - editor.pushUndoStop() - preventTriggerChangeEvent = false - formatCode() + editor.pushUndoStop(); + preventTriggerChangeEvent = false; + formatCode(); } - } + }; - watch(() => props.vid, refreshEditor, { immediate: true }) + watch(() => props.vid, refreshEditor, { immediate: true }); return () => { return ( @@ -140,7 +140,7 @@ export default defineComponent({ )}
- ) - } - } -}) + ); + }; + }, +}); diff --git a/src/visual-editor/components/common/monaco-editor/monaco.ts b/src/visual-editor/components/common/monaco-editor/monaco.ts index f70eff2..9379a20 100644 --- a/src/visual-editor/components/common/monaco-editor/monaco.ts +++ b/src/visual-editor/components/common/monaco-editor/monaco.ts @@ -1,24 +1,24 @@ // https://github.com/vitejs/vite/discussions/1791#discussioncomment-321046 -import * as Monaco from 'monaco-editor' +import * as Monaco from 'monaco-editor'; // import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker' -import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker' -import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker' +import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'; +import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker'; // import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker' // import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker' -const global: any = globalThis || window +const global: any = globalThis || window; global.MonacoEnvironment = { getWorker(_: string, label: string) { - if (label === 'json') return new jsonWorker() - if (label === 'css' || label === 'scss' || label === 'less') return new cssWorker() + if (label === 'json') return new jsonWorker(); + if (label === 'css' || label === 'scss' || label === 'less') return new cssWorker(); // if (label === 'html' || label === 'handlebars' || label === 'razor') return new htmlWorker() // if (label === 'typescript' || label === 'javascript') return new tsWorker() // return new editorWorker() - } -} + }, +}; -const languages = Monaco.languages.getLanguages() +const languages = Monaco.languages.getLanguages(); -export { Monaco, languages } +export { Monaco, languages }; diff --git a/src/visual-editor/components/header/index.vue b/src/visual-editor/components/header/index.vue index bf241eb..06f20cd 100644 --- a/src/visual-editor/components/header/index.vue +++ b/src/visual-editor/components/header/index.vue @@ -68,11 +68,11 @@ diff --git a/src/visual-editor/components/header/useTools.tsx b/src/visual-editor/components/header/useTools.tsx index e817ad5..39e32dc 100644 --- a/src/visual-editor/components/header/useTools.tsx +++ b/src/visual-editor/components/header/useTools.tsx @@ -7,11 +7,8 @@ */ import { reactive } from 'vue'; import { ElMessage, ElRadio, ElRadioGroup } from 'element-plus'; -import { useQRCode } from '@vueuse/integrations'; +import { useQRCode } from '@vueuse/integrations/useQRCode'; import { useClipboard } from '@vueuse/core'; -import { useVisualData, localKey } from '@/visual-editor/hooks/useVisualData'; -import { useModal } from '@/visual-editor/hooks/useModal'; -import MonacoEditor from '@/visual-editor/components/common/monaco-editor/MonacoEditor'; import { DocumentCopy, Cellphone, @@ -23,6 +20,9 @@ import { Download, Upload, } from '@element-plus/icons-vue'; +import { useVisualData, localKey } from '@/visual-editor/hooks/useVisualData'; +import { useModal } from '@/visual-editor/hooks/useModal'; +import MonacoEditor from '@/visual-editor/components/common/monaco-editor/MonacoEditor'; import 'element-plus/es/components/message/style/css'; export const useTools = () => { @@ -95,7 +95,7 @@ export const useTools = () => { title: '真机预览', icon: Cellphone, onClick: () => { - const qrcode = useQRCode(location.origin + '/preview'); + const qrcode = useQRCode(`${location.origin}/preview`); useModal({ title: '预览二维码(暂不可用)', props: { diff --git a/src/visual-editor/components/left-aside/components/base-widgets/index.tsx b/src/visual-editor/components/left-aside/components/base-widgets/index.tsx index ca75aba..d8578d7 100644 --- a/src/visual-editor/components/left-aside/components/base-widgets/index.tsx +++ b/src/visual-editor/components/left-aside/components/base-widgets/index.tsx @@ -8,11 +8,11 @@ */ import { defineComponent, ref } from 'vue'; import { cloneDeep } from 'lodash-es'; -import { visualConfig } from '@/visual.config'; +import { Edit } from '@element-plus/icons-vue'; import styles from './index.module.scss'; +import { visualConfig } from '@/visual.config'; import { createNewBlock } from '@/visual-editor/visual-editor.utils'; import DraggableTransitionGroup from '@/visual-editor/components/simulator-editor/draggable-transition-group.vue'; -import { Edit } from '@element-plus/icons-vue'; export default defineComponent({ name: 'BaseWidgets', diff --git a/src/visual-editor/components/left-aside/components/container-component/index.tsx b/src/visual-editor/components/left-aside/components/container-component/index.tsx index e07e13b..fd1e345 100644 --- a/src/visual-editor/components/left-aside/components/container-component/index.tsx +++ b/src/visual-editor/components/left-aside/components/container-component/index.tsx @@ -8,12 +8,12 @@ */ import { defineComponent } from 'vue'; import { cloneDeep } from 'lodash-es'; -import { visualConfig } from '@/visual.config'; import Draggable from 'vuedraggable'; +import { Suitcase } from '@element-plus/icons-vue'; import styles from './index.module.scss'; -import { createNewBlock } from '@/visual-editor/visual-editor.utils'; import type { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'; -import { Suitcase } from '@element-plus/icons-vue'; +import { visualConfig } from '@/visual.config'; +import { createNewBlock } from '@/visual-editor/visual-editor.utils'; export default defineComponent({ name: 'ContainerComponent', diff --git a/src/visual-editor/components/left-aside/components/data-source/data-fetch.vue b/src/visual-editor/components/left-aside/components/data-source/data-fetch.vue index a9a2f3e..1702592 100644 --- a/src/visual-editor/components/left-aside/components/data-source/data-fetch.vue +++ b/src/visual-editor/components/left-aside/components/data-source/data-fetch.vue @@ -23,9 +23,9 @@
{{ item.name }}
- + - +
@@ -59,15 +59,16 @@ ElButton, ElMessage, ElCascader, + ElIcon, } from 'element-plus'; - import { useVisualData } from '@/visual-editor/hooks/useVisualData'; + import { cloneDeep } from 'lodash-es'; + import { Delete, Edit } from '@element-plus/icons-vue'; + import { useImportSwaggerJsonModal } from './utils'; import type { FetchApiItem, VisualEditorModel } from '@/visual-editor/visual-editor.utils'; + import { useVisualData } from '@/visual-editor/hooks/useVisualData'; import { useModal } from '@/visual-editor/hooks/useModal'; - import { cloneDeep } from 'lodash-es'; import { generateNanoid } from '@/visual-editor/utils/'; import { RequestEnum, ContentTypeEnum } from '@/enums/httpEnum'; - import { useImportSwaggerJsonModal } from './utils'; - import { Delete, Edit } from '@element-plus/icons-vue'; interface IState { activeNames: string[]; @@ -246,6 +247,7 @@ .model-actions { display: flex; + i { padding: 6px; margin: 0 2px; diff --git a/src/visual-editor/components/left-aside/components/data-source/data-model.vue b/src/visual-editor/components/left-aside/components/data-source/data-model.vue index 22a8d4f..e55a1ab 100644 --- a/src/visual-editor/components/left-aside/components/data-source/data-model.vue +++ b/src/visual-editor/components/left-aside/components/data-source/data-model.vue @@ -23,7 +23,7 @@
{{ item.name }}
- +
@@ -59,14 +59,15 @@ ElCard, ElButton, ElMessage, + ElIcon, } from 'element-plus'; - import { useVisualData, fieldTypes } from '@/visual-editor/hooks/useVisualData'; + import { cloneDeep } from 'lodash-es'; + import { Delete, Edit } from '@element-plus/icons-vue'; + import { useImportSwaggerJsonModal } from './utils'; import type { VisualEditorModel } from '@/visual-editor/visual-editor.utils'; + import { useVisualData, fieldTypes } from '@/visual-editor/hooks/useVisualData'; import { useModal } from '@/visual-editor/hooks/useModal'; - import { cloneDeep } from 'lodash-es'; import { generateNanoid } from '@/visual-editor/utils/'; - import { useImportSwaggerJsonModal } from './utils'; - import { Delete, Edit } from '@element-plus/icons-vue'; interface IState { activeNames: string[]; @@ -261,6 +262,7 @@ .model-actions { display: flex; + i { padding: 6px; margin: 0 2px; diff --git a/src/visual-editor/components/left-aside/components/data-source/index.vue b/src/visual-editor/components/left-aside/components/data-source/index.vue index f64488e..9f34272 100644 --- a/src/visual-editor/components/left-aside/components/data-source/index.vue +++ b/src/visual-editor/components/left-aside/components/data-source/index.vue @@ -1,10 +1,10 @@ - - diff --git a/src/visual-editor/components/simulator-editor/simulator-editor.vue b/src/visual-editor/components/simulator-editor/simulator-editor.vue index 3743809..7de038c 100644 --- a/src/visual-editor/components/simulator-editor/simulator-editor.vue +++ b/src/visual-editor/components/simulator-editor/simulator-editor.vue @@ -55,13 +55,13 @@ diff --git a/src/visual-editor/hooks/useDotProp.ts b/src/visual-editor/hooks/useDotProp.ts index 5729457..2ee5ff2 100644 --- a/src/visual-editor/hooks/useDotProp.ts +++ b/src/visual-editor/hooks/useDotProp.ts @@ -6,13 +6,13 @@ * @update: 2021/5/2 19:54 */ export const useDotProp = (originObj, propName) => { - const props: string[] = propName.split('.') - const isDotProp = props.length > 1 - const prop = props.pop()! - const propObj = props.reduce((prev, curr) => (prev[curr] ??= {}), originObj) + const props: string[] = propName.split('.'); + const isDotProp = props.length > 1; + const prop = props.pop()!; + const propObj = props.reduce((prev, curr) => (prev[curr] ??= {}), originObj); return { prop, propObj, - isDotProp - } -} + isDotProp, + }; +}; diff --git a/src/visual-editor/hooks/useModal.tsx b/src/visual-editor/hooks/useModal.tsx index 00dd9a0..e01af87 100644 --- a/src/visual-editor/hooks/useModal.tsx +++ b/src/visual-editor/hooks/useModal.tsx @@ -12,58 +12,58 @@ import { PropType, getCurrentInstance, ComponentInternalInstance, - isVNode -} from 'vue' -import { ElButton, ElDialog } from 'element-plus' -import { isFunction } from '@/visual-editor/utils/is' + isVNode, +} from 'vue'; +import { ElButton, ElDialog } from 'element-plus'; +import { isFunction } from '@/visual-editor/utils/is'; interface ModalOptions { - title?: string - footer?: null | (() => JSX.Element) - content: ComponentInternalInstance | (() => JSX.Element) - onConfirm?: () => void - onCancel?: () => void + title?: string; + footer?: null | (() => JSX.Element); + content: ComponentInternalInstance | (() => JSX.Element); + onConfirm?: () => void; + onCancel?: () => void; props?: { - [propName: string]: any - } + [propName: string]: any; + }; } const Modal = defineComponent({ props: { options: { type: Object as PropType, - default: () => ({}) - } + default: () => ({}), + }, }, setup(props) { - const instance = getCurrentInstance()! + const instance = getCurrentInstance()!; const state = reactive({ options: props.options, - visible: true - }) + visible: true, + }); const methods = { service: (options: ModalOptions) => { - state.options = options - methods.show() + state.options = options; + methods.show(); }, show: () => (state.visible = true), - hide: () => (state.visible = false) - } + hide: () => (state.visible = false), + }; const handler = { onConfirm: async () => { - await state.options.onConfirm?.() - methods.hide() + await state.options.onConfirm?.(); + methods.hide(); }, onCancel: () => { - state.options.onCancel?.() - methods.hide() - } - } + state.options.onCancel?.(); + methods.hide(); + }, + }; - Object.assign(instance.proxy, methods) + Object.assign(instance.proxy!, methods); return () => (
- ) + ), }} - ) - } -}) + ); + }, +}); export const useModal = (() => { - let instance: any + let instance: any; return (options: ModalOptions) => { if (instance) { - instance.service(options) - return instance + instance.service(options); + return instance; } - const div = document.createElement('div') - document.body.appendChild(div) - const app = createApp(Modal, { options }) - instance = app.mount(div) - return instance - } -})() + const div = document.createElement('div'); + document.body.appendChild(div); + const app = createApp(Modal, { options }); + instance = app.mount(div); + return instance; + }; +})(); diff --git a/src/visual-editor/hooks/useModel.tsx b/src/visual-editor/hooks/useModel.tsx index ea83102..8f94ce7 100644 --- a/src/visual-editor/hooks/useModel.tsx +++ b/src/visual-editor/hooks/useModel.tsx @@ -1,42 +1,42 @@ -import { ref, watch, defineComponent } from 'vue' +import { ref, watch, defineComponent } from 'vue'; export function useModel(getter: () => T, emitter: (val: T) => void) { - const state = ref(getter()) as { value: T } + const state = ref(getter()) as { value: T }; watch(getter, (val) => { if (val !== state.value) { - state.value = val + state.value = val; } - }) + }); return { get value() { - return state.value + return state.value; }, set value(val: T) { if (state.value !== val) { - state.value = val - emitter(val) + state.value = val; + emitter(val); } - } - } + }, + }; } export const TestUseModel = defineComponent({ props: { - modelValue: { type: String } + modelValue: { type: String }, }, emits: ['update:modelValue'], setup(props, ctx) { const model = useModel( () => props.modelValue, - (val) => ctx.emit('update:modelValue', val) - ) + (val) => ctx.emit('update:modelValue', val), + ); return () => (
自定义的输入框
- ) - } -}) + ); + }, +}); diff --git a/src/visual-editor/hooks/useVisualData.ts b/src/visual-editor/hooks/useVisualData.ts index 96f9ef3..f5f3724 100644 --- a/src/visual-editor/hooks/useVisualData.ts +++ b/src/visual-editor/hooks/useVisualData.ts @@ -5,30 +5,30 @@ * @description:useVisualData * @update: 2021/5/6 11:59 */ -import { reactive, inject, readonly, computed, watch } from 'vue' -import type { InjectionKey } from 'vue' -import { useRoute, useRouter } from 'vue-router' +import { reactive, inject, readonly, computed, watch } from 'vue'; +import { useRoute, useRouter } from 'vue-router'; +import type { InjectionKey } from 'vue'; import type { VisualEditorModelValue, VisualEditorBlockData, VisualEditorPage, FetchApiItem, - VisualEditorModel -} from '@/visual-editor/visual-editor.utils' + VisualEditorModel, +} from '@/visual-editor/visual-editor.utils'; -import { visualConfig } from '@/visual.config' -import { CacheEnum } from '@/enums' +import { visualConfig } from '@/visual.config'; +import { CacheEnum } from '@/enums'; // 保存到本地JSON数据的key -export const localKey = CacheEnum.PAGE_DATA_KEY +export const localKey = CacheEnum.PAGE_DATA_KEY; // 注入jsonData的key -export const injectKey: InjectionKey> = Symbol() +export const injectKey: InjectionKey> = Symbol(); interface IState { - currentBlock: VisualEditorBlockData // 当前正在操作的组件 - currentPage: VisualEditorPage // 当前正在操作的页面 - jsonData: VisualEditorModelValue // 整棵JSON树 + currentBlock: VisualEditorBlockData; // 当前正在操作的组件 + currentPage: VisualEditorPage; // 当前正在操作的页面 + jsonData: VisualEditorModelValue; // 整棵JSON树 } /** @@ -40,125 +40,125 @@ export const createNewPage = ({ title = '新页面', path = '/' }) => ({ config: { bgColor: '', bgImage: '', - keepAlive: false + keepAlive: false, }, - blocks: [] -}) + blocks: [], +}); const defaultValue: VisualEditorModelValue = { pages: { // 页面 - '/': createNewPage({ title: '首页' }) + '/': createNewPage({ title: '首页' }), }, models: [], // 模型实体集合 actions: { // 动作集合 fetch: { name: '接口请求', - apis: [] + apis: [], }, dialog: { name: '对话框', - handlers: [] - } - } -} + handlers: [], + }, + }, +}; export const initVisualData = () => { - const localData = JSON.parse(sessionStorage.getItem(localKey) as string) + const localData = JSON.parse(sessionStorage.getItem(localKey) as string); const jsonData: VisualEditorModelValue = Object.keys(localData?.pages || {}).length ? localData - : defaultValue + : defaultValue; - const route = useRoute() - const router = useRouter() + const route = useRoute(); + const router = useRouter(); - console.log('jsonData:', jsonData) + console.log('jsonData:', jsonData); // 所有页面的path都必须以 / 开发 - const getPrefixPath = (path: string) => (path.startsWith('/') ? path : `/${path}`) + const getPrefixPath = (path: string) => (path.startsWith('/') ? path : `/${path}`); - const currentPage = jsonData.pages[route.path] + const currentPage = jsonData.pages[route.path]; const state: IState = reactive({ jsonData, currentPage, - currentBlock: currentPage?.blocks?.find((item) => item.focus) ?? ({} as VisualEditorBlockData) - }) - const paths = Object.keys(jsonData.pages) + currentBlock: currentPage?.blocks?.find((item) => item.focus) ?? ({} as VisualEditorBlockData), + }); + const paths = Object.keys(jsonData.pages); - const isExistPath = paths.some((path) => route.path == path) + const isExistPath = paths.some((path) => route.path == path); // 当前页面是否存在 if (!isExistPath) { - router.replace(paths[0] || '/') - state.currentPage = jsonData.pages[paths[0]] ?? defaultValue.pages['/'] + router.replace(paths[0] || '/'); + state.currentPage = jsonData.pages[paths[0]] ?? defaultValue.pages['/']; } // 路由变化时更新当前操作的页面 watch( () => route.path, - (url) => setCurrentPage(url) - ) + (url) => setCurrentPage(url), + ); // 更新page - const updatePage = ({ newPath, oldPath, page }) => { - console.log(state.jsonData.pages[oldPath], page) + const updatePage = ({ newPath = '', oldPath, page }) => { + console.log(state.jsonData.pages[oldPath], page); if (newPath && newPath != oldPath) { - page.path = newPath + page.path = newPath; // 如果传了新的路径,则认为是修改页面路由 - state.jsonData.pages[getPrefixPath(newPath)] = { ...state.jsonData.pages[oldPath], ...page } - deletePage(oldPath, getPrefixPath(newPath)) + state.jsonData.pages[getPrefixPath(newPath)] = { ...state.jsonData.pages[oldPath], ...page }; + deletePage(oldPath, getPrefixPath(newPath)); } else { - Object.assign(state.jsonData.pages[oldPath], page) + Object.assign(state.jsonData.pages[oldPath], page); } - } + }; // 添加page const incrementPage = (path = '', page: VisualEditorPage) => { - state.jsonData.pages[getPrefixPath(path)] ??= page ?? createNewPage({ path }) - } + state.jsonData.pages[getPrefixPath(path)] ??= page ?? createNewPage({ path }); + }; // 删除page const deletePage = (path = '', redirectPath = '') => { - delete state.jsonData.pages[path] + delete state.jsonData.pages[path]; if (redirectPath) { - setCurrentPage(redirectPath) + setCurrentPage(redirectPath); } - } + }; // 设置当前页面 const setCurrentPage = (path = '/') => { - state.currentPage = jsonData.pages[path] + state.currentPage = jsonData.pages[path]; if (!state.currentPage) { - state.currentPage = jsonData.pages['/'] - router.replace('/') + state.currentPage = jsonData.pages['/']; + router.replace('/'); } - const currentFocusBlock = state.currentPage.blocks.find((item) => item.focus) - setCurrentBlock(currentFocusBlock ?? ({} as VisualEditorBlockData)) - } + const currentFocusBlock = state.currentPage.blocks.find((item) => item.focus); + setCurrentBlock(currentFocusBlock ?? ({} as VisualEditorBlockData)); + }; // 设置当前被操作的组件 const setCurrentBlock = (block: VisualEditorBlockData) => { - state.currentBlock = block - } + state.currentBlock = block; + }; // 更新pages下面的blocks const updatePageBlock = (path = '', blocks: VisualEditorBlockData[] = []) => { - state.jsonData.pages[path].blocks = blocks - } + state.jsonData.pages[path].blocks = blocks; + }; /** * @description 新建API接口请求 */ const incrementFetchApi = (api: FetchApiItem) => { - state.jsonData.actions.fetch.apis.push(api) - } + state.jsonData.actions.fetch.apis.push(api); + }; /** * @description 删除某个API接口 */ const deleteFetchApi = (key: string) => { - const index = state.jsonData.actions.fetch.apis.findIndex((item) => item.key == key) + const index = state.jsonData.actions.fetch.apis.findIndex((item) => item.key == key); if (index !== -1) { - state.jsonData.actions.fetch.apis.splice(index, 1) + state.jsonData.actions.fetch.apis.splice(index, 1); } - } + }; /** * @description 更新某个接口或者批量更新接口 @@ -166,34 +166,34 @@ export const initVisualData = () => { * @param {boolean} isCover 是否覆盖全部接口 */ const updateFetchApi = (api: FetchApiItem | FetchApiItem[], isCover = false) => { - const fetch = state.jsonData.actions.fetch - const apis = Array.isArray(api) ? api : [api] + const fetch = state.jsonData.actions.fetch; + const apis = Array.isArray(api) ? api : [api]; if (isCover) { - fetch.apis = apis + fetch.apis = apis; } else { apis.forEach((apiItem) => { - const target = fetch.apis.find((item) => item.key == apiItem.key) - Object.assign(target, api) - }) + const target = fetch.apis.find((item) => item.key == apiItem.key); + target && Object.assign(target, api); + }); } - } + }; /** * @description 新增模型 */ const incrementModel = (model: VisualEditorModel) => { - state.jsonData.models.push(model) - } + state.jsonData.models.push(model); + }; /** * @description 删除某个模型 */ const deleteModel = (key: string) => { - const index = state.jsonData.models.findIndex((item) => item.key == key) + const index = state.jsonData.models.findIndex((item) => item.key == key); if (index !== -1) { - state.jsonData.models.splice(index, 1) + state.jsonData.models.splice(index, 1); } - } + }; /** * @param { VisualEditorModel | VisualEditorModel[]} model 模型项或模型数组 @@ -201,27 +201,27 @@ export const initVisualData = () => { * @description 更新某个模型 */ const updateModel = (model: VisualEditorModel | VisualEditorModel[], isCover = false) => { - const jsonData = state.jsonData - const models = Array.isArray(model) ? model : [model] + const jsonData = state.jsonData; + const models = Array.isArray(model) ? model : [model]; if (isCover) { - jsonData.models = models + jsonData.models = models; } else { models.forEach((modelItem) => { - const index = jsonData.models.findIndex((item) => item.key == modelItem.key) + const index = jsonData.models.findIndex((item) => item.key == modelItem.key); if (index !== -1) { - state.jsonData.models.splice(index, 1, modelItem) + state.jsonData.models.splice(index, 1, modelItem); } - }) + }); } - } + }; // 使用自定义JSON覆盖整个项目 const overrideProject = (jsonData) => { - state.jsonData = typeof jsonData === 'string' ? JSON.parse(jsonData) : jsonData - } + state.jsonData = typeof jsonData === 'string' ? JSON.parse(jsonData) : jsonData; + }; return { - visualConfig: visualConfig, + visualConfig, jsonData: readonly(state.jsonData), // 保护JSONData避免直接修改 currentPage: computed(() => state.currentPage), currentBlock: computed(() => state.currentBlock), @@ -237,11 +237,11 @@ export const initVisualData = () => { updatePage, incrementPage, deletePage, - updatePageBlock - } -} + updatePageBlock, + }; +}; -export const useVisualData = () => inject>(injectKey)! +export const useVisualData = () => inject>(injectKey)!; /** * 实体的字段数据类型 @@ -249,18 +249,18 @@ export const useVisualData = () => inject>(inj export const fieldTypes = [ { label: '字符串', - value: 'string' + value: 'string', }, { label: '数字', - value: 'number' + value: 'number', }, { label: '数组', - value: 'array' + value: 'array', }, { label: '布尔值', - value: 'boolean' - } -] + value: 'boolean', + }, +]; diff --git a/src/visual-editor/index.vue b/src/visual-editor/index.vue index 9304c61..a64736e 100644 --- a/src/visual-editor/index.vue +++ b/src/visual-editor/index.vue @@ -33,34 +33,34 @@ diff --git a/src/visual-editor/plugins/command.plugin.ts b/src/visual-editor/plugins/command.plugin.ts index 4ed1d99..cff9edf 100644 --- a/src/visual-editor/plugins/command.plugin.ts +++ b/src/visual-editor/plugins/command.plugin.ts @@ -1,18 +1,18 @@ -import { reactive, onUnmounted } from 'vue' -import { KeyboardCode } from './keyboard-code' +import { reactive, onUnmounted } from 'vue'; +import { KeyboardCode } from './keyboard-code'; export interface CommandExecute { - undo?: () => void - redo: () => void + undo?: () => void; + redo: () => void; } export interface Command { - name: string // 命令唯一标识 - keyboard?: string | string[] // 命令监听的快捷键 - execute: (...args: any[]) => CommandExecute // 命令被执行的时候,所做的内容 - followQueue?: boolean // 命令执行完之后,是否需要将命令执行得到的undo,redo存入命令队列 - init?: () => (() => void) | undefined // 命令初始化函数 - data?: any // 命令缓存所需要的数据 + name: string; // 命令唯一标识 + keyboard?: string | string[]; // 命令监听的快捷键 + execute: (...args: any[]) => CommandExecute; // 命令被执行的时候,所做的内容 + followQueue?: boolean; // 命令执行完之后,是否需要将命令执行得到的undo,redo存入命令队列 + init?: () => (() => void) | undefined; // 命令初始化函数 + data?: any; // 命令缓存所需要的数据 } export function useCommander() { @@ -21,8 +21,8 @@ export function useCommander() { queue: [] as CommandExecute[], // 命令队列 commandArray: [] as Command[], // 命令对象数组 commands: {} as Record void>, // 命令对象,方便通过命令的名称调用命令的execute函数,并且执行额外的命令队列的逻辑 - destroyList: [] as ((() => void) | undefined)[] // 组件销毁的时候,需要调用的销毁逻辑数组 - }) + destroyList: [] as ((() => void) | undefined)[], // 组件销毁的时候,需要调用的销毁逻辑数组 + }); /** * 注册一个命令 @@ -30,56 +30,56 @@ export function useCommander() { * @date 2021/4/22 11:33 下午 */ const registry = (command: Command) => { - state.commandArray.push(command) + state.commandArray.push(command); state.commands[command.name] = (...args) => { - const { undo, redo } = command.execute(...args) - redo() + const { undo, redo } = command.execute(...args); + redo(); /*如果命令执行之后,不需要进入命令队列,则直接结束*/ if (command.followQueue === false) { - return + return; } /*否则,将命令队列中剩余的命令去除,保留current及其之前的命令*/ - const { queue, current } = state + const { queue, current } = state; if (queue.length > 0) { - state.queue = queue.slice(0, current + 1) + state.queue = queue.slice(0, current + 1); } /*设置命令队列中最后一个命令为当前执行的命令*/ - queue.push({ undo, redo }) + queue.push({ undo, redo }); /*索引+1,指向队列中的最后一个命令*/ - state.current = current + 1 - } - } + state.current = current + 1; + }; + }; const keyboardEvent = (() => { const onKeydown = (e: KeyboardEvent) => { if (document.activeElement !== document.body) { - return + return; } - const { keyCode, shiftKey, altKey, ctrlKey, metaKey } = e - const keyString: string[] = [] - if (ctrlKey || metaKey) keyString.push('ctrl') - if (shiftKey) keyString.push('shift') - if (altKey) keyString.push('alt') - keyString.push(KeyboardCode[keyCode]) - const keyNames = keyString.join('+') + const { keyCode, shiftKey, altKey, ctrlKey, metaKey } = e; + const keyString: string[] = []; + if (ctrlKey || metaKey) keyString.push('ctrl'); + if (shiftKey) keyString.push('shift'); + if (altKey) keyString.push('alt'); + keyString.push(KeyboardCode[keyCode]); + const keyNames = keyString.join('+'); state.commandArray.forEach(({ keyboard, name }) => { if (!keyboard) { - return + return; } - const keys = Array.isArray(keyboard) ? keyboard : [keyboard] + const keys = Array.isArray(keyboard) ? keyboard : [keyboard]; if (keys.indexOf(keyNames) > -1) { - state.commands[name]() - e.stopPropagation() - e.preventDefault() + state.commands[name](); + e.stopPropagation(); + e.preventDefault(); } - }) - } + }); + }; const init = () => { - window.addEventListener('keydown', onKeydown) - return () => window.removeEventListener('keydown', onKeydown) - } - return init - })() + window.addEventListener('keydown', onKeydown); + return () => window.removeEventListener('keydown', onKeydown); + }; + return init; + })(); /** * useCommander初始化函数,负责初始化键盘监听事件,调用命令的初始化逻辑 @@ -89,14 +89,14 @@ export function useCommander() { const init = () => { const onKeydown = (_: KeyboardEvent) => { // console.log('监听到键盘时间') - } - window.addEventListener('keydown', onKeydown) + }; + window.addEventListener('keydown', onKeydown); state.commandArray.forEach( - (command) => !!command.init && state.destroyList.push(command.init()) - ) - state.destroyList.push(keyboardEvent()) - state.destroyList.push(() => window.removeEventListener('keydown', onKeydown)) - } + (command) => !!command.init && state.destroyList.push(command.init()), + ); + state.destroyList.push(keyboardEvent()); + state.destroyList.push(() => window.removeEventListener('keydown', onKeydown)); + }; /** * 注册撤回命令(撤回命令执行结果不需要进入命令队列) @@ -111,18 +111,18 @@ export function useCommander() { return { redo: () => { if (state.current === -1) { - return + return; } - const queueItem = state.queue[state.current] + const queueItem = state.queue[state.current]; // console.log('queueItem',queueItem) if (queueItem) { - !!queueItem.undo && queueItem.undo() - state.current-- + !!queueItem.undo && queueItem.undo(); + state.current--; } - } - } - } - }) + }, + }; + }, + }); /** * 注册重做命令(重做命令执行结果不需要进入命令队列) @@ -136,21 +136,21 @@ export function useCommander() { execute: () => { return { redo: () => { - const queueItem = state.queue[state.current + 1] + const queueItem = state.queue[state.current + 1]; if (queueItem) { - queueItem.redo() - state.current++ + queueItem.redo(); + state.current++; } - } - } - } - }) + }, + }; + }, + }); - onUnmounted(() => state.destroyList.forEach((fn) => !!fn && fn())) + onUnmounted(() => state.destroyList.forEach((fn) => !!fn && fn())); return { state, registry, - init - } + init, + }; } diff --git a/src/visual-editor/plugins/event.ts b/src/visual-editor/plugins/event.ts index f499d59..90a3e2c 100644 --- a/src/visual-editor/plugins/event.ts +++ b/src/visual-editor/plugins/event.ts @@ -1,17 +1,17 @@ -type SimplyListener = () => void +type SimplyListener = () => void; export function createEvent() { - const listeners: SimplyListener[] = [] + const listeners: SimplyListener[] = []; return { on: (cb: SimplyListener) => { - listeners.push(cb) + listeners.push(cb); }, off: (cb: SimplyListener) => { - const index = listeners.indexOf(cb) - if (index > -1) listeners.splice(index, 1) + const index = listeners.indexOf(cb); + if (index > -1) listeners.splice(index, 1); }, emit: () => { - listeners.forEach((item) => item()) - } - } + listeners.forEach((item) => item()); + }, + }; } diff --git a/src/visual-editor/plugins/keyboard-code.ts b/src/visual-editor/plugins/keyboard-code.ts index 80337c2..e48a1dc 100644 --- a/src/visual-editor/plugins/keyboard-code.ts +++ b/src/visual-editor/plugins/keyboard-code.ts @@ -67,5 +67,5 @@ export const KeyboardCode = { 120: 'F9', 121: 'F10', 122: 'F11', - 123: 'F12' -} as Record + 123: 'F12', +} as Record; diff --git a/src/visual-editor/types/index.d.ts b/src/visual-editor/types/index.d.ts index da5a81a..d98a1f4 100644 --- a/src/visual-editor/types/index.d.ts +++ b/src/visual-editor/types/index.d.ts @@ -10,43 +10,43 @@ declare global { /** label-value一般用做选项 */ type LabelValue = { - label: string - value: any - } + label: string; + value: any; + }; /** label-value 数组 一般用做选项 */ - type LabelValueOptions = OptionItem[] + type LabelValueOptions = OptionItem[]; - type RequestIdleCallbackHandle = any + type RequestIdleCallbackHandle = any; type RequestIdleCallbackDeadline = { - readonly didTimeout: boolean - timeRemaining: () => number - } + readonly didTimeout: boolean; + timeRemaining: () => number; + }; type RequestIdleCallbackOptions = { - timeout: number - } + timeout: number; + }; interface Window { - $$refs: any + $$refs: any; requestIdleCallback: ( callback: (deadline: RequestIdleCallbackDeadline) => void, - opts?: RequestIdleCallbackOptions - ) => RequestIdleCallbackHandle - cancelIdleCallback: (handle: RequestIdleCallbackHandle) => void + opts?: RequestIdleCallbackOptions, + ) => RequestIdleCallbackHandle; + cancelIdleCallback: (handle: RequestIdleCallbackHandle) => void; } } declare module '@vue/runtime-core' { export interface ComponentCustomProperties { - $$refs: any + $$refs: any; } } declare module '@vue/runtime-dom' { export interface CSSProperties { /** 临时padding变量. */ - tempPadding?: string + tempPadding?: string; } } -export {} +export {}; diff --git a/src/visual-editor/utils/defer.ts b/src/visual-editor/utils/defer.ts index 8577000..282b0fd 100644 --- a/src/visual-editor/utils/defer.ts +++ b/src/visual-editor/utils/defer.ts @@ -1,22 +1,22 @@ interface Defer { (): { - resolve: () => void - reject: () => void - promise: Promise - } + resolve: () => void; + reject: () => void; + promise: Promise; + }; (): { - resolve: (val: T) => void - reject: () => void - promise: Promise - } + resolve: (val: T) => void; + reject: () => void; + promise: Promise; + }; } export const defer: Defer = () => { - const dfd = {} as any + const dfd = {} as any; dfd.promise = new Promise((resolve, reject) => { - dfd.resolve = resolve as any - dfd.reject = reject - }) - return dfd -} + dfd.resolve = resolve as any; + dfd.reject = reject; + }); + return dfd; +}; diff --git a/src/visual-editor/utils/dialog-service.tsx b/src/visual-editor/utils/dialog-service.tsx index 7890d43..b110977 100644 --- a/src/visual-editor/utils/dialog-service.tsx +++ b/src/visual-editor/utils/dialog-service.tsx @@ -1,69 +1,70 @@ -import { defer } from './defer' -import { defineComponent, PropType, reactive, createApp, getCurrentInstance } from 'vue' -import { ElInput, ElDialog, ElButton } from 'element-plus' +import { defineComponent, PropType, reactive, createApp, getCurrentInstance } from 'vue'; +import { ElInput, ElDialog, ElButton } from 'element-plus'; +import { defer } from './defer'; enum DialogServiceEditType { textarea = 'textarea', - input = 'input' + input = 'input', } interface DialogServiceOption { - title?: string - editType: DialogServiceEditType - editReadonly?: boolean - editValue?: string | null - onConfirm: (val?: string | null) => void + title?: string; + editType: DialogServiceEditType; + editReadonly?: boolean; + editValue?: string | null; + onConfirm: (val?: string | null) => void; } const keyGenerator = (() => { - let count = 0 - return () => `auto_key_${count++}` -})() + let count = 0; + return () => `auto_key_${count++}`; +})(); const ServiceComponent = defineComponent({ + name: 'DialogService', props: { - option: { type: Object as PropType, required: true } + option: { type: Object as PropType, required: true }, }, setup(props) { - const ctx = getCurrentInstance()! + const ctx = getCurrentInstance()!; const state = reactive({ option: props.option, editValue: null as undefined | null | string, showFlag: false, - key: keyGenerator() - }) + key: keyGenerator(), + }); const methods = { service: (option: DialogServiceOption) => { - state.option = option - state.editValue = option.editValue - state.key = keyGenerator() - methods.show() + state.option = option; + state.editValue = option.editValue; + state.key = keyGenerator(); + methods.show(); }, show: () => { - state.showFlag = true + state.showFlag = true; }, hide: () => { - state.showFlag = false - } - } + state.showFlag = false; + }, + }; const handler = { onConfirm: () => { - state.option.onConfirm(state.editValue) - methods.hide() + state.option.onConfirm(state.editValue); + methods.hide(); }, onCancel: () => { - methods.hide() - } - } + methods.hide(); + }, + }; - Object.assign(ctx.proxy, methods) + Object.assign(ctx.proxy!, methods); return () => ( <> - + {{ default: () => (
@@ -79,58 +80,58 @@ const ServiceComponent = defineComponent({ 取消 确定
- ) + ), }}
- ) - } -}) + ); + }, +}); const DialogService = (() => { - let ins: any + let ins: any; return (option: DialogServiceOption) => { if (!ins) { - const el = document.createElement('div') - document.body.appendChild(el) - const app = createApp(ServiceComponent, { option }) - ins = app.mount(el) + const el = document.createElement('div'); + document.body.appendChild(el); + const app = createApp(ServiceComponent, { option }); + ins = app.mount(el); } - ins.service(option) - } -})() + ins.service(option); + }; +})(); export const $$dialog = Object.assign(DialogService, { input: ( initValue?: string, title?: string, - option?: Omit + option?: Omit, ) => { - const dfd = defer() + const dfd = defer(); const opt: DialogServiceOption = { ...option, editType: DialogServiceEditType.input, onConfirm: dfd.resolve, editValue: initValue, - title - } - DialogService(opt) - return dfd.promise + title, + }; + DialogService(opt); + return dfd.promise; }, textarea: ( initValue?: string, title?: string, - option?: Omit + option?: Omit, ) => { - const dfd = defer() + const dfd = defer(); const opt: DialogServiceOption = { ...option, editType: DialogServiceEditType.textarea, onConfirm: dfd.resolve, editValue: initValue, - title - } - DialogService(opt) - return dfd.promise - } -}) + title, + }; + DialogService(opt); + return dfd.promise; + }, +}); diff --git a/src/visual-editor/utils/dropdown-service.tsx b/src/visual-editor/utils/dropdown-service.tsx index 3d693ad..a846735 100644 --- a/src/visual-editor/utils/dropdown-service.tsx +++ b/src/visual-editor/utils/dropdown-service.tsx @@ -9,29 +9,29 @@ import { onBeforeUnmount, ref, provide, - inject -} from 'vue' -import './dropdown-sservice.scss' -import { defer } from './defer' + inject, +} from 'vue'; +import './dropdown-sservice.scss'; +import { defer } from './defer'; interface DropdownServiceOption { - reference: MouseEvent | HTMLElement - content: () => JSX.Element + reference: MouseEvent | HTMLElement; + content: () => JSX.Element; } const DropdownServiceProvider = (() => { - const DROPDOWN_SERVICE_PROVIDER = '@@DROPDOWN_SERVICE_PROVIDER' + const DROPDOWN_SERVICE_PROVIDER = '@@DROPDOWN_SERVICE_PROVIDER'; return { provide: (handler: { onClick: () => void }) => provide(DROPDOWN_SERVICE_PROVIDER, handler), - inject: () => inject(DROPDOWN_SERVICE_PROVIDER) as { onClick: () => void } - } -})() + inject: () => inject(DROPDOWN_SERVICE_PROVIDER) as { onClick: () => void }, + }; +})(); const ServiceComponent = defineComponent({ props: { option: { type: Object as PropType, required: true } }, setup(props) { - const ctx = getCurrentInstance()! - const el = ref>() + const ctx = getCurrentInstance()!; + const el = ref>(); const state = reactive({ option: props.option, @@ -39,105 +39,107 @@ const ServiceComponent = defineComponent({ top: 0, left: 0, mounted: (() => { - const dfd = defer() - onMounted(() => setTimeout(() => dfd.resolve(), 0)) - return dfd.promise - })() - }) + const dfd = defer(); + onMounted(() => setTimeout(() => dfd.resolve(), 0)); + return dfd.promise; + })(), + }); const service = (option: DropdownServiceOption) => { - state.option = option + state.option = option; if ('addEventListener' in option.reference) { - const { top, left, height } = option.reference.getBoundingClientRect()! - state.top = top + height - state.left = left + const { top, left, height } = option.reference.getBoundingClientRect()!; + state.top = top + height; + state.left = left; } else { - const { clientX, clientY } = option.reference - state.left = clientX - state.top = clientY + const { clientX, clientY } = option.reference; + state.left = clientX; + state.top = clientY; } - methods.show() - } + methods.show(); + }; const methods = { show: async () => { - await state.mounted - state.showFlag = true + await state.mounted; + state.showFlag = true; }, hide: () => { - state.showFlag = false - } - } + state.showFlag = false; + }, + }; const classes = computed(() => [ 'dropdown-service', { - 'dropdown-service-show': state.showFlag - } - ]) + 'dropdown-service-show': state.showFlag, + }, + ]); const styles = computed(() => ({ top: `${state.top}px`, - left: `${state.left}px` - })) + left: `${state.left}px`, + })); - Object.assign(ctx.proxy, { service }) + Object.assign(ctx.proxy!, { service }); const onMousedownDocument = (e: MouseEvent) => { if (!el.value?.contains(e.target as HTMLElement)) { - methods.hide() + methods.hide(); } - } + }; - onMounted(() => document.body.addEventListener('mousedown', onMousedownDocument, true)) - onBeforeUnmount(() => document.body.removeEventListener('mousedown', onMousedownDocument, true)) + onMounted(() => document.body.addEventListener('mousedown', onMousedownDocument, true)); + onBeforeUnmount(() => + document.body.removeEventListener('mousedown', onMousedownDocument, true), + ); - DropdownServiceProvider.provide({ onClick: methods.hide }) + DropdownServiceProvider.provide({ onClick: methods.hide }); return () => (
{state.option.content()}
- ) - } -}) + ); + }, +}); export const DropdownOption = defineComponent({ props: { label: { type: String }, - icon: { type: String } + icon: { type: String }, }, emits: ['click'], setup(props, ctx) { - const { onClick: dropdownClickHandler } = DropdownServiceProvider.inject() + const { onClick: dropdownClickHandler } = DropdownServiceProvider.inject(); const handler = { onClick: (e: MouseEvent) => { - ctx.emit('click', e) - dropdownClickHandler() - } - } + ctx.emit('click', e); + dropdownClickHandler(); + }, + }; return () => ( - ) - } -}) + ); + }, +}); export const $$dropdown = (() => { - let ins: any + let ins: any; return (option: DropdownServiceOption) => { if (!ins) { - const el = document.createElement('div') - document.body.appendChild(el) - const app = createApp(ServiceComponent, { option }) - ins = app.mount(el) + const el = document.createElement('div'); + document.body.appendChild(el); + const app = createApp(ServiceComponent, { option }); + ins = app.mount(el); } - ins.service(option) - } -})() + ins.service(option); + }; +})(); diff --git a/src/visual-editor/utils/index.ts b/src/visual-editor/utils/index.ts index 2ea6cb3..f28e4c5 100644 --- a/src/visual-editor/utils/index.ts +++ b/src/visual-editor/utils/index.ts @@ -6,14 +6,14 @@ * @Description: 公用的工具函数 * @FilePath: \vite-vue3-lowcode\src\visual-editor\utils\index.ts */ -import { customAlphabet } from 'nanoid' +import { customAlphabet } from 'nanoid'; /** * @description 部署应用时的基本URL */ -export const BASE_URL = import.meta.env.BASE_URL +export const BASE_URL = import.meta.env.BASE_URL; /** * @description 生成nanoid */ -export const generateNanoid = customAlphabet('1234567890abcdef', 10) +export const generateNanoid = customAlphabet('1234567890abcdef', 10); diff --git a/src/visual-editor/utils/is.ts b/src/visual-editor/utils/is.ts index 7512caf..79941f9 100644 --- a/src/visual-editor/utils/is.ts +++ b/src/visual-editor/utils/is.ts @@ -1,94 +1,99 @@ -const toString = Object.prototype.toString +const toString = Object.prototype.toString; export function is(val: unknown, type: string) { - return toString.call(val) === `[object ${type}]` + return toString.call(val) === `[object ${type}]`; } export function isDef(val?: T): val is T { - return typeof val !== 'undefined' + return typeof val !== 'undefined'; } export function isUnDef(val?: T): val is T { - return !isDef(val) + return !isDef(val); } export function isObject(val: any): val is Record { - return val !== null && is(val, 'Object') + return val !== null && is(val, 'Object'); } export function isEmpty(val: T): val is T { if (isArray(val) || isString(val)) { - return val.length === 0 + return val.length === 0; } if (val instanceof Map || val instanceof Set) { - return val.size === 0 + return val.size === 0; } if (isObject(val)) { - return Object.keys(val).length === 0 + return Object.keys(val).length === 0; } - return false + return false; } export function isDate(val: unknown): val is Date { - return is(val, 'Date') + return is(val, 'Date'); } export function isNull(val: unknown): val is null { - return val === null + return val === null; } export function isNullAndUnDef(val: unknown): val is null | undefined { - return isUnDef(val) && isNull(val) + return isUnDef(val) && isNull(val); } export function isNullOrUnDef(val: unknown): val is null | undefined { - return isUnDef(val) || isNull(val) + return isUnDef(val) || isNull(val); } export function isNumber(val: unknown): val is number { - return is(val, 'Number') + return is(val, 'Number'); } export function isPromise(val: unknown): val is Promise { - return is(val, 'Promise') && isObject(val) && isFunction(val.then) && isFunction(val.catch) + return is(val, 'Promise') && isObject(val) && isFunction(val.then) && isFunction(val.catch); } export function isString(val: unknown): val is string { - return is(val, 'String') + return is(val, 'String'); } export function isFunction(val: unknown): val is Function { - return typeof val === 'function' + return typeof val === 'function'; } export function isBoolean(val: unknown): val is boolean { - return is(val, 'Boolean') + return is(val, 'Boolean'); } export function isRegExp(val: unknown): val is RegExp { - return is(val, 'RegExp') + return is(val, 'RegExp'); } export function isArray(val: any): val is Array { - return val && Array.isArray(val) + return val && Array.isArray(val); } export function isWindow(val: any): val is Window { - return typeof window !== 'undefined' && is(val, 'Window') + return typeof window !== 'undefined' && is(val, 'Window'); } export function isElement(val: unknown): val is Element { - return isObject(val) && !!val.tagName + return isObject(val) && !!val.tagName; } -export const isServer = typeof window === 'undefined' +export function isMap(val: unknown): val is Map { + return is(val, 'Map'); +} + +export const isServer = typeof window === 'undefined'; -export const isClient = !isServer +export const isClient = !isServer; export function isUrl(path: string): boolean { - const reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/ - return reg.test(path) + const reg = + /(((^https?:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)$/; + return reg.test(path); } diff --git a/src/visual-editor/visual-editor.props.tsx b/src/visual-editor/visual-editor.props.tsx index 32a004e..7b40a7c 100644 --- a/src/visual-editor/visual-editor.props.tsx +++ b/src/visual-editor/visual-editor.props.tsx @@ -14,101 +14,101 @@ export enum VisualEditorPropsType { /** 模型绑定选择器 */ modelBind = 'ModelBind', /** 可拖拽项 */ - crossSortable = 'CrossSortable' + crossSortable = 'CrossSortable', } export type VisualEditorProps = { - type: VisualEditorPropsType + type: VisualEditorPropsType; /** 表单项标签名称 */ - label: string + label: string; /** 表单项提示说明 */ - tips?: string + tips?: string; /** 表单域标签的位置 */ - labelPosition?: string + labelPosition?: string; /** 表单项默认值 */ - defaultValue?: any + defaultValue?: any; } & { /** 可选项 */ - options?: VisualEditorSelectOptions + options?: VisualEditorSelectOptions; /** 是否可以多选 */ - multiple?: boolean + multiple?: boolean; /** 项属性配置 */ - showItemPropsConfig?: boolean + showItemPropsConfig?: boolean; } & { - max?: number - min?: number + max?: number; + min?: number; } & { - table?: VisualEditorTableOption -} + table?: VisualEditorTableOption; +}; /*---------------------------------------modelBind-------------------------------------------*/ interface EditorModelBindProp { - label: string - defaultValue?: any - tips?: string + label: string; + defaultValue?: any; + tips?: string; } export function createEditorModelBindProp({ label = '字段绑定', defaultValue, - tips + tips, }: EditorModelBindProp): VisualEditorProps { return { type: VisualEditorPropsType.modelBind, label, tips, - defaultValue - } + defaultValue, + }; } /*---------------------------------------switch-------------------------------------------*/ interface EditorSwitchProp { - label: string - defaultValue?: boolean - tips?: string + label: string; + defaultValue?: boolean; + tips?: string; } export function createEditorSwitchProp({ label, defaultValue, - tips + tips, }: EditorSwitchProp): VisualEditorProps { return { type: VisualEditorPropsType.switch, label, tips, - defaultValue - } + defaultValue, + }; } /*---------------------------------------input-------------------------------------------*/ interface EditorInputProp { - label: string - defaultValue?: any - tips?: string + label: string; + defaultValue?: any; + tips?: string; } export function createEditorInputProp({ label, defaultValue, - tips + tips, }: EditorInputProp): VisualEditorProps { return { type: VisualEditorPropsType.input, label, tips, - defaultValue - } + defaultValue, + }; } /*---------------------------------------InputNumber -------------------------------------------*/ interface EditorInputNumberProp { - label: string - defaultValue?: any - tips?: string - max?: number - min?: number + label: string; + defaultValue?: any; + tips?: string; + max?: number; + min?: number; } export function createEditorInputNumberProp({ @@ -116,7 +116,7 @@ export function createEditorInputNumberProp({ defaultValue, max, min, - tips + tips, }: EditorInputNumberProp): VisualEditorProps { return { type: VisualEditorPropsType.inputNumber, @@ -124,39 +124,39 @@ export function createEditorInputNumberProp({ tips, max, min, - defaultValue - } + defaultValue, + }; } /*---------------------------------------color-------------------------------------------*/ interface EditorColorProp { - label: string - defaultValue?: string + label: string; + defaultValue?: string; } export function createEditorColorProp({ label, defaultValue }: EditorColorProp): VisualEditorProps { return { type: VisualEditorPropsType.color, label, - defaultValue - } + defaultValue, + }; } /*---------------------------------------select-------------------------------------------*/ export type VisualEditorSelectOptions = { - label: string - value: string | number | boolean | object - [prop: string]: any -}[] + label: string; + value: string | number | boolean | object; + [prop: string]: any; +}[]; interface EditorSelectProp { - label: string - options: VisualEditorSelectOptions - defaultValue?: any - multiple?: boolean - tips?: string + label: string; + options: VisualEditorSelectOptions; + defaultValue?: any; + multiple?: boolean; + tips?: string; } export function createEditorSelectProp({ @@ -164,7 +164,7 @@ export function createEditorSelectProp({ options, defaultValue, tips, - multiple + multiple, }: EditorSelectProp): VisualEditorProps { return { type: VisualEditorPropsType.select, @@ -172,47 +172,47 @@ export function createEditorSelectProp({ defaultValue, tips, options, - multiple - } + multiple, + }; } /*---------------------------------------table-------------------------------------------*/ export type VisualEditorTableOption = { options: { - label: string // 列显示文本 - field: string // 列绑定的字段 - }[] - showKey: string -} + label: string; // 列显示文本 + field: string; // 列绑定的字段 + }[]; + showKey: string; +}; interface EditorTableProp { - label: string - option: VisualEditorTableOption - defaultValue?: { label: string; value: string }[] + label: string; + option: VisualEditorTableOption; + defaultValue?: { label: string; value: string }[]; } export function createEditorTableProp({ label, option, - defaultValue + defaultValue, }: EditorTableProp): VisualEditorProps { return { type: VisualEditorPropsType.table, label, table: option, - defaultValue - } + defaultValue, + }; } /*---------------------------------------CrossSortableOptions-------------------------------------------*/ interface EditorCrossSortableProp { - label: string - labelPosition: 'top' | '' - multiple?: boolean - showItemPropsConfig?: boolean - defaultValue?: string[] | VisualEditorSelectOptions + label: string; + labelPosition: 'top' | ''; + multiple?: boolean; + showItemPropsConfig?: boolean; + defaultValue?: string[] | VisualEditorSelectOptions; } export function createEditorCrossSortableProp({ @@ -220,7 +220,7 @@ export function createEditorCrossSortableProp({ labelPosition, multiple, showItemPropsConfig, - defaultValue + defaultValue, }: EditorCrossSortableProp): VisualEditorProps { return { type: VisualEditorPropsType.crossSortable, @@ -228,6 +228,6 @@ export function createEditorCrossSortableProp({ multiple, showItemPropsConfig, labelPosition, - defaultValue - } + defaultValue, + }; } diff --git a/src/visual-editor/visual-editor.utils.ts b/src/visual-editor/visual-editor.utils.ts index cb1812b..02bbdb5 100644 --- a/src/visual-editor/visual-editor.utils.ts +++ b/src/visual-editor/visual-editor.utils.ts @@ -1,8 +1,8 @@ -import type { VisualEditorProps } from './visual-editor.props'; import { inject, provide } from 'vue'; +import type { VisualEditorProps } from './visual-editor.props'; import type { CSSProperties } from 'vue'; -import { useDotProp } from '@/visual-editor/hooks/useDotProp'; import type { RequestEnum, ContentTypeEnum } from '@/enums/httpEnum'; +import { useDotProp } from '@/visual-editor/hooks/useDotProp'; import { generateNanoid } from '@/visual-editor/utils'; /** diff --git a/src/visual.config.tsx b/src/visual.config.tsx index f787abc..aa3b80c 100644 --- a/src/visual.config.tsx +++ b/src/visual.config.tsx @@ -1,20 +1,20 @@ -import { createVisualEditorConfig } from './visual-editor/visual-editor.utils' -import baseWidgets from '@/packages/base-widgets' -import containerComponent from '@/packages/container-component' +import { createVisualEditorConfig } from './visual-editor/visual-editor.utils'; +import baseWidgets from '@/packages/base-widgets'; +import containerComponent from '@/packages/container-component'; -export const visualConfig = createVisualEditorConfig() +export const visualConfig = createVisualEditorConfig(); // 注册基础控件 Object.keys(baseWidgets).forEach((name: string) => - visualConfig.registry('baseWidgets', name, baseWidgets[name]) -) + visualConfig.registry('baseWidgets', name, baseWidgets[name]), +); // 注册容器组件 Object.keys(containerComponent).forEach((name: string) => - visualConfig.registry('containerComponents', name, containerComponent[name]) -) + visualConfig.registry('containerComponents', name, containerComponent[name]), +); console.log( - '%c成功加载组件数量:' + Object.keys(visualConfig.componentMap).length, - 'color:#409EFF;background-color:#ecf5ff;padding:0 10px;line-height:2;margin-bottom:4px;' -) + `%c成功加载组件数量:${Object.keys(visualConfig.componentMap).length}`, + 'color:#409EFF;background-color:#ecf5ff;padding:0 10px;line-height:2;margin-bottom:4px;', +); -console.log('visualConfig:', visualConfig) +console.log('visualConfig:', visualConfig); diff --git a/stylelint.config.js b/stylelint.config.js index 7f9eadd..eff1f87 100644 --- a/stylelint.config.js +++ b/stylelint.config.js @@ -4,6 +4,7 @@ module.exports = { customSyntax: 'postcss-html', extends: ['stylelint-config-standard', 'stylelint-config-prettier'], rules: { + 'function-no-unknown': null, 'selector-class-pattern': null, 'selector-pseudo-class-no-unknown': [ true, @@ -35,6 +36,7 @@ module.exports = { }, ], 'no-empty-source': null, + 'string-quotes': null, 'named-grid-areas-no-invalid': null, 'unicode-bom': 'never', 'no-descending-specificity': null, @@ -89,5 +91,10 @@ module.exports = { ], }, }, + { + files: ['*.scss', '**/*.scss'], + customSyntax: 'postcss-scss', + extends: ['stylelint-config-standard', 'stylelint-config-recommended-vue'], + }, ], }; diff --git a/tsconfig.json b/tsconfig.json index 31f1c02..570a0c7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -24,26 +24,12 @@ "removeComments": false, "strictFunctionTypes": false, "baseUrl": ".", - "types": [ - "vite/client", - "node", - "element-plus/global" - ], - "typeRoots": [ - "./node_modules/@types/", - "./types" - ], + "types": ["vite/client", "node", "element-plus/global", "unplugin-vue-define-options"], + "typeRoots": ["./node_modules/@types/", "./types"], "paths": { - "@/*": [ - "src/*" - ] + "@/*": ["src/*"] }, - "lib": [ - "esnext", - "dom", - "dom.iterable", - "scripthost" - ] + "lib": ["esnext", "dom", "dom.iterable", "scripthost"] }, "include": [ "src/**/*.ts", @@ -59,8 +45,5 @@ "components.d.ts", "auto-imports.d.ts" ], - "exclude": [ - "node_modules", - "dist" - ] + "exclude": ["node_modules", "dist"] } diff --git a/types/shims/shims-tsx.d.ts b/types/shims/shims-tsx.d.ts index 22dc021..ebc7400 100644 --- a/types/shims/shims-tsx.d.ts +++ b/types/shims/shims-tsx.d.ts @@ -1,18 +1,18 @@ -import Vue, { VNode } from 'vue' +import Vue, { VNode } from 'vue'; declare module '*.tsx' { - import Vue from 'compatible-vue' - export default Vue + import Vue from 'compatible-vue'; + export default Vue; } declare global { namespace JSX { // tslint:disable no-empty-interface - type Element = VNode + type Element = VNode; // tslint:disable no-empty-interface - type ElementClass = Vue + type ElementClass = Vue; interface IntrinsicElements { - [elem: string]: any + [elem: string]: any; } } } diff --git a/vite.config.ts b/vite.config.ts index 45e6c52..43c1064 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,12 +1,14 @@ +import { resolve } from 'path'; import { ConfigEnv, loadEnv, UserConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; import legacy from '@vitejs/plugin-legacy'; -import { resolve } from 'path'; import { ElementPlusResolver, VantResolver } from 'unplugin-vue-components/resolvers'; import AutoImport from 'unplugin-auto-import/vite'; import Components from 'unplugin-vue-components/vite'; import WindiCSS from 'vite-plugin-windicss'; +import checker from 'vite-plugin-checker'; +import DefineOptions from 'unplugin-vue-define-options/vite'; const CWD = process.cwd(); @@ -31,7 +33,7 @@ export default ({ mode }: ConfigEnv): UserConfig => { }, }, // TODO 构建包含@charset问题 https://github.com/vitejs/vite/issues/5833 - charset: false, + // charset: false, postcss: { plugins: [ { @@ -51,9 +53,12 @@ export default ({ mode }: ConfigEnv): UserConfig => { vue(), vueJsx(), WindiCSS(), + // https://github.com/sxzz/unplugin-vue-define-options + DefineOptions(), legacy({ targets: ['defaults', 'not IE 11'], }), + // https://github.com/antfu/unplugin-auto-import#readme AutoImport({ include: [ /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx @@ -68,6 +73,14 @@ export default ({ mode }: ConfigEnv): UserConfig => { dts: true, resolvers: [ElementPlusResolver(), VantResolver()], }), + // https://github.com/fi3ework/vite-plugin-checker + checker({ + typescript: true, + // vueTsc: true, + eslint: { + lintCommand: 'eslint "./src/**/*.{.vue,ts,tsx}"', // for example, lint .ts & .tsx + }, + }), ], resolve: { alias: [ diff --git a/windi.config.ts b/windi.config.ts index 4291bf8..aa247ee 100644 --- a/windi.config.ts +++ b/windi.config.ts @@ -1,6 +1,6 @@ -import { defineConfig } from 'vite-plugin-windicss' -import colors from 'windicss/colors' -import typography from 'windicss/plugin/typography' +import { defineConfig } from 'vite-plugin-windicss'; +import colors from 'windicss/colors'; +import typography from 'windicss/plugin/typography'; export default defineConfig({ darkMode: 'class', @@ -19,8 +19,8 @@ export default defineConfig({ textDecoration: 'underline', '&:hover': { opacity: 1, - color: colors.teal[600] - } + color: colors.teal[600], + }, }, b: { color: 'inherit' }, strong: { color: 'inherit' }, @@ -29,10 +29,10 @@ export default defineConfig({ h2: { color: 'inherit' }, h3: { color: 'inherit' }, h4: { color: 'inherit' }, - code: { color: 'inherit' } - } - } - } - } - } -}) + code: { color: 'inherit' }, + }, + }, + }, + }, + }, +});