diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 39979c3..c0535fd 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -3,6 +3,7 @@ module.exports = { es6: true, node: true, browser: true, + // obsidian: true, TODO,one-eslint }, extends: [ 'plugin:vue/base', @@ -20,22 +21,27 @@ module.exports = { Atomics: 'readonly', SharedArrayBuffer: 'readonly', activeDocument: 'readonly', + app: 'readonly', }, parser: 'vue-eslint-parser', parserOptions: { parser: '@typescript-eslint/parser', - tsconfigRootDir: './', + extraFileExtensions: ['.vue'], + // TODO 在工作区中,指定此目录会导致无法正常工作 + // tsconfigRootDir: './', // project: './tsconfig.json', ecmaVersion: 6, sourceType: 'module', + jsx: true, ecmaFeatures: { modules: true, + jsx: true, }, }, plugins: ['@typescript-eslint', 'import'], rules: { // TODO - 'import/no-unresolved': 'error', + 'import/no-unresolved': ['error', { ignore: ['^virtual:'] }], 'vue/multi-word-component-names': 1, 'vue/no-v-model-argument': 'off', 'linebreak-style': ['error', 'unix'], diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b63bc8f..f53c596 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,7 +24,6 @@ jobs: name: Install pnpm id: pnpm-install with: - version: 7 run_install: false - name: Get pnpm store directory @@ -46,13 +45,20 @@ jobs: - name: Test run: pnpm run report:coverage + + - name: Get the branch name + id: get-branch-name + run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_OUTPUT + - name: Build id: build + if: ${{ steps.get-branch-name.outputs.BRANCH_NAME == 'master' }} run: | pnpm run build cp manifest.json dest - name: Release + if: ${{ steps.get-branch-name.outputs.BRANCH_NAME == 'master' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore index feb9460..e219bcd 100644 --- a/.gitignore +++ b/.gitignore @@ -88,3 +88,4 @@ typings/ dist/** .env.local +stats.html diff --git a/.npmrc b/.npmrc index 901caaa..4fa63d9 100644 --- a/.npmrc +++ b/.npmrc @@ -1,6 +1,6 @@ # tag-version-prefix="" -registry = https://registry.npmjs.org -@local:registry = http://localhost:4873/ +# registry = https://registry.npmjs.org +# @local:registry = http://localhost:4873/ # registry = https://registry.npm.taobao.org electron_mirror=https://npmmirror.com/mirrors/electron/ # proxy=http://localhost:7890 diff --git a/README.md b/README.md index a67df1c..37f2ba6 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ It's not too long now. Just finish reading.🤣 #### 番茄钟功能展示 - + 番茄钟功能展示 diff --git a/README_en.md b/README_en.md index 7e7ad5c..23e0b76 100644 --- a/README_en.md +++ b/README_en.md @@ -65,7 +65,7 @@ It's not too long now. Just finish reading.🤣 #### pomodoro - + 番茄钟功能展示 diff --git a/manifest.json b/manifest.json index a518311..9bc53f3 100644 --- a/manifest.json +++ b/manifest.json @@ -6,5 +6,6 @@ "description": "A toolkit tries to solve all the trivial problems most people usually encountered in obsidian.", "author": "Juck", "authorUrl": "https://github.com/JuckZ", - "isDesktopOnly": false + "isDesktopOnly": false, + "fundingUrl": "https://github.com/JuckZ/awesome-brain-manager" } \ No newline at end of file diff --git a/package.json b/package.json index a404dd3..bb760e5 100644 --- a/package.json +++ b/package.json @@ -1,166 +1,174 @@ { - "name": "awesome-brain-manager", - "version": "1.9.0", - "description": "A plugin that tries to solve all the trivial problems most people usually encountered in obsidian.", - "exports": "./main.js", - "engines": { - "node": ">=14.16" - }, - "type": "module", - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "{src,__mocks__,bin}/**/*.ts": [ - "prettier --write", - "git add" - ] - }, - "config": { - "commitizen": { - "path": "@commitlint/prompt" - } - }, - "scripts": { - "d": "vite", - "dev": "vite build -w", - "build": "pnpm run build-only", - "build:check": "run-p type-check build-only", - "d:theme": "sass --watch ./src/theme/index.scss ../juckz.github.io/blogs/.obsidian/themes/\"Awesome Brain Manager\"/theme.css", - "preview": "vite preview", - "test": "vitest", - "test:unit": "vitest --environment jsdom --root src/", - "test:e2e": "start-server-and-test preview :4173 'cypress run --e2e'", - "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' :4173 'cypress open --e2e'", - "test:coverage": "vitest run --coverage", - "report:coverage": "npm run test:coverage && codecov", - "build-only": "vite build", - "type-check": "vue-tsc --noEmit -p tsconfig.json --composite false", - "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .eslintignore && tsc --noEmit --pretty && svelte-check", - "commit": "git-cz", - "format:check": "prettier --list-different {src,__mocks__,bin}/**/*.ts", - "format:write": "prettier --write {src,__mocks__,bin}/**/*.ts", - "start:help": "ts-node ./src/bin/order.bin.ts -h", - "start:example": "ts-node ./src/bin/order.bin.ts pizza beer", - "semantic-release": "semantic-release", - "version": "node version-bump.mjs", - "prepare": "husky install" - }, - "bin": { - "example": "./dest/bin/order.bin.ts" - }, - "files": [ - "dest" - ], - "keywords": [ - "reminder", - "notification", - "ntfy", - "awesome-brain-manager", - "Obsidian-plugin", - "Obsidian" - ], - "author": "Juck", - "license": "MIT", - "bugs": { - "url": "https://github.com/JuckZ/awesome-brain-manager/issues" - }, - "homepage": "https://github.com/JuckZ/awesome-brain-manager#readme", - "devDependencies": { - "@commitlint/cli": "^17.2.0", - "@commitlint/config-conventional": "^17.4.4", - "@commitlint/prompt": "^17.4.4", - "@rollup/plugin-node-resolve": "^15.0.1", - "@semantic-release/changelog": "^6.0.1", - "@semantic-release/commit-analyzer": "^9.0.2", - "@semantic-release/exec": "^6.0.3", - "@semantic-release/git": "^10.0.1", - "@semantic-release/github": "^8.0.6", - "@semantic-release/npm": "^9.0.1", - "@semantic-release/release-notes-generator": "^10.0.3", - "@sveltejs/vite-plugin-svelte": "^2.0.2", - "@tsconfig/svelte": "^3.0.0", - "@types/jsdom": "^21.1.0", - "@types/node": "^16.11.6", - "@types/plantuml-encoder": "^1.4.0", - "@types/sql.js": "^1.4.4", - "@typescript-eslint/eslint-plugin": "5.29.0", - "@typescript-eslint/parser": "5.29.0", - "@vitejs/plugin-vue": "^4.0.0", - "@vitejs/plugin-vue-jsx": "^3.0.0", - "@vitest/coverage-c8": "^0.29.2", - "@vue/eslint-config-prettier": "^7.0.0", - "@vue/eslint-config-typescript": "^11.0.2", - "@vue/test-utils": "^2.2.10", - "@vue/tsconfig": "^0.1.3", - "builtin-modules": "3.3.0", - "codecov": "^3.8.3", - "commitizen": "^4.3.0", - "compare-versions": "^6.0.0-rc.1", - "cypress": "^12.7.0", - "dotenv": "^16.0.3", - "eslint": "^8.27.0", - "eslint-config-prettier": "^8.5.0", - "eslint-import-resolver-typescript": "^3.5.3", - "eslint-plugin-cypress": "^2.12.1", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-vue": "^9.9.0", - "husky": "^8.0.2", - "jsdom": "^21.1.0", - "lint-staged": "^13.0.3", - "npm-run-all": "^4.1.5", - "obsidian": "^1.1.1", - "plantuml-encoder": "^1.4.0", - "prettier": "^2.7.1", - "rollup": "^3.18.0", - "rollup-plugin-polyfill-node": "^0.12.0", - "sass": "^1.58.2", - "semantic-release": "^20.1.1", - "start-server-and-test": "^1.15.4", - "svelte-check": "^2.9.2", - "svelte-preprocess": "^4.10.7", - "ts-node": "^10.9.1", - "tslib": "2.4.0", - "typescript": "4.7.4", - "uuid": "^9.0.0", - "vite": "^4.1.2", - "vite-plugin-static-copy": "^0.13.0", - "vite-plugin-top-level-await": "^1.2.4", - "vite-plugin-wasm": "^3.2.1", - "vitest": "^0.29.2", - "vue-tsc": "^1.1.2" - }, - "dependencies": { - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.2.0", - "@codemirror/view": "^6.7.3", - "@emoji-mart/data": "^1.1.2", - "@vicons/ionicons5": "^0.12.0", - "boxen": "^5.1.2", - "chalk": "^5.2.0", - "chart.js": "^4.2.0", - "commander": "^9.4.1", - "cursor-effects": "^1.0.8", - "emoji-mart": "^5.5.2", - "jsonfile": "^6.1.0", - "lodash": "^4.17.21", - "naive-ui": "^2.34.3", - "ora": "^6.1.2", - "party-js": "^2.2.0", - "pinia": "^2.0.32", - "rrule": "^2.7.1", - "sql.js": "^1.8.0", - "svelte": "^3.53.1", - "twemoji": "^14.0.2", - "vue": "^3.2.47", - "vue3-radial-progress": "^1.1.1" - }, - "repository": { - "type": "git", - "url": "git@github.com:JuckZ/awesome-brain-manager.git" + "name": "awesome-brain-manager", + "version": "1.8.0", + "description": "A plugin that tries to solve all the trivial problems most people usually encountered in obsidian.", + "keywords": [ + "reminder", + "notification", + "ntfy", + "awesome-brain-manager", + "Obsidian-plugin", + "Obsidian" + ], + "homepage": "https://github.com/JuckZ/awesome-brain-manager#readme", + "bugs": { + "url": "https://github.com/JuckZ/awesome-brain-manager/issues" + }, + "repository": { + "type": "git", + "url": "git@github.com:JuckZ/awesome-brain-manager.git" + }, + "license": "MIT", + "author": "Juck", + "type": "module", + "exports": "./main.js", + "bin": { + "example": "./dest/bin/order.bin.ts" + }, + "files": [ + "dest" + ], + "scripts": { + "d": "vite", + "dev": "vite build -w", + "build": "pnpm run build-only", + "build:check": "run-p type-check build-only", + "d:theme": "sass --watch ./src/styles/theme/index.scss ../juckz.github.io/blogs/.obsidian/themes/\"Awesome Brain Manager\"/theme.css", + "t:theme": "sass --watch ./src/styles/theme/index.scss ./dest/out.css", + "preview": "vite preview", + "test:w": "vitest --watch weather", + "test": "vitest", + "test:unit": "vitest --environment jsdom --root src/", + "test:e2e": "start-server-and-test preview :4173 'cypress run --e2e'", + "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' :4173 'cypress open --e2e'", + "test:coverage": "vitest run --coverage", + "report:coverage": "npm run test:coverage && codecov", + "build-only": "vite build", + "update": "ncu -u", + "type-check": "vue-tsc --noEmit -p tsconfig.json --composite false", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .eslintignore && tsc --noEmit --pretty && svelte-check", + "commit": "git-cz", + "format:check": "prettier --list-different {src,__mocks__,bin}/**/*.ts", + "format:write": "prettier --write {src,__mocks__,bin}/**/*.ts", + "start:help": "ts-node ./src/bin/order.bin.ts -h", + "start:example": "ts-node ./src/bin/order.bin.ts pizza beer", + "semantic-release": "semantic-release", + "version": "node version-bump.mjs", + "prepare": "husky install", + "postinstall": "patch-package" + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged", + "commit-msg": "commitlint -e $GIT_PARAMS" } + }, + "lint-staged": { + "{src,__mocks__,bin}/**/*.ts": [ + "prettier --write", + "git add" + ] + }, + "config": { + "commitizen": { + "path": "@commitlint/prompt" + } + }, + "dependencies": { + "@codemirror/language": "^6.9.0", + "@codemirror/state": "^6.2.1", + "@codemirror/view": "^6.19.0", + "@emoji-mart/data": "^1.1.2", + "@vicons/ionicons5": "^0.12.0", + "boxen": "^7.1.1", + "chalk": "^5.3.0", + "chart.js": "^4.4.0", + "commander": "^11.0.0", + "cursor-effects": "^1.0.12", + "emoji-mart": "^5.5.2", + "jsonfile": "^6.1.0", + "lodash-es": "^4.17.21", + "naive-ui": "^2.34.4", + "ora": "^7.0.1", + "party-js": "^2.2.0", + "patch-package": "^8.0.0", + "pinia": "^2.1.6", + "rrule": "^2.7.2", + "sql.js": "^1.8.0", + "svelte": "^4.2.0", + "twemoji": "^14.0.2", + "vue": "^3.3.4", + "vue3-radial-progress": "^1.1.1" + }, + "devDependencies": { + "@commitlint/cli": "^17.7.1", + "@commitlint/config-conventional": "^17.7.0", + "@commitlint/prompt": "^17.7.1", + "@rollup/plugin-node-resolve": "^15.2.1", + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/commit-analyzer": "^10.0.4", + "@semantic-release/exec": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "@semantic-release/github": "^9.0.6", + "@semantic-release/npm": "^10.0.6", + "@semantic-release/release-notes-generator": "^11.0.7", + "@sveltejs/vite-plugin-svelte": "^2.4.5", + "@tsconfig/svelte": "^5.0.2", + "@types/jsdom": "^21.1.2", + "@types/node": "^20.6.0", + "@types/plantuml-encoder": "^1.4.0", + "@types/sql.js": "^1.4.4", + "@typescript-eslint/eslint-plugin": "6.7.0", + "@typescript-eslint/parser": "6.7.0", + "@vitejs/plugin-vue": "^4.3.4", + "@vitejs/plugin-vue-jsx": "^3.0.2", + "@vitest/coverage-v8": "^0.34.4", + "@vue/eslint-config-prettier": "^8.0.0", + "@vue/eslint-config-typescript": "^12.0.0", + "@vue/test-utils": "^2.4.1", + "@vue/tsconfig": "^0.4.0", + "builtin-modules": "3.3.0", + "codecov": "^3.8.3", + "commitizen": "^4.3.0", + "compare-versions": "^6.1.0", + "dotenv": "^16.3.1", + "eslint": "^8.49.0", + "eslint-config-prettier": "^9.0.0", + "eslint-import-resolver-typescript": "^3.6.0", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-vue": "^9.17.0", + "husky": "^8.0.3", + "jsdom": "^22.1.0", + "lint-staged": "^14.0.1", + "monkey-around": "^2.3.0", + "npm-run-all": "^4.1.5", + "obsidian": "^1.4.11", + "obsidian-dataview": "^0.5.56", + "plantuml-encoder": "^1.4.0", + "prettier": "^3.0.3", + "rollup": "^3.29.1", + "rollup-plugin-polyfill-node": "^0.12.0", + "rollup-plugin-visualizer": "^5.9.2", + "sass": "^1.67.0", + "semantic-release": "^21.1.1", + "start-server-and-test": "^2.0.0", + "svelte-check": "^3.5.1", + "svelte-preprocess": "^5.0.4", + "ts-node": "^10.9.1", + "tslib": "2.6.2", + "typescript": "5.2.2", + "unocss": "^0.55.7", + "uuid": "^9.0.1", + "vite": "^4.4.9", + "vite-plugin-static-copy": "^0.17.0", + "vite-plugin-top-level-await": "^1.3.1", + "vite-plugin-wasm": "^3.2.2", + "vitest": "^0.34.4", + "vue-tsc": "^1.8.11" + }, + "packageManager": "pnpm@8.6.12", + "engines": { + "node": ">=14.16" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 37ffc2e..4c4c18b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,15 +1,19 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + dependencies: '@codemirror/language': - specifier: ^6.4.0 - version: 6.6.0 + specifier: ^6.9.0 + version: 6.9.0 '@codemirror/state': - specifier: ^6.2.0 - version: 6.2.0 + specifier: ^6.2.1 + version: 6.2.1 '@codemirror/view': - specifier: ^6.7.3 - version: 6.9.1 + specifier: ^6.19.0 + version: 6.19.0 '@emoji-mart/data': specifier: ^1.1.2 version: 1.1.2 @@ -17,106 +21,109 @@ dependencies: specifier: ^0.12.0 version: 0.12.0 boxen: - specifier: ^5.1.2 - version: 5.1.2 + specifier: ^7.1.1 + version: 7.1.1 chalk: - specifier: ^5.2.0 - version: 5.2.0 + specifier: ^5.3.0 + version: 5.3.0 chart.js: - specifier: ^4.2.0 - version: 4.2.1 + specifier: ^4.4.0 + version: 4.4.0 commander: - specifier: ^9.4.1 - version: 9.5.0 + specifier: ^11.0.0 + version: 11.0.0 cursor-effects: - specifier: ^1.0.8 - version: 1.0.11 + specifier: ^1.0.12 + version: 1.0.12 emoji-mart: specifier: ^5.5.2 version: 5.5.2 jsonfile: specifier: ^6.1.0 version: 6.1.0 - lodash: + lodash-es: specifier: ^4.17.21 version: 4.17.21 naive-ui: - specifier: ^2.34.3 - version: 2.34.3(vue@3.2.47) + specifier: ^2.34.4 + version: 2.34.4(vue@3.3.4) ora: - specifier: ^6.1.2 - version: 6.1.2 + specifier: ^7.0.1 + version: 7.0.1 party-js: specifier: ^2.2.0 version: 2.2.0 + patch-package: + specifier: ^8.0.0 + version: 8.0.0 pinia: - specifier: ^2.0.32 - version: 2.0.32(typescript@4.7.4)(vue@3.2.47) + specifier: ^2.1.6 + version: 2.1.6(typescript@5.2.2)(vue@3.3.4) rrule: - specifier: ^2.7.1 + specifier: ^2.7.2 version: 2.7.2 sql.js: specifier: ^1.8.0 version: 1.8.0 svelte: - specifier: ^3.53.1 - version: 3.55.1 + specifier: ^4.2.0 + version: 4.2.0 twemoji: specifier: ^14.0.2 version: 14.0.2 vue: - specifier: ^3.2.47 - version: 3.2.47 + specifier: ^3.3.4 + version: 3.3.4 vue3-radial-progress: specifier: ^1.1.1 - version: 1.1.1(vue@3.2.47) + version: 1.1.1(vue@3.3.4) devDependencies: '@commitlint/cli': - specifier: ^17.2.0 - version: 17.4.4 + specifier: ^17.7.1 + version: 17.7.1 '@commitlint/config-conventional': - specifier: ^17.4.4 - version: 17.4.4 + specifier: ^17.7.0 + version: 17.7.0 '@commitlint/prompt': - specifier: ^17.4.4 - version: 17.4.4 + specifier: ^17.7.1 + version: 17.7.1 '@rollup/plugin-node-resolve': - specifier: ^15.0.1 - version: 15.0.1(rollup@3.18.0) + specifier: ^15.2.1 + version: 15.2.1(rollup@3.29.1) '@semantic-release/changelog': - specifier: ^6.0.1 - version: 6.0.2(semantic-release@20.1.1) + specifier: ^6.0.3 + version: 6.0.3(semantic-release@21.1.1) '@semantic-release/commit-analyzer': - specifier: ^9.0.2 - version: 9.0.2(semantic-release@20.1.1) + specifier: ^10.0.4 + version: 10.0.4(semantic-release@21.1.1) '@semantic-release/exec': specifier: ^6.0.3 - version: 6.0.3(semantic-release@20.1.1) + version: 6.0.3(semantic-release@21.1.1) '@semantic-release/git': specifier: ^10.0.1 - version: 10.0.1(semantic-release@20.1.1) + version: 10.0.1(semantic-release@21.1.1) '@semantic-release/github': - specifier: ^8.0.6 - version: 8.0.7(semantic-release@20.1.1) + specifier: ^9.0.6 + version: 9.0.6(semantic-release@21.1.1) '@semantic-release/npm': - specifier: ^9.0.1 - version: 9.0.2(semantic-release@20.1.1) + specifier: ^10.0.6 + version: 10.0.6(semantic-release@21.1.1) '@semantic-release/release-notes-generator': - specifier: ^10.0.3 - version: 10.0.3(semantic-release@20.1.1) + specifier: ^11.0.7 + version: 11.0.7(semantic-release@21.1.1) '@sveltejs/vite-plugin-svelte': - specifier: ^2.0.2 - version: 2.0.3(svelte@3.55.1)(vite@4.1.4) + specifier: ^2.4.5 + version: 2.4.5(svelte@4.2.0)(vite@4.4.9) '@tsconfig/svelte': - specifier: ^3.0.0 - version: 3.0.0 + specifier: ^5.0.2 + version: 5.0.2 '@types/jsdom': - specifier: ^21.1.0 - version: 21.1.0 + specifier: ^21.1.2 + version: 21.1.2 '@types/node': - specifier: ^16.11.6 - version: 16.18.14 + specifier: ^20.6.0 + version: 20.6.0 '@types/plantuml-encoder': specifier: ^1.4.0 version: 1.4.0 @@ -124,32 +131,32 @@ devDependencies: specifier: ^1.4.4 version: 1.4.4 '@typescript-eslint/eslint-plugin': - specifier: 5.29.0 - version: 5.29.0(@typescript-eslint/parser@5.29.0)(eslint@8.35.0)(typescript@4.7.4) + specifier: 6.7.0 + version: 6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.49.0)(typescript@5.2.2) '@typescript-eslint/parser': - specifier: 5.29.0 - version: 5.29.0(eslint@8.35.0)(typescript@4.7.4) + specifier: 6.7.0 + version: 6.7.0(eslint@8.49.0)(typescript@5.2.2) '@vitejs/plugin-vue': - specifier: ^4.0.0 - version: 4.0.0(vite@4.1.4)(vue@3.2.47) + specifier: ^4.3.4 + version: 4.3.4(vite@4.4.9)(vue@3.3.4) '@vitejs/plugin-vue-jsx': - specifier: ^3.0.0 - version: 3.0.0(vite@4.1.4)(vue@3.2.47) - '@vitest/coverage-c8': - specifier: ^0.29.2 - version: 0.29.2(vitest@0.29.2) + specifier: ^3.0.2 + version: 3.0.2(vite@4.4.9)(vue@3.3.4) + '@vitest/coverage-v8': + specifier: ^0.34.4 + version: 0.34.4(vitest@0.34.4) '@vue/eslint-config-prettier': - specifier: ^7.0.0 - version: 7.1.0(eslint@8.35.0)(prettier@2.8.4) + specifier: ^8.0.0 + version: 8.0.0(eslint@8.49.0)(prettier@3.0.3) '@vue/eslint-config-typescript': - specifier: ^11.0.2 - version: 11.0.2(eslint-plugin-vue@9.9.0)(eslint@8.35.0)(typescript@4.7.4) + specifier: ^12.0.0 + version: 12.0.0(eslint-plugin-vue@9.17.0)(eslint@8.49.0)(typescript@5.2.2) '@vue/test-utils': - specifier: ^2.2.10 - version: 2.3.0(vue@3.2.47) + specifier: ^2.4.1 + version: 2.4.1(vue@3.3.4) '@vue/tsconfig': - specifier: ^0.1.3 - version: 0.1.3(@types/node@16.18.14) + specifier: ^0.4.0 + version: 0.4.0 builtin-modules: specifier: 3.3.0 version: 3.3.0 @@ -160,433 +167,453 @@ devDependencies: specifier: ^4.3.0 version: 4.3.0 compare-versions: - specifier: ^6.0.0-rc.1 - version: 6.0.0-rc.1 - cypress: - specifier: ^12.7.0 - version: 12.7.0 + specifier: ^6.1.0 + version: 6.1.0 dotenv: - specifier: ^16.0.3 - version: 16.0.3 + specifier: ^16.3.1 + version: 16.3.1 eslint: - specifier: ^8.27.0 - version: 8.35.0 + specifier: ^8.49.0 + version: 8.49.0 eslint-config-prettier: - specifier: ^8.5.0 - version: 8.6.0(eslint@8.35.0) + specifier: ^9.0.0 + version: 9.0.0(eslint@8.49.0) eslint-import-resolver-typescript: - specifier: ^3.5.3 - version: 3.5.3(eslint-plugin-import@2.27.5)(eslint@8.35.0) - eslint-plugin-cypress: - specifier: ^2.12.1 - version: 2.12.1(eslint@8.35.0) + specifier: ^3.6.0 + version: 3.6.0(@typescript-eslint/parser@6.7.0)(eslint-plugin-import@2.28.1)(eslint@8.49.0) eslint-plugin-import: - specifier: ^2.26.0 - version: 2.27.5(@typescript-eslint/parser@5.29.0)(eslint-import-resolver-typescript@3.5.3)(eslint@8.35.0) + specifier: ^2.28.1 + version: 2.28.1(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) eslint-plugin-prettier: - specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.6.0)(eslint@8.35.0)(prettier@2.8.4) + specifier: ^5.0.0 + version: 5.0.0(eslint-config-prettier@9.0.0)(eslint@8.49.0)(prettier@3.0.3) eslint-plugin-vue: - specifier: ^9.9.0 - version: 9.9.0(eslint@8.35.0) + specifier: ^9.17.0 + version: 9.17.0(eslint@8.49.0) husky: - specifier: ^8.0.2 + specifier: ^8.0.3 version: 8.0.3 jsdom: - specifier: ^21.1.0 - version: 21.1.0 + specifier: ^22.1.0 + version: 22.1.0 lint-staged: - specifier: ^13.0.3 - version: 13.1.2 + specifier: ^14.0.1 + version: 14.0.1 + monkey-around: + specifier: ^2.3.0 + version: 2.3.0 npm-run-all: specifier: ^4.1.5 version: 4.1.5 obsidian: - specifier: ^1.1.1 - version: 1.1.1(@codemirror/state@6.2.0)(@codemirror/view@6.9.1) + specifier: ^1.4.11 + version: 1.4.11(@codemirror/state@6.2.1)(@codemirror/view@6.19.0) + obsidian-dataview: + specifier: ^0.5.56 + version: 0.5.56 plantuml-encoder: specifier: ^1.4.0 version: 1.4.0 prettier: - specifier: ^2.7.1 - version: 2.8.4 + specifier: ^3.0.3 + version: 3.0.3 rollup: - specifier: ^3.18.0 - version: 3.18.0 + specifier: ^3.29.1 + version: 3.29.1 rollup-plugin-polyfill-node: specifier: ^0.12.0 - version: 0.12.0(rollup@3.18.0) + version: 0.12.0(rollup@3.29.1) + rollup-plugin-visualizer: + specifier: ^5.9.2 + version: 5.9.2(rollup@3.29.1) sass: - specifier: ^1.58.2 - version: 1.58.3 + specifier: ^1.67.0 + version: 1.67.0 semantic-release: - specifier: ^20.1.1 - version: 20.1.1 + specifier: ^21.1.1 + version: 21.1.1(typescript@5.2.2) start-server-and-test: - specifier: ^1.15.4 - version: 1.15.5 + specifier: ^2.0.0 + version: 2.0.0 svelte-check: - specifier: ^2.9.2 - version: 2.10.3(@babel/core@7.21.0)(sass@1.58.3)(svelte@3.55.1) + specifier: ^3.5.1 + version: 3.5.1(@babel/core@7.22.19)(postcss@8.4.29)(sass@1.67.0)(svelte@4.2.0) svelte-preprocess: - specifier: ^4.10.7 - version: 4.10.7(@babel/core@7.21.0)(sass@1.58.3)(svelte@3.55.1)(typescript@4.7.4) + specifier: ^5.0.4 + version: 5.0.4(@babel/core@7.22.19)(postcss@8.4.29)(sass@1.67.0)(svelte@4.2.0)(typescript@5.2.2) ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@16.18.14)(typescript@4.7.4) + version: 10.9.1(@types/node@20.6.0)(typescript@5.2.2) tslib: - specifier: 2.4.0 - version: 2.4.0 + specifier: 2.6.2 + version: 2.6.2 typescript: - specifier: 4.7.4 - version: 4.7.4 + specifier: 5.2.2 + version: 5.2.2 + unocss: + specifier: ^0.55.7 + version: 0.55.7(postcss@8.4.29)(rollup@3.29.1)(vite@4.4.9) uuid: - specifier: ^9.0.0 - version: 9.0.0 + specifier: ^9.0.1 + version: 9.0.1 vite: - specifier: ^4.1.2 - version: 4.1.4(@types/node@16.18.14)(sass@1.58.3) + specifier: ^4.4.9 + version: 4.4.9(@types/node@20.6.0)(sass@1.67.0) vite-plugin-static-copy: - specifier: ^0.13.0 - version: 0.13.1(vite@4.1.4) + specifier: ^0.17.0 + version: 0.17.0(vite@4.4.9) vite-plugin-top-level-await: - specifier: ^1.2.4 - version: 1.3.0(rollup@3.18.0)(vite@4.1.4) + specifier: ^1.3.1 + version: 1.3.1(rollup@3.29.1)(vite@4.4.9) vite-plugin-wasm: - specifier: ^3.2.1 - version: 3.2.1(@types/node@16.18.14)(sass@1.58.3) + specifier: ^3.2.2 + version: 3.2.2(vite@4.4.9) vitest: - specifier: ^0.29.2 - version: 0.29.2(jsdom@21.1.0)(sass@1.58.3) + specifier: ^0.34.4 + version: 0.34.4(jsdom@22.1.0)(sass@1.67.0) vue-tsc: - specifier: ^1.1.2 - version: 1.2.0(typescript@4.7.4) + specifier: ^1.8.11 + version: 1.8.11(typescript@5.2.2) packages: - /@ampproject/remapping@2.2.0: - resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.1.1 - '@jridgewell/trace-mapping': 0.3.17 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + + /@antfu/install-pkg@0.1.1: + resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} + dependencies: + execa: 5.1.1 + find-up: 5.0.0 dev: true - /@babel/code-frame@7.18.6: - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + /@antfu/utils@0.7.6: + resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} + dev: true + + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.18.6 + '@babel/highlight': 7.22.13 + chalk: 2.4.2 dev: true - /@babel/compat-data@7.21.0: - resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==} + /@babel/compat-data@7.22.9: + resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.21.0: - resolution: {integrity: sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==} + /@babel/core@7.22.19: + resolution: {integrity: sha512-Q8Yj5X4LHVYTbLCKVz0//2D2aDmHF4xzCdEttYvKOnWvErGsa6geHXD6w46x64n5tP69VfeH+IfSrdyH3MLhwA==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.21.1 - '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.21.0) - '@babel/helper-module-transforms': 7.21.2 - '@babel/helpers': 7.21.0 - '@babel/parser': 7.21.2 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.2 - '@babel/types': 7.21.2 + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.22.15 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.22.19(@babel/core@7.22.19) + '@babel/helpers': 7.22.15 + '@babel/parser': 7.22.16 + '@babel/template': 7.22.15 + '@babel/traverse': 7.22.19 + '@babel/types': 7.22.19 convert-source-map: 1.9.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/generator@7.21.1: - resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==} + /@babel/generator@7.22.15: + resolution: {integrity: sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 - '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.17 + '@babel/types': 7.22.19 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 dev: true - /@babel/helper-annotate-as-pure@7.18.6: - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.22.19 dev: true - /@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.0): - resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.21.0 - '@babel/core': 7.21.0 - '@babel/helper-validator-option': 7.21.0 - browserslist: 4.21.5 + '@babel/compat-data': 7.22.9 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.21.10 lru-cache: 5.1.1 - semver: 6.3.0 + semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.21.0(@babel/core@7.21.0): - resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==} + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.22.19): + resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.0 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-member-expression-to-functions': 7.21.0 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.20.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/helper-split-export-declaration': 7.18.6 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.19 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.15 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.19) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 dev: true - /@babel/helper-environment-visitor@7.18.9: - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + /@babel/helper-environment-visitor@7.22.5: + resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name@7.21.0: - resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + /@babel/helper-function-name@7.22.5: + resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.21.2 + '@babel/template': 7.22.15 + '@babel/types': 7.22.19 dev: true - /@babel/helper-hoist-variables@7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.22.19 dev: true - /@babel/helper-member-expression-to-functions@7.21.0: - resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==} + /@babel/helper-member-expression-to-functions@7.22.15: + resolution: {integrity: sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.22.19 dev: true - /@babel/helper-module-imports@7.18.6: - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.22.19 dev: true - /@babel/helper-module-transforms@7.21.2: - resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} + /@babel/helper-module-transforms@7.22.19(@babel/core@7.22.19): + resolution: {integrity: sha512-m6h1cJvn+OJ+R3jOHp30faq5xKJ7VbjwDj5RGgHuRlU9hrMeKsGC+JpihkR5w1g7IfseCPPtZ0r7/hB4UKaYlA==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-simple-access': 7.20.2 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.2 - '@babel/types': 7.21.2 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.19 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.19 dev: true - /@babel/helper-optimise-call-expression@7.18.6: - resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.22.19 dev: true - /@babel/helper-plugin-utils@7.20.2: - resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-replace-supers@7.20.7: - resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} + /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.19): + resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-member-expression-to-functions': 7.21.0 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.2 - '@babel/types': 7.21.2 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.19 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.15 + '@babel/helper-optimise-call-expression': 7.22.5 dev: true - /@babel/helper-simple-access@7.20.2: - resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.22.19 dev: true - /@babel/helper-skip-transparent-expression-wrappers@7.20.0: - resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.22.19 dev: true - /@babel/helper-split-export-declaration@7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.22.19 dev: true - /@babel/helper-string-parser@7.19.4: - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + /@babel/helper-validator-identifier@7.22.19: + resolution: {integrity: sha512-Tinq7ybnEPFFXhlYOYFiSjespWQk0dq2dRNAiMdRTOYQzEGqnnNyrTxPYHP5r6wGjlF1rFgABdDV0g8EwD6Qbg==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.21.0: - resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.21.0: - resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} + /@babel/helpers@7.22.15: + resolution: {integrity: sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.2 - '@babel/types': 7.21.2 + '@babel/template': 7.22.15 + '@babel/traverse': 7.22.19 + '@babel/types': 7.22.19 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + /@babel/highlight@7.22.13: + resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-validator-identifier': 7.22.19 chalk: 2.4.2 js-tokens: 4.0.0 dev: true - /@babel/parser@7.21.2: - resolution: {integrity: sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==} + /@babel/parser@7.22.16: + resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.22.19 - /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.21.0): - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.19): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.0 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.22.19 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.20.0(@babel/core@7.21.0): - resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.19): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.0 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.22.19 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typescript@7.21.0(@babel/core@7.21.0): - resolution: {integrity: sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==} + /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.22.19): + resolution: {integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.0 - '@babel/helper-create-class-features-plugin': 7.21.0(@babel/core@7.21.0) - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.21.0) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.19 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.22.19) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.19) dev: true - /@babel/template@7.20.7: - resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + /@babel/runtime@7.22.15: + resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.18.6 - '@babel/parser': 7.21.2 - '@babel/types': 7.21.2 + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.22.16 + '@babel/types': 7.22.19 dev: true - /@babel/traverse@7.21.2: - resolution: {integrity: sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==} + /@babel/traverse@7.22.19: + resolution: {integrity: sha512-ZCcpVPK64krfdScRbpxF6xA5fz7IOsfMwx1tcACvCzt6JY+0aHkBk7eIU8FRDSZRU5Zei6Z4JfgAxN1bqXGECg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.21.1 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.2 - '@babel/types': 7.21.2 - debug: 4.3.4(supports-color@8.1.1) + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.22.15 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.22.16 + '@babel/types': 7.22.19 + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.21.2: - resolution: {integrity: sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==} + /@babel/types@7.22.19: + resolution: {integrity: sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.19 to-fast-properties: 2.0.0 /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@codemirror/language@6.6.0: - resolution: {integrity: sha512-cwUd6lzt3MfNYOobdjf14ZkLbJcnv4WtndYaoBkbor/vF+rCNguMPK0IRtvZJG4dsWiaWPcK8x1VijhvSxnstg==} + /@codemirror/language@6.9.0: + resolution: {integrity: sha512-nFu311/0ne/qGuGCL3oKuktBgzVOaxCHZPZv1tLSZkNjPYxxvkjSbzno3MlErG2tgw1Yw1yF8BxMCegeMXqpiw==} dependencies: - '@codemirror/state': 6.2.0 - '@codemirror/view': 6.9.1 - '@lezer/common': 1.0.2 - '@lezer/highlight': 1.1.3 - '@lezer/lr': 1.3.3 - style-mod: 4.0.0 + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.19.0 + '@lezer/common': 1.0.4 + '@lezer/highlight': 1.1.6 + '@lezer/lr': 1.3.10 + style-mod: 4.1.0 dev: false - /@codemirror/state@6.2.0: - resolution: {integrity: sha512-69QXtcrsc3RYtOtd+GsvczJ319udtBf1PTrr2KbLWM/e2CXUPnh0Nz9AUo8WfhSQ7GeL8dPVNUmhQVgpmuaNGA==} + /@codemirror/state@6.2.1: + resolution: {integrity: sha512-RupHSZ8+OjNT38zU9fKH2sv+Dnlr8Eb8sl4NOnnqz95mCFTZUaiRP8Xv5MeeaG0px2b8Bnfe7YGwCV3nsBhbuw==} - /@codemirror/view@6.9.1: - resolution: {integrity: sha512-bzfSjJn9dAADVpabLKWKNmMG4ibyTV2e3eOGowjElNPTdTkSbi6ixPYHm2u0ADcETfKsi2/R84Rkmi91dH9yEg==} + /@codemirror/view@6.19.0: + resolution: {integrity: sha512-XqNIfW/3GaaF+T7Q1jBcRLCPm1NbrR2DBxrXacSt1FG+rNsdsNn3/azAfgpUoJ7yy4xgd8xTPa3AlL+y0lMizQ==} dependencies: - '@codemirror/state': 6.2.0 - style-mod: 4.0.0 - w3c-keyname: 2.2.6 + '@codemirror/state': 6.2.1 + style-mod: 4.1.0 + w3c-keyname: 2.2.8 /@colors/colors@1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -595,43 +622,43 @@ packages: dev: true optional: true - /@commitlint/cli@17.4.4: - resolution: {integrity: sha512-HwKlD7CPVMVGTAeFZylVNy14Vm5POVY0WxPkZr7EXLC/os0LH/obs6z4HRvJtH/nHCMYBvUBQhGwnufKfTjd5g==} + /@commitlint/cli@17.7.1: + resolution: {integrity: sha512-BCm/AT06SNCQtvFv921iNhudOHuY16LswT0R3OeolVGLk8oP+Rk9TfQfgjH7QPMjhvp76bNqGFEcpKojxUNW1g==} engines: {node: '>=v14'} hasBin: true dependencies: '@commitlint/format': 17.4.4 - '@commitlint/lint': 17.4.4 - '@commitlint/load': 17.4.4 - '@commitlint/read': 17.4.4 + '@commitlint/lint': 17.7.0 + '@commitlint/load': 17.7.1 + '@commitlint/read': 17.5.1 '@commitlint/types': 17.4.4 execa: 5.1.1 lodash.isfunction: 3.0.9 resolve-from: 5.0.0 resolve-global: 1.0.0 - yargs: 17.7.1 + yargs: 17.7.2 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' dev: true - /@commitlint/config-conventional@17.4.4: - resolution: {integrity: sha512-u6ztvxqzi6NuhrcEDR7a+z0yrh11elY66nRrQIpqsqW6sZmpxYkDLtpRH8jRML+mmxYQ8s4qqF06Q/IQx5aJeQ==} + /@commitlint/config-conventional@17.7.0: + resolution: {integrity: sha512-iicqh2o6et+9kWaqsQiEYZzfLbtoWv9uZl8kbI8EGfnc0HeGafQBF7AJ0ylN9D/2kj6txltsdyQs8+2fTMwWEw==} engines: {node: '>=v14'} dependencies: - conventional-changelog-conventionalcommits: 5.0.0 + conventional-changelog-conventionalcommits: 6.1.0 dev: true - /@commitlint/config-validator@17.4.4: - resolution: {integrity: sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==} + /@commitlint/config-validator@17.6.7: + resolution: {integrity: sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ==} engines: {node: '>=v14'} dependencies: '@commitlint/types': 17.4.4 ajv: 8.12.0 dev: true - /@commitlint/ensure@17.4.4: - resolution: {integrity: sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g==} + /@commitlint/ensure@17.6.7: + resolution: {integrity: sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw==} engines: {node: '>=v14'} dependencies: '@commitlint/types': 17.4.4 @@ -655,42 +682,42 @@ packages: chalk: 4.1.2 dev: true - /@commitlint/is-ignored@17.4.4: - resolution: {integrity: sha512-Y3eo1SFJ2JQDik4rWkBC4tlRIxlXEFrRWxcyrzb1PUT2k3kZ/XGNuCDfk/u0bU2/yS0tOA/mTjFsV+C4qyACHw==} + /@commitlint/is-ignored@17.7.0: + resolution: {integrity: sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw==} engines: {node: '>=v14'} dependencies: '@commitlint/types': 17.4.4 - semver: 7.3.8 + semver: 7.5.4 dev: true - /@commitlint/lint@17.4.4: - resolution: {integrity: sha512-qgkCRRFjyhbMDWsti/5jRYVJkgYZj4r+ZmweZObnbYqPUl5UKLWMf9a/ZZisOI4JfiPmRktYRZ2JmqlSvg+ccw==} + /@commitlint/lint@17.7.0: + resolution: {integrity: sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA==} engines: {node: '>=v14'} dependencies: - '@commitlint/is-ignored': 17.4.4 - '@commitlint/parse': 17.4.4 - '@commitlint/rules': 17.4.4 + '@commitlint/is-ignored': 17.7.0 + '@commitlint/parse': 17.7.0 + '@commitlint/rules': 17.7.0 '@commitlint/types': 17.4.4 dev: true - /@commitlint/load@17.4.4: - resolution: {integrity: sha512-z6uFIQ7wfKX5FGBe1AkOF4l/ShOQsaa1ml/nLMkbW7R/xF8galGS7Zh0yHvzVp/srtfS0brC+0bUfQfmpMPFVQ==} + /@commitlint/load@17.7.1: + resolution: {integrity: sha512-S/QSOjE1ztdogYj61p6n3UbkUvweR17FQ0zDbNtoTLc+Hz7vvfS7ehoTMQ27hPSjVBpp7SzEcOQu081RLjKHJQ==} engines: {node: '>=v14'} dependencies: - '@commitlint/config-validator': 17.4.4 + '@commitlint/config-validator': 17.6.7 '@commitlint/execute-rule': 17.4.0 - '@commitlint/resolve-extends': 17.4.4 + '@commitlint/resolve-extends': 17.6.7 '@commitlint/types': 17.4.4 - '@types/node': 16.18.14 + '@types/node': 20.4.7 chalk: 4.1.2 - cosmiconfig: 8.1.0 - cosmiconfig-typescript-loader: 4.3.0(@types/node@16.18.14)(cosmiconfig@8.1.0)(ts-node@10.9.1)(typescript@4.7.4) + cosmiconfig: 8.3.6(typescript@5.2.2) + cosmiconfig-typescript-loader: 4.4.0(@types/node@20.4.7)(cosmiconfig@8.3.6)(ts-node@10.9.1)(typescript@5.2.2) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.9.1(@types/node@16.18.14)(typescript@4.7.4) - typescript: 4.7.4 + ts-node: 10.9.1(@types/node@20.4.7)(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -701,21 +728,21 @@ packages: engines: {node: '>=v14'} dev: true - /@commitlint/parse@17.4.4: - resolution: {integrity: sha512-EKzz4f49d3/OU0Fplog7nwz/lAfXMaDxtriidyGF9PtR+SRbgv4FhsfF310tKxs6EPj8Y+aWWuX3beN5s+yqGg==} + /@commitlint/parse@17.7.0: + resolution: {integrity: sha512-dIvFNUMCUHqq5Abv80mIEjLVfw8QNuA4DS7OWip4pcK/3h5wggmjVnlwGCDvDChkw2TjK1K6O+tAEV78oxjxag==} engines: {node: '>=v14'} dependencies: '@commitlint/types': 17.4.4 - conventional-changelog-angular: 5.0.13 - conventional-commits-parser: 3.2.4 + conventional-changelog-angular: 6.0.0 + conventional-commits-parser: 4.0.0 dev: true - /@commitlint/prompt@17.4.4: - resolution: {integrity: sha512-qWC2fydBnAQp+jJqoPYLzzQ6NFMBNm/GlP+oeYOHhMwCXl9nptDGXUJnW3cdL6G4QMYKqJv1czRfATzMXHDHcg==} + /@commitlint/prompt@17.7.1: + resolution: {integrity: sha512-TWPATfSarPHdUOGkE/irBtzE+ZhEuUQI8U8PMcrLYi26NtJTHmRWpwZGug5gehcmlvQuLCjoFg3naYrs1BMHEQ==} engines: {node: '>=v14'} dependencies: - '@commitlint/ensure': 17.4.4 - '@commitlint/load': 17.4.4 + '@commitlint/ensure': 17.6.7 + '@commitlint/load': 17.7.1 '@commitlint/types': 17.4.4 chalk: 4.1.2 inquirer: 6.5.2 @@ -724,22 +751,22 @@ packages: - '@swc/wasm' dev: true - /@commitlint/read@17.4.4: - resolution: {integrity: sha512-B2TvUMJKK+Svzs6eji23WXsRJ8PAD+orI44lVuVNsm5zmI7O8RSGJMvdEZEikiA4Vohfb+HevaPoWZ7PiFZ3zA==} + /@commitlint/read@17.5.1: + resolution: {integrity: sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==} engines: {node: '>=v14'} dependencies: '@commitlint/top-level': 17.4.0 '@commitlint/types': 17.4.4 - fs-extra: 11.1.0 + fs-extra: 11.1.1 git-raw-commits: 2.0.11 minimist: 1.2.8 dev: true - /@commitlint/resolve-extends@17.4.4: - resolution: {integrity: sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==} + /@commitlint/resolve-extends@17.6.7: + resolution: {integrity: sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg==} engines: {node: '>=v14'} dependencies: - '@commitlint/config-validator': 17.4.4 + '@commitlint/config-validator': 17.6.7 '@commitlint/types': 17.4.4 import-fresh: 3.3.0 lodash.mergewith: 4.6.2 @@ -747,11 +774,11 @@ packages: resolve-global: 1.0.0 dev: true - /@commitlint/rules@17.4.4: - resolution: {integrity: sha512-0tgvXnHi/mVcyR8Y8mjTFZIa/FEQXA4uEutXS/imH2v1UNkYDSEMsK/68wiXRpfW1euSgEdwRkvE1z23+yhNrQ==} + /@commitlint/rules@17.7.0: + resolution: {integrity: sha512-J3qTh0+ilUE5folSaoK91ByOb8XeQjiGcdIdiB/8UT1/Rd1itKo0ju/eQVGyFzgTMYt8HrDJnGTmNWwcMR1rmA==} engines: {node: '>=v14'} dependencies: - '@commitlint/ensure': 17.4.4 + '@commitlint/ensure': 17.6.7 '@commitlint/message': 17.4.2 '@commitlint/to-lines': 17.4.0 '@commitlint/types': 17.4.4 @@ -792,47 +819,14 @@ packages: css-render: 0.15.12 dev: false - /@css-render/vue3-ssr@0.15.12(vue@3.2.47): + /@css-render/vue3-ssr@0.15.12(vue@3.3.4): resolution: {integrity: sha512-AQLGhhaE0F+rwybRCkKUdzBdTEM/5PZBYy+fSYe1T9z9+yxMuV/k7ZRqa4M69X+EI1W8pa4kc9Iq2VjQkZx4rg==} peerDependencies: vue: ^3.0.11 dependencies: - vue: 3.2.47 + vue: 3.3.4 dev: false - /@cypress/request@2.88.11: - resolution: {integrity: sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w==} - engines: {node: '>= 6'} - dependencies: - aws-sign2: 0.7.0 - aws4: 1.12.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - http-signature: 1.3.6 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - performance-now: 2.1.0 - qs: 6.10.4 - safe-buffer: 5.2.1 - tough-cookie: 2.5.0 - tunnel-agent: 0.6.0 - uuid: 8.3.2 - dev: true - - /@cypress/xvfb@1.2.4(supports-color@8.1.1): - resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==} - dependencies: - debug: 3.2.7(supports-color@8.1.1) - lodash.once: 4.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /@emoji-mart/data@1.1.2: resolution: {integrity: sha512-1HP8BxD2azjqWJvxIaWAMyTySeZY0Osr83ukYjltPVkNXeJvTz7yDrPLBtnrD5uqJ3tg4CcLuuBW09wahqL/fg==} dev: false @@ -841,8 +835,8 @@ packages: resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} dev: false - /@esbuild/android-arm64@0.16.17: - resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -850,17 +844,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.15.18: - resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.16.17: - resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -868,8 +853,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.16.17: - resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -877,8 +862,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.16.17: - resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -886,8 +871,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.16.17: - resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -895,8 +880,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.16.17: - resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -904,8 +889,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.16.17: - resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -913,8 +898,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.16.17: - resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -922,8 +907,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.16.17: - resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -931,8 +916,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.16.17: - resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -940,17 +925,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.15.18: - resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.16.17: - resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -958,8 +934,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.16.17: - resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -967,8 +943,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.16.17: - resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -976,8 +952,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.16.17: - resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -985,8 +961,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.16.17: - resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -994,8 +970,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.16.17: - resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1003,8 +979,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.16.17: - resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1012,8 +988,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.16.17: - resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1021,8 +997,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.16.17: - resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1030,8 +1006,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.16.17: - resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1039,8 +1015,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.16.17: - resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1048,8 +1024,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.16.17: - resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1057,14 +1033,29 @@ packages: dev: true optional: true - /@eslint/eslintrc@2.0.0: - resolution: {integrity: sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==} + /@eslint-community/eslint-utils@4.4.0(eslint@8.49.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.49.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.8.1: + resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) - espree: 9.4.1 - globals: 13.20.0 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.21.0 ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -1074,8 +1065,8 @@ packages: - supports-color dev: true - /@eslint/js@8.35.0: - resolution: {integrity: sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==} + /@eslint/js@8.49.0: + resolution: {integrity: sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1089,12 +1080,12 @@ packages: '@hapi/hoek': 9.3.0 dev: true - /@humanwhocodes/config-array@0.11.8: - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -1109,54 +1100,65 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true + /@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + dev: true + + /@iconify/utils@2.1.9: + resolution: {integrity: sha512-mo+A4n3MwLlWlg1SoSO+Dt6pOPWKElk9sSJ6ZpuzbB9OcjxN8RUWxU3ulPwB1nglErWKRam2x4BAohbYF7FiFA==} + dependencies: + '@antfu/install-pkg': 0.1.1 + '@antfu/utils': 0.7.6 + '@iconify/types': 2.0.0 + debug: 4.3.4 + kolorist: 1.8.0 + local-pkg: 0.4.3 + transitivePeerDependencies: + - supports-color + dev: true + /@istanbuljs/schema@0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} dev: true - /@jridgewell/gen-mapping@0.1.1: - resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} - engines: {node: '>=6.0.0'} + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + '@sinclair/typebox': 0.27.8 dev: true - /@jridgewell/gen-mapping@0.3.2: - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 - '@jridgewell/trace-mapping': 0.3.17 - dev: true + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} - dev: true /@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/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.17: - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 - dev: true + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true /@juggle/resize-observer@3.4.0: @@ -1167,21 +1169,18 @@ packages: resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==} dev: false - /@lezer/common@1.0.2: - resolution: {integrity: sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==} - dev: false + /@lezer/common@1.0.4: + resolution: {integrity: sha512-lZHlk8p67x4aIDtJl6UQrXSOP6oi7dQR3W/geFVrENdA1JDaAJWldnVqVjPMJupbTKbzDfFcePfKttqVidS/dg==} - /@lezer/highlight@1.1.3: - resolution: {integrity: sha512-3vLKLPThO4td43lYRBygmMY18JN3CPh9w+XS2j8WC30vR4yZeFG4z1iFe4jXE43NtGqe//zHW5q8ENLlHvz9gw==} + /@lezer/highlight@1.1.6: + resolution: {integrity: sha512-cmSJYa2us+r3SePpRCjN5ymCqCPv+zyXmDl0ciWtVaNiORT/MxM7ZgOMQZADD0o51qOaOg24qc/zBViOIwAjJg==} dependencies: - '@lezer/common': 1.0.2 - dev: false + '@lezer/common': 1.0.4 - /@lezer/lr@1.3.3: - resolution: {integrity: sha512-JPQe3mwJlzEVqy67iQiiGozhcngbO8QBgpqZM6oL1Wj/dXckrEexpBLeFkq0edtW5IqnPRFxA24BHJni8Js69w==} + /@lezer/lr@1.3.10: + resolution: {integrity: sha512-BZfVvf7Re5BIwJHlZXbJn9L8lus5EonxQghyn+ih8Wl36XMFBPTXC0KM0IdUtj9w/diPHsKlXVgL+AlX2jYJ0Q==} dependencies: - '@lezer/common': 1.0.2 - dev: false + '@lezer/common': 1.0.4 /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1204,136 +1203,123 @@ packages: fastq: 1.15.0 dev: true - /@octokit/auth-token@3.0.3: - resolution: {integrity: sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==} - engines: {node: '>= 14'} - dependencies: - '@octokit/types': 9.0.0 + /@octokit/auth-token@4.0.0: + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} dev: true - /@octokit/core@4.2.0: - resolution: {integrity: sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==} - engines: {node: '>= 14'} + /@octokit/core@5.0.0: + resolution: {integrity: sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==} + engines: {node: '>= 18'} dependencies: - '@octokit/auth-token': 3.0.3 - '@octokit/graphql': 5.0.5 - '@octokit/request': 6.2.3 - '@octokit/request-error': 3.0.3 - '@octokit/types': 9.0.0 + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.0.1 + '@octokit/request': 8.1.1 + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 before-after-hook: 2.2.3 universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding dev: true - /@octokit/endpoint@7.0.5: - resolution: {integrity: sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==} - engines: {node: '>= 14'} + /@octokit/endpoint@9.0.0: + resolution: {integrity: sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==} + engines: {node: '>= 18'} dependencies: - '@octokit/types': 9.0.0 + '@octokit/types': 11.1.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.0 dev: true - /@octokit/graphql@5.0.5: - resolution: {integrity: sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==} - engines: {node: '>= 14'} + /@octokit/graphql@7.0.1: + resolution: {integrity: sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==} + engines: {node: '>= 18'} dependencies: - '@octokit/request': 6.2.3 - '@octokit/types': 9.0.0 + '@octokit/request': 8.1.1 + '@octokit/types': 11.1.0 universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding dev: true - /@octokit/openapi-types@16.0.0: - resolution: {integrity: sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==} + /@octokit/openapi-types@18.0.0: + resolution: {integrity: sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==} dev: true - /@octokit/plugin-paginate-rest@6.0.0(@octokit/core@4.2.0): - resolution: {integrity: sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==} - engines: {node: '>= 14'} + /@octokit/plugin-paginate-rest@8.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-2xZ+baZWUg+qudVXnnvXz7qfrTmDeYPCzangBVq/1gXxii/OiS//4shJp9dnCCvj1x+JAm9ji1Egwm1BA47lPQ==} + engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '>=4' + '@octokit/core': '>=5' dependencies: - '@octokit/core': 4.2.0 - '@octokit/types': 9.0.0 + '@octokit/core': 5.0.0 + '@octokit/types': 11.1.0 dev: true - /@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.0): - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + /@octokit/plugin-retry@6.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-a1/A4A+PB1QoAHQfLJxGHhLfSAT03bR1jJz3GgQJZvty2ozawFWs93MiBQXO7SL2YbO7CIq0Goj4qLOBj8JeMQ==} + engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '>=3' + '@octokit/core': '>=5' dependencies: - '@octokit/core': 4.2.0 + '@octokit/core': 5.0.0 + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 + bottleneck: 2.19.5 dev: true - /@octokit/plugin-rest-endpoint-methods@7.0.1(@octokit/core@4.2.0): - resolution: {integrity: sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==} - engines: {node: '>= 14'} + /@octokit/plugin-throttling@7.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-KL2k/d0uANc8XqP5S64YcNFCudR3F5AaKO39XWdUtlJIjT9Ni79ekWJ6Kj5xvAw87udkOMEPcVf9xEge2+ahew==} + engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '>=3' + '@octokit/core': ^5.0.0 dependencies: - '@octokit/core': 4.2.0 - '@octokit/types': 9.0.0 - deprecation: 2.3.1 + '@octokit/core': 5.0.0 + '@octokit/types': 11.1.0 + bottleneck: 2.19.5 dev: true - /@octokit/request-error@3.0.3: - resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} - engines: {node: '>= 14'} + /@octokit/request-error@5.0.0: + resolution: {integrity: sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==} + engines: {node: '>= 18'} dependencies: - '@octokit/types': 9.0.0 + '@octokit/types': 11.1.0 deprecation: 2.3.1 once: 1.4.0 dev: true - /@octokit/request@6.2.3: - resolution: {integrity: sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==} - engines: {node: '>= 14'} + /@octokit/request@8.1.1: + resolution: {integrity: sha512-8N+tdUz4aCqQmXl8FpHYfKG9GelDFd7XGVzyN8rc6WxVlYcfpHECnuRkgquzz+WzvHTK62co5di8gSXnzASZPQ==} + engines: {node: '>= 18'} dependencies: - '@octokit/endpoint': 7.0.5 - '@octokit/request-error': 3.0.3 - '@octokit/types': 9.0.0 + '@octokit/endpoint': 9.0.0 + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 is-plain-object: 5.0.0 - node-fetch: 2.6.9 universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding dev: true - /@octokit/rest@19.0.7: - resolution: {integrity: sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==} - engines: {node: '>= 14'} + /@octokit/types@11.1.0: + resolution: {integrity: sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==} dependencies: - '@octokit/core': 4.2.0 - '@octokit/plugin-paginate-rest': 6.0.0(@octokit/core@4.2.0) - '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.0) - '@octokit/plugin-rest-endpoint-methods': 7.0.1(@octokit/core@4.2.0) - transitivePeerDependencies: - - encoding + '@octokit/openapi-types': 18.0.0 dev: true - /@octokit/types@9.0.0: - resolution: {integrity: sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==} - dependencies: - '@octokit/openapi-types': 16.0.0 + /@one-ini/wasm@0.1.1: + resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} dev: true - /@pkgr/utils@2.3.1: - resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} + /@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 + fast-glob: 3.3.1 is-glob: 4.0.3 - open: 8.4.2 + open: 9.1.0 picocolors: 1.0.0 - tiny-glob: 0.2.9 - tslib: 2.4.0 + tslib: 2.6.2 dev: true - /@pnpm/config.env-replace@1.0.0: - resolution: {integrity: sha512-ZVPVDi1E8oeXlYqkGRtX0CkzLTwE2zt62bjWaWKaAvI8NZqHzlMvGeSNDpW+JB3+aKanYb4UETJOF1/CxGPemA==} + /@pnpm/config.env-replace@1.1.0: + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} dev: true @@ -1344,16 +1330,20 @@ packages: graceful-fs: 4.2.10 dev: true - /@pnpm/npm-conf@2.1.0: - resolution: {integrity: sha512-Oe6ntvgsMTE3hDIqy6sajqHF+MnzJrOF06qC2QSiUEybLL7cp6tjoKUa32gpd9+KPVl4QyMs3E3nsXrx/Vdnlw==} + /@pnpm/npm-conf@2.2.2: + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} engines: {node: '>=12'} dependencies: - '@pnpm/config.env-replace': 1.0.0 + '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 dev: true - /@rollup/plugin-inject@5.0.3(rollup@3.18.0): + /@polka/url@1.0.0-next.23: + resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} + dev: true + + /@rollup/plugin-inject@5.0.3(rollup@3.29.1): resolution: {integrity: sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1362,14 +1352,14 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.18.0) + '@rollup/pluginutils': 5.0.4(rollup@3.29.1) estree-walker: 2.0.2 magic-string: 0.27.0 - rollup: 3.18.0 + rollup: 3.29.1 dev: true - /@rollup/plugin-node-resolve@15.0.1(rollup@3.18.0): - resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} + /@rollup/plugin-node-resolve@15.2.1(rollup@3.29.1): + resolution: {integrity: sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0 @@ -1377,16 +1367,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.18.0) + '@rollup/pluginutils': 5.0.4(rollup@3.29.1) '@types/resolve': 1.20.2 - deepmerge: 4.3.0 + deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 - resolve: 1.22.1 - rollup: 3.18.0 + resolve: 1.22.5 + rollup: 3.29.1 dev: true - /@rollup/plugin-virtual@3.0.1(rollup@3.18.0): + /@rollup/plugin-virtual@3.0.1(rollup@3.29.1): resolution: {integrity: sha512-fK8O0IL5+q+GrsMLuACVNk2x21g3yaw+sG2qn16SnUd3IlBsQyvWxLMGHmCmXRMecPjGRSZ/1LmZB4rjQm68og==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1395,11 +1385,11 @@ packages: rollup: optional: true dependencies: - rollup: 3.18.0 + rollup: 3.29.1 dev: true - /@rollup/pluginutils@5.0.2(rollup@3.18.0): - resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + /@rollup/pluginutils@5.0.4(rollup@3.29.1): + resolution: {integrity: sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0 @@ -1407,39 +1397,39 @@ packages: rollup: optional: true dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.18.0 + rollup: 3.29.1 dev: true - /@semantic-release/changelog@6.0.2(semantic-release@20.1.1): - resolution: {integrity: sha512-jHqfTkoPbDEOAgAP18mGP53IxeMwxTISN+GwTRy9uLu58UjARoZU8ScCgWGeO2WPkEsm57H8AkyY02W2ntIlIw==} + /@semantic-release/changelog@6.0.3(semantic-release@21.1.1): + resolution: {integrity: sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==} engines: {node: '>=14.17'} peerDependencies: semantic-release: '>=18.0.0' dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 - fs-extra: 11.1.0 + fs-extra: 11.1.1 lodash: 4.17.21 - semantic-release: 20.1.1 + semantic-release: 21.1.1(typescript@5.2.2) dev: true - /@semantic-release/commit-analyzer@9.0.2(semantic-release@20.1.1): - resolution: {integrity: sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==} - engines: {node: '>=14.17'} + /@semantic-release/commit-analyzer@10.0.4(semantic-release@21.1.1): + resolution: {integrity: sha512-pFGn99fn8w4/MHE0otb2A/l5kxgOuxaaauIh4u30ncoTJuqWj4hXTgEJ03REqjS+w1R2vPftSsO26WC61yOcpw==} + engines: {node: '>=18'} peerDependencies: - semantic-release: '>=18.0.0-beta.1' + semantic-release: '>=20.1.0' dependencies: - conventional-changelog-angular: 5.0.13 - conventional-commits-filter: 2.0.7 - conventional-commits-parser: 3.2.4 - debug: 4.3.4(supports-color@8.1.1) + conventional-changelog-angular: 6.0.0 + conventional-commits-filter: 3.0.0 + conventional-commits-parser: 5.0.0 + debug: 4.3.4 import-from: 4.0.0 - lodash: 4.17.21 + lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 20.1.1 + semantic-release: 21.1.1(typescript@5.2.2) transitivePeerDependencies: - supports-color dev: true @@ -1449,7 +1439,12 @@ packages: engines: {node: '>=14.17'} dev: true - /@semantic-release/exec@6.0.3(semantic-release@20.1.1): + /@semantic-release/error@4.0.0: + resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} + engines: {node: '>=18'} + dev: true + + /@semantic-release/exec@6.0.3(semantic-release@21.1.1): resolution: {integrity: sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==} engines: {node: '>=14.17'} peerDependencies: @@ -1457,16 +1452,16 @@ packages: dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 execa: 5.1.1 lodash: 4.17.21 parse-json: 5.2.0 - semantic-release: 20.1.1 + semantic-release: 21.1.1(typescript@5.2.2) transitivePeerDependencies: - supports-color dev: true - /@semantic-release/git@10.0.1(semantic-release@20.1.1): + /@semantic-release/git@10.0.1(semantic-release@21.1.1): resolution: {integrity: sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==} engines: {node: '>=14.17'} peerDependencies: @@ -1474,84 +1469,83 @@ packages: dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 dir-glob: 3.0.1 execa: 5.1.1 lodash: 4.17.21 micromatch: 4.0.5 p-reduce: 2.1.0 - semantic-release: 20.1.1 + semantic-release: 21.1.1(typescript@5.2.2) transitivePeerDependencies: - supports-color dev: true - /@semantic-release/github@8.0.7(semantic-release@20.1.1): - resolution: {integrity: sha512-VtgicRIKGvmTHwm//iqTh/5NGQwsncOMR5vQK9pMT92Aem7dv37JFKKRuulUsAnUOIlO4G8wH3gPiBAA0iW0ww==} - engines: {node: '>=14.17'} + /@semantic-release/github@9.0.6(semantic-release@21.1.1): + resolution: {integrity: sha512-GBGt9c3c2UdSvso4jcyQQSUpZA9hbfHqGQerZKN9WvVzCIkaBy8xkhOyiFVX08LjRHHT/H221SJNBLtuihX5iw==} + engines: {node: '>=18'} peerDependencies: - semantic-release: '>=18.0.0-beta.1' - dependencies: - '@octokit/rest': 19.0.7 - '@semantic-release/error': 3.0.0 - aggregate-error: 3.1.0 - bottleneck: 2.19.5 - debug: 4.3.4(supports-color@8.1.1) + semantic-release: '>=20.1.0' + dependencies: + '@octokit/core': 5.0.0 + '@octokit/plugin-paginate-rest': 8.0.0(@octokit/core@5.0.0) + '@octokit/plugin-retry': 6.0.0(@octokit/core@5.0.0) + '@octokit/plugin-throttling': 7.0.0(@octokit/core@5.0.0) + '@semantic-release/error': 4.0.0 + aggregate-error: 5.0.0 + debug: 4.3.4 dir-glob: 3.0.1 - fs-extra: 11.1.0 - globby: 11.1.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 + globby: 13.2.2 + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2 issue-parser: 6.0.0 - lodash: 4.17.21 + lodash-es: 4.17.21 mime: 3.0.0 - p-filter: 2.1.0 - p-retry: 4.6.2 - semantic-release: 20.1.1 - url-join: 4.0.1 + p-filter: 3.0.0 + semantic-release: 21.1.1(typescript@5.2.2) + url-join: 5.0.0 transitivePeerDependencies: - - encoding - supports-color dev: true - /@semantic-release/npm@9.0.2(semantic-release@20.1.1): - resolution: {integrity: sha512-zgsynF6McdzxPnFet+a4iO9HpAlARXOM5adz7VGVCvj0ne8wtL2ZOQoDV2wZPDmdEotDIbVeJjafhelZjs9j6g==} - engines: {node: '>=16 || ^14.17'} + /@semantic-release/npm@10.0.6(semantic-release@21.1.1): + resolution: {integrity: sha512-DyqHrGE8aUyapA277BB+4kV0C4iMHh3sHzUWdf0jTgp5NNJxVUz76W1f57FB64Ue03him3CBXxFqQD2xGabxow==} + engines: {node: '>=18'} peerDependencies: - semantic-release: '>=19.0.0' + semantic-release: '>=20.1.0' dependencies: - '@semantic-release/error': 3.0.0 - aggregate-error: 3.1.0 - execa: 5.1.1 - fs-extra: 11.1.0 - lodash: 4.17.21 + '@semantic-release/error': 4.0.0 + aggregate-error: 5.0.0 + execa: 8.0.1 + fs-extra: 11.1.1 + lodash-es: 4.17.21 nerf-dart: 1.0.0 - normalize-url: 6.1.0 - npm: 8.19.4 + normalize-url: 8.0.0 + npm: 9.8.1 rc: 1.2.8 - read-pkg: 5.2.0 + read-pkg: 8.1.0 registry-auth-token: 5.0.2 - semantic-release: 20.1.1 - semver: 7.3.8 - tempy: 1.0.1 + semantic-release: 21.1.1(typescript@5.2.2) + semver: 7.5.4 + tempy: 3.1.0 dev: true - /@semantic-release/release-notes-generator@10.0.3(semantic-release@20.1.1): - resolution: {integrity: sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==} - engines: {node: '>=14.17'} + /@semantic-release/release-notes-generator@11.0.7(semantic-release@21.1.1): + resolution: {integrity: sha512-T09QB9ImmNx7Q6hY6YnnEbw/rEJ6a+22LBxfZq+pSAXg/OL/k0siwEm5cK4k1f9dE2Z2mPIjJKKohzUm0jbxcQ==} + engines: {node: '>=18'} peerDependencies: - semantic-release: '>=18.0.0-beta.1' - dependencies: - conventional-changelog-angular: 5.0.13 - conventional-changelog-writer: 5.0.1 - conventional-commits-filter: 2.0.7 - conventional-commits-parser: 3.2.4 - debug: 4.3.4(supports-color@8.1.1) - get-stream: 6.0.1 + semantic-release: '>=20.1.0' + dependencies: + conventional-changelog-angular: 6.0.0 + conventional-changelog-writer: 6.0.1 + conventional-commits-filter: 4.0.0 + conventional-commits-parser: 5.0.0 + debug: 4.3.4 + get-stream: 7.0.1 import-from: 4.0.0 - into-stream: 6.0.0 - lodash: 4.17.21 - read-pkg-up: 7.0.1 - semantic-release: 20.1.1 + into-stream: 7.0.0 + lodash-es: 4.17.21 + read-pkg-up: 10.1.0 + semantic-release: 21.1.1(typescript@5.2.2) transitivePeerDependencies: - supports-color dev: true @@ -1570,27 +1564,48 @@ packages: resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} dev: true - /@sveltejs/vite-plugin-svelte@2.0.3(svelte@3.55.1)(vite@4.1.4): - resolution: {integrity: sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==} + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.5)(svelte@4.2.0)(vite@4.4.9): + resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} + engines: {node: ^14.18.0 || >= 16} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^2.2.0 + svelte: ^3.54.0 || ^4.0.0 + vite: ^4.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte': 2.4.5(svelte@4.2.0)(vite@4.4.9) + debug: 4.3.4 + svelte: 4.2.0 + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) + transitivePeerDependencies: + - supports-color + dev: true + + /@sveltejs/vite-plugin-svelte@2.4.5(svelte@4.2.0)(vite@4.4.9): + resolution: {integrity: sha512-UJKsFNwhzCVuiZd06jM/psscyNJNDwjQC+qIeb7GBJK9iWeQCcIyfcPWDvbCudfcJggY9jtxJeeaZH7uny93FQ==} engines: {node: ^14.18.0 || >= 16} peerDependencies: - svelte: ^3.54.0 + svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: - debug: 4.3.4(supports-color@8.1.1) - deepmerge: 4.3.0 + '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.4.5)(svelte@4.2.0)(vite@4.4.9) + debug: 4.3.4 + deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.29.0 - svelte: 3.55.1 - svelte-hmr: 0.15.1(svelte@3.55.1) - vite: 4.1.4(@types/node@16.18.14)(sass@1.58.3) - vitefu: 0.2.4(vite@4.1.4) + magic-string: 0.30.3 + svelte: 4.2.0 + svelte-hmr: 0.15.3(svelte@4.2.0) + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) + vitefu: 0.2.4(vite@4.4.9) transitivePeerDependencies: - supports-color dev: true - /@swc/core-darwin-arm64@1.3.37: - resolution: {integrity: sha512-iIyVqqioUpVeT/hbBVfkrsjfCyL4idNH+LVKGmoTAWaTTSB0+UNhNuA7Wh2CqIHWh1Mv7IlumitWPcqsVDdoEw==} + /@swc/core-darwin-arm64@1.3.85: + resolution: {integrity: sha512-jTikp+i4nO4Ofe6qGm4I3sFeebD1OvueBCHITux5tQKD6umN1c2z4CRGv6K49NIz/qEpUcdr6Qny6K+3yibVFQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] @@ -1598,8 +1613,8 @@ packages: dev: true optional: true - /@swc/core-darwin-x64@1.3.37: - resolution: {integrity: sha512-dao5nXPWKxtaxqak4ZkRyBoApNIelW/glantQhPhj0FjMjuIQc+v03ldJ8XDByWOG+6xuVUTheANCtEccxoQBw==} + /@swc/core-darwin-x64@1.3.85: + resolution: {integrity: sha512-3uHYkjVU+2F+YbVYtq5rH0uCJIztFTALaS3mQEfQUZKXZ5/8jD5titTCRqFKtSlQg0CzaFZgsYsuqwYBmgN0mA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] @@ -1607,8 +1622,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm-gnueabihf@1.3.37: - resolution: {integrity: sha512-/mVrc8H/f062CUkqKGmBiil2VIYu4mKawHxERfeP1y38X5K/OwjG5s9MgO9TVxy+Ly6vejwj70kRhSa3hVp1Bw==} + /@swc/core-linux-arm-gnueabihf@1.3.85: + resolution: {integrity: sha512-ouHzAHsFaEOkRuoTAOI/8n2m8BQAAnb4vr/xbMhhDOmix0lp5eNsW5Iac/EcJ2uG6B3n7P2K8oycj9SWkj+pfw==} engines: {node: '>=10'} cpu: [arm] os: [linux] @@ -1616,8 +1631,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-gnu@1.3.37: - resolution: {integrity: sha512-eRQ3KaZI0j5LidTfOIi/kUVOOMuVmw1HCdt/Z1TAUKoHMLVxY8xcJ3pEE3/+ednI60EmHpwpJRs6LelXyL6uzQ==} + /@swc/core-linux-arm64-gnu@1.3.85: + resolution: {integrity: sha512-/Z1CZOWiO+NqJEh1J20PIxQFHMH43upQJ1l7FJ5Z7+MyuYF8WkeJ7OSovau729pBR+38vvvccEJrMZIztfv7hQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -1625,8 +1640,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-musl@1.3.37: - resolution: {integrity: sha512-w2BRLODyxNQY2rfHZMZ5ir6QrrnGBPlnIslTrgKmVbn1OjZoxUCtuqhrYnCmybaAc4DOkeH02TqynEFXrm+EMw==} + /@swc/core-linux-arm64-musl@1.3.85: + resolution: {integrity: sha512-gfh7CfKavi076dbMBTzfdawSGcYfZ4+1Q+8aRkSesqepKHcIWIJti8Cf3zB4a6CHNhJe+VN0Gb7DEfumydAm1w==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -1634,8 +1649,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-gnu@1.3.37: - resolution: {integrity: sha512-CfoH8EsZJZ9kunjMUjBNYD5fFuO86zw+K/o4wEw72Yg6ZEiqPmeIlCKU8tpTv4sK+CbhUXrmVzMB5tqsb2jALQ==} + /@swc/core-linux-x64-gnu@1.3.85: + resolution: {integrity: sha512-lWVqjHKzofb9q1qrBM4dLqO7CIisp08/xMS5Hz9DWex1gTc5F2b6yJO6Ceqwa256GMweJcdP6A5EvEFQAiZ5dg==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -1643,8 +1658,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-musl@1.3.37: - resolution: {integrity: sha512-9YPrHYNdoG7PK11gV51GfL45biI2dic+YTqHUDKyykemsD7Ot1zUFX7Ty//pdvpKcKSff6SrHbfFACD5ziNirA==} + /@swc/core-linux-x64-musl@1.3.85: + resolution: {integrity: sha512-EPJmlfqC05TUetnlErxNRyIp7Nc3B2w9abET6oQ/EgldeAeQnZ3M6svMViET/c2QSomgrU3rdP+Qcozkt62/4A==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -1652,8 +1667,8 @@ packages: dev: true optional: true - /@swc/core-win32-arm64-msvc@1.3.37: - resolution: {integrity: sha512-h17Ek8/wCDje6BrXOvCXBM80oBRmTSMMdLyt87whTl5xqYlWYYs9oQIzZndNRTlNpTgjGO8Ns2eo4kwVxIkBIA==} + /@swc/core-win32-arm64-msvc@1.3.85: + resolution: {integrity: sha512-ibckJDZw8kNosciMexwk0z75ZyUhwtiFMV9rSBpup0opa7NNCUCoERCJ1e9LRyMdhsVUoLpZg/KZiHCdTw96hQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] @@ -1661,8 +1676,8 @@ packages: dev: true optional: true - /@swc/core-win32-ia32-msvc@1.3.37: - resolution: {integrity: sha512-1BR175E1olGy/zdt94cgdb6ps/lBNissAOaxyBk8taFpcjy3zpdP30yAoH0GIsC6isnZ5JfArbOJNRXXO5tE0Q==} + /@swc/core-win32-ia32-msvc@1.3.85: + resolution: {integrity: sha512-hY4MpHGUVQHL1T2kgRXOigDho4DTIpVPYzJ4uyy8VQRbS7GzN5XtvdGP/fA4zp8+2BQjcig+6J7Y92SY15ouNQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] @@ -1670,8 +1685,8 @@ packages: dev: true optional: true - /@swc/core-win32-x64-msvc@1.3.37: - resolution: {integrity: sha512-1siDQ7dccQ1pesJmgAL3BUBbRPtfbNInOWnZOkiie/DfFqGQ117QKnCVyjUvwFKfTQx1+3UUTDmMSlRd00SlXg==} + /@swc/core-win32-x64-msvc@1.3.85: + resolution: {integrity: sha512-ktxWOMFJ0iqKn6WUHtXqi4CS7xkyHmrRtjllGRuGqxmLmDX/HSOfuQ55Tm1KXKk5oHLacJkUbOSF2kBrpZ8dpg==} engines: {node: '>=10'} cpu: [x64] os: [win32] @@ -1679,21 +1694,32 @@ packages: dev: true optional: true - /@swc/core@1.3.37: - resolution: {integrity: sha512-VOFlEQ1pReOM73N9A7R8rt561GU8Rxsq833jiimWDUB2sXEN3V6n6wFTgYmZuMz2T4/R0cQA1nV48KkaT4gkFw==} + /@swc/core@1.3.85: + resolution: {integrity: sha512-qnoxp+2O0GtvRdYnXgR1v8J7iymGGYpx6f6yCK9KxipOZOjrlKILFANYlghQxZyPUfXwK++TFxfSlX4r9wK+kg==} engines: {node: '>=10'} requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + dependencies: + '@swc/types': 0.1.4 optionalDependencies: - '@swc/core-darwin-arm64': 1.3.37 - '@swc/core-darwin-x64': 1.3.37 - '@swc/core-linux-arm-gnueabihf': 1.3.37 - '@swc/core-linux-arm64-gnu': 1.3.37 - '@swc/core-linux-arm64-musl': 1.3.37 - '@swc/core-linux-x64-gnu': 1.3.37 - '@swc/core-linux-x64-musl': 1.3.37 - '@swc/core-win32-arm64-msvc': 1.3.37 - '@swc/core-win32-ia32-msvc': 1.3.37 - '@swc/core-win32-x64-msvc': 1.3.37 + '@swc/core-darwin-arm64': 1.3.85 + '@swc/core-darwin-x64': 1.3.85 + '@swc/core-linux-arm-gnueabihf': 1.3.85 + '@swc/core-linux-arm64-gnu': 1.3.85 + '@swc/core-linux-arm64-musl': 1.3.85 + '@swc/core-linux-x64-gnu': 1.3.85 + '@swc/core-linux-x64-musl': 1.3.85 + '@swc/core-win32-arm64-msvc': 1.3.85 + '@swc/core-win32-ia32-msvc': 1.3.85 + '@swc/core-win32-x64-msvc': 1.3.85 + dev: true + + /@swc/types@0.1.4: + resolution: {integrity: sha512-z/G02d+59gyyUb7KYhKi9jOhicek6QD2oMaotUyG+lUkybpXoV49dY9bj7Ah5Q+y7knK2jU67UTX9FyfGzaxQg==} dev: true /@tootallnate/once@1.1.2: @@ -1718,52 +1744,51 @@ packages: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} dev: true - /@tsconfig/node16@1.0.3: - resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true - /@tsconfig/svelte@3.0.0: - resolution: {integrity: sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==} + /@tsconfig/svelte@5.0.2: + resolution: {integrity: sha512-BRbo1fOtyVbhfLyuCWw6wAWp+U8UQle+ZXu84MYYWzYSEB28dyfnRBIE99eoG+qdAC0po6L2ScIEivcT07UaMA==} dev: true /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.4 + '@types/chai': 4.3.6 dev: true - /@types/chai@4.3.4: - resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} + /@types/chai@4.3.6: + resolution: {integrity: sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==} dev: true - /@types/codemirror@0.0.108: - resolution: {integrity: sha512-3FGFcus0P7C2UOGCNUVENqObEb4SFk+S8Dnxq7K6aIsLVs/vDtlangl3PEO0ykaKXyK56swVF6Nho7VsA44uhw==} + /@types/codemirror@5.60.8: + resolution: {integrity: sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==} dependencies: - '@types/tern': 0.23.4 + '@types/tern': 0.23.5 dev: true - /@types/emscripten@1.39.6: - resolution: {integrity: sha512-H90aoynNhhkQP6DRweEjJp5vfUVdIj7tdPLsu7pq89vODD/lcugKfZOsfgwpvM6XUewEp2N5dCg1Uf3Qe55Dcg==} + /@types/emscripten@1.39.7: + resolution: {integrity: sha512-tLqYV94vuqDrXh515F/FOGtBcRMTPGvVV1LzLbtYDcQmmhtpf/gLYf+hikBbQk8MzOHNz37wpFfJbYAuSn8HqA==} dev: true - /@types/estree@1.0.0: - resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} - dev: true + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true - /@types/jsdom@21.1.0: - resolution: {integrity: sha512-leWreJOdnuIxq9Y70tBVm/bvTuh31DSlF/r4l7Cfi4uhVQqLHD0Q4v301GMisEMwwbMgF7ZKxuZ+Jbd4NcdmRw==} + /@types/jsdom@21.1.2: + resolution: {integrity: sha512-bGj+7TaCkOwkJfx7HtS9p22Ij0A2aKMuz8a1+owpkxa1wU/HUBy/WAXhdv90uDdVI9rSjGvUrXmLSeA9VP3JeA==} dependencies: - '@types/node': 16.18.14 - '@types/tough-cookie': 4.0.2 + '@types/node': 20.6.0 + '@types/tough-cookie': 4.0.3 parse5: 7.1.2 dev: true - /@types/json-schema@7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + /@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true /@types/json5@0.0.29: @@ -1774,26 +1799,26 @@ packages: resolution: {integrity: sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA==} dev: false - /@types/lodash-es@4.17.6: - resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} + /@types/lodash-es@4.17.9: + resolution: {integrity: sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==} dependencies: - '@types/lodash': 4.14.191 + '@types/lodash': 4.14.198 dev: false - /@types/lodash@4.14.191: - resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} + /@types/lodash@4.14.198: + resolution: {integrity: sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==} dev: false /@types/minimist@1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/node@14.18.37: - resolution: {integrity: sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==} + /@types/node@20.4.7: + resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==} dev: true - /@types/node@16.18.14: - resolution: {integrity: sha512-wvzClDGQXOCVNU4APPopC2KtMYukaF1MN/W3xAmslx22Z4/IF1/izDMekuyoUlwfnDHYCIZGaj7jMwnJKBTxKw==} + /@types/node@20.6.0: + resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==} dev: true /@types/normalize-package-data@2.4.1: @@ -1803,7 +1828,7 @@ packages: /@types/plantuml-encoder@1.4.0: resolution: {integrity: sha512-d9HnMblRI20DP/KLa95DRxYFF6qjXc4/VfRP5XW7+wkkmWp0JQnRSbEiSz9YoF9hV/9npifohpfioMIvYmMrvw==} dependencies: - '@types/node': 16.18.14 + '@types/node': 20.6.0 dev: true /@types/pug@2.0.6: @@ -1814,443 +1839,645 @@ packages: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: true - /@types/retry@0.12.0: - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - dev: true - - /@types/sass@1.45.0: - resolution: {integrity: sha512-jn7qwGFmJHwUSphV8zZneO3GmtlgLsmhs/LQyVvQbIIa+fzGMUiHI4HXJZL3FT8MJmgXWbLGiVVY7ElvHq6vDA==} - deprecated: This is a stub types definition. sass provides its own type definitions, so you do not need this installed. - dependencies: - sass: 1.58.3 - dev: true - - /@types/sinonjs__fake-timers@8.1.1: - resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} - dev: true - - /@types/sizzle@2.3.3: - resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==} + /@types/semver@7.5.2: + resolution: {integrity: sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==} dev: true /@types/sql.js@1.4.4: resolution: {integrity: sha512-6EWU2wfiBtzgTy18WQoXZAGTreBjhZcBCfD8CDvyI1Nj0a4KNDDt41IYeAZ40cRUdfqWHb7VGx7t6nK0yBOI5A==} dependencies: - '@types/emscripten': 1.39.6 - '@types/node': 16.18.14 + '@types/emscripten': 1.39.7 + '@types/node': 20.6.0 dev: true - /@types/tern@0.23.4: - resolution: {integrity: sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==} + /@types/tern@0.23.5: + resolution: {integrity: sha512-POau56wDk3TQ0mQ0qG7XDzv96U5whSENZ9lC0htDvEH+9YUREo+J2U+apWcVRgR2UydEE70JXZo44goG+akTNQ==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 dev: true - /@types/tough-cookie@4.0.2: - resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} + /@types/tough-cookie@4.0.3: + resolution: {integrity: sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==} dev: true - /@types/yauzl@2.10.0: - resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} - requiresBuild: true - dependencies: - '@types/node': 16.18.14 - dev: true - optional: true - - /@typescript-eslint/eslint-plugin@5.29.0(@typescript-eslint/parser@5.29.0)(eslint@8.35.0)(typescript@4.7.4): - resolution: {integrity: sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.29.0(eslint@8.35.0)(typescript@4.7.4) - '@typescript-eslint/scope-manager': 5.29.0 - '@typescript-eslint/type-utils': 5.29.0(eslint@8.35.0)(typescript@4.7.4) - '@typescript-eslint/utils': 5.29.0(eslint@8.35.0)(typescript@4.7.4) - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.35.0 - functional-red-black-tree: 1.0.1 + '@eslint-community/regexpp': 4.8.1 + '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.7.0 + '@typescript-eslint/type-utils': 6.7.0(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.0(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.0 + debug: 4.3.4 + eslint: 8.49.0 + graphemer: 1.4.0 ignore: 5.2.4 - regexpp: 3.2.0 - semver: 7.3.8 - tsutils: 3.21.0(typescript@4.7.4) - typescript: 4.7.4 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.29.0(eslint@8.35.0)(typescript@4.7.4): - resolution: {integrity: sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@6.7.0(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.29.0 - '@typescript-eslint/types': 5.29.0 - '@typescript-eslint/typescript-estree': 5.29.0(typescript@4.7.4) - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.35.0 - typescript: 4.7.4 + '@typescript-eslint/scope-manager': 6.7.0 + '@typescript-eslint/types': 6.7.0 + '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.0 + debug: 4.3.4 + eslint: 8.49.0 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.29.0: - resolution: {integrity: sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/scope-manager@6.7.0: + resolution: {integrity: sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.29.0 - '@typescript-eslint/visitor-keys': 5.29.0 + '@typescript-eslint/types': 6.7.0 + '@typescript-eslint/visitor-keys': 6.7.0 dev: true - /@typescript-eslint/type-utils@5.29.0(eslint@8.35.0)(typescript@4.7.4): - resolution: {integrity: sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/type-utils@6.7.0(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: '*' + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.29.0(eslint@8.35.0)(typescript@4.7.4) - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.35.0 - tsutils: 3.21.0(typescript@4.7.4) - typescript: 4.7.4 + '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.0(eslint@8.49.0)(typescript@5.2.2) + debug: 4.3.4 + eslint: 8.49.0 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.29.0: - resolution: {integrity: sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/types@6.7.0: + resolution: {integrity: sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==} + engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.29.0(typescript@4.7.4): - resolution: {integrity: sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/typescript-estree@6.7.0(typescript@5.2.2): + resolution: {integrity: sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.29.0 - '@typescript-eslint/visitor-keys': 5.29.0 - debug: 4.3.4(supports-color@8.1.1) + '@typescript-eslint/types': 6.7.0 + '@typescript-eslint/visitor-keys': 6.7.0 + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0(typescript@4.7.4) - typescript: 4.7.4 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.29.0(eslint@8.35.0)(typescript@4.7.4): - resolution: {integrity: sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/utils@6.7.0(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.29.0 - '@typescript-eslint/types': 5.29.0 - '@typescript-eslint/typescript-estree': 5.29.0(typescript@4.7.4) - eslint: 8.35.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0(eslint@8.35.0) + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0) + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.2 + '@typescript-eslint/scope-manager': 6.7.0 + '@typescript-eslint/types': 6.7.0 + '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) + eslint: 8.49.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.29.0: - resolution: {integrity: sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/visitor-keys@6.7.0: + resolution: {integrity: sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.29.0 - eslint-visitor-keys: 3.3.0 + '@typescript-eslint/types': 6.7.0 + eslint-visitor-keys: 3.4.3 dev: true - /@vicons/ionicons5@0.12.0: - resolution: {integrity: sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==} - dev: false - - /@vitejs/plugin-vue-jsx@3.0.0(vite@4.1.4)(vue@3.2.47): - resolution: {integrity: sha512-vurkuzgac5SYuxd2HUZqAFAWGTF10diKBwJNbCvnWijNZfXd+7jMtqjPFbGt7idOJUn584fP1Ar9j/GN2jQ3Ew==} - engines: {node: ^14.18.0 || >=16.0.0} + /@unocss/astro@0.55.7(rollup@3.29.1)(vite@4.4.9): + resolution: {integrity: sha512-mw8r14ArxUQBVCCisAJlF/WsZb650iBsduD/lXMk56N/nQ3MMArCcn62kcAxgZSb5tfIOQGQu/tbR8hEcD8y2g==} peerDependencies: - vite: ^4.0.0 - vue: ^3.0.0 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 + peerDependenciesMeta: + vite: + optional: true dependencies: - '@babel/core': 7.21.0 - '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.21.0) - '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.0) - vite: 4.1.4(@types/node@16.18.14)(sass@1.58.3) - vue: 3.2.47 + '@unocss/core': 0.55.7 + '@unocss/reset': 0.55.7 + '@unocss/vite': 0.55.7(rollup@3.29.1)(vite@4.4.9) + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) transitivePeerDependencies: - - supports-color + - rollup dev: true - /@vitejs/plugin-vue@4.0.0(vite@4.1.4)(vue@3.2.47): - resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.0.0 - vue: ^3.2.25 + /@unocss/cli@0.55.7(rollup@3.29.1): + resolution: {integrity: sha512-ZHX2SR2WQbKfcmgOOHjBLB3V57Ct76Zb76YULzBj2EVX43lX/YDCVG87n6ePDY7rOcjCAthjrFQYCLV5KVLKHg==} + engines: {node: '>=14'} + hasBin: true dependencies: - vite: 4.1.4(@types/node@16.18.14)(sass@1.58.3) - vue: 3.2.47 + '@ampproject/remapping': 2.2.1 + '@rollup/pluginutils': 5.0.4(rollup@3.29.1) + '@unocss/config': 0.55.7 + '@unocss/core': 0.55.7 + '@unocss/preset-uno': 0.55.7 + cac: 6.7.14 + chokidar: 3.5.3 + colorette: 2.0.20 + consola: 3.2.3 + fast-glob: 3.3.1 + magic-string: 0.30.3 + pathe: 1.1.1 + perfect-debounce: 1.0.0 + transitivePeerDependencies: + - rollup dev: true - /@vitest/coverage-c8@0.29.2(vitest@0.29.2): - resolution: {integrity: sha512-NmD3WirQCeQjjKfHu4iEq18DVOBFbLn9TKVdMpyi5YW2EtnS+K22/WE+9/wRrepOhyeTxuEFgxUVkCAE1GhbnQ==} - peerDependencies: - vitest: '>=0.29.0 <1' + /@unocss/config@0.55.7: + resolution: {integrity: sha512-+X6rPScyFEWbkZyCyM+HfoJhJNN+CEl2n2izWkm0kuDj3w9fY9B3f/0dsk+jmx/gJEI5Y797q9zspNMNDib1AA==} + engines: {node: '>=14'} dependencies: - c8: 7.13.0 - picocolors: 1.0.0 - std-env: 3.3.2 - vitest: 0.29.2(jsdom@21.1.0)(sass@1.58.3) + '@unocss/core': 0.55.7 + unconfig: 0.3.10 dev: true - /@vitest/expect@0.29.2: - resolution: {integrity: sha512-wjrdHB2ANTch3XKRhjWZN0UueFocH0cQbi2tR5Jtq60Nb3YOSmakjdAvUa2JFBu/o8Vjhj5cYbcMXkZxn1NzmA==} - dependencies: - '@vitest/spy': 0.29.2 - '@vitest/utils': 0.29.2 - chai: 4.3.7 + /@unocss/core@0.55.7: + resolution: {integrity: sha512-c+bWe844Xjlwc1EPwHj0+n3LpntJG7ELPbEOOxNIG+CQdcEX0l1G0rkM8+nKstJ9WJmgpf1HdJQLVMF62HXvhw==} dev: true - /@vitest/runner@0.29.2: - resolution: {integrity: sha512-A1P65f5+6ru36AyHWORhuQBJrOOcmDuhzl5RsaMNFe2jEkoj0faEszQS4CtPU/LxUYVIazlUtZTY0OEZmyZBnA==} + /@unocss/extractor-arbitrary-variants@0.55.7: + resolution: {integrity: sha512-imK2g/frlo5Ag0uVB+C/Psyo5+9AnqhoRAgYa6gyrQ/TJnrnwf+M3jFngU9evIMHw92vig1DGfPa2ZId901DwQ==} dependencies: - '@vitest/utils': 0.29.2 - p-limit: 4.0.0 - pathe: 1.1.0 + '@unocss/core': 0.55.7 dev: true - /@vitest/spy@0.29.2: - resolution: {integrity: sha512-Hc44ft5kaAytlGL2PyFwdAsufjbdOvHklwjNy/gy/saRbg9Kfkxfh+PklLm1H2Ib/p586RkQeNFKYuJInUssyw==} + /@unocss/inspector@0.55.7: + resolution: {integrity: sha512-N0mjZozDDyqx8Mh6C/ZlMTlDzGiq22sXY/hPRX55Cf44WZI4W/ZWajqAAp42B+lw2MN0k1FYEMIAwn9n+xgq/g==} dependencies: - tinyspy: 1.1.1 + gzip-size: 6.0.0 + sirv: 2.0.3 dev: true - /@vitest/utils@0.29.2: - resolution: {integrity: sha512-F14/Uc+vCdclStS2KEoXJlOLAEyqRhnw0gM27iXw9bMTcyKRPJrQ+rlC6XZ125GIPvvKYMPpVxNhiou6PsEeYQ==} + /@unocss/postcss@0.55.7(postcss@8.4.29): + resolution: {integrity: sha512-53Z/yv/CNdlTqKZQ9gpYRoLZSuzQ28J0SDrGCdzwjLcvHG/FD7/x1S7yxE7cUp/4sjvLL15HSzkWq8vNy6SkwQ==} + engines: {node: '>=14'} + peerDependencies: + postcss: ^8.4.21 dependencies: - cli-truncate: 3.1.0 - diff: 5.1.0 - loupe: 2.3.6 - picocolors: 1.0.0 - pretty-format: 27.5.1 + '@unocss/config': 0.55.7 + '@unocss/core': 0.55.7 + css-tree: 2.3.1 + fast-glob: 3.3.1 + magic-string: 0.30.3 + postcss: 8.4.29 dev: true - /@volar/language-core@1.3.0-alpha.0: - resolution: {integrity: sha512-W3uMzecHPcbwddPu4SJpUcPakRBK/y/BP+U0U6NiPpUX1tONLC4yCawt+QBJqtgJ+sfD6ztf5PyvPL3hQRqfOA==} + /@unocss/preset-attributify@0.55.7: + resolution: {integrity: sha512-L1sNw3DyM4mymIm4DBTTTOllk8LmhYlWMgDlaAW2MYWygjqDCsp99wRKT2175Ya5xHYBA6XetMoBryZD23qJYQ==} dependencies: - '@volar/source-map': 1.3.0-alpha.0 + '@unocss/core': 0.55.7 dev: true - /@volar/source-map@1.3.0-alpha.0: - resolution: {integrity: sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ==} + /@unocss/preset-icons@0.55.7: + resolution: {integrity: sha512-JXLOHkyEKKAjLTqjAxYfhwln05WXilGg3jctkZWKpMNawPaonrGt3kZT12YMuMmOryxk7UcyKB0dtYc+p3QYvw==} dependencies: - muggle-string: 0.2.2 + '@iconify/utils': 2.1.9 + '@unocss/core': 0.55.7 + ofetch: 1.3.3 + transitivePeerDependencies: + - supports-color dev: true - /@volar/typescript@1.3.0-alpha.0: - resolution: {integrity: sha512-5UItyW2cdH2mBLu4RrECRNJRgtvvzKrSCn2y3v/D61QwIDkGx4aeil6x8RFuUL5TFtV6QvVHXnsOHxNgd+sCow==} + /@unocss/preset-mini@0.55.7: + resolution: {integrity: sha512-ZCskE2uprjGkpQezEPM6KPMf84rIZEUNc1p2DxWVHaFUPRV24/JSNsO4PsKrQgNIb2dLQxzPNlMzQJI7ssdBXQ==} dependencies: - '@volar/language-core': 1.3.0-alpha.0 + '@unocss/core': 0.55.7 + '@unocss/extractor-arbitrary-variants': 0.55.7 dev: true - /@volar/vue-language-core@1.2.0: - resolution: {integrity: sha512-w7yEiaITh2WzKe6u8ZdeLKCUz43wdmY/OqAmsB/PGDvvhTcVhCJ6f0W/RprZL1IhqH8wALoWiwEh/Wer7ZviMQ==} + /@unocss/preset-tagify@0.55.7: + resolution: {integrity: sha512-aDsuN3a/ZirbCDKpFsue9tc8MHs3l0Rl81n2ZOdIrJoZW4YWyydMVl++cz/HERZW81ZySK8EJKwGBaMJMgsnHA==} dependencies: - '@volar/language-core': 1.3.0-alpha.0 - '@volar/source-map': 1.3.0-alpha.0 - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-sfc': 3.2.47 - '@vue/reactivity': 3.2.47 - '@vue/shared': 3.2.47 - minimatch: 6.2.0 - muggle-string: 0.2.2 - vue-template-compiler: 2.7.14 + '@unocss/core': 0.55.7 dev: true - /@volar/vue-typescript@1.2.0: - resolution: {integrity: sha512-zjmRi9y3J1EkG+pfuHp8IbHmibihrKK485cfzsHjiuvJMGrpkWvlO5WVEk8oslMxxeGC5XwBFE9AOlvh378EPA==} + /@unocss/preset-typography@0.55.7: + resolution: {integrity: sha512-hLV4nsgsDIk66pt7Ej4NYUmaGtI2EfGb1h2yl5FmBtdtACrgPq+Skr2Br9Iq+Bj1QFhbsMOWLDdbojFQwBdH6A==} dependencies: - '@volar/typescript': 1.3.0-alpha.0 - '@volar/vue-language-core': 1.2.0 + '@unocss/core': 0.55.7 + '@unocss/preset-mini': 0.55.7 dev: true - /@vue/babel-helper-vue-transform-on@1.0.2: - resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} + /@unocss/preset-uno@0.55.7: + resolution: {integrity: sha512-z4pCxOv/OU1ARo++cvbijWNW2zy/EVTMqJXa+SEep9b99wFXPQE3gaPvLdURp/e5f1PoxVyPZ6JiBknbClSDuA==} + dependencies: + '@unocss/core': 0.55.7 + '@unocss/preset-mini': 0.55.7 + '@unocss/preset-wind': 0.55.7 dev: true - /@vue/babel-plugin-jsx@1.1.1(@babel/core@7.21.0): - resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==} + /@unocss/preset-web-fonts@0.55.7: + resolution: {integrity: sha512-ygAz0540kdBapErW2BcObWfQT/6g0SpVUPYg92PPiZD57CZAvuNXiYTfFMRXd88QrBL1zIrZ6NrzY0NZ645H+w==} dependencies: - '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.21.0) - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.2 - '@babel/types': 7.21.2 - '@vue/babel-helper-vue-transform-on': 1.0.2 - camelcase: 6.3.0 - html-tags: 3.2.0 - svg-tags: 1.0.0 - transitivePeerDependencies: - - '@babel/core' - - supports-color + '@unocss/core': 0.55.7 + ofetch: 1.3.3 dev: true - /@vue/compiler-core@3.2.47: - resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} + /@unocss/preset-wind@0.55.7: + resolution: {integrity: sha512-vLi0mtYDnvx3uYtBR4fSCR52T59drTUp3XVAAqQTbhvRctnSWm65MWE4G+gqdt2qQ9fM4SVCsxLLaXuJkI2eqw==} dependencies: - '@babel/parser': 7.21.2 - '@vue/shared': 3.2.47 - estree-walker: 2.0.2 - source-map: 0.6.1 + '@unocss/core': 0.55.7 + '@unocss/preset-mini': 0.55.7 + dev: true + + /@unocss/reset@0.55.7: + resolution: {integrity: sha512-yvmLhxqUNgf6wue7IvhV/FdrQW9H9LF1Bmmhwwaiz2aV0E74aN4pbuYPZwNq3YafsQvNQ0UdtuXjddY4QMRCPw==} + dev: true + + /@unocss/scope@0.55.7: + resolution: {integrity: sha512-r0CaS1aSpcC37ztqOJ3qaWIzM6zwdlX8r0rib2vTvWTckw1J0ocVhjNkWRBM9kRWte006JhecdiZzXNHA40akg==} + dev: true - /@vue/compiler-dom@3.2.47: - resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} + /@unocss/transformer-attributify-jsx-babel@0.55.7: + resolution: {integrity: sha512-xl5K/Zg7tLyI6Oee+xHgvBm0gSEviYdBDwaGC4O6cP9VXTBm6waz9NUU6CmmVYKh4dSeLQ1PKNboMeg2nFuJMw==} dependencies: - '@vue/compiler-core': 3.2.47 - '@vue/shared': 3.2.47 + '@unocss/core': 0.55.7 + dev: true - /@vue/compiler-sfc@3.2.47: - resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} + /@unocss/transformer-attributify-jsx@0.55.7: + resolution: {integrity: sha512-ZyUBc0wguBhd+nbIlcrSYpmzKtqBi+8BII8SK4lIB/Ol1wBboByPTjBENsQkxRyffp5K9VTuZZ/LamFgPGOWDg==} dependencies: - '@babel/parser': 7.21.2 - '@vue/compiler-core': 3.2.47 - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-ssr': 3.2.47 - '@vue/reactivity-transform': 3.2.47 - '@vue/shared': 3.2.47 - estree-walker: 2.0.2 - magic-string: 0.25.9 - postcss: 8.4.21 - source-map: 0.6.1 + '@unocss/core': 0.55.7 + dev: true - /@vue/compiler-ssr@3.2.47: - resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} + /@unocss/transformer-compile-class@0.55.7: + resolution: {integrity: sha512-tiYiT9EG4ucSBvMo+9Hv43GY0YvXQjfQCXDhDm3tcJyreMg6BRMO412eir54RBS+JAdNU0DUoITVYu+PkF7hLg==} dependencies: - '@vue/compiler-dom': 3.2.47 - '@vue/shared': 3.2.47 + '@unocss/core': 0.55.7 + dev: true - /@vue/devtools-api@6.5.0: - resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} - dev: false + /@unocss/transformer-directives@0.55.7: + resolution: {integrity: sha512-xNmR40FssHWYJSmJv/9TQC2IdTyZPV8U3Iv/PIuke1zndMwMciclghEFiw0wSeRmhoRI7iFZck5EI/Bokyo7CQ==} + dependencies: + '@unocss/core': 0.55.7 + css-tree: 2.3.1 + dev: true - /@vue/eslint-config-prettier@7.1.0(eslint@8.35.0)(prettier@2.8.4): - resolution: {integrity: sha512-Pv/lVr0bAzSIHLd9iz0KnvAr4GKyCEl+h52bc4e5yWuDVtLgFwycF7nrbWTAQAS+FU6q1geVd07lc6EWfJiWKQ==} - peerDependencies: - eslint: '>= 7.28.0' - prettier: '>= 2.0.0' + /@unocss/transformer-variant-group@0.55.7: + resolution: {integrity: sha512-uLyZ08XXVriUDenZCTGA3xGgMD3B9GVr6mSz002pDlLpQDi8FcMQTOGg8X4ViCGzS3l03S/+r+JY7kJTpMFa9w==} dependencies: - eslint: 8.35.0 - eslint-config-prettier: 8.6.0(eslint@8.35.0) - eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.6.0)(eslint@8.35.0)(prettier@2.8.4) - prettier: 2.8.4 + '@unocss/core': 0.55.7 dev: true - /@vue/eslint-config-typescript@11.0.2(eslint-plugin-vue@9.9.0)(eslint@8.35.0)(typescript@4.7.4): - resolution: {integrity: sha512-EiKud1NqlWmSapBFkeSrE994qpKx7/27uCGnhdqzllYDpQZroyX/O6bwjEpeuyKamvLbsGdO6PMR2faIf+zFnw==} - engines: {node: ^14.17.0 || >=16.0.0} + /@unocss/vite@0.55.7(rollup@3.29.1)(vite@4.4.9): + resolution: {integrity: sha512-xmdyDnt9Ag4o7DGl22/P6MaB+HSjWOQw9qYYzIefSv3SVUvn3cEhIX/PCWqFp8Kts2HyvAoJLbZmygSf1XdZNQ==} peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 - eslint-plugin-vue: ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 + dependencies: + '@ampproject/remapping': 2.2.1 + '@rollup/pluginutils': 5.0.4(rollup@3.29.1) + '@unocss/config': 0.55.7 + '@unocss/core': 0.55.7 + '@unocss/inspector': 0.55.7 + '@unocss/scope': 0.55.7 + '@unocss/transformer-directives': 0.55.7 + chokidar: 3.5.3 + fast-glob: 3.3.1 + magic-string: 0.30.3 + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) + transitivePeerDependencies: + - rollup + dev: true + + /@vicons/ionicons5@0.12.0: + resolution: {integrity: sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==} + dev: false + + /@vitejs/plugin-vue-jsx@3.0.2(vite@4.4.9)(vue@3.3.4): + resolution: {integrity: sha512-obF26P2Z4Ogy3cPp07B4VaW6rpiu0ue4OT2Y15UxT5BZZ76haUY9guOsZV3uWh/I6xc+VeiW+ZVabRE82FyzWw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.0.0 + dependencies: + '@babel/core': 7.22.19 + '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.22.19) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.19) + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) + vue: 3.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@vitejs/plugin-vue@4.3.4(vite@4.4.9)(vue@3.3.4): + resolution: {integrity: sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.2.25 + dependencies: + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) + vue: 3.3.4 + dev: true + + /@vitest/coverage-v8@0.34.4(vitest@0.34.4): + resolution: {integrity: sha512-TZ5ghzhmg3COQqfBShL+zRQEInHmV9TSwghTdfkHpCTyTOr+rxo6x41vCNcVfWysWULtqtBVpY6YFNovxnESfA==} + peerDependencies: + vitest: '>=0.32.0 <1' + dependencies: + '@ampproject/remapping': 2.2.1 + '@bcoe/v8-coverage': 0.2.3 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.6 + magic-string: 0.30.3 + picocolors: 1.0.0 + std-env: 3.4.3 + test-exclude: 6.0.0 + v8-to-istanbul: 9.1.0 + vitest: 0.34.4(jsdom@22.1.0)(sass@1.67.0) + transitivePeerDependencies: + - supports-color + dev: true + + /@vitest/expect@0.34.4: + resolution: {integrity: sha512-XlMKX8HyYUqB8dsY8Xxrc64J2Qs9pKMt2Z8vFTL4mBWXJsg4yoALHzJfDWi8h5nkO4Zua4zjqtapQ/IluVkSnA==} + dependencies: + '@vitest/spy': 0.34.4 + '@vitest/utils': 0.34.4 + chai: 4.3.8 + dev: true + + /@vitest/runner@0.34.4: + resolution: {integrity: sha512-hwwdB1StERqUls8oV8YcpmTIpVeJMe4WgYuDongVzixl5hlYLT2G8afhcdADeDeqCaAmZcSgLTLtqkjPQF7x+w==} + dependencies: + '@vitest/utils': 0.34.4 + p-limit: 4.0.0 + pathe: 1.1.1 + dev: true + + /@vitest/snapshot@0.34.4: + resolution: {integrity: sha512-GCsh4coc3YUSL/o+BPUo7lHQbzpdttTxL6f4q0jRx2qVGoYz/cyTRDJHbnwks6TILi6560bVWoBpYC10PuTLHw==} + dependencies: + magic-string: 0.30.3 + pathe: 1.1.1 + pretty-format: 29.7.0 + dev: true + + /@vitest/spy@0.34.4: + resolution: {integrity: sha512-PNU+fd7DUPgA3Ya924b1qKuQkonAW6hL7YUjkON3wmBwSTIlhOSpy04SJ0NrRsEbrXgMMj6Morh04BMf8k+w0g==} + dependencies: + tinyspy: 2.1.1 + dev: true + + /@vitest/utils@0.34.4: + resolution: {integrity: sha512-yR2+5CHhp/K4ySY0Qtd+CAL9f5Yh1aXrKfAT42bq6CtlGPh92jIDDDSg7ydlRow1CP+dys4TrOrbELOyNInHSg==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.6 + pretty-format: 29.7.0 + dev: true + + /@volar/language-core@1.10.1: + resolution: {integrity: sha512-JnsM1mIPdfGPxmoOcK1c7HYAsL6YOv0TCJ4aW3AXPZN/Jb4R77epDyMZIVudSGjWMbvv/JfUa+rQ+dGKTmgwBA==} + dependencies: + '@volar/source-map': 1.10.1 + dev: true + + /@volar/source-map@1.10.1: + resolution: {integrity: sha512-3/S6KQbqa7pGC8CxPrg69qHLpOvkiPHGJtWPkI/1AXCsktkJ6gIk/5z4hyuMp8Anvs6eS/Kvp/GZa3ut3votKA==} + dependencies: + muggle-string: 0.3.1 + dev: true + + /@volar/typescript@1.10.1: + resolution: {integrity: sha512-+iiO9yUSRHIYjlteT+QcdRq8b44qH19/eiUZtjNtuh6D9ailYM7DVR0zO2sEgJlvCaunw/CF9Ov2KooQBpR4VQ==} + dependencies: + '@volar/language-core': 1.10.1 + dev: true + + /@vue/babel-helper-vue-transform-on@1.1.5: + resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} + dev: true + + /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.22.19): + resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@typescript-eslint/eslint-plugin': 5.29.0(@typescript-eslint/parser@5.29.0)(eslint@8.35.0)(typescript@4.7.4) - '@typescript-eslint/parser': 5.29.0(eslint@8.35.0)(typescript@4.7.4) - eslint: 8.35.0 - eslint-plugin-vue: 9.9.0(eslint@8.35.0) - typescript: 4.7.4 - vue-eslint-parser: 9.1.0(eslint@8.35.0) + '@babel/core': 7.22.19 + '@babel/helper-module-imports': 7.22.15 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.19) + '@babel/template': 7.22.15 + '@babel/traverse': 7.22.19 + '@babel/types': 7.22.19 + '@vue/babel-helper-vue-transform-on': 1.1.5 + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 transitivePeerDependencies: - supports-color dev: true - /@vue/reactivity-transform@3.2.47: - resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} + /@vue/compiler-core@3.3.4: + resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} dependencies: - '@babel/parser': 7.21.2 - '@vue/compiler-core': 3.2.47 - '@vue/shared': 3.2.47 + '@babel/parser': 7.22.16 + '@vue/shared': 3.3.4 estree-walker: 2.0.2 - magic-string: 0.25.9 + source-map-js: 1.0.2 - /@vue/reactivity@3.2.47: - resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==} + /@vue/compiler-dom@3.3.4: + resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} dependencies: - '@vue/shared': 3.2.47 + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 - /@vue/runtime-core@3.2.47: - resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==} + /@vue/compiler-sfc@3.3.4: + resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} dependencies: - '@vue/reactivity': 3.2.47 - '@vue/shared': 3.2.47 + '@babel/parser': 7.22.16 + '@vue/compiler-core': 3.3.4 + '@vue/compiler-dom': 3.3.4 + '@vue/compiler-ssr': 3.3.4 + '@vue/reactivity-transform': 3.3.4 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + magic-string: 0.30.3 + postcss: 8.4.29 + source-map-js: 1.0.2 - /@vue/runtime-dom@3.2.47: - resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==} + /@vue/compiler-ssr@3.3.4: + resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} dependencies: - '@vue/runtime-core': 3.2.47 - '@vue/shared': 3.2.47 - csstype: 2.6.21 + '@vue/compiler-dom': 3.3.4 + '@vue/shared': 3.3.4 - /@vue/server-renderer@3.2.47(vue@3.2.47): - resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==} + /@vue/devtools-api@6.5.0: + resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} + dev: false + + /@vue/eslint-config-prettier@8.0.0(eslint@8.49.0)(prettier@3.0.3): + resolution: {integrity: sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==} peerDependencies: - vue: 3.2.47 + eslint: '>= 8.0.0' + prettier: '>= 3.0.0' dependencies: - '@vue/compiler-ssr': 3.2.47 - '@vue/shared': 3.2.47 - vue: 3.2.47 + eslint: 8.49.0 + eslint-config-prettier: 8.10.0(eslint@8.49.0) + eslint-plugin-prettier: 5.0.0(eslint-config-prettier@8.10.0)(eslint@8.49.0)(prettier@3.0.3) + prettier: 3.0.3 + transitivePeerDependencies: + - '@types/eslint' + dev: true - /@vue/shared@3.2.47: - resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} + /@vue/eslint-config-typescript@12.0.0(eslint-plugin-vue@9.17.0)(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + eslint-plugin-vue: ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.2.2) + eslint: 8.49.0 + eslint-plugin-vue: 9.17.0(eslint@8.49.0) + typescript: 5.2.2 + vue-eslint-parser: 9.3.1(eslint@8.49.0) + transitivePeerDependencies: + - supports-color + dev: true - /@vue/test-utils@2.3.0(vue@3.2.47): - resolution: {integrity: sha512-S8/9Z+B4VSsTUNtZtzS7J1TfxJbf10n+gcH9X8cASbG0Tp7qD6vqs/sUNlmpzk6i7+pP00ptauJp9rygyW89Ww==} + /@vue/language-core@1.8.11(typescript@5.2.2): + resolution: {integrity: sha512-+MZOBGqGwfld6hpo0DB47x8eNM0dNqk15ZdfOhj19CpvuYuOWCeVdOEGZunKDyo3QLkTn3kLOSysJzg7FDOQBA==} peerDependencies: - vue: ^3.0.1 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - js-beautify: 1.14.6 - vue: 3.2.47 - optionalDependencies: - '@vue/compiler-dom': 3.2.47 - '@vue/server-renderer': 3.2.47(vue@3.2.47) + '@volar/language-core': 1.10.1 + '@volar/source-map': 1.10.1 + '@vue/compiler-dom': 3.3.4 + '@vue/reactivity': 3.3.4 + '@vue/shared': 3.3.4 + minimatch: 9.0.3 + muggle-string: 0.3.1 + typescript: 5.2.2 + vue-template-compiler: 2.7.14 dev: true - /@vue/tsconfig@0.1.3(@types/node@16.18.14): - resolution: {integrity: sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==} + /@vue/reactivity-transform@3.3.4: + resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} + dependencies: + '@babel/parser': 7.22.16 + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + magic-string: 0.30.3 + + /@vue/reactivity@3.3.4: + resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} + dependencies: + '@vue/shared': 3.3.4 + + /@vue/runtime-core@3.3.4: + resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} + dependencies: + '@vue/reactivity': 3.3.4 + '@vue/shared': 3.3.4 + + /@vue/runtime-dom@3.3.4: + resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} + dependencies: + '@vue/runtime-core': 3.3.4 + '@vue/shared': 3.3.4 + csstype: 3.1.2 + + /@vue/server-renderer@3.3.4(vue@3.3.4): + resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} peerDependencies: - '@types/node': '*' + vue: 3.3.4 + dependencies: + '@vue/compiler-ssr': 3.3.4 + '@vue/shared': 3.3.4 + vue: 3.3.4 + + /@vue/shared@3.3.4: + resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} + + /@vue/test-utils@2.4.1(vue@3.3.4): + resolution: {integrity: sha512-VO8nragneNzUZUah6kOjiFmD/gwRjUauG9DROh6oaOeFwX1cZRUNHhdeogE8635cISigXFTtGLUQWx5KCb0xeg==} + peerDependencies: + '@vue/server-renderer': ^3.0.1 + vue: ^3.0.1 peerDependenciesMeta: - '@types/node': + '@vue/server-renderer': optional: true dependencies: - '@types/node': 16.18.14 + js-beautify: 1.14.9 + vue: 3.3.4 + vue-component-type-helpers: 1.8.4 + dev: true + + /@vue/tsconfig@0.4.0: + resolution: {integrity: sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==} + dev: true + + /@vue/typescript@1.8.11(typescript@5.2.2): + resolution: {integrity: sha512-skUmMDiPUUtu1flPmf2YybF+PX8IzBtMioQOaNn6Ck/RhdrPJGj1AX/7s3Buf9G6ln+/KHR1XQuti/FFxw5XVA==} + dependencies: + '@volar/typescript': 1.10.1 + '@vue/language-core': 1.8.11(typescript@5.2.2) + transitivePeerDependencies: + - typescript dev: true + /@yarnpkg/lockfile@1.1.0: + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + dev: false + /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -2267,19 +2494,12 @@ packages: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true - /acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - dependencies: - acorn: 8.8.2 - acorn-walk: 8.2.0 - dev: true - - /acorn-jsx@5.3.2(acorn@8.8.2): + /acorn-jsx@5.3.2(acorn@8.10.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.2 + acorn: 8.10.0 dev: true /acorn-walk@8.2.0: @@ -2287,17 +2507,25 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn@8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} + dependencies: + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -2318,6 +2546,14 @@ packages: indent-string: 5.0.0 dev: true + /aggregate-error@5.0.0: + resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} + engines: {node: '>=18'} + dependencies: + clean-stack: 5.2.0 + indent-string: 5.0.0 + dev: true + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -2342,11 +2578,6 @@ packages: string-width: 4.2.3 dev: false - /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: true - /ansi-escapes@3.2.0: resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} engines: {node: '>=4'} @@ -2366,6 +2597,13 @@ packages: type-fest: 1.4.0 dev: true + /ansi-escapes@6.2.0: + resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + engines: {node: '>=14.16'} + dependencies: + type-fest: 3.13.1 + dev: true + /ansi-regex@3.0.1: resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} engines: {node: '>=4'} @@ -2405,7 +2643,6 @@ packages: /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - dev: true /ansicolors@0.3.2: resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} @@ -2419,10 +2656,6 @@ packages: picomatch: 2.3.1 dev: true - /arch@2.2.0: - resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} - dev: true - /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true @@ -2451,18 +2684,30 @@ packages: deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dev: true + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + /array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true - /array-includes@3.1.6: - resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - get-intrinsic: 1.2.0 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 is-string: 1.0.7 dev: true @@ -2471,59 +2716,63 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 dev: true - /array.prototype.flatmap@1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 dev: true - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 dev: true - /asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} dependencies: - safer-buffer: 2.1.2 + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 dev: true - /assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} dev: true /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - dev: true - /async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} dev: false - /async@3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - dev: true - /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true @@ -2531,21 +2780,12 @@ packages: /at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - dev: true /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} dev: true - /aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - dev: true - - /aws4@1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} - dev: true - /axios@0.27.2(debug@4.3.4): resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} dependencies: @@ -2555,23 +2795,26 @@ packages: - debug dev: true + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} - dependencies: - tweetnacl: 0.14.5 - dev: true - /before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} dev: true + /big-integer@1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: '>=0.6'} + dev: true + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -2582,7 +2825,7 @@ packages: dependencies: buffer: 5.7.1 inherits: 2.0.4 - readable-stream: 3.6.1 + readable-stream: 3.6.2 dev: true /bl@5.1.0: @@ -2590,13 +2833,9 @@ packages: dependencies: buffer: 6.0.3 inherits: 2.0.4 - readable-stream: 3.6.1 + readable-stream: 3.6.2 dev: false - /blob-util@2.0.2: - resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} - dev: true - /bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true @@ -2609,26 +2848,32 @@ packages: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} dev: true - /boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} + /boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} dependencies: ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 - cli-boxes: 2.2.1 - string-width: 4.2.3 - type-fest: 0.20.2 - widest-line: 3.1.0 - wrap-ansi: 7.0.0 + camelcase: 7.0.1 + chalk: 5.3.0 + cli-boxes: 3.0.0 + string-width: 5.1.2 + type-fest: 2.19.0 + widest-line: 4.0.1 + wrap-ansi: 8.1.0 dev: false + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.51 + dev: true + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} @@ -2641,17 +2886,16 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true - /browserslist@4.21.5: - resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001460 - electron-to-chromium: 1.4.320 - node-releases: 2.0.10 - update-browserslist-db: 1.0.10(browserslist@4.21.5) + caniuse-lite: 1.0.30001534 + electron-to-chromium: 1.4.522 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11(browserslist@4.21.10) dev: true /buffer-crc32@0.2.13: @@ -2677,23 +2921,11 @@ packages: engines: {node: '>=6'} dev: true - /c8@7.13.0: - resolution: {integrity: sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==} - engines: {node: '>=10.12.0'} - hasBin: true + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@istanbuljs/schema': 0.1.3 - find-up: 5.0.0 - foreground-child: 2.0.0 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-report: 3.0.0 - istanbul-reports: 3.1.5 - rimraf: 3.0.2 - test-exclude: 6.0.0 - v8-to-istanbul: 9.1.0 - yargs: 16.2.0 - yargs-parser: 20.2.9 + run-applescript: 5.0.0 dev: true /cac@6.7.14: @@ -2710,7 +2942,7 @@ packages: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /callsites@3.1.0: @@ -2735,9 +2967,15 @@ packages: /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} + dev: true - /caniuse-lite@1.0.30001460: - resolution: {integrity: sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==} + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + dev: false + + /caniuse-lite@1.0.30001534: + resolution: {integrity: sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==} dev: true /cardinal@2.1.1: @@ -2748,12 +2986,8 @@ packages: redeyed: 2.1.1 dev: true - /caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - dev: true - - /chai@4.3.7: - resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + /chai@4.3.8: + resolution: {integrity: sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 @@ -2781,17 +3015,17 @@ packages: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chalk@5.2.0: - resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true - /chart.js@4.2.1: - resolution: {integrity: sha512-6YbpQ0nt3NovAgOzbkSSeeAQu/3za1319dPUQTXn9WcOpywM8rGKxJHrhS8V8xEkAlk8YhEfjbuAPfUyp6jIsw==} - engines: {pnpm: ^7.0.0} + /chart.js@4.4.0: + resolution: {integrity: sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ==} + engines: {pnpm: '>=7'} dependencies: '@kurkle/color': 0.3.2 dev: false @@ -2817,13 +3051,13 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /ci-info@3.8.0: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} - dev: true + dev: false /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} @@ -2837,9 +3071,16 @@ packages: escape-string-regexp: 5.0.0 dev: true - /cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} + /clean-stack@5.2.0: + resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} + engines: {node: '>=14.16'} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + + /cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} dev: false /cli-cursor@2.1.0: @@ -2861,10 +3102,9 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: restore-cursor: 4.0.0 - dev: false - /cli-spinners@2.7.0: - resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} + /cli-spinners@2.9.1: + resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} engines: {node: '>=6'} /cli-table3@0.6.3: @@ -2876,14 +3116,6 @@ packages: '@colors/colors': 1.5.0 dev: true - /cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} - dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 - dev: true - /cli-truncate@3.1.0: resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2901,14 +3133,6 @@ packages: engines: {node: '>= 10'} dev: true - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -2921,6 +3145,16 @@ packages: /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + dev: true + + /code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + '@types/estree': 1.0.1 + acorn: 8.10.0 + estree-walker: 3.0.3 + periscopic: 3.1.0 /codecov@3.8.3: resolution: {integrity: sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==} @@ -2957,8 +3191,8 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /colorette@2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true /combined-stream@1.0.8: @@ -2968,18 +3202,14 @@ packages: delayed-stream: 1.0.0 dev: true - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true - - /commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} dev: true - /commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} + /commander@11.0.0: + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} /commitizen@4.3.0: resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} @@ -3005,11 +3235,6 @@ packages: - '@swc/wasm' dev: true - /common-tags@1.8.2: - resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} - engines: {node: '>=4.0.0'} - dev: true - /compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: @@ -3017,13 +3242,12 @@ packages: dot-prop: 5.3.0 dev: true - /compare-versions@6.0.0-rc.1: - resolution: {integrity: sha512-cFhkjbGY1jLFWIV7KegECbfuyYPxSGvgGkdkfM+ibboQDoPwg2FRHm5BSNTOApiauRBzJIQH7qvOJs2sW5ueKQ==} + /compare-versions@6.1.0: + resolution: {integrity: sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==} dev: true /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true /config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -3032,99 +3256,115 @@ packages: proto-list: 1.2.4 dev: true - /conventional-changelog-angular@5.0.13: - resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - q: 1.5.1 + /consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} dev: true - /conventional-changelog-conventionalcommits@5.0.0: - resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} - engines: {node: '>=10'} + /conventional-changelog-angular@6.0.0: + resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} + engines: {node: '>=14'} dependencies: compare-func: 2.0.0 - lodash: 4.17.21 - q: 1.5.1 dev: true - /conventional-changelog-writer@5.0.1: - resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} - engines: {node: '>=10'} + /conventional-changelog-conventionalcommits@6.1.0: + resolution: {integrity: sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==} + engines: {node: '>=14'} + dependencies: + compare-func: 2.0.0 + dev: true + + /conventional-changelog-writer@6.0.1: + resolution: {integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==} + engines: {node: '>=14'} hasBin: true dependencies: - conventional-commits-filter: 2.0.7 + conventional-commits-filter: 3.0.0 dateformat: 3.0.3 - handlebars: 4.7.7 + handlebars: 4.7.8 json-stringify-safe: 5.0.1 - lodash: 4.17.21 meow: 8.1.2 - semver: 6.3.0 + semver: 7.5.4 split: 1.0.1 - through2: 4.0.2 dev: true /conventional-commit-types@3.0.0: resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} dev: true - /conventional-commits-filter@2.0.7: - resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} - engines: {node: '>=10'} + /conventional-commits-filter@3.0.0: + resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} + engines: {node: '>=14'} dependencies: lodash.ismatch: 4.4.0 modify-values: 1.0.1 dev: true - /conventional-commits-parser@3.2.4: - resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} - engines: {node: '>=10'} + /conventional-commits-filter@4.0.0: + resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} + engines: {node: '>=16'} + dev: true + + /conventional-commits-parser@4.0.0: + resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} + engines: {node: '>=14'} hasBin: true dependencies: JSONStream: 1.3.5 is-text-path: 1.0.1 - lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 - through2: 4.0.2 dev: true - /convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + /conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 dev: true - /core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cosmiconfig-typescript-loader@4.3.0(@types/node@16.18.14)(cosmiconfig@8.1.0)(ts-node@10.9.1)(typescript@4.7.4): - resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} - engines: {node: '>=12', npm: '>=6'} + /cosmiconfig-typescript-loader@4.4.0(@types/node@20.4.7)(cosmiconfig@8.3.6)(ts-node@10.9.1)(typescript@5.2.2): + resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} + engines: {node: '>=v14.21.3'} peerDependencies: '@types/node': '*' cosmiconfig: '>=7' ts-node: '>=10' - typescript: '>=3' + typescript: '>=4' dependencies: - '@types/node': 16.18.14 - cosmiconfig: 8.1.0 - ts-node: 10.9.1(@types/node@16.18.14)(typescript@4.7.4) - typescript: 4.7.4 + '@types/node': 20.4.7 + cosmiconfig: 8.3.6(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.4.7)(typescript@5.2.2) + typescript: 5.2.2 dev: true - /cosmiconfig@8.1.0: - resolution: {integrity: sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg==} + /cosmiconfig@8.3.6(typescript@5.2.2): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 + typescript: 5.2.2 dev: true /create-require@1.1.1: @@ -3137,7 +3377,7 @@ packages: dependencies: nice-try: 1.0.5 path-key: 2.0.1 - semver: 5.7.1 + semver: 5.7.2 shebang-command: 1.2.0 which: 1.3.1 dev: true @@ -3149,11 +3389,12 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true - /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} + /crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 dev: true /css-render@0.15.12: @@ -3163,87 +3404,36 @@ packages: csstype: 3.0.11 dev: false + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true dev: true - /cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true - - /cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - dev: true - - /cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} + /cssstyle@3.0.0: + resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} + engines: {node: '>=14'} dependencies: - cssom: 0.3.8 + rrweb-cssom: 0.6.0 dev: true - /csstype@2.6.21: - resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} - /csstype@3.0.11: resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} dev: false - /cursor-effects@1.0.11: - resolution: {integrity: sha512-P+nV/8Bfxk6RQvsg2uq7wW+WncJLBx8bmqT80QU1nlW15qSb5fpaCLfZ9nl2BZSRyz+u+sxKhAESPNoAkAfJmw==} - dev: false + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - /cypress@12.7.0: - resolution: {integrity: sha512-7rq+nmhzz0u6yabCFyPtADU2OOrYt6pvUau9qV7xyifJ/hnsaw/vkr0tnLlcuuQKUAOC1v1M1e4Z0zG7S0IAvA==} - engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} - hasBin: true - requiresBuild: true - dependencies: - '@cypress/request': 2.88.11 - '@cypress/xvfb': 1.2.4(supports-color@8.1.1) - '@types/node': 14.18.37 - '@types/sinonjs__fake-timers': 8.1.1 - '@types/sizzle': 2.3.3 - arch: 2.2.0 - blob-util: 2.0.2 - bluebird: 3.7.2 - buffer: 5.7.1 - cachedir: 2.3.0 - chalk: 4.1.2 - check-more-types: 2.24.0 - cli-cursor: 3.1.0 - cli-table3: 0.6.3 - commander: 5.1.0 - common-tags: 1.8.2 - dayjs: 1.11.7 - debug: 4.3.4(supports-color@8.1.1) - enquirer: 2.3.6 - eventemitter2: 6.4.7 - execa: 4.1.0 - executable: 4.1.1 - extract-zip: 2.0.1(supports-color@8.1.1) - figures: 3.2.0 - fs-extra: 9.1.0 - getos: 3.2.1 - is-ci: 3.0.1 - is-installed-globally: 0.4.0 - lazy-ass: 1.6.0 - listr2: 3.14.0(enquirer@2.3.6) - lodash: 4.17.21 - log-symbols: 4.1.0 - minimist: 1.2.8 - ospath: 1.2.2 - pretty-bytes: 5.6.0 - proxy-from-env: 1.0.0 - request-progress: 3.0.0 - semver: 7.3.8 - supports-color: 8.1.1 - tmp: 0.2.1 - untildify: 4.0.0 - yauzl: 2.10.0 - dev: true + /cursor-effects@1.0.12: + resolution: {integrity: sha512-HDaKd+GJjveac1g52krmFiJJg0HwnxCeKgktGaPpbv6/7z8/krYgmTpDZW9GZ01S5783R6cPhEHAgHWQEm211w==} + dev: false /cz-conventional-changelog@3.3.0: resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} @@ -3254,9 +3444,9 @@ packages: conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 - word-wrap: 1.2.3 + word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 17.4.4 + '@commitlint/load': 17.7.1 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -3267,48 +3457,39 @@ packages: engines: {node: '>=8'} dev: true - /dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} - dependencies: - assert-plus: 1.0.0 - dev: true - - /data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} + /data-urls@4.0.0: + resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} + engines: {node: '>=14'} dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 + whatwg-url: 12.0.1 dev: true - /date-fns-tz@1.3.8(date-fns@2.29.3): + /date-fns-tz@1.3.8(date-fns@2.30.0): resolution: {integrity: sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ==} peerDependencies: date-fns: '>=2.0.0' dependencies: - date-fns: 2.29.3 + date-fns: 2.30.0 dev: false - /date-fns@2.29.3: - resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} + /date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} + dependencies: + '@babel/runtime': 7.22.15 dev: false /dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true - /dayjs@1.11.7: - resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} - dev: true - /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: true - /debug@3.2.7(supports-color@8.1.1): + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' @@ -3317,10 +3498,9 @@ packages: optional: true dependencies: ms: 2.1.3 - supports-color: 8.1.1 dev: true - /debug@4.3.4(supports-color@8.1.1): + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -3330,7 +3510,6 @@ packages: optional: true dependencies: ms: 2.1.2 - supports-color: 8.1.1 dev: true /decamelize-keys@1.1.1: @@ -3370,41 +3549,65 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /deepmerge@4.3.0: - resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==} + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} dev: true + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + dev: true + + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 + dev: true + /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 + dev: true + + /define-data-property@1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: true /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} dev: true - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: + define-data-property: 1.1.0 has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: true - /del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} - dependencies: - globby: 11.1.0 - graceful-fs: 4.2.10 - is-glob: 4.0.3 - is-path-cwd: 2.2.0 - is-path-inside: 3.0.3 - p-map: 4.0.0 - rimraf: 3.0.2 - slash: 3.0.0 + /defu@6.1.2: + resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} dev: true /delayed-stream@1.0.0: @@ -3416,6 +3619,14 @@ packages: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} dev: true + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + /destr@2.0.1: + resolution: {integrity: sha512-M1Ob1zPSIvlARiJUkKqvAZ3VAqQY6Jcuth/pBKQ2b1dX/Qx0OnJ8Vux6J2H5PTMQeRzWrrbTu70VxBfv/OPDJA==} + dev: true + /detect-file@1.0.0: resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} engines: {node: '>=0.10.0'} @@ -3426,13 +3637,13 @@ packages: engines: {node: '>=8'} dev: true - /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} dev: true @@ -3471,8 +3682,8 @@ packages: is-obj: 2.0.0 dev: true - /dotenv@16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} + /dotenv@16.3.1: + resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} engines: {node: '>=12'} dev: true @@ -3488,71 +3699,53 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true - - /ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - dev: true - /editorconfig@0.15.3: - resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==} + /editorconfig@1.0.4: + resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} + engines: {node: '>=14'} hasBin: true dependencies: - commander: 2.20.3 - lru-cache: 4.1.5 - semver: 5.7.1 - sigmund: 1.0.1 + '@one-ini/wasm': 0.1.1 + commander: 10.0.1 + minimatch: 9.0.1 + semver: 7.5.4 dev: true - /electron-to-chromium@1.4.320: - resolution: {integrity: sha512-h70iRscrNluMZPVICXYl5SSB+rBKo22XfuIS1ER0OQxQZpKTnFpuS6coj7wY9M/3trv7OR88rRMOlKmRvDty7Q==} + /electron-to-chromium@1.4.522: + resolution: {integrity: sha512-KGKjcafTpOxda0kqwQ72M0tDmX6RsGhUJTy0Hr7slt0+CgHh9Oex8JdjY9Og68dUkTLUlBOJC0A5W5Mw3QSGCg==} dev: true /emoji-mart@5.5.2: resolution: {integrity: sha512-Sqc/nso4cjxhOwWJsp9xkVm8OF5c+mJLZJFoFfzRuKO+yWiN7K8c96xmtughYb0d/fZ8UC6cLIQ/p4BR6Pv3/A==} dev: false + /emoji-regex@10.2.1: + resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: true - - /enhanced-resolve@5.12.0: - resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 tapable: 2.2.1 dev: true - /enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - dependencies: - ansi-colors: 4.1.3 - dev: true - - /entities@4.4.0: - resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} dev: true - /env-ci@8.0.0: - resolution: {integrity: sha512-W+3BqGZozFua9MPeXpmTm5eYEBtGgL76jGu/pwMVp/L8PdECSCEWaIp7d4Mw7kuUrbUldK0oV0bNd6ZZjLiMiA==} - engines: {node: ^16.10 || >=18} + /env-ci@9.1.1: + resolution: {integrity: sha512-Im2yEWeF4b2RAMAaWvGioXk6m0UNaIjD8hj28j2ij5ldnIFrDQT0+pzDvpbRkcjurhXhf/AsBKv8P2rtmGi9Aw==} + engines: {node: ^16.14 || >=18} dependencies: - execa: 6.1.0 + execa: 7.2.0 java-properties: 1.0.2 dev: true @@ -3562,17 +3755,18 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.21.1: - resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} + /es-abstract@1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} engines: {node: '>= 0.4'} dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 available-typed-arrays: 1.0.5 call-bind: 1.0.2 es-set-tostringtag: 2.0.1 es-to-primitive: 1.2.1 - function-bind: 1.1.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.0 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 @@ -3587,25 +3781,30 @@ packages: is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 is-weakref: 1.0.2 object-inspect: 1.12.3 object-keys: 1.1.1 object.assign: 4.1.4 - regexp.prototype.flags: 1.4.3 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 + which-typed-array: 1.1.11 dev: true /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has: 1.0.3 has-tostringtag: 1.0.0 dev: true @@ -3621,252 +3820,42 @@ packages: engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - - /es6-promise@3.3.1: - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - dev: true - - /esbuild-android-64@0.15.18: - resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64@0.15.18: - resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64@0.15.18: - resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64@0.15.18: - resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64@0.15.18: - resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64@0.15.18: - resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32@0.15.18: - resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64@0.15.18: - resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64@0.15.18: - resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm@0.15.18: - resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le@0.15.18: - resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le@0.15.18: - resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64@0.15.18: - resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x@0.15.18: - resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64@0.15.18: - resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64@0.15.18: - resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-sunos-64@0.15.18: - resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32@0.15.18: - resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64@0.15.18: - resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true + is-date-object: 1.0.5 + is-symbol: 1.0.4 dev: true - optional: true - /esbuild-windows-arm64@0.15.18: - resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true + /es6-promise@3.3.1: + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} dev: true - optional: true - /esbuild@0.15.18: - resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.15.18 - '@esbuild/linux-loong64': 0.15.18 - esbuild-android-64: 0.15.18 - esbuild-android-arm64: 0.15.18 - esbuild-darwin-64: 0.15.18 - esbuild-darwin-arm64: 0.15.18 - esbuild-freebsd-64: 0.15.18 - esbuild-freebsd-arm64: 0.15.18 - esbuild-linux-32: 0.15.18 - esbuild-linux-64: 0.15.18 - esbuild-linux-arm: 0.15.18 - esbuild-linux-arm64: 0.15.18 - esbuild-linux-mips64le: 0.15.18 - esbuild-linux-ppc64le: 0.15.18 - esbuild-linux-riscv64: 0.15.18 - esbuild-linux-s390x: 0.15.18 - esbuild-netbsd-64: 0.15.18 - esbuild-openbsd-64: 0.15.18 - esbuild-sunos-64: 0.15.18 - esbuild-windows-32: 0.15.18 - esbuild-windows-64: 0.15.18 - esbuild-windows-arm64: 0.15.18 - dev: true - - /esbuild@0.16.17: - resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.16.17 - '@esbuild/android-arm64': 0.16.17 - '@esbuild/android-x64': 0.16.17 - '@esbuild/darwin-arm64': 0.16.17 - '@esbuild/darwin-x64': 0.16.17 - '@esbuild/freebsd-arm64': 0.16.17 - '@esbuild/freebsd-x64': 0.16.17 - '@esbuild/linux-arm': 0.16.17 - '@esbuild/linux-arm64': 0.16.17 - '@esbuild/linux-ia32': 0.16.17 - '@esbuild/linux-loong64': 0.16.17 - '@esbuild/linux-mips64el': 0.16.17 - '@esbuild/linux-ppc64': 0.16.17 - '@esbuild/linux-riscv64': 0.16.17 - '@esbuild/linux-s390x': 0.16.17 - '@esbuild/linux-x64': 0.16.17 - '@esbuild/netbsd-x64': 0.16.17 - '@esbuild/openbsd-x64': 0.16.17 - '@esbuild/sunos-x64': 0.16.17 - '@esbuild/win32-arm64': 0.16.17 - '@esbuild/win32-ia32': 0.16.17 - '@esbuild/win32-x64': 0.16.17 + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 dev: true /escalade@3.1.1: @@ -3889,60 +3878,59 @@ packages: engines: {node: '>=12'} dev: true - /escodegen@2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} - engines: {node: '>=6.0'} + /eslint-config-prettier@8.10.0(eslint@8.49.0): + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true + peerDependencies: + eslint: '>=7.0.0' dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.6.1 + eslint: 8.49.0 dev: true - /eslint-config-prettier@8.6.0(eslint@8.35.0): - resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} + /eslint-config-prettier@9.0.0(eslint@8.49.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.35.0 + eslint: 8.49.0 dev: true - /eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: - debug: 3.2.7(supports-color@8.1.1) - is-core-module: 2.11.0 - resolve: 1.22.1 + debug: 3.2.7 + is-core-module: 2.13.0 + resolve: 1.22.5 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.3(eslint-plugin-import@2.27.5)(eslint@8.35.0): - resolution: {integrity: sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ==} + /eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.7.0)(eslint-plugin-import@2.28.1)(eslint@8.49.0): + resolution: {integrity: sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' eslint-plugin-import: '*' dependencies: - debug: 4.3.4(supports-color@8.1.1) - enhanced-resolve: 5.12.0 - eslint: 8.35.0 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.29.0)(eslint-import-resolver-typescript@3.5.3)(eslint@8.35.0) - get-tsconfig: 4.4.0 - globby: 13.1.3 - is-core-module: 2.11.0 + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.49.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.0 + is-core-module: 2.13.0 is-glob: 4.0.3 - synckit: 0.8.5 transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack - supports-color dev: true - /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.29.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.3)(eslint@8.35.0): - resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3962,26 +3950,17 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.29.0(eslint@8.35.0)(typescript@4.7.4) - debug: 3.2.7(supports-color@8.1.1) - eslint: 8.35.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.3(eslint-plugin-import@2.27.5)(eslint@8.35.0) + '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.7.0)(eslint-plugin-import@2.28.1)(eslint@8.49.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-cypress@2.12.1(eslint@8.35.0): - resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} - peerDependencies: - eslint: '>= 3.2.1' - dependencies: - eslint: 8.35.0 - globals: 11.12.0 - dev: true - - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.29.0)(eslint-import-resolver-typescript@3.5.3)(eslint@8.35.0): - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3990,22 +3969,24 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.29.0(eslint@8.35.0)(typescript@4.7.4) - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 - debug: 3.2.7(supports-color@8.1.1) + '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.2.2) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.35.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.29.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.3)(eslint@8.35.0) + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) has: 1.0.3 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.1 - semver: 6.3.0 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -4013,133 +3994,132 @@ packages: - supports-color dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.6.0)(eslint@8.35.0)(prettier@2.8.4): - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} + /eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.10.0)(eslint@8.49.0)(prettier@3.0.3): + resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.49.0 + eslint-config-prettier: 8.10.0(eslint@8.49.0) + prettier: 3.0.3 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 + dev: true + + /eslint-plugin-prettier@5.0.0(eslint-config-prettier@9.0.0)(eslint@8.49.0)(prettier@3.0.3): + resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=7.28.0' + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' eslint-config-prettier: '*' - prettier: '>=2.0.0' + prettier: '>=3.0.0' peerDependenciesMeta: + '@types/eslint': + optional: true eslint-config-prettier: optional: true dependencies: - eslint: 8.35.0 - eslint-config-prettier: 8.6.0(eslint@8.35.0) - prettier: 2.8.4 + eslint: 8.49.0 + eslint-config-prettier: 9.0.0(eslint@8.49.0) + prettier: 3.0.3 prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 dev: true - /eslint-plugin-vue@9.9.0(eslint@8.35.0): - resolution: {integrity: sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==} + /eslint-plugin-vue@9.17.0(eslint@8.49.0): + resolution: {integrity: sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.35.0 - eslint-utils: 3.0.0(eslint@8.35.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0) + eslint: 8.49.0 natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 6.0.11 - semver: 7.3.8 - vue-eslint-parser: 9.1.0(eslint@8.35.0) + postcss-selector-parser: 6.0.13 + semver: 7.5.4 + vue-eslint-parser: 9.3.1(eslint@8.49.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-scope@7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 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.35.0): - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.35.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true - - /eslint-visitor-keys@3.3.0: - resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.35.0: - resolution: {integrity: sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==} + /eslint@8.49.0: + resolution: {integrity: sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 2.0.0 - '@eslint/js': 8.35.0 - '@humanwhocodes/config-array': 0.11.8 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0) + '@eslint-community/regexpp': 4.8.1 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.49.0 + '@humanwhocodes/config-array': 0.11.11 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-utils: 3.0.0(eslint@8.35.0) - eslint-visitor-keys: 3.3.0 - espree: 9.4.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 - grapheme-splitter: 1.0.4 + globals: 13.21.0 + graphemer: 1.4.0 ignore: 5.2.4 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-sdsl: 4.3.0 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 - regexpp: 3.2.0 + optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color dev: true - /espree@9.4.1: - resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.3.0 + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + eslint-visitor-keys: 3.4.3 dev: true /esprima@4.0.1: @@ -4162,11 +4142,6 @@ packages: estraverse: 5.3.0 dev: true - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true - /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -4175,6 +4150,11 @@ packages: /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.1 + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -4192,29 +4172,14 @@ packages: through: 2.3.8 dev: true - /eventemitter2@6.4.7: - resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} dev: true /evtd@0.2.4: resolution: {integrity: sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==} dev: false - /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'} @@ -4230,13 +4195,13 @@ 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} + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 - human-signals: 3.0.1 + human-signals: 4.3.1 is-stream: 3.0.0 merge-stream: 2.0.0 npm-run-path: 5.1.0 @@ -4245,28 +4210,21 @@ packages: strip-final-newline: 3.0.0 dev: true - /execa@7.0.0: - resolution: {integrity: sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.0 + get-stream: 8.0.1 + human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 npm-run-path: 5.1.0 onetime: 6.0.0 - signal-exit: 3.0.7 + signal-exit: 4.1.0 strip-final-newline: 3.0.0 dev: true - /executable@4.1.1: - resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} - engines: {node: '>=4'} - dependencies: - pify: 2.3.0 - dev: true - /expand-tilde@2.0.2: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} @@ -4274,10 +4232,6 @@ packages: homedir-polyfill: 1.0.3 dev: true - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: true - /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -4287,35 +4241,16 @@ packages: tmp: 0.0.33 dev: true - /extract-zip@2.0.1(supports-color@8.1.1): - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true - dependencies: - debug: 4.3.4(supports-color@8.1.1) - get-stream: 5.2.0 - yauzl: 2.10.0 - optionalDependencies: - '@types/yauzl': 2.10.0 - transitivePeerDependencies: - - supports-color - dev: true - - /extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} - dev: true - /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-diff@1.2.0: - resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4345,12 +4280,6 @@ packages: reusify: 1.0.4 dev: true - /fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - dependencies: - pend: 1.2.0 - dev: true - /figures@2.0.0: resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} engines: {node: '>=4'} @@ -4377,7 +4306,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.0.4 + flat-cache: 3.1.0 dev: true /fill-range@7.0.1: @@ -4385,7 +4314,6 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true /find-node-modules@2.1.3: resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} @@ -4436,6 +4364,12 @@ packages: semver-regex: 4.0.5 dev: true + /find-yarn-workspace-root@2.0.0: + resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} + dependencies: + micromatch: 4.0.5 + dev: false + /findup-sync@4.0.0: resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} engines: {node: '>= 8'} @@ -4446,11 +4380,12 @@ packages: resolve-dir: 1.0.1 dev: true - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} + /flat-cache@3.1.0: + resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} + engines: {node: '>=12.0.0'} dependencies: flatted: 3.2.7 + keyv: 4.5.3 rimraf: 3.0.2 dev: true @@ -4467,7 +4402,7 @@ packages: debug: optional: true dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 dev: true /for-each@0.3.3: @@ -4476,27 +4411,6 @@ packages: is-callable: 1.2.7 dev: true - /foreground-child@2.0.0: - resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} - engines: {node: '>=8.0.0'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 3.0.7 - dev: true - - /forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - dev: true - - /form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -4517,11 +4431,11 @@ packages: resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} dev: true - /fs-extra@11.1.0: - resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.0 dev: true @@ -4530,7 +4444,7 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 dev: false @@ -4540,17 +4454,15 @@ packages: engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.0 - dev: true /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true @@ -4561,20 +4473,16 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 functions-have-names: 1.2.3 dev: true - /functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: true - /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true @@ -4593,48 +4501,42 @@ packages: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true - /get-intrinsic@1.2.0: - resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: function-bind: 1.1.1 has: 1.0.3 + has-proto: 1.0.1 has-symbols: 1.0.3 dev: true - /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.2.0 + /get-stream@7.0.1: + resolution: {integrity: sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==} + engines: {node: '>=16'} dev: true - /get-tsconfig@4.4.0: - resolution: {integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==} + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} dev: true - /getos@3.2.1: - resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} dependencies: - async: 3.2.4 + call-bind: 1.0.2 + get-intrinsic: 1.2.1 dev: true - /getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + /get-tsconfig@4.7.0: + resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} dependencies: - assert-plus: 1.0.0 + resolve-pkg-maps: 1.0.0 dev: true /git-log-parser@1.2.0: @@ -4683,7 +4585,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -4703,13 +4604,6 @@ packages: ini: 1.3.8 dev: true - /global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - dependencies: - ini: 2.0.0 - dev: true - /global-modules@1.0.0: resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} engines: {node: '>=0.10.0'} @@ -4735,8 +4629,8 @@ packages: engines: {node: '>=4'} dev: true - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -4746,11 +4640,7 @@ packages: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} dependencies: - define-properties: 1.2.0 - dev: true - - /globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + define-properties: 1.2.1 dev: true /globby@11.1.0: @@ -4759,42 +4649,49 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 dev: true - /globby@13.1.3: - resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 dev: true - /globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - dev: true - /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: true - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + dependencies: + duplexer: 0.1.2 dev: true - /handlebars@4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true dependencies: @@ -4827,7 +4724,7 @@ packages: /has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /has-proto@1.0.1: @@ -4859,8 +4756,8 @@ packages: hasBin: true dev: true - /highlight.js@11.7.0: - resolution: {integrity: sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==} + /highlight.js@11.8.0: + resolution: {integrity: sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==} engines: {node: '>=12.0.0'} dev: false @@ -4887,11 +4784,11 @@ packages: lru-cache: 6.0.0 dev: true - /hosted-git-info@6.1.1: - resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: - lru-cache: 7.18.3 + lru-cache: 10.0.1 dev: true /html-encoding-sniffer@3.0.0: @@ -4905,8 +4802,8 @@ packages: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /html-tags@3.2.0: - resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==} + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} dev: true @@ -4916,7 +4813,7 @@ packages: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -4927,18 +4824,19 @@ packages: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true - /http-signature@1.3.6: - resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} - engines: {node: '>=0.10'} + /http-proxy-agent@7.0.0: + resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} + engines: {node: '>= 14'} dependencies: - assert-plus: 1.0.0 - jsprim: 2.0.2 - sshpk: 1.17.0 + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color dev: true /https-proxy-agent@5.0.1: @@ -4946,14 +4844,19 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true - /human-signals@1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} + /https-proxy-agent@7.0.2: + resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color dev: true /human-signals@2.1.0: @@ -4961,14 +4864,14 @@ packages: engines: {node: '>=10.17.0'} dev: true - /human-signals@3.0.1: - resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} - engines: {node: '>=12.20.0'} + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} dev: true - /human-signals@4.3.0: - resolution: {integrity: sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==} - engines: {node: '>=14.18.0'} + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} dev: true /husky@8.0.3: @@ -5005,8 +4908,12 @@ packages: engines: {node: '>= 4'} dev: true - /immutable@4.2.4: - resolution: {integrity: sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==} + /immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + dev: true + + /immutable@4.3.4: + resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} dev: true /import-fresh@3.3.0: @@ -5042,7 +4949,6 @@ packages: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -5051,11 +4957,6 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - dev: true - /inquirer@6.5.2: resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} engines: {node: '>=6.0.0'} @@ -5089,7 +4990,7 @@ packages: mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 - rxjs: 7.8.0 + rxjs: 7.8.1 string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 @@ -5100,14 +5001,14 @@ packages: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has: 1.0.3 side-channel: 1.0.4 dev: true - /into-stream@6.0.0: - resolution: {integrity: sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==} - engines: {node: '>=10'} + /into-stream@7.0.0: + resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} + engines: {node: '>=12'} dependencies: from2: 2.3.0 p-is-promise: 3.0.0 @@ -5117,8 +5018,8 @@ packages: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 - is-typed-array: 1.1.10 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 dev: true /is-arrayish@0.2.1: @@ -5158,15 +5059,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - dependencies: - ci-info: 3.8.0 - dev: true - - /is-core-module@2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.3 dev: true @@ -5182,6 +5076,11 @@ packages: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true + + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true dev: true /is-extglob@2.1.1: @@ -5210,12 +5109,12 @@ packages: is-extglob: 2.1.1 dev: true - /is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 + is-docker: 3.0.0 dev: true /is-interactive@1.0.0: @@ -5247,18 +5146,12 @@ packages: /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true /is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} dev: true - /is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - dev: true - /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} @@ -5278,6 +5171,11 @@ packages: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + dependencies: + '@types/estree': 1.0.1 + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -5323,19 +5221,18 @@ packages: text-extensions: 1.9.0 dev: true - /is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} - engines: {node: '>= 0.4'} + /is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 + text-extensions: 2.4.0 dev: true - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 dev: true /is-unicode-supported@0.1.0: @@ -5367,19 +5264,17 @@ packages: engines: {node: '>=8'} dependencies: is-docker: 2.2.1 - dev: true /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} dev: true - /isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - dev: true + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} /issue-parser@6.0.0: resolution: {integrity: sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==} @@ -5397,21 +5292,32 @@ packages: engines: {node: '>=8'} dev: true - /istanbul-lib-report@3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} - engines: {node: '>=8'} + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 + make-dir: 4.0.0 supports-color: 7.2.0 dev: true - /istanbul-reports@3.1.5: - resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 + istanbul-lib-report: 3.0.1 dev: true /java-properties@1.0.2: @@ -5419,8 +5325,13 @@ packages: engines: {node: '>= 0.6.0'} dev: true - /joi@17.8.3: - resolution: {integrity: sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==} + /jiti@1.20.0: + resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} + hasBin: true + dev: true + + /joi@17.10.1: + resolution: {integrity: sha512-vIiDxQKmRidUVp8KngT8MZSOcmRVm2zV7jbMjNYWuHcJWI0bUck3nRTGQjhpPlQenIQIBC5Vp9AhcnHbWQqafw==} dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -5429,21 +5340,17 @@ packages: '@sideway/pinpoint': 2.0.0 dev: true - /js-beautify@1.14.6: - resolution: {integrity: sha512-GfofQY5zDp+cuHc+gsEXKPpNw2KbPddreEo35O6jT6i0RVK6LhsoYBhq5TvK4/n74wnA0QbK8gGd+jUZwTMKJw==} - engines: {node: '>=10'} + /js-beautify@1.14.9: + resolution: {integrity: sha512-coM7xq1syLcMyuVGyToxcj2AlzhkDjmfklL8r0JgJ7A76wyGMpJ1oA35mr4APdYNO/o/4YY8H54NQIJzhMbhBg==} + engines: {node: '>=12'} hasBin: true dependencies: config-chain: 1.1.13 - editorconfig: 0.15.3 + editorconfig: 1.0.4 glob: 8.1.0 nopt: 6.0.0 dev: true - /js-sdsl@4.3.0: - resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} - dev: true - /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true @@ -5463,13 +5370,9 @@ packages: argparse: 2.0.1 dev: true - /jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - dev: true - - /jsdom@21.1.0: - resolution: {integrity: sha512-m0lzlP7qOtthD918nenK3hdItSd2I+V3W9IrBcB36sqDwG+KnUs66IF5GY7laGWUnlM9vTsD0W1QwSEBYWWcJg==} - engines: {node: '>=14'} + /jsdom@22.1.0: + resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} + engines: {node: '>=16'} peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: @@ -5477,30 +5380,27 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.2 - acorn-globals: 7.0.1 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 + cssstyle: 3.0.0 + data-urls: 4.0.0 decimal.js: 10.4.3 domexception: 4.0.0 - escodegen: 2.0.0 form-data: 4.0.0 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.2 + nwsapi: 2.2.7 parse5: 7.1.2 + rrweb-cssom: 0.6.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 4.1.2 + tough-cookie: 4.1.3 w3c-xmlserializer: 4.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - ws: 8.12.1 + whatwg-url: 12.0.1 + ws: 8.14.1 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -5514,6 +5414,10 @@ packages: hasBin: true dev: true + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + /json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true @@ -5522,6 +5426,11 @@ packages: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true + /json-parse-even-better-errors@3.0.0: + resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true @@ -5530,14 +5439,16 @@ packages: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: true - /json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - dev: true - /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true + /json-stable-stringify@1.0.2: + resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} + dependencies: + jsonify: 0.0.1 + dev: false + /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true @@ -5562,7 +5473,7 @@ packages: /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 dev: false /jsonfile@5.0.0: @@ -5570,7 +5481,7 @@ packages: dependencies: universalify: 0.1.2 optionalDependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 dev: false /jsonfile@6.1.0: @@ -5578,21 +5489,21 @@ packages: dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 + + /jsonify@0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + dev: false /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} dev: true - /jsprim@2.0.2: - resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} - engines: {'0': node >=0.6.0} + /keyv@4.5.3: + resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 + json-buffer: 3.0.1 dev: true /kind-of@6.0.3: @@ -5600,24 +5511,26 @@ packages: engines: {node: '>=0.10.0'} dev: true + /klaw-sync@6.0.0: + resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==} + dependencies: + graceful-fs: 4.2.11 + dev: false + /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} dev: true + /kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + dev: true + /lazy-ass@1.6.0: resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} engines: {node: '> 0.8'} dev: true - /levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - dev: true - /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -5626,8 +5539,14 @@ packages: type-check: 0.4.0 dev: true - /lilconfig@2.0.6: - resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} + /lie@3.1.1: + resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} + dependencies: + immediate: 3.0.6 + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} dev: true @@ -5635,73 +5554,53 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /lint-staged@13.1.2: - resolution: {integrity: sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w==} - engines: {node: ^14.13.1 || >=16.0.0} + /lines-and-columns@2.0.3: + resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /lint-staged@14.0.1: + resolution: {integrity: sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==} + engines: {node: ^16.14.0 || >=18.0.0} hasBin: true dependencies: - cli-truncate: 3.1.0 - colorette: 2.0.19 - commander: 9.5.0 - debug: 4.3.4(supports-color@8.1.1) - execa: 6.1.0 - lilconfig: 2.0.6 - listr2: 5.0.7 + chalk: 5.3.0 + commander: 11.0.0 + debug: 4.3.4 + execa: 7.2.0 + lilconfig: 2.1.0 + listr2: 6.6.1 micromatch: 4.0.5 - normalize-path: 3.0.0 - object-inspect: 1.12.3 pidtree: 0.6.0 - string-argv: 0.3.1 - yaml: 2.2.1 + string-argv: 0.3.2 + yaml: 2.3.1 transitivePeerDependencies: - enquirer - supports-color dev: true - /listr2@3.14.0(enquirer@2.3.6): - resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} - engines: {node: '>=10.0.0'} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true - dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.19 - enquirer: 2.3.6 - log-update: 4.0.0 - p-map: 4.0.0 - rfdc: 1.3.0 - rxjs: 7.8.0 - through: 2.3.8 - wrap-ansi: 7.0.0 - dev: true - - /listr2@5.0.7: - resolution: {integrity: sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==} - engines: {node: ^14.13.1 || >=16.0.0} + /listr2@6.6.1: + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} peerDependencies: enquirer: '>= 2.3.0 < 3' peerDependenciesMeta: enquirer: optional: true dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.19 - log-update: 4.0.0 - p-map: 4.0.0 + cli-truncate: 3.1.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 5.0.1 rfdc: 1.3.0 - rxjs: 7.8.0 - through: 2.3.8 - wrap-ansi: 7.0.0 + wrap-ansi: 8.1.0 dev: true /load-json-file@4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 parse-json: 4.0.0 pify: 3.0.0 strip-bom: 3.0.0 @@ -5712,6 +5611,15 @@ packages: engines: {node: '>=14'} dev: true + /localforage@1.10.0: + resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} + dependencies: + lie: 3.1.1 + dev: true + + /locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + /locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -5788,10 +5696,6 @@ packages: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} dev: true - /lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - dev: true - /lodash.snakecase@4.1.1: resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} dev: true @@ -5827,18 +5731,19 @@ packages: resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} engines: {node: '>=12'} dependencies: - chalk: 5.2.0 + chalk: 5.3.0 is-unicode-supported: 1.3.0 dev: false - /log-update@4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} + /log-update@5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 + strip-ansi: 7.1.0 + wrap-ansi: 8.1.0 dev: true /longest@2.0.1: @@ -5852,11 +5757,9 @@ packages: get-func-name: 2.0.0 dev: true - /lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 + /lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + engines: {node: 14 || >=16.14} dev: true /lru-cache@5.1.1: @@ -5870,37 +5773,30 @@ packages: engines: {node: '>=10'} dependencies: yallist: 4.0.0 - dev: true - /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + /luxon@3.4.3: + resolution: {integrity: sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==} engines: {node: '>=12'} dev: true - /magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - /magic-string@0.27.0: resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} engines: {node: '>=12'} dependencies: - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /magic-string@0.29.0: - resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==} + /magic-string@0.30.3: + resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} engines: {node: '>=12'} dependencies: - '@jridgewell/sourcemap-codec': 1.4.14 - dev: true + '@jridgewell/sourcemap-codec': 1.4.15 - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: - semver: 6.3.0 + semver: 7.5.4 dev: true /make-error@1.3.6: @@ -5921,32 +5817,40 @@ packages: resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} dev: true - /marked-terminal@5.1.1(marked@4.2.12): - resolution: {integrity: sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==} + /marked-terminal@5.2.0(marked@5.1.2): + resolution: {integrity: sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==} engines: {node: '>=14.13.1 || >=16.0.0'} peerDependencies: - marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 dependencies: - ansi-escapes: 5.0.0 + ansi-escapes: 6.2.0 cardinal: 2.1.1 - chalk: 5.2.0 + chalk: 5.3.0 cli-table3: 0.6.3 - marked: 4.2.12 + marked: 5.1.2 node-emoji: 1.11.0 supports-hyperlinks: 2.3.0 dev: true - /marked@4.2.12: - resolution: {integrity: sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==} - engines: {node: '>= 12'} + /marked@5.1.2: + resolution: {integrity: sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==} + engines: {node: '>= 16'} hasBin: true dev: true + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + /memorystream@0.3.1: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} dev: true + /meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + dev: true + /meow@8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} @@ -5983,7 +5887,6 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} @@ -6026,7 +5929,6 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - dev: true /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} @@ -6035,9 +5937,16 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@6.2.0: - resolution: {integrity: sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==} - engines: {node: '>=10'} + /minimatch@9.0.1: + resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: true @@ -6057,7 +5966,6 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} @@ -6066,13 +5974,13 @@ packages: minimist: 1.2.8 dev: true - /mlly@1.1.1: - resolution: {integrity: sha512-Jnlh4W/aI4GySPo6+DyTN17Q75KKbLTyFK8BrGhjNP4rxuUjbRWhE6gHg3bs33URWAF44FRm7gdQA348i3XxRw==} + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: - acorn: 8.8.2 - pathe: 1.1.0 - pkg-types: 1.0.2 - ufo: 1.1.1 + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.0 dev: true /modify-values@1.0.1: @@ -6084,11 +5992,20 @@ packages: resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} dev: true + /monkey-around@2.3.0: + resolution: {integrity: sha512-QWcCUWjqE/MCk9cXlSKZ1Qc486LD439xw/Ak8Nt6l2PuL9+yrc9TJakt7OHDuOqPRYY4nTWBAEFKn32PE/SfXA==} + dev: true + /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} dev: true + /mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + dev: true + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true @@ -6097,8 +6014,8 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /muggle-string@0.2.2: - resolution: {integrity: sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==} + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true /mute-stream@0.0.7: @@ -6109,34 +6026,34 @@ packages: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true - /naive-ui@2.34.3(vue@3.2.47): - resolution: {integrity: sha512-fUMr0dzb/iGsOTWgoblPVobY5X5dihQ1eam5dA+H74oyLYAvgX4pL96xQFPBLIYqvyRFBAsN85kHN5pLqdtpxA==} + /naive-ui@2.34.4(vue@3.3.4): + resolution: {integrity: sha512-aPG8PDfhSzIzn/jSC9y3Jb3Pe2wHJ7F0cFV1EWlbImSrZECeUmoc+fIcOSWbizoztkKfaUAeKwYdMl09MKkj1g==} peerDependencies: vue: ^3.0.0 dependencies: '@css-render/plugin-bem': 0.15.12(css-render@0.15.12) - '@css-render/vue3-ssr': 0.15.12(vue@3.2.47) + '@css-render/vue3-ssr': 0.15.12(vue@3.3.4) '@types/katex': 0.14.0 - '@types/lodash': 4.14.191 - '@types/lodash-es': 4.17.6 + '@types/lodash': 4.14.198 + '@types/lodash-es': 4.17.9 async-validator: 4.2.5 css-render: 0.15.12 - date-fns: 2.29.3 - date-fns-tz: 1.3.8(date-fns@2.29.3) + date-fns: 2.30.0 + date-fns-tz: 1.3.8(date-fns@2.30.0) evtd: 0.2.4 - highlight.js: 11.7.0 + highlight.js: 11.8.0 lodash: 4.17.21 lodash-es: 4.17.21 seemly: 0.3.6 treemate: 0.3.11 - vdirs: 0.1.8(vue@3.2.47) - vooks: 0.2.12(vue@3.2.47) - vue: 3.2.47 - vueuc: 0.4.51(vue@3.2.47) + vdirs: 0.1.8(vue@3.3.4) + vooks: 0.2.12(vue@3.3.4) + vue: 3.3.4 + vueuc: 0.4.51(vue@3.3.4) dev: false - /nanoid@3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -6162,8 +6079,12 @@ packages: lodash: 4.17.21 dev: true - /node-fetch@2.6.9: - resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} + /node-fetch-native@1.4.0: + resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==} + dev: true + + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -6174,8 +6095,8 @@ packages: whatwg-url: 5.0.0 dev: true - /node-releases@2.0.10: - resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true /nopt@6.0.0: @@ -6190,8 +6111,8 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.1 - semver: 5.7.1 + resolve: 1.22.5 + semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true @@ -6200,8 +6121,18 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.11.0 - semver: 7.3.8 + is-core-module: 2.13.0 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@6.0.0: + resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + hosted-git-info: 7.0.1 + is-core-module: 2.13.0 + semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -6210,9 +6141,9 @@ packages: engines: {node: '>=0.10.0'} dev: true - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} + /normalize-url@8.0.0: + resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} + engines: {node: '>=14.16'} dev: true /npm-run-all@4.1.5: @@ -6227,8 +6158,8 @@ packages: minimatch: 3.1.2 pidtree: 0.3.1 read-pkg: 3.0.0 - shell-quote: 1.8.0 - string.prototype.padend: 3.1.4 + shell-quote: 1.8.1 + string.prototype.padend: 3.1.5 dev: true /npm-run-path@4.0.1: @@ -6245,25 +6176,25 @@ packages: path-key: 4.0.0 dev: true - /npm@8.19.4: - resolution: {integrity: sha512-3HANl8i9DKnUA89P4KEgVNN28EjSeDCmvEqbzOAuxCFDzdBZzjUl99zgnGpOUumvW5lvJo2HKcjrsc+tfyv1Hw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /npm@9.8.1: + resolution: {integrity: sha512-AfDvThQzsIXhYgk9zhbk5R+lh811lKkLAeQMMhSypf1BM7zUafeIIBzMzespeuVEJ0+LvY36oRQYf7IKLzU3rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true dev: true bundledDependencies: - '@isaacs/string-locale-compare' - '@npmcli/arborist' - - '@npmcli/ci-detect' - '@npmcli/config' - '@npmcli/fs' - '@npmcli/map-workspaces' - '@npmcli/package-json' + - '@npmcli/promise-spawn' - '@npmcli/run-script' - abbrev - archy - cacache - chalk - - chownr + - ci-info - cli-columns - cli-table3 - columnify @@ -6291,8 +6222,6 @@ packages: - minimatch - minipass - minipass-pipeline - - mkdirp - - mkdirp-infer-owner - ms - node-gyp - nopt @@ -6304,19 +6233,16 @@ packages: - npm-registry-fetch - npm-user-validate - npmlog - - opener - p-map - pacote - parse-conflict-json - proc-log - qrcode-terminal - read - - read-package-json - - read-package-json-fast - - readdir-scoped-modules - - rimraf - semver + - sigstore - ssri + - supports-color - tar - text-table - tiny-relative-date @@ -6331,8 +6257,8 @@ packages: boolbase: 1.0.0 dev: true - /nwsapi@2.2.2: - resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} dev: true /object-inspect@1.12.3: @@ -6349,37 +6275,99 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true - /object.values@1.1.6: - resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + dev: true + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /obsidian-calendar-ui@0.3.12(@codemirror/state@6.2.1)(@codemirror/view@6.19.0): + resolution: {integrity: sha512-hdoRqCPnukfRgCARgArXaqMQZ+Iai0eY7f0ZsFHHfywpv4gKg3Tx5p47UsLvRO5DD+4knlbrL7Gel57MkfcLTw==} + dependencies: + obsidian-daily-notes-interface: 0.8.4(@codemirror/state@6.2.1)(@codemirror/view@6.19.0) + svelte: 3.35.0 + tslib: 2.1.0 + transitivePeerDependencies: + - '@codemirror/state' + - '@codemirror/view' + dev: true + + /obsidian-daily-notes-interface@0.8.4(@codemirror/state@6.2.1)(@codemirror/view@6.19.0): + resolution: {integrity: sha512-REKQtAuIOKDbvNH/th1C1gWmJWCP5tRn9T/mfZGZt4Zncgko7McXK0aSKFtEInipvgbZJ2nScivvyLdiWluSMw==} + hasBin: true + dependencies: + obsidian: github.com/obsidianmd/obsidian-api/249eb773347588f4e9fec7c600e1904cd9240fcb(@codemirror/state@6.2.1)(@codemirror/view@6.19.0) + tslib: 2.1.0 + transitivePeerDependencies: + - '@codemirror/state' + - '@codemirror/view' dev: true - /obsidian@1.1.1(@codemirror/state@6.2.0)(@codemirror/view@6.9.1): - resolution: {integrity: sha512-GcxhsHNkPEkwHEjeyitfYNBcQuYGeAHFs1pEpZIv0CnzSfui8p8bPLm2YKLgcg20B764770B1sYGtxCvk9ptxg==} + /obsidian-dataview@0.5.56: + resolution: {integrity: sha512-QyXpJLDJVpLmPCiF8ht4XqeuhWaccAs/pSpP+oDmwou4uJvEO4rXosj7joYQXv1QMsxf5UHy2OO56BZoyzVGBg==} + dependencies: + '@codemirror/language': github.com/lishid/cm-language/1aadcc247f20ccfda76424a9f853dbb4ee203fdc + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.19.0 + emoji-regex: 10.2.1 + localforage: 1.10.0 + luxon: 3.4.3 + obsidian-calendar-ui: 0.3.12(@codemirror/state@6.2.1)(@codemirror/view@6.19.0) + papaparse: 5.4.1 + parsimmon: 1.18.1 + preact: 10.17.1 + dev: true + + /obsidian@1.4.11(@codemirror/state@6.2.1)(@codemirror/view@6.19.0): + resolution: {integrity: sha512-BCVYTvaXxElJMl6MMbDdY/CGK+aq18SdtDY/7vH8v6BxCBQ6KF4kKxL0vG9UZ0o5qh139KpUoJHNm+6O5dllKA==} peerDependencies: '@codemirror/state': ^6.0.0 '@codemirror/view': ^6.0.0 dependencies: - '@codemirror/state': 6.2.0 - '@codemirror/view': 6.9.1 - '@types/codemirror': 0.0.108 + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.19.0 + '@types/codemirror': 5.60.8 moment: 2.29.4 dev: true + /ofetch@1.3.3: + resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} + dependencies: + destr: 2.0.1 + node-fetch-native: 1.4.0 + ufo: 1.3.0 + dev: true + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - dev: true /onetime@2.0.1: resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} @@ -6401,6 +6389,14 @@ packages: mimic-fn: 4.0.0 dev: true + /open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: false + /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -6410,28 +6406,26 @@ packages: is-wsl: 2.2.0 dev: true - /optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.3 + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 dev: true - /optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 dev: true /ora@5.4.1: @@ -6441,7 +6435,7 @@ packages: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.7.0 + cli-spinners: 2.9.1 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 @@ -6449,40 +6443,35 @@ packages: wcwidth: 1.0.1 dev: true - /ora@6.1.2: - resolution: {integrity: sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /ora@7.0.1: + resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} + engines: {node: '>=16'} dependencies: - bl: 5.1.0 - chalk: 5.2.0 + chalk: 5.3.0 cli-cursor: 4.0.0 - cli-spinners: 2.7.0 + cli-spinners: 2.9.1 is-interactive: 2.0.0 is-unicode-supported: 1.3.0 log-symbols: 5.1.0 - strip-ansi: 7.0.1 - wcwidth: 1.0.1 + stdin-discarder: 0.1.0 + string-width: 6.1.0 + strip-ansi: 7.1.0 dev: false /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - dev: true - - /ospath@1.2.2: - resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} - dev: true /p-each-series@3.0.0: resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} engines: {node: '>=12'} dev: true - /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + /p-filter@3.0.0: + resolution: {integrity: sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - p-map: 2.1.0 + p-map: 5.5.0 dev: true /p-is-promise@3.0.0: @@ -6546,16 +6535,11 @@ packages: p-limit: 4.0.0 dev: true - /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - dev: true - - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + /p-map@5.5.0: + resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} + engines: {node: '>=12'} dependencies: - aggregate-error: 3.1.0 + aggregate-error: 4.0.1 dev: true /p-reduce@2.1.0: @@ -6568,14 +6552,6 @@ packages: engines: {node: '>=12'} dev: true - /p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 - dev: true - /p-try@1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} @@ -6586,6 +6562,10 @@ packages: engines: {node: '>=6'} dev: true + /papaparse@5.4.1: + resolution: {integrity: sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw==} + dev: true + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -6605,12 +6585,23 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 dev: true + /parse-json@7.1.0: + resolution: {integrity: sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==} + engines: {node: '>=16'} + dependencies: + '@babel/code-frame': 7.22.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 3.0.0 + lines-and-columns: 2.0.3 + type-fest: 3.13.1 + dev: true + /parse-passwd@1.0.0: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} @@ -6619,13 +6610,39 @@ packages: /parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: - entities: 4.4.0 + entities: 4.5.0 + dev: true + + /parsimmon@1.18.1: + resolution: {integrity: sha512-u7p959wLfGAhJpSDJVYXoyMCXWYwHia78HhRBWqk7AIbxdmlrfdp5wX0l3xv/iTSH5HvhN9K7o26hwwpgS5Nmw==} dev: true /party-js@2.2.0: resolution: {integrity: sha512-50hGuALCpvDTrQLPQ1fgUgxKIWAH28ShVkmeK/3zhO0YJyCqkhrZhQEkWPxDYLvbFJ7YAXyROmFEu35gKpZLtQ==} dev: false + /patch-package@8.0.0: + resolution: {integrity: sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==} + engines: {node: '>=14', npm: '>5'} + hasBin: true + dependencies: + '@yarnpkg/lockfile': 1.1.0 + chalk: 4.1.2 + ci-info: 3.8.0 + cross-spawn: 7.0.3 + find-yarn-workspace-root: 2.0.0 + fs-extra: 9.1.0 + json-stable-stringify: 1.0.2 + klaw-sync: 6.0.0 + minimist: 1.2.8 + open: 7.4.2 + rimraf: 2.7.1 + semver: 7.5.4 + slash: 2.0.0 + tmp: 0.0.33 + yaml: 2.3.2 + dev: false + /path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -6644,7 +6661,6 @@ packages: /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - dev: true /path-key@2.0.1: resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} @@ -6654,7 +6670,6 @@ packages: /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - dev: true /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} @@ -6677,8 +6692,8 @@ packages: engines: {node: '>=8'} dev: true - /pathe@1.1.0: - resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} dev: true /pathval@1.1.1: @@ -6691,13 +6706,16 @@ packages: through: 2.3.8 dev: true - /pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + /perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} dev: true - /performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - dev: true + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -6705,7 +6723,6 @@ packages: /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true /pidtree@0.3.1: resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} @@ -6719,22 +6736,17 @@ packages: hasBin: true dev: true - /pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - dev: true - /pify@3.0.0: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} dev: true - /pinia@2.0.32(typescript@4.7.4)(vue@3.2.47): - resolution: {integrity: sha512-8Tw4OrpCSJ028UUyp0gYPP/wyjigLoEceuO/x1G+FlHVf73337e5vLm4uDmrRIoBG1hvaed/eSHnrCFjOc4nkA==} + /pinia@2.1.6(typescript@5.2.2)(vue@3.3.4): + resolution: {integrity: sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ==} peerDependencies: '@vue/composition-api': ^1.4.0 typescript: '>=4.4.4' - vue: ^2.6.14 || ^3.2.0 + vue: ^2.6.14 || ^3.3.0 peerDependenciesMeta: '@vue/composition-api': optional: true @@ -6742,9 +6754,9 @@ packages: optional: true dependencies: '@vue/devtools-api': 6.5.0 - typescript: 4.7.4 - vue: 3.2.47 - vue-demi: 0.13.11(vue@3.2.47) + typescript: 5.2.2 + vue: 3.3.4 + vue-demi: 0.14.6(vue@3.3.4) dev: false /pkg-conf@2.1.0: @@ -6755,37 +6767,36 @@ packages: load-json-file: 4.0.0 dev: true - /pkg-types@1.0.2: - resolution: {integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==} + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 - mlly: 1.1.1 - pathe: 1.1.0 + mlly: 1.4.2 + pathe: 1.1.1 dev: true /plantuml-encoder@1.4.0: resolution: {integrity: sha512-sxMwpDw/ySY1WB2CE3+IdMuEcWibJ72DDOsXLkSmEaSzwEUaYBT6DWgOfBiHGCux4q433X6+OEFWjlVqp7gL6g==} dev: true - /postcss-selector-parser@6.0.11: - resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 dev: true - /postcss@8.4.21: - resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + /postcss@8.4.29: + resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.4 + nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - /prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} + /preact@10.17.1: + resolution: {integrity: sha512-X9BODrvQ4Ekwv9GURm9AKAGaomqXmip7NQTZgY7gcNmr7XE83adOMJvd3N42id1tMFU7ojiynRsYnY6/BRFxLA==} dev: true /prelude-ls@1.2.1: @@ -6797,27 +6808,22 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} dependencies: - fast-diff: 1.2.0 + fast-diff: 1.3.0 dev: true - /prettier@2.8.4: - resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==} - engines: {node: '>=10.13.0'} + /prettier@3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + engines: {node: '>=14'} hasBin: true dev: true - /pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} - dev: true - - /pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - ansi-regex: 5.0.1 + '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 17.0.2 + react-is: 18.2.0 dev: true /process-nextick-args@2.0.1: @@ -6828,10 +6834,6 @@ packages: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} dev: true - /proxy-from-env@1.0.0: - resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==} - dev: true - /ps-tree@1.2.0: resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} engines: {node: '>= 0.10'} @@ -6840,21 +6842,10 @@ packages: event-stream: 3.3.4 dev: true - /pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - dev: true - /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} 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@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: true @@ -6864,18 +6855,6 @@ packages: engines: {node: '>=6'} dev: true - /q@1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - dev: true - - /qs@6.10.4: - resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.4 - dev: true - /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} dev: true @@ -6899,8 +6878,17 @@ packages: strip-json-comments: 2.0.1 dev: true - /react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + + /read-pkg-up@10.1.0: + resolution: {integrity: sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==} + engines: {node: '>=16'} + dependencies: + find-up: 6.3.0 + read-pkg: 8.1.0 + type-fest: 4.3.1 dev: true /read-pkg-up@7.0.1: @@ -6912,15 +6900,6 @@ packages: type-fest: 0.8.1 dev: true - /read-pkg-up@9.1.0: - resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - find-up: 6.3.0 - read-pkg: 7.1.0 - type-fest: 2.19.0 - dev: true - /read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} @@ -6940,14 +6919,14 @@ packages: type-fest: 0.6.0 dev: true - /read-pkg@7.1.0: - resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==} - engines: {node: '>=12.20'} + /read-pkg@8.1.0: + resolution: {integrity: sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==} + engines: {node: '>=16'} dependencies: '@types/normalize-package-data': 2.4.1 - normalize-package-data: 3.0.3 - parse-json: 5.2.0 - type-fest: 2.19.0 + normalize-package-data: 6.0.0 + parse-json: 7.1.0 + type-fest: 4.3.1 dev: true /readable-stream@2.3.8: @@ -6962,8 +6941,8 @@ packages: util-deprecate: 1.0.2 dev: true - /readable-stream@3.6.1: - resolution: {integrity: sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==} + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} dependencies: inherits: 2.0.4 @@ -6991,31 +6970,24 @@ packages: esprima: 4.0.1 dev: true - /regexp.prototype.flags@1.4.3: - resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 - dev: true - - /regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} + define-properties: 1.2.1 + set-function-name: 2.0.1 dev: true /registry-auth-token@5.0.2: resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} engines: {node: '>=14'} dependencies: - '@pnpm/npm-conf': 2.1.0 - dev: true - - /request-progress@3.0.0: - resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} - dependencies: - throttleit: 1.0.0 + '@pnpm/npm-conf': 2.2.2 dev: true /require-directory@2.1.1: @@ -7057,11 +7029,15 @@ packages: global-dirs: 0.1.1 dev: true - /resolve@1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + + /resolve@1.22.5: + resolution: {integrity: sha512-qWhv7PF1V95QPvRoUGHxOtnAlEvlXBylMZcjUR9pAumMmveFtcHJRXGIr+TkjfNJVQypqv2qcDiiars2y1PsSg==} hasBin: true dependencies: - is-core-module: 2.11.0 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -7088,12 +7064,6 @@ packages: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - dev: false - - /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - dev: true /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} @@ -7109,7 +7079,6 @@ packages: hasBin: true dependencies: glob: 7.2.3 - dev: true /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -7118,37 +7087,57 @@ packages: glob: 7.2.3 dev: true - /rollup-plugin-polyfill-node@0.12.0(rollup@3.18.0): + /rollup-plugin-polyfill-node@0.12.0(rollup@3.29.1): resolution: {integrity: sha512-PWEVfDxLEKt8JX1nZ0NkUAgXpkZMTb85rO/Ru9AQ69wYW8VUCfDgP4CGRXXWYni5wDF0vIeR1UoF3Jmw/Lt3Ug==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 dependencies: - '@rollup/plugin-inject': 5.0.3(rollup@3.18.0) - rollup: 3.18.0 + '@rollup/plugin-inject': 5.0.3(rollup@3.29.1) + rollup: 3.29.1 dev: true - /rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} - engines: {node: '>=10.0.0'} + /rollup-plugin-visualizer@5.9.2(rollup@3.29.1): + resolution: {integrity: sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==} + engines: {node: '>=14'} hasBin: true - optionalDependencies: - fsevents: 2.3.2 + peerDependencies: + rollup: 2.x || 3.x + peerDependenciesMeta: + rollup: + optional: true + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + rollup: 3.29.1 + source-map: 0.7.4 + yargs: 17.7.2 dev: true - /rollup@3.18.0: - resolution: {integrity: sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==} + /rollup@3.29.1: + resolution: {integrity: sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /rrule@2.7.2: resolution: {integrity: sha512-NkBsEEB6FIZOZ3T8frvEBOB243dm46SPufpDckY/Ap/YH24V1zLeMmDY8OA10lk452NdrF621+ynDThE7FQU2A==} dependencies: - tslib: 2.4.0 + tslib: 2.6.2 dev: false + /rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: true + + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -7167,10 +7156,10 @@ packages: tslib: 1.14.1 dev: true - /rxjs@7.8.0: - resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.4.0 + tslib: 2.6.2 dev: true /sade@1.8.1: @@ -7180,6 +7169,16 @@ packages: mri: 1.2.0 dev: true + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true @@ -7191,7 +7190,7 @@ packages: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 is-regex: 1.1.4 dev: true @@ -7203,18 +7202,18 @@ packages: resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} dependencies: es6-promise: 3.3.1 - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 mkdirp: 0.5.6 rimraf: 2.7.1 dev: true - /sass@1.58.3: - resolution: {integrity: sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==} - engines: {node: '>=12.0.0'} + /sass@1.67.0: + resolution: {integrity: sha512-SVrO9ZeX/QQyEGtuZYCVxoeAL5vGlYjJ9p4i4HFuekWl8y/LtJ7tJc10Z+ck1c8xOuoBm2MYzcLfTAffD0pl/A==} + engines: {node: '>=14.0.0'} hasBin: true dependencies: chokidar: 3.5.3 - immutable: 4.2.4 + immutable: 4.3.4 source-map-js: 1.0.2 dev: true @@ -7229,49 +7228,49 @@ packages: resolution: {integrity: sha512-lEV5VB8BUKTo/AfktXJcy+JeXns26ylbMkIUco8CYREsQijuz4mrXres2Q+vMLdwkuLxJdIPQ8IlCIxLYm71Yw==} dev: false - /semantic-release@20.1.1: - resolution: {integrity: sha512-jXDr8y7ozo42N4+G9m/P5Qyx5oQO4aOS66a+Up8XECzEOFIpEoo3ngnr4R5lSix/sVJW69/fgNkOUZhsGFiQ5g==} + /semantic-release@21.1.1(typescript@5.2.2): + resolution: {integrity: sha512-OCIazQnaCHdq1F6zfmKS0P7jZakYq0weiqW2mxUWo4H2CDnxelUoa/0Bs/dQatoHc6JFh6lG2HWpusdl93bFcw==} engines: {node: '>=18'} hasBin: true dependencies: - '@semantic-release/commit-analyzer': 9.0.2(semantic-release@20.1.1) - '@semantic-release/error': 3.0.0 - '@semantic-release/github': 8.0.7(semantic-release@20.1.1) - '@semantic-release/npm': 9.0.2(semantic-release@20.1.1) - '@semantic-release/release-notes-generator': 10.0.3(semantic-release@20.1.1) + '@semantic-release/commit-analyzer': 10.0.4(semantic-release@21.1.1) + '@semantic-release/error': 4.0.0 + '@semantic-release/github': 9.0.6(semantic-release@21.1.1) + '@semantic-release/npm': 10.0.6(semantic-release@21.1.1) + '@semantic-release/release-notes-generator': 11.0.7(semantic-release@21.1.1) aggregate-error: 4.0.1 - cosmiconfig: 8.1.0 - debug: 4.3.4(supports-color@8.1.1) - env-ci: 8.0.0 - execa: 7.0.0 + cosmiconfig: 8.3.6(typescript@5.2.2) + debug: 4.3.4 + env-ci: 9.1.1 + execa: 8.0.1 figures: 5.0.0 find-versions: 5.1.0 get-stream: 6.0.1 git-log-parser: 1.2.0 hook-std: 3.0.0 - hosted-git-info: 6.1.1 + hosted-git-info: 7.0.1 lodash-es: 4.17.21 - marked: 4.2.12 - marked-terminal: 5.1.1(marked@4.2.12) + marked: 5.1.2 + marked-terminal: 5.2.0(marked@5.1.2) micromatch: 4.0.5 p-each-series: 3.0.0 p-reduce: 3.0.0 - read-pkg-up: 9.1.0 + read-pkg-up: 10.1.0 resolve-from: 5.0.0 - semver: 7.3.8 + semver: 7.5.4 semver-diff: 4.0.0 signale: 1.4.0 - yargs: 17.7.1 + yargs: 17.7.2 transitivePeerDependencies: - - encoding - supports-color + - typescript dev: true /semver-diff@4.0.0: resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} engines: {node: '>=12'} dependencies: - semver: 7.3.8 + semver: 7.5.4 dev: true /semver-regex@4.0.5: @@ -7279,22 +7278,30 @@ packages: engines: {node: '>=12'} dev: true - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true dev: true - /semver@6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true dev: true - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 dev: true /shebang-command@1.2.0: @@ -7309,7 +7316,6 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - dev: true /shebang-regex@1.0.0: resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} @@ -7319,17 +7325,16 @@ packages: /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - dev: true - /shell-quote@1.8.0: - resolution: {integrity: sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==} + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} dev: true /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 object-inspect: 1.12.3 dev: true @@ -7337,13 +7342,14 @@ packages: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} dev: true - /sigmund@1.0.1: - resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==} - dev: true - /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + /signale@1.4.0: resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} engines: {node: '>=6'} @@ -7353,32 +7359,28 @@ packages: pkg-conf: 2.1.0 dev: true - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + /sirv@2.0.3: + resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.23 + mrmime: 1.0.1 + totalist: 3.0.1 dev: true - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - dev: true + /slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + dev: false - /slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 dev: true - /slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} dev: true /slice-ansi@5.0.0: @@ -7389,14 +7391,14 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true - /sorcery@0.10.0: - resolution: {integrity: sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==} + /sorcery@0.11.0: + resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} hasBin: true dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 buffer-crc32: 0.2.13 minimist: 1.2.8 sander: 0.5.1 - sourcemap-codec: 1.4.8 dev: true /source-map-js@1.0.2: @@ -7406,20 +7408,22 @@ packages: /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + dev: true - /sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true /spawn-error-forwarder@1.0.0: resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} dev: true - /spdx-correct@3.1.1: - resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.12 + spdx-license-ids: 3.0.13 dev: true /spdx-exceptions@2.3.0: @@ -7430,11 +7434,11 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.12 + spdx-license-ids: 3.0.13 dev: true - /spdx-license-ids@3.0.12: - resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} + /spdx-license-ids@3.0.13: + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} dev: true /split2@1.0.0: @@ -7446,7 +7450,12 @@ packages: /split2@3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: - readable-stream: 3.6.1 + readable-stream: 3.6.2 + dev: true + + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} dev: true /split@0.3.3: @@ -7469,36 +7478,19 @@ packages: resolution: {integrity: sha512-3HD8pSkZL+5YvYUI8nlvNILs61ALqq34xgmF+BHpqxe68yZIJ1H+sIVIODvni25+CcxHUxDyrTJUL0lE/m7afw==} dev: false - /sshpk@1.17.0: - resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - asn1: 0.2.6 - assert-plus: 1.0.0 - bcrypt-pbkdf: 1.0.2 - dashdash: 1.14.1 - ecc-jsbn: 0.1.2 - getpass: 0.1.7 - jsbn: 0.1.1 - safer-buffer: 2.1.2 - tweetnacl: 0.14.5 - dev: true - /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true - /start-server-and-test@1.15.5: - resolution: {integrity: sha512-o3EmkX0++GV+qsvIJ/OKWm3w91fD8uS/bPQVPrh/7loaxkpXSuAIHdnmN/P/regQK9eNAK76aBJcHt+OSTk+nA==} + /start-server-and-test@2.0.0: + resolution: {integrity: sha512-UqKLw0mJbfrsG1jcRLTUlvuRi9sjNuUiDOLI42r7R5fA9dsFoywAy9DoLXNYys9B886E4RCKb+qM1Gzu96h7DQ==} engines: {node: '>=6'} - deprecated: this package has been deprecated hasBin: true dependencies: arg: 5.0.2 bluebird: 3.7.2 check-more-types: 2.24.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 execa: 5.1.1 lazy-ass: 1.6.0 ps-tree: 1.2.0 @@ -7507,10 +7499,17 @@ packages: - supports-color dev: true - /std-env@3.3.2: - resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==} + /std-env@3.4.3: + resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} dev: true + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bl: 5.1.0 + dev: false + /stream-combiner2@1.1.1: resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} dependencies: @@ -7530,8 +7529,8 @@ packages: stubs: 3.0.0 dev: true - /string-argv@0.3.1: - resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} dev: true @@ -7557,32 +7556,49 @@ packages: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 + + /string-width@6.1.0: + resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} + engines: {node: '>=16'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 10.2.1 + strip-ansi: 7.1.0 + dev: false + + /string.prototype.padend@3.1.5: + resolution: {integrity: sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 dev: true - /string.prototype.padend@3.1.4: - resolution: {integrity: sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==} + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 dev: true - /string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 dev: true - /string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 dev: true /string_decoder@1.1.1: @@ -7616,8 +7632,8 @@ packages: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 @@ -7659,18 +7675,18 @@ packages: engines: {node: '>=8'} dev: true - /strip-literal@1.0.1: - resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: - acorn: 8.8.2 + acorn: 8.10.0 dev: true /stubs@3.0.0: resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} dev: true - /style-mod@4.0.0: - resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==} + /style-mod@4.1.0: + resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -7685,13 +7701,6 @@ packages: dependencies: has-flag: 4.0.0 - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - dev: true - /supports-hyperlinks@2.3.0: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} engines: {node: '>=8'} @@ -7705,26 +7714,25 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check@2.10.3(@babel/core@7.21.0)(sass@1.58.3)(svelte@3.55.1): - resolution: {integrity: sha512-Nt1aWHTOKFReBpmJ1vPug0aGysqPwJh2seM1OvICfM2oeyaA62mOiy5EvkXhltGfhCcIQcq2LoE0l1CwcWPjlw==} + /svelte-check@3.5.1(@babel/core@7.22.19)(postcss@8.4.29)(sass@1.67.0)(svelte@4.2.0): + resolution: {integrity: sha512-+Zb4iHxAhdUtcUg/WJPRjlS1RJalIsWAe9Mz6G1zyznSs7dDkT7VUBdXc3q7Iwg49O/VrZgyJRvOJkjuBfKjFA==} hasBin: true peerDependencies: - svelte: ^3.24.0 + svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 dependencies: - '@jridgewell/trace-mapping': 0.3.17 + '@jridgewell/trace-mapping': 0.3.19 chokidar: 3.5.3 - fast-glob: 3.2.12 + fast-glob: 3.3.1 import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 3.55.1 - svelte-preprocess: 4.10.7(@babel/core@7.21.0)(sass@1.58.3)(svelte@3.55.1)(typescript@4.7.4) - typescript: 4.7.4 + svelte: 4.2.0 + svelte-preprocess: 5.0.4(@babel/core@7.22.19)(postcss@8.4.29)(sass@1.67.0)(svelte@4.2.0)(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - '@babel/core' - coffeescript - less - - node-sass - postcss - postcss-load-config - pug @@ -7733,32 +7741,31 @@ packages: - sugarss dev: true - /svelte-hmr@0.15.1(svelte@3.55.1): - resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==} + /svelte-hmr@0.15.3(svelte@4.2.0): + resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: - svelte: '>=3.19.0' + svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 3.55.1 + svelte: 4.2.0 dev: true - /svelte-preprocess@4.10.7(@babel/core@7.21.0)(sass@1.58.3)(svelte@3.55.1)(typescript@4.7.4): - resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} - engines: {node: '>= 9.11.2'} + /svelte-preprocess@5.0.4(@babel/core@7.22.19)(postcss@8.4.29)(sass@1.67.0)(svelte@4.2.0)(typescript@5.2.2): + resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} + engines: {node: '>= 14.10.0'} requiresBuild: true peerDependencies: '@babel/core': ^7.10.2 coffeescript: ^2.5.1 less: ^3.11.3 || ^4.0.0 - node-sass: '*' postcss: ^7 || ^8 postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 pug: ^3.0.0 sass: ^1.26.8 stylus: ^0.55.0 - sugarss: ^2.0.0 - svelte: ^3.23.0 - typescript: ^3.9.5 || ^4.0.0 + sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 + svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 + typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' peerDependenciesMeta: '@babel/core': optional: true @@ -7766,8 +7773,6 @@ packages: optional: true less: optional: true - node-sass: - optional: true postcss: optional: true postcss-load-config: @@ -7783,21 +7788,40 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.21.0 + '@babel/core': 7.22.19 '@types/pug': 2.0.6 - '@types/sass': 1.45.0 detect-indent: 6.1.0 - magic-string: 0.25.9 - sass: 1.58.3 - sorcery: 0.10.0 + magic-string: 0.27.0 + postcss: 8.4.29 + sass: 1.67.0 + sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 3.55.1 - typescript: 4.7.4 + svelte: 4.2.0 + typescript: 5.2.2 dev: true - /svelte@3.55.1: - resolution: {integrity: sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==} + /svelte@3.35.0: + resolution: {integrity: sha512-gknlZkR2sXheu/X+B7dDImwANVvK1R0QGQLd8CNIfxxGPeXBmePnxfzb6fWwTQRsYQG7lYkZXvpXJvxvpsoB7g==} engines: {node: '>= 8'} + dev: true + + /svelte@4.2.0: + resolution: {integrity: sha512-kVsdPjDbLrv74SmLSUzAsBGquMs4MPgWGkGLpH+PjOYnFOziAvENVzgJmyOCV2gntxE32aNm8/sqNKD6LbIpeQ==} + engines: {node: '>=16'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + acorn: 8.10.0 + aria-query: 5.3.0 + axobject-query: 3.2.1 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.3 + periscopic: 3.1.0 /svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} @@ -7811,8 +7835,8 @@ packages: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: - '@pkgr/utils': 2.3.1 - tslib: 2.5.0 + '@pkgr/utils': 2.4.2 + tslib: 2.6.2 dev: true /tapable@2.2.1: @@ -7826,7 +7850,7 @@ packages: dependencies: http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 - node-fetch: 2.6.9 + node-fetch: 2.7.0 stream-events: 1.0.5 uuid: 8.3.2 transitivePeerDependencies: @@ -7834,20 +7858,19 @@ packages: - supports-color dev: true - /temp-dir@2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} + /temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} dev: true - /tempy@1.0.1: - resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==} - engines: {node: '>=10'} + /tempy@3.1.0: + resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} + engines: {node: '>=14.16'} dependencies: - del: 6.1.1 - is-stream: 2.0.1 - temp-dir: 2.0.0 - type-fest: 0.16.0 - unique-string: 2.0.0 + is-stream: 3.0.0 + temp-dir: 3.0.0 + type-fest: 2.19.0 + unique-string: 3.0.0 dev: true /test-exclude@6.0.0: @@ -7864,12 +7887,13 @@ packages: engines: {node: '>=0.10'} dev: true - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + /text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} dev: true - /throttleit@1.0.0: - resolution: {integrity: sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==} + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true /through2@2.0.5: @@ -7882,32 +7906,30 @@ packages: /through2@4.0.2: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: - readable-stream: 3.6.1 + readable-stream: 3.6.2 dev: true /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} dev: true - /tinybench@2.4.0: - resolution: {integrity: sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==} + /tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + engines: {node: '>=14.0.0'} dev: true - /tinypool@0.3.1: - resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} + /tinyspy@2.1.1: + resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} engines: {node: '>=14.0.0'} dev: true - /tinyspy@1.1.1: - resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} - engines: {node: '>=14.0.0'} + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} dev: true /tmp@0.0.33: @@ -7915,14 +7937,6 @@ packages: engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 - dev: true - - /tmp@0.2.1: - resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} - engines: {node: '>=8.17.0'} - dependencies: - rimraf: 3.0.2 - dev: true /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} @@ -7933,18 +7947,14 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true - /tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} - dependencies: - psl: 1.9.0 - punycode: 2.3.0 + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} dev: true - /tough-cookie@4.1.2: - resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'} dependencies: psl: 1.9.0 @@ -7957,9 +7967,9 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} + /tr46@4.1.1: + resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} + engines: {node: '>=14'} dependencies: punycode: 2.3.0 dev: true @@ -7977,7 +7987,47 @@ packages: engines: {node: '>=8'} dev: true - /ts-node@10.9.1(@types/node@16.18.14)(typescript@4.7.4): + /ts-api-utils@1.0.3(typescript@5.2.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: true + + /ts-node@10.9.1(@types/node@20.4.7)(typescript@5.2.2): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.4.7 + acorn: 8.10.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.2.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /ts-node@10.9.1(@types/node@20.6.0)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -7995,15 +8045,15 @@ packages: '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.3 - '@types/node': 16.18.14 - acorn: 8.8.2 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.6.0 + acorn: 8.10.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.7.4 + typescript: 5.2.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -8021,32 +8071,12 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - - /tslib@2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - dev: true - - /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.7.4 - dev: true - - /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - dependencies: - safe-buffer: 5.2.1 + /tslib@2.1.0: + resolution: {integrity: sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==} dev: true - /tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - dev: true + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} /twemoji-parser@14.0.0: resolution: {integrity: sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA==} @@ -8061,13 +8091,6 @@ packages: universalify: 0.1.2 dev: false - /type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - dev: true - /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -8080,11 +8103,6 @@ packages: engines: {node: '>=4'} dev: true - /type-fest@0.16.0: - resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} - engines: {node: '>=10'} - dev: true - /type-fest@0.18.1: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} engines: {node: '>=10'} @@ -8093,6 +8111,7 @@ packages: /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + dev: true /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} @@ -8117,6 +8136,45 @@ packages: /type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} + + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + dev: true + + /type-fest@4.3.1: + resolution: {integrity: sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==} + engines: {node: '>=16'} + dev: true + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 dev: true /typed-array-length@1.0.4: @@ -8124,16 +8182,16 @@ packages: dependencies: call-bind: 1.0.2 for-each: 0.3.3 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true - /typescript@4.7.4: - resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} - engines: {node: '>=4.2.0'} + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} hasBin: true - /ufo@1.1.1: - resolution: {integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==} + /ufo@1.3.0: + resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} dev: true /uglify-js@3.17.4: @@ -8153,11 +8211,20 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} + /unconfig@0.3.10: + resolution: {integrity: sha512-tj317lhIq2iZF/NXrJnU1t2UaGUKKz1eL1sK2t63Oq66V9BxqvZV12m55fp/fpQJ+DDmVlLgo7cnLVOZkhlO/A==} + dependencies: + '@antfu/utils': 0.7.6 + defu: 6.1.2 + jiti: 1.20.0 + mlly: 1.4.2 + dev: true + + /unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} dependencies: - crypto-random-string: 2.0.0 + crypto-random-string: 4.0.0 dev: true /universal-user-agent@6.0.0: @@ -8178,18 +8245,57 @@ packages: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} + /unocss@0.55.7(postcss@8.4.29)(rollup@3.29.1)(vite@4.4.9): + resolution: {integrity: sha512-3W9P7vj2EhSk/4oPCHBS0VgrwSf5zZL6Az1/XARVOpBnRJtCM2szFInYxHkMgt9pkZTsW8SFCuk/g+QIJ6A8tg==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.55.7 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + dependencies: + '@unocss/astro': 0.55.7(rollup@3.29.1)(vite@4.4.9) + '@unocss/cli': 0.55.7(rollup@3.29.1) + '@unocss/core': 0.55.7 + '@unocss/extractor-arbitrary-variants': 0.55.7 + '@unocss/postcss': 0.55.7(postcss@8.4.29) + '@unocss/preset-attributify': 0.55.7 + '@unocss/preset-icons': 0.55.7 + '@unocss/preset-mini': 0.55.7 + '@unocss/preset-tagify': 0.55.7 + '@unocss/preset-typography': 0.55.7 + '@unocss/preset-uno': 0.55.7 + '@unocss/preset-web-fonts': 0.55.7 + '@unocss/preset-wind': 0.55.7 + '@unocss/reset': 0.55.7 + '@unocss/transformer-attributify-jsx': 0.55.7 + '@unocss/transformer-attributify-jsx-babel': 0.55.7 + '@unocss/transformer-compile-class': 0.55.7 + '@unocss/transformer-directives': 0.55.7 + '@unocss/transformer-variant-group': 0.55.7 + '@unocss/vite': 0.55.7(rollup@3.29.1)(vite@4.4.9) + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + dev: true + /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} dev: true - /update-browserslist-db@1.0.10(browserslist@4.21.5): - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + /update-browserslist-db@1.0.11(browserslist@4.21.10): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.5 + browserslist: 4.21.10 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -8200,8 +8306,9 @@ packages: punycode: 2.3.0 dev: true - /url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + /url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true /url-parse@1.5.10: @@ -8225,8 +8332,8 @@ packages: hasBin: true dev: true - /uuid@9.0.0: - resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true dev: true @@ -8238,7 +8345,7 @@ packages: resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.17 + '@jridgewell/trace-mapping': 0.3.19 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.9.0 dev: true @@ -8246,42 +8353,34 @@ packages: /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: - spdx-correct: 3.1.1 + spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 dev: true - /vdirs@0.1.8(vue@3.2.47): + /vdirs@0.1.8(vue@3.3.4): resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==} peerDependencies: vue: ^3.0.11 dependencies: evtd: 0.2.4 - vue: 3.2.47 + vue: 3.3.4 dev: false - /verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} - dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.3.0 - dev: true - - /vite-node@0.29.2(@types/node@16.18.14)(sass@1.58.3): - resolution: {integrity: sha512-5oe1z6wzI3gkvc4yOBbDBbgpiWiApvuN4P55E8OI131JGrSuo4X3SOZrNmZYo4R8Zkze/dhi572blX0zc+6SdA==} - engines: {node: '>=v14.16.0'} + /vite-node@0.34.4(@types/node@20.6.0)(sass@1.67.0): + resolution: {integrity: sha512-ho8HtiLc+nsmbwZMw8SlghESEE3KxJNp04F/jPUCLVvaURwt0d+r9LxEqCX5hvrrOQ0GSyxbYr5ZfRYhQ0yVKQ==} + engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4(supports-color@8.1.1) - mlly: 1.1.1 - pathe: 1.1.0 + debug: 4.3.4 + mlly: 1.4.2 + pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.1.4(@types/node@16.18.14)(sass@1.58.3) + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) transitivePeerDependencies: - '@types/node' - less + - lightningcss - sass - stylus - sugarss @@ -8289,87 +8388,49 @@ packages: - terser dev: true - /vite-plugin-static-copy@0.13.1(vite@4.1.4): - resolution: {integrity: sha512-KwIcGBT1aOxSq+laK3VmSngoEa3HXWj/6ZEXdv+y59eZ7p/XSuPahoDo+CfYW22JjTdnstgeKWiX+78KNgDu6g==} + /vite-plugin-static-copy@0.17.0(vite@4.4.9): + resolution: {integrity: sha512-2HpNbHfDt8SDy393AGXh9llHkc8FJMQkI8s3T5WsH3SWLMO+f5cFIyPErl4yGKU9Uh3Vaqsd4lHZYTf042fQ2A==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^3.0.0 || ^4.0.0 dependencies: chokidar: 3.5.3 - fast-glob: 3.2.12 - fs-extra: 11.1.0 + fast-glob: 3.3.1 + fs-extra: 11.1.1 picocolors: 1.0.0 - vite: 4.1.4(@types/node@16.18.14)(sass@1.58.3) + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) dev: true - /vite-plugin-top-level-await@1.3.0(rollup@3.18.0)(vite@4.1.4): - resolution: {integrity: sha512-owIfsgWudMlQODWJSwp0sQB3AZZu3qsMygeBjZy8CyjEk6OB9AGd8lHqmgwrcEqgvy9N58lYxSBLVk3/4ejEiA==} + /vite-plugin-top-level-await@1.3.1(rollup@3.29.1)(vite@4.4.9): + resolution: {integrity: sha512-55M1h4NAwkrpxPNOJIBzKZFihqLUzIgnElLSmPNPMR2Fn9+JHKaNg3sVX1Fq+VgvuBksQYxiD3OnwQAUu7kaPQ==} peerDependencies: vite: '>=2.8' dependencies: - '@rollup/plugin-virtual': 3.0.1(rollup@3.18.0) - '@swc/core': 1.3.37 - uuid: 9.0.0 - vite: 4.1.4(@types/node@16.18.14)(sass@1.58.3) + '@rollup/plugin-virtual': 3.0.1(rollup@3.29.1) + '@swc/core': 1.3.85 + uuid: 9.0.1 + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) transitivePeerDependencies: + - '@swc/helpers' - rollup dev: true - /vite-plugin-wasm@3.2.1(@types/node@16.18.14)(sass@1.58.3): - resolution: {integrity: sha512-38TPuRUHC+s62JFhZxWtNStujhsav/qFEspDa/+huGCUvn0SbXdXexnxQ+UgIs2pmBnd/xd70fm1R9jW/0qALA==} - dependencies: - vite: 3.2.5(@types/node@16.18.14)(sass@1.58.3) - transitivePeerDependencies: - - '@types/node' - - less - - sass - - stylus - - sugarss - - terser - dev: true - - /vite@3.2.5(@types/node@16.18.14)(sass@1.58.3): - resolution: {integrity: sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true + /vite-plugin-wasm@3.2.2(vite@4.4.9): + resolution: {integrity: sha512-cdbBUNR850AEoMd5nvLmnyeq63CSfoP1ctD/L2vLk/5+wsgAPlAVAzUK5nGKWO/jtehNlrSSHLteN+gFQw7VOA==} peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true + vite: ^2 || ^3 || ^4 dependencies: - '@types/node': 16.18.14 - esbuild: 0.15.18 - postcss: 8.4.21 - resolve: 1.22.1 - rollup: 2.79.1 - sass: 1.58.3 - optionalDependencies: - fsevents: 2.3.2 + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) dev: true - /vite@4.1.4(@types/node@16.18.14)(sass@1.58.3): - resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} + /vite@4.4.9(@types/node@20.6.0)(sass@1.67.0): + resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: '@types/node': '>= 14' less: '*' + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -8379,6 +8440,8 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -8388,17 +8451,16 @@ packages: terser: optional: true dependencies: - '@types/node': 16.18.14 - esbuild: 0.16.17 - postcss: 8.4.21 - resolve: 1.22.1 - rollup: 3.18.0 - sass: 1.58.3 + '@types/node': 20.6.0 + esbuild: 0.18.20 + postcss: 8.4.29 + rollup: 3.29.1 + sass: 1.67.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /vitefu@0.2.4(vite@4.1.4): + /vitefu@0.2.4(vite@4.4.9): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} peerDependencies: vite: ^3.0.0 || ^4.0.0 @@ -8406,12 +8468,12 @@ packages: vite: optional: true dependencies: - vite: 4.1.4(@types/node@16.18.14)(sass@1.58.3) + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) dev: true - /vitest@0.29.2(jsdom@21.1.0)(sass@1.58.3): - resolution: {integrity: sha512-ydK9IGbAvoY8wkg29DQ4ivcVviCaUi3ivuPKfZEVddMTenFHUfB8EEDXQV8+RasEk1ACFLgMUqAaDuQ/Nk+mQA==} - engines: {node: '>=v14.16.0'} + /vitest@0.34.4(jsdom@22.1.0)(sass@1.67.0): + resolution: {integrity: sha512-SE/laOsB6995QlbSE6BtkpXDeVNLJc1u2LHRG/OpnN4RsRzM3GQm4nm3PQCK5OBtrsUqnhzLdnT7se3aeNGdlw==} + engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: '@edge-runtime/vm': '*' @@ -8419,6 +8481,9 @@ packages: '@vitest/ui': '*' happy-dom: '*' jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -8430,34 +8495,41 @@ packages: optional: true jsdom: optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true dependencies: - '@types/chai': 4.3.4 + '@types/chai': 4.3.6 '@types/chai-subset': 1.3.3 - '@types/node': 16.18.14 - '@vitest/expect': 0.29.2 - '@vitest/runner': 0.29.2 - '@vitest/spy': 0.29.2 - '@vitest/utils': 0.29.2 - acorn: 8.8.2 + '@types/node': 20.6.0 + '@vitest/expect': 0.34.4 + '@vitest/runner': 0.34.4 + '@vitest/snapshot': 0.34.4 + '@vitest/spy': 0.34.4 + '@vitest/utils': 0.34.4 + acorn: 8.10.0 acorn-walk: 8.2.0 cac: 6.7.14 - chai: 4.3.7 - debug: 4.3.4(supports-color@8.1.1) - jsdom: 21.1.0 + chai: 4.3.8 + debug: 4.3.4 + jsdom: 22.1.0 local-pkg: 0.4.3 - pathe: 1.1.0 + magic-string: 0.30.3 + pathe: 1.1.1 picocolors: 1.0.0 - source-map: 0.6.1 - std-env: 3.3.2 - strip-literal: 1.0.1 - tinybench: 2.4.0 - tinypool: 0.3.1 - tinyspy: 1.1.1 - vite: 4.1.4(@types/node@16.18.14)(sass@1.58.3) - vite-node: 0.29.2(@types/node@16.18.14)(sass@1.58.3) + std-env: 3.4.3 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.7.0 + vite: 4.4.9(@types/node@20.6.0)(sass@1.67.0) + vite-node: 0.34.4(@types/node@20.6.0)(sass@1.67.0) why-is-node-running: 2.2.2 transitivePeerDependencies: - less + - lightningcss - sass - stylus - sugarss @@ -8465,17 +8537,21 @@ packages: - terser dev: true - /vooks@0.2.12(vue@3.2.47): + /vooks@0.2.12(vue@3.3.4): resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==} peerDependencies: vue: ^3.0.0 dependencies: evtd: 0.2.4 - vue: 3.2.47 + vue: 3.3.4 dev: false - /vue-demi@0.13.11(vue@3.2.47): - resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} + /vue-component-type-helpers@1.8.4: + resolution: {integrity: sha512-6bnLkn8O0JJyiFSIF0EfCogzeqNXpnjJ0vW/SZzNHfe6sPx30lTtTXlE5TFs2qhJlAtDFybStVNpL73cPe3OMQ==} + dev: true + + /vue-demi@0.14.6(vue@3.3.4): + resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} engines: {node: '>=12'} hasBin: true requiresBuild: true @@ -8486,23 +8562,23 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.47 + vue: 3.3.4 dev: false - /vue-eslint-parser@9.1.0(eslint@8.35.0): - resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} + /vue-eslint-parser@9.3.1(eslint@8.49.0): + resolution: {integrity: sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.35.0 - eslint-scope: 7.1.1 - eslint-visitor-keys: 3.3.0 - espree: 9.4.1 + debug: 4.3.4 + eslint: 8.49.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 esquery: 1.5.0 lodash: 4.17.21 - semver: 7.3.8 + semver: 7.5.4 transitivePeerDependencies: - supports-color dev: true @@ -8514,52 +8590,53 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.2.0(typescript@4.7.4): - resolution: {integrity: sha512-rIlzqdrhyPYyLG9zxsVRa+JEseeS9s8F2BbVVVWRRsTZvJO2BbhLEb2HW3MY+DFma0378tnIqs+vfTzbcQtRFw==} + /vue-tsc@1.8.11(typescript@5.2.2): + resolution: {integrity: sha512-BzfiMdPqDHBlysx4g26NkfVHSQwGD/lTRausmxN9sFyjXz34OWfsbkh0YsVkX84Hu65In1fFlxHiG39Tr4Vojg==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@volar/vue-language-core': 1.2.0 - '@volar/vue-typescript': 1.2.0 - typescript: 4.7.4 + '@vue/language-core': 1.8.11(typescript@5.2.2) + '@vue/typescript': 1.8.11(typescript@5.2.2) + semver: 7.5.4 + typescript: 5.2.2 dev: true - /vue3-radial-progress@1.1.1(vue@3.2.47): + /vue3-radial-progress@1.1.1(vue@3.3.4): resolution: {integrity: sha512-2S7N2njsH9ud2+lfZxDGz+JRRk1NV+5apoSJp+2tdM8TnZrwFcrAVMHti+XhfnNgbHKF3M2qYZm7jDQqbzW4cQ==} engines: {node: '>=12'} peerDependencies: vue: ^3.0.5 dependencies: - vue: 3.2.47 + vue: 3.3.4 dev: false - /vue@3.2.47: - resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==} + /vue@3.3.4: + resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} dependencies: - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-sfc': 3.2.47 - '@vue/runtime-dom': 3.2.47 - '@vue/server-renderer': 3.2.47(vue@3.2.47) - '@vue/shared': 3.2.47 + '@vue/compiler-dom': 3.3.4 + '@vue/compiler-sfc': 3.3.4 + '@vue/runtime-dom': 3.3.4 + '@vue/server-renderer': 3.3.4(vue@3.3.4) + '@vue/shared': 3.3.4 - /vueuc@0.4.51(vue@3.2.47): + /vueuc@0.4.51(vue@3.3.4): resolution: {integrity: sha512-pLiMChM4f+W8czlIClGvGBYo656lc2Y0/mXFSCydcSmnCR1izlKPGMgiYBGjbY9FDkFG8a2HEVz7t0DNzBWbDw==} peerDependencies: vue: ^3.0.11 dependencies: - '@css-render/vue3-ssr': 0.15.12(vue@3.2.47) + '@css-render/vue3-ssr': 0.15.12(vue@3.3.4) '@juggle/resize-observer': 3.4.0 css-render: 0.15.12 evtd: 0.2.4 seemly: 0.3.6 - vdirs: 0.1.8(vue@3.2.47) - vooks: 0.2.12(vue@3.2.47) - vue: 3.2.47 + vdirs: 0.1.8(vue@3.3.4) + vooks: 0.2.12(vue@3.3.4) + vue: 3.3.4 dev: false - /w3c-keyname@2.2.6: - resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} + /w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} /w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} @@ -8574,10 +8651,10 @@ packages: hasBin: true dependencies: axios: 0.27.2(debug@4.3.4) - joi: 17.8.3 + joi: 17.10.1 lodash: 4.17.21 minimist: 1.2.8 - rxjs: 7.8.0 + rxjs: 7.8.1 transitivePeerDependencies: - debug dev: true @@ -8586,6 +8663,7 @@ packages: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 + dev: true /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -8608,11 +8686,11 @@ packages: engines: {node: '>=12'} dev: true - /whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} + /whatwg-url@12.0.1: + resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} + engines: {node: '>=14'} dependencies: - tr46: 3.0.0 + tr46: 4.1.1 webidl-conversions: 7.0.0 dev: true @@ -8633,8 +8711,8 @@ packages: is-symbol: 1.0.4 dev: true - /which-typed-array@1.1.9: - resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 @@ -8642,7 +8720,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 dev: true /which@1.3.1: @@ -8658,7 +8735,6 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: true /why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} @@ -8669,15 +8745,15 @@ packages: stackback: 0.0.2 dev: true - /widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} + /widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} dependencies: - string-width: 4.2.3 + string-width: 5.1.2 dev: false - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} dev: true @@ -8685,15 +8761,6 @@ packages: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -8701,13 +8768,21 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true - /ws@8.12.1: - resolution: {integrity: sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==} + /ws@8.14.1: + resolution: {integrity: sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -8738,23 +8813,23 @@ packages: engines: {node: '>=10'} dev: true - /yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - dev: true - /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - /yaml@2.2.1: - resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==} + /yaml@2.3.1: + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} engines: {node: '>= 14'} dev: true + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + dev: false + /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -8765,21 +8840,8 @@ packages: engines: {node: '>=12'} dev: true - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: true - - /yargs@17.7.1: - resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} dependencies: cliui: 8.0.1 @@ -8791,13 +8853,6 @@ packages: yargs-parser: 21.1.1 dev: true - /yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - dependencies: - buffer-crc32: 0.2.13 - fd-slicer: 1.1.0 - dev: true - /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -8812,3 +8867,33 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} dev: true + + github.com/lishid/cm-language/1aadcc247f20ccfda76424a9f853dbb4ee203fdc: + resolution: {tarball: https://codeload.github.com/lishid/cm-language/tar.gz/1aadcc247f20ccfda76424a9f853dbb4ee203fdc} + name: '@codemirror/language' + version: 6.6.0 + prepare: true + requiresBuild: true + dependencies: + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.19.0 + '@lezer/common': 1.0.4 + '@lezer/highlight': 1.1.6 + '@lezer/lr': 1.3.10 + style-mod: 4.1.0 + dev: true + + github.com/obsidianmd/obsidian-api/249eb773347588f4e9fec7c600e1904cd9240fcb(@codemirror/state@6.2.1)(@codemirror/view@6.19.0): + resolution: {tarball: https://codeload.github.com/obsidianmd/obsidian-api/tar.gz/249eb773347588f4e9fec7c600e1904cd9240fcb} + id: github.com/obsidianmd/obsidian-api/249eb773347588f4e9fec7c600e1904cd9240fcb + name: obsidian + version: 1.4.11 + peerDependencies: + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + dependencies: + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.19.0 + '@types/codemirror': 5.60.8 + moment: 2.29.4 + dev: true diff --git a/src/Replacer.ts b/src/Replacer.ts index 35e6474..e442ca0 100644 --- a/src/Replacer.ts +++ b/src/Replacer.ts @@ -1,6 +1,6 @@ // https://github.com/joethei/obsidian-plantuml import type { MarkdownPostProcessorContext } from 'obsidian'; -import type AwesomeBrainManagerPlugin from './main'; +import type AwesomeBrainManagerPlugin from '@/main'; export default class Replacer { plugin: AwesomeBrainManagerPlugin; diff --git a/src/__test__/file-access.spec.ts b/src/__test__/file-access.spec.ts index c0281ed..0d5e12e 100644 --- a/src/__test__/file-access.spec.ts +++ b/src/__test__/file-access.spec.ts @@ -1,6 +1,6 @@ import chalk from 'chalk'; import { beforeAll, describe, expect, it } from 'vitest'; -import * as sut from '../file-access'; +import * as sut from '@/file-access'; describe('file access', () => { beforeAll(() => { diff --git a/src/__test__/i18n.spec.ts b/src/__test__/i18n.spec.ts index d85d047..136bf87 100644 --- a/src/__test__/i18n.spec.ts +++ b/src/__test__/i18n.spec.ts @@ -1,8 +1,8 @@ import { beforeAll, describe, expect, it } from 'vitest'; import chalk from 'chalk'; -import enPack from '../locale/en'; -import zhPack from '../locale/zh-cn'; +import enPack from '@/locale/en'; +import zhPack from '@/locale/zh-cn'; let languagePack; describe('i18n', () => { @@ -16,7 +16,7 @@ describe('i18n', () => { }); it('should return selected lang', async () => { - languagePack = (await import('../i18n')).default; + languagePack = (await import('@/i18n')).default; console.log(languagePack); expect(languagePack['__FOR_TEST'].exist.child).eq(zhPack['__FOR_TEST'].exist.child); }); diff --git a/src/__test__/utils/common.spec.ts b/src/__test__/utils/common.spec.ts index 00a6272..84ef3fe 100644 --- a/src/__test__/utils/common.spec.ts +++ b/src/__test__/utils/common.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest'; -import { deepClone, deepCloneArr, deepCloneObj } from '../../utils/common'; +import { deepClone, deepCloneArr, deepCloneObj } from '@/utils/common'; const obj1 = { name: 'John', diff --git a/src/__test__/waiter.spec.ts b/src/__test__/waiter.spec.ts index 99405e6..fc463ae 100644 --- a/src/__test__/waiter.spec.ts +++ b/src/__test__/waiter.spec.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; import chalk from 'chalk'; -import * as sut from '../waiter'; +import * as sut from '@/waiter'; describe('Waiter', () => { it('should print the food on the order', () => { diff --git a/src/__test__/weather.spec.ts b/src/__test__/weather.spec.ts new file mode 100644 index 0000000..73ed123 --- /dev/null +++ b/src/__test__/weather.spec.ts @@ -0,0 +1,34 @@ +import { beforeAll, describe, expect, it } from 'vitest'; +import { getAir, getCurrentLocation, getWeather, getWeatherDescription, getWttrWeather } from '@/api/weather'; + +let locationId = ''; +const apiKey = process.env.VITE_QWEATHER_APIKEY; +const amapKey = process.env.VITE_AMAP_APIKEY; +let cityName = ''; +beforeAll(async () => { + const currentLocationResponse = await getCurrentLocation(apiKey, amapKey); + const location = currentLocationResponse?.location[0]; + if (location) { + locationId = location.id; + cityName = location.name; + } else { + locationId = '101010100'; + } +}); +describe('weather', () => { + it.skip('getWttrWeather', async () => { + const weather = await getWttrWeather(''); + expect(weather).not.null; + }); + + // 本地测试即可,流水线中不提供apikey等信息 + it.skip('getWeather', async () => { + await Promise.all([getWeather({ apiKey, amapKey }), getAir(locationId, apiKey)]).then(([weather, air]) => { + if (weather?.daily[0] && air) { + const desc = cityName + getWeatherDescription(weather?.daily[0], air?.now).desc; + expect(desc).not.null; + return desc; + } + }); + }); +}); diff --git a/src/api/index.ts b/src/api/index.ts index 69e4812..d39e1d1 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -1,6 +1,6 @@ -import { request } from '../utils/request'; -import LoggerUtil from '../utils/logger'; -import { SETTINGS } from '../settings'; +import { LoggerUtil } from '@/utils/logger'; +import { SETTINGS } from '@/settings'; +import { request } from '@/utils/request'; export type ServiceName = 'Bing' | 'OpenAI' | 'ChatGPT' | 'GenImageWithChatGPT' | 'Baidu' | 'Google'; export const ServiceNames = { @@ -21,7 +21,7 @@ export const chatWith = async (type: string, keyword: string) => { return res; }; -export const notifyNtfy = (msg: any) => { +export const notifyNtfy = (msg?: string | ArrayBuffer) => { const headers = {}; if (SETTINGS.ntfyToken.value) { headers['Authorization'] = `Basic ${SETTINGS.ntfyToken.value}`; diff --git a/src/api/tasks.ts b/src/api/tasks.ts new file mode 100644 index 0000000..e37203c --- /dev/null +++ b/src/api/tasks.ts @@ -0,0 +1,13 @@ +// https://obsidian-tasks-group.github.io/obsidian-tasks/advanced/api/ +/** + * Tasks API v1 interface + */ +export interface TasksApiV1 { + /** + * Opens the Tasks UI and returns the Markdown string for the task entered. + * + * @returns {Promise} A promise that contains the Markdown string for the task entered or + * an empty string, if data entry was cancelled. + */ + createTaskLineModal(): Promise; +} diff --git a/src/api/weather.ts b/src/api/weather.ts new file mode 100644 index 0000000..1d47cad --- /dev/null +++ b/src/api/weather.ts @@ -0,0 +1,403 @@ +/** + * 天气预报接口返回数据的类型定义 + */ +interface WeatherDailyResponse { + /** 预报日期,格式为 YYYY-MM-DD */ + fxDate: string; + + /** 日出时间,以 24 小时制表示,在高纬度地区可能为空 */ + sunrise: string; + + /** 日落时间,以 24 小时制表示,在高纬度地区可能为空 */ + sunset: string; + + /** 当天月升时间,以 24 小时制表示,可能为空 */ + moonrise: string; + + /** 当天月落时间,以 24 小时制表示,可能为空 */ + moonset: string; + + /** 月相名称,如新月、满月等 */ + moonPhase: string; + + /** 月相图标代码,图标可通过天气状况和图标下载 */ + moonPhaseIcon: string; + + /** 预报当天最高温度,单位为摄氏度 */ + tempMax: number; + + /** 预报当天最低温度,单位为摄氏度 */ + tempMin: number; + + /** 预报白天天气状况的图标代码,图标可通过天气状况和图标下载 */ + iconDay: string; + + /** 预报白天天气状况文字描述,包括阴晴雨雪等天气状态的描述 */ + textDay: string; + + /** 预报夜间天气状况的图标代码,图标可通过天气状况和图标下载 */ + iconNight: string; + + /** 预报晚间天气状况文字描述,包括阴晴雨雪等天气状态的描述 */ + textNight: string; + + /** 预报白天风向360角度,取值为 0 - 360 */ + wind360Day: number; + + /** 预报白天风向,如北风、东北风等 */ + windDirDay: string; + + /** 预报白天风力等级,如微风、强风等 */ + windScaleDay: string; + + /** 预报白天风速,单位为公里/小时 */ + windSpeedDay: number; + + /** 预报夜间风向360角度,取值为 0 - 360 */ + wind360Night: number; + + /** 预报夜间当天风向,如北风、东北风等 */ + windDirNight: string; + + /** 预报夜间风力等级,如微风、强风等 */ + windScaleNight: string; + + /** 预报夜间风速,单位为公里/小时 */ + windSpeedNight: number; + + /** 预报当天总降水量,默认单位:毫米 */ + precip: number; + + /** 紫外线强度指数,取值为 0 - 11+,其中 11+ 表示极高 */ + uvIndex: number; + + /** 相对湿度,百分比数值,取值为 0 - 100 */ + humidity: number; + + /** 大气压强,默认单位:百帕 */ + pressure: number; + + /** 能见度,默认单位:公里 */ + vis: number; + + /** 云量,百分比数值,取值为 0 - 100,可能为空 */ + cloud: number; +} + +interface QWeatherBaseResponse { + code: string; // API状态码 + updateTime: string; // 最近更新时间 + fxLink: string; // 当前数据的响应式页面,方便嵌入网站或应用 + refer: { + sources: string[]; // 原始数据来源,可能为空 + license: string[]; // 数据许可或版权声明,可能为空 + }; +} + +interface CityLocation { + id: string; + name: string; + adm2: string; + adm1: string; + country: string; + tz: string; + utcOffset: string; + lat: string; + lon: string; +} + +interface CityLocationResponse { + code: string; + location: CityLocation[]; + refer: { + sources: string[]; + license: string[]; + }; +} + +interface CityLocationAmapResponse { + status: string; + info: string; + infocode: string; + province: string; + city: string; + adcode: string; + rectangle: string; +} + +/** + * 状态码及其含义请参考API文档 + */ +interface WeatherResponse extends QWeatherBaseResponse { + daily: WeatherDailyResponse[]; // 天气预报数据 +} + +interface AirResponse { + pubTime: string; // 数据发布时间 + aqi: string; // 空气质量指数 + level: string; // 空气质量指数等级 + category: string; // 空气质量指数级别 + primary: string; // 主要污染物 + pm10: string; // pm10 + pm2p5: string; // pm2.5 + no2: string; // 二氧化氮 + so2: string; // 二氧化硫 + co: string; // 一氧化碳 + o3: string; // 臭氧 +} + +// 空气质量监测站点数据 +interface AirStationResponse extends AirResponse { + name: string; // 监测站ID + id: string; // 监测站ID +} + +interface RealTimeAirResponse extends QWeatherBaseResponse { + now: AirResponse; + station: Array; +} + +/** + * 用于日记的天气数据 + */ +export interface WeatherResponseForJournal { + /** 风速 */ + windyspeed: number; + /** 风速描述 */ + windydesc: '微风习习' | '清风徐徐' | unknown; + /** 温度 */ + temp: number; + /** 预报当天最高温度,单位为摄氏度 */ + tempMax: number; + /** 预报当天最低温度,单位为摄氏度 */ + tempMin: number; + /** 天气描述 */ + text: string; + /** 天气图标 */ + icon: string; + /** 湿度 */ + humidity: number; + /** 能见度 */ + vis: number; + /** 云量 */ + cloud: number; + /** 紫外线强度指数 */ + uvIndex: number; + /** 月相名称 */ + moonPhase: string; + /** 月相图标代码,图标可通过天气状况和图标下载 */ + moonPhaseIcon: string; + /** 日出时间,在高纬度地区可能为空 */ + sunrise: string; + /** 日落时间,在高纬度地区可能为空 */ + sunset: string; + /** 空气质量指数级别 */ + category: string; + /** textDay */ + textDay: string; + /** obsidian描述 */ + desc: string; +} + +export function getWeatherDescription(weather, air) { + const response: WeatherResponseForJournal = { ...weather, ...air }; + response.windyspeed = Math.max(weather.windSpeedDay, weather.windSpeedNight); + if (response.windyspeed < 12) { + response.windydesc = '微风习习'; + } else if (response.windyspeed < 39) { + response.windydesc = '清风徐徐'; + } else { + response.windydesc = `有${weather.windDirDay}风出没,风力${weather.windScaleDay}级`; + } + const textDay = weather.textDay; + if (textDay.includes('雨')) { + response.textDay = '🌧' + textDay; + } else if (textDay.includes('云')) { + response.textDay = '⛅' + textDay; + } else if (textDay.includes('晴')) { + response.textDay = '🌞' + textDay; + } else if (textDay.includes('雪')) { + response.textDay = '❄' + textDay; + } else if (textDay.includes('阴')) { + response.textDay = '🌥' + textDay; + } else if (textDay.includes('风')) { + response.textDay = '🍃' + textDay; + } else if (textDay.includes('雷')) { + response.textDay = '⛈' + textDay; + } else if (textDay.includes('雾')) { + response.textDay = '🌫' + textDay; + } + switch (weather.moonPhase) { + case '新月': + response.moonPhaseIcon = '🌑'; + break; + case '峨眉月': + response.moonPhaseIcon = '🌒'; + break; + case '朔月': + response.moonPhaseIcon = '🌑'; + break; + case '娥眉月': + response.moonPhaseIcon = '🌒'; + break; + case '上弦月': + response.moonPhaseIcon = '🌓'; + break; + case '盈凸月': + response.moonPhaseIcon = '🌔'; + break; + case '满月': + response.moonPhaseIcon = '🌕'; + break; + case '亏凸月': + response.moonPhaseIcon = '🌖'; + break; + case '下弦月': + response.moonPhaseIcon = '🌗'; + break; + default: + response.moonPhaseIcon = '🌘'; + } + response.desc = `${response.textDay}, ${response.tempMin}~${response.tempMax}℃ ${response?.category} ${response.windydesc}${response.moonPhaseIcon}`; + return response; +} + +//wttr 天气入口 +export async function getWttrWeather(city: string) { + let result = await fetch('https://wttr.in/' + city + '?format=%l:+%c+%t+%w').then(async res => await res.text()); + result = result.replace(/:/g, '').replace(/\+/g, '').replace(', China', ''); + return result; +} + +async function getWeatherDaily(latitude: number, longitude: number, apiKey): Promise { + try { + const url = `https://devapi.qweather.com/v7/weather/3d?location=${longitude},${latitude}&key=${apiKey}`; + const response = await fetch(url, { + method: 'GET', + }); + const data = await response.json(); + if (data.code != '200') { + return null; + } + const weather = data as WeatherResponse; + return weather; + } catch (error) { + console.error(error); + throw error; + } +} + +export async function getWeather({ apiKey, amapKey }): Promise { + try { + const cityLocationResponse = await getCurrentLocation(apiKey, amapKey); + if (cityLocationResponse === null) { + return null; + } + const cityLocation = cityLocationResponse.location[0]; + const weather = await getWeatherDaily(parseFloat(cityLocation.lat), parseFloat(cityLocation.lon), apiKey); + return weather; + } catch (error) { + console.error(error); + throw error; + } +} + +export async function getCurrentLocation(apiKey, amapKey): Promise { + return new Promise((resolve, reject) => { + getPosition(amapKey) + .then(async position => { + const location = position!.cityCode; + const res = await searchCity(location, apiKey); + resolve(res); + }) + .catch(error => { + console.error(error); + reject(error); + }); + }); +} + +/** + * 获取空气质量信息 + * @param locationId 地理位置ID + * @param apiKey API Key + * @returns + */ +export async function getAir(locationId, apiKey): Promise { + const weatherUrl = `https://devapi.qweather.com/v7/air/now?location=${locationId}&key=${apiKey}`; + const wUrl = new URL(weatherUrl); + const res = await fetch(wUrl.href, { + method: 'GET', + }); + + const data = await res.json(); + if (data.code != '200') { + return null; + } + const air = data as RealTimeAirResponse; + return air; +} + +async function getPosition(amapKey, ip = '') { + let url = `https://restapi.amap.com/v3/ip?key=${amapKey}`; + if (ip) { + url += `&ip=${ip}`; + } + const sUrl = new URL(url); + const res = await fetch(sUrl.href, { + method: 'GET', + }); + const data = (await res.json()) as CityLocationAmapResponse; + if (data.status === '1') { + return { + city: data.city, + cityCode: data.adcode, + }; + } else { + return null; + } +} +/** + * Retrieves the city information based on the given location. + * + * @param {string} location - The location to search for. + * @param {string} apiKey - The API key for accessing the Geo API. + * @return {Promise} The city information if found, otherwise null. + */ +async function searchCity(location, apiKey) { + const searchUrl = `https://geoapi.qweather.com/v2/city/lookup?location=${location}&key=${apiKey}&number=1`; + const sUrl = new URL(searchUrl); + const res = await fetch(sUrl.href, { + method: 'GET', + }); + const data = (await res.json()) as CityLocationResponse; + if (data.code == '200') { + return data; + } else { + return null; + } +} + +export async function weatherDesc({ apiKey, amapKey, type }) { + let locationId = ''; + let cityName = ''; + const currentLocationResponse = await getCurrentLocation(apiKey, amapKey); + const location = currentLocationResponse?.location[0]; + if (location) { + locationId = location.id; + cityName = location.name; + } else { + locationId = '101010100'; + } + if (type === 'obsidian') { + return await Promise.all([getWeather({ apiKey, amapKey }), getAir(locationId, apiKey)]).then( + ([weather, air]) => { + if (weather?.daily[0] && air) { + const desc = cityName + getWeatherDescription(weather?.daily[0], air?.now).desc; + return desc; + } + }, + ); + } + return ''; +} diff --git a/src/bin/order.bin.ts b/src/bin/order.bin.ts index 3148507..1a935b9 100644 --- a/src/bin/order.bin.ts +++ b/src/bin/order.bin.ts @@ -1,8 +1,8 @@ #!/usr/bin/env node import { Command } from 'commander'; import * as packgeJSON from '../../package.json'; -import { writeFile } from '../file-access'; -import { placeOrder } from '../waiter'; +import { writeFile } from '@/file-access'; +import { placeOrder } from '@/waiter'; const program = new Command(); diff --git a/src/data.ts b/src/data.ts index c6ea601..d8ba352 100644 --- a/src/data.ts +++ b/src/data.ts @@ -1,6 +1,6 @@ // https://github.com/uphy/obsidian-reminder/blob/master/src/data.ts import type { Plugin } from 'obsidian'; -import { SETTINGS } from './settings'; +import { SETTINGS } from '@/settings'; export class PluginDataIO { changed = false; diff --git a/src/file-access.ts b/src/file-access.ts index 07333f7..1afe980 100644 --- a/src/file-access.ts +++ b/src/file-access.ts @@ -3,8 +3,6 @@ import jsonfile from 'jsonfile'; export function writeFile(fileName, order) { jsonfile.writeFile(fileName, order, function (err) { - err - ? console.log((chalk as any).red(err)) - : console.log((chalk as any).green('Order successfully written to file')); + err ? console.log(chalk.red(err)) : console.log(chalk.green('Order successfully written to file')); }); } diff --git a/src/i18n.ts b/src/i18n.ts index f17e1d4..ec0225b 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -1,6 +1,6 @@ -import { merge } from 'lodash'; -import en from './locale/en'; -import zh from './locale/zh-cn'; +import { merge } from 'lodash-es'; +import en from '@/locale/en'; +import zh from '@/locale/zh-cn'; class T { lang: string; diff --git a/src/locale/en.ts b/src/locale/en.ts index a88aff3..4d77d7d 100644 --- a/src/locale/en.ts +++ b/src/locale/en.ts @@ -20,6 +20,7 @@ export default { 'query-openai': 'Query openAI', 'open-emoji-picker': 'Open emoji picker', 'cut-line': 'Cut current line', + 'plan-pomodoro': 'Plan a pomodoro', }, setting: { cursorEffect: { @@ -51,6 +52,54 @@ export default { pomodoro: 'Pomodoro(beta feature)', tools: 'Tool', }, + defaultMode: { + name: 'Default Mode', + desc: 'Default mode for hover editor', + }, + autoPin: { + name: 'Auto Pin', + desc: 'Auto pin hover editor when opened', + }, + triggerDelay: { + name: 'Trigger Delay', + desc: 'Delay before hover editor is triggered', + }, + closeDelay: { + name: 'Close Delay', + desc: 'Delay before hover editor is closed', + }, + autoFocus: { + name: 'Auto Focus', + desc: 'Auto focus hover editor when opened', + }, + rollDown: { + name: 'Roll Down', + desc: 'Roll down hover editor when opened', + }, + snapToEdges: { + name: 'Snap To Edges', + desc: 'Snap hover editor to edges when opened', + }, + initialHeight: { + name: 'Initial Height', + desc: 'Initial height of hover editor', + }, + initialWidth: { + name: 'Initial Width', + desc: 'Initial width of hover editor', + }, + showViewHeader: { + name: 'Show View Header', + desc: 'Show view header', + }, + imageZoom: { + name: 'Image Zoom', + desc: 'Enable image zoom', + }, + hoverEmbeds: { + name: 'Hover Embeds', + desc: 'Enable hover embeds', + }, }, info: { effects: { @@ -94,6 +143,7 @@ export default { totalTime: 'Total time', noTimeLine: 'No timeline content', startTask: '🚀 Start', + repeatTask: '🔁 Repeat', stopTask: '⏸️ Stop', finishTask: '✅ Finish', cancelTask: '❎ Cancel', diff --git a/src/locale/zh-cn.ts b/src/locale/zh-cn.ts index 66d75d6..058b092 100644 --- a/src/locale/zh-cn.ts +++ b/src/locale/zh-cn.ts @@ -20,6 +20,7 @@ export default { 'query-openai': '询问OpenAI', 'open-emoji-picker': '输入表情', 'cut-line': '剪切当前行', + 'plan-pomodoro': '规划一个番茄钟', }, setting: { cursorEffect: { @@ -51,6 +52,54 @@ export default { pomodoro: '番茄钟(beta version)', tools: '工具', }, + defaultMode: { + name: '默认模式', + desc: '默认模式', + }, + autoPin: { + name: '自动固定', + desc: '自动固定悬浮编辑器', + }, + triggerDelay: { + name: '触发延迟', + desc: '触发延迟', + }, + closeDelay: { + name: '关闭延迟', + desc: '关闭延迟', + }, + autoFocus: { + name: '自动聚焦', + desc: '自动聚焦悬浮编辑器', + }, + rollDown: { + name: '滚动到底部', + desc: '滚动到底部', + }, + snapToEdges: { + name: '贴边', + desc: '贴边', + }, + initialHeight: { + name: '初始高度', + desc: '初始高度', + }, + initialWidth: { + name: '初始宽度', + desc: '初始宽度', + }, + showViewHeader: { + name: '显示标题栏', + desc: '显示标题栏', + }, + imageZoom: { + name: '图片缩放', + desc: '图片缩放', + }, + hoverEmbeds: { + name: '悬浮嵌入', + desc: '悬浮嵌入', + }, }, info: { effects: { @@ -94,6 +143,7 @@ export default { totalTime: '总专注时长', noTimeLine: '无时间线内容', startTask: '🚀 开始', + repeatTask: '🔁 重复', stopTask: '⏸️ 暂停', finishTask: '✅ 完成', cancelTask: '❎ 取消', diff --git a/src/main.scss b/src/main.scss index 6220069..d91bf7b 100644 --- a/src/main.scss +++ b/src/main.scss @@ -1,67 +1,4 @@ -// $font-stack: Helvetica, sans-serif; -// $primary-color: #333; - -// body { -// font: 100% $font-stack; -// color: $primary-color; -// } - -// .book { -// border: 1px solid var(--background-modifier-border); -// padding: 10px; -// } - -// .book__title { -// font-weight: 600; -// } - -// .book__author { -// color: var(--text-muted); -// } - -img.emoji { - height: 1em; - width: 1em; - margin: 0 0.05em 0 0.1em; - vertical-align: -0.1em; - display: inline-block; -} - -#emoji-modal { - padding: 0px; - min-width: unset; - width: unset !important; -} - -#emoji-modal>.modal-content { - margin-top: 0px; -} - -#emoji-modal>button { - background-color: unset; - border: 0px !important; - box-shadow: 0px !important; -} - -#emoji-modal>.modal-close-button { - visibility: hidden; -} - -/* UpdateModal.ts */ -.awesome-brain-manager-update-modal-container { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; -} - -.awesome-brain-manager-update-modal { - min-width: 35%; - max-height: 70%; -} - -.awesome-brain-manager-update-modal img { - width: 100%; - height: auto; - margin: 5px; -} +@import 'styles/hover-editor'; +@import 'styles/emoji-modal'; +@import 'styles/update-modal'; +// @import 'styles/theme'; diff --git a/src/main.ts b/src/main.ts index 1a86e39..f7f621e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,63 +1,72 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import 'virtual:uno.css'; +import { around } from 'monkey-around'; import { App, Editor, + type EphemeralState, + type MarkdownFileInfo, MarkdownPreviewRenderer, MarkdownView, Menu, Plugin, + type PluginManifest, TAbstractFile, TFile, Tasks, + type ViewState, + WorkspaceContainer, + WorkspaceItem, WorkspaceLeaf, WorkspaceWindow, debounce, normalizePath, } from 'obsidian'; -import type { MarkdownFileInfo, PluginManifest } from 'obsidian'; - import { ref } from 'vue'; import type { Database } from 'sql.js'; -import Replacer from './Replacer'; -import Process from './process/Process'; -import { checkInDefaultPath, checkInList, customSnippetPath } from './utils/constants'; -import { monkeyPatchConsole } from './obsidian-hack/obsidian-debug-mobile'; -import { EmojiPickerModal, ImageOriginModal, PomodoroReminderModal } from './ui/modal'; -import { POMODORO_HISTORY_VIEW, PomodoroHistoryView } from './ui/view/PomodoroHistoryView'; -import { BROWSER_VIEW, BrowserView } from './ui/view/BrowserView'; -import { codeEmoji } from './render/Emoji'; -import { toggleCursorEffects, toggleMouseClickEffects } from './render/CursorEffects'; -import LoggerUtil from './utils/logger'; -import { getAllFiles, getCleanTitle, getNotePath } from './utils/file'; -import { getWeather } from './utils/weather'; -import { getTagsFromTask, getTaskContentFromTask } from './utils/common'; -import { DBUtil } from './utils/db/db'; -import { insertAfterHandler } from './utils/content'; -import { getLocalRandomImg, searchPicture } from './utils/genBanner'; -import { PomodoroStatus } from './utils/pomotodo'; -import { AwesomeBrainSettingTab, SETTINGS } from './settings'; -import { PluginDataIO } from './data'; -import { eventTypes } from './types/types'; -import type { ExtApp } from './types/types'; -import { onCodeMirrorChange, toggleBlast, toggleShake } from './render/Blast'; -import type { Pomodoro } from './schemas/spaces'; -import { notifyNtfy } from './api'; -import t from './i18n'; -import './main.scss'; -import { NotifyUtil } from './utils/notify'; -import { EditorUtil, EditorUtils } from './utils/editor'; +import { expandEmmetAbbreviation } from '@/utils/emmet'; import { usePomodoroStore, useSystemStore } from '@/stores'; +import Replacer from '@/Replacer'; +import Process from '@/process/Process'; +import { checkInDefaultPath, checkInList, customSnippetPath } from '@/utils/constants'; +import { monkeyPatchConsole } from '@/obsidian-hack/obsidian-debug-mobile'; +import { EmojiPickerModal, ImageOriginModal, PomodoroReminderModal } from '@/ui/modal'; +import { POMODORO_HISTORY_VIEW, PomodoroHistoryView } from '@/ui/view/PomodoroHistoryView'; +import { BROWSER_VIEW, BrowserView } from '@/ui/view/BrowserView'; +import { codeEmoji } from '@/render/Emoji'; +import { toggleCursorEffects, toggleMouseClickEffects } from '@/render/CursorEffects'; +import { LoggerUtil } from '@/utils/logger'; +import { getAllFiles, getCleanTitle, getNotePath } from '@/utils/file'; +import { weatherDesc } from '@/api/weather'; +import { DBUtil } from '@/utils/db/db'; +import { insertAfterHandler } from '@/utils/content'; +import { getLocalRandomImg, searchPicture } from '@/utils/genBanner'; +import { PomodoroStatus } from '@/utils/pomotodo'; +import { AwesomeBrainSettingTab, SETTINGS } from '@/settings'; +import { PluginDataIO } from '@/data'; +import { eventTypes } from '@/types/types'; +import { onCodeMirrorChange, toggleBlast, toggleShake } from '@/render/Blast'; +import { notifyNtfy } from '@/api'; +import '@/main.scss'; +import { NotifyUtil } from '@/utils/notify'; +import { EditorUtil, EditorUtils } from '@/utils/editor'; +import t from '@/i18n'; import { UpdateModal } from '@/ui/modal/UpdateModal'; +import { HoverEditor, type HoverEditorParent } from '@/popover'; + +// import { initWorker } from '@/web-worker'; + +// initWorker(); export const OpenUrl = ref('https://baidu.com'); const media = window.matchMedia('(prefers-color-scheme: dark)'); + export default class AwesomeBrainManagerPlugin extends Plugin { - override app: ExtApp; pluginDataIO: PluginDataIO; private pomodoroHistoryView: PomodoroHistoryView | null; - quickPreviewFunction: (file: TFile, data: string) => any; resizeFunction: () => any; clickFunction: (evt: MouseEvent) => any; - activeLeafChangeFunction: (leaf: WorkspaceLeaf | null) => any; + activeLeafChangeFunction: (leaf: WorkspaceLeaf) => any; fileOpenFunction: (file: TFile | null) => any; layoutChangeFunction: () => any; windowOpenFunction: (win: WorkspaceWindow, window: Window) => any; @@ -66,9 +75,9 @@ export default class AwesomeBrainManagerPlugin extends Plugin { fileMenuFunction: (menu: Menu, file: TAbstractFile, source: string, leaf?: WorkspaceLeaf) => any; editorMenuFunction: (menu: Menu, editor: Editor, info: MarkdownView | MarkdownFileInfo) => any; editorChangeFunction: (editor: Editor, info: MarkdownView | MarkdownFileInfo) => any; - editorPasteFunction: (evt: ClipboardEvent, editor: Editor, info: MarkdownView | MarkdownFileInfo) => any; + editorPasteFunction: (evt: ClipboardEvent, editor: Editor, info: MarkdownView) => any; editorDropFunction: (evt: DragEvent, editor: Editor, info: MarkdownView | MarkdownFileInfo) => any; - codemirrorFunction: (cm: CodeMirror.Editor) => any; + codemirrorFunction: (cm: CodeMirror.Editor, info: MarkdownView) => any; quitFunction: (tasks: Tasks) => any; vaultCreateFunction: (file: TAbstractFile) => any; @@ -84,10 +93,11 @@ export default class AwesomeBrainManagerPlugin extends Plugin { replacer: Replacer; process: Process; emojiPickerModal: EmojiPickerModal; + interact: any; constructor(app: App, manifest: PluginManifest) { super(app, manifest); - this.app = app as ExtApp; + this.app = app; this.replacer = new Replacer(this); this.process = new Process(this); this.pluginDataIO = new PluginDataIO(this); @@ -101,6 +111,8 @@ export default class AwesomeBrainManagerPlugin extends Plugin { this.editorChangeFunction = this.customizeEditorChange.bind(this); this.editorPasteFunction = this.customizeEditorPaste.bind(this); this.fileMenuFunction = this.customizeFileMenu.bind(this); + this.activeLeafChangeFunction = this.customizeActiveLeafChange.bind(this); + this.codemirrorFunction = this.customizeCodeMirror.bind(this); this.vaultCreateFunction = this.customizeVaultCreate.bind(this); this.vaultModifyFunction = this.customizeVaultModify.bind(this); this.vaultDeleteFunction = this.customizeVaultDelete.bind(this); @@ -111,32 +123,14 @@ export default class AwesomeBrainManagerPlugin extends Plugin { this.openBrowser(e.detail.url); } - async addPomodoro(task: string) { - const createTime = moment().format('YYYY-MM-DD HH:mm:ss'); - const tags: string[] = getTagsFromTask(task); - const content: string = getTaskContentFromTask(task); - const tagsStr = tags.join(','); - const currentPomodoro = { - timestamp: new Date().getTime() + '', - task: content, - start: '', - createTime, - spend: '0', - breaknum: '0', - expectedTime: (parseFloat(SETTINGS.expectedTime.value) * 60 * 1000).toString(), - status: 'todo', - tags: tagsStr, - }; - usePomodoroStore().addPomodoro(currentPomodoro as Pomodoro); - } - get snippetPath() { return this.app.customCss.getSnippetPath(customSnippetPath); } generateCssString() { - const sheet = [ - `/* This snippet was auto-generated by the awesome-brain-manager plugin on ${new Date().toLocaleString()} */`, + const sheet: string[] = [ + // TODO 临时解决,这个代码导致同步插件同步隐藏文件时频繁冲突,后面可以优化成判断是否已经生成过css + // `/* This snippet was auto-generated by the awesome-brain-manager plugin on ${new Date().toLocaleString()} */`, ]; for (const rule of Array.from(this.style.sheet!.cssRules)) { @@ -167,7 +161,7 @@ export default class AwesomeBrainManagerPlugin extends Plugin { () => { // LoggerUtil.log('resize') }, - 500, + 100, true, ); @@ -213,13 +207,8 @@ export default class AwesomeBrainManagerPlugin extends Plugin { title: t.menu.planPomodoro, icon: 'send', clickFn: async (menu: Menu, editor: Editor, info: MarkdownView | MarkdownFileInfo) => { - let task = EditorUtils.getCurrentSelection(editor); - task = task.replace('- [x] ', ''); - task = task.replace('- [ ] ', '').trim(); - if (!task) { - task = t.menu.defaultTask + Date.now(); - } - this.addPomodoro(task); + const task = EditorUtils.getCurrentSelection(editor); + usePomodoroStore().quickAddPomodoro(task); }, }, { @@ -236,13 +225,6 @@ export default class AwesomeBrainManagerPlugin extends Plugin { ); }, }, - { - title: 'Reveal current file in navigation', - icon: 'navigation', - clickFn: async (menu: Menu, editor: Editor, info: MarkdownView | MarkdownFileInfo) => { - this.app.commands.executeCommandById('file-explorer:reveal-active-file'); - }, - }, ]; } @@ -275,6 +257,29 @@ export default class AwesomeBrainManagerPlugin extends Plugin { }); } + async customizeActiveLeafChange(leaf: WorkspaceLeaf): Promise { + HoverEditor.activePopover?.hoverEl.removeClass('is-active'); + const hoverEditor = (HoverEditor.activePopover = leaf ? HoverEditor.forLeaf(leaf) : undefined); + if (hoverEditor && leaf) { + hoverEditor.hoverEl.addClass('is-active'); + const titleEl = hoverEditor.hoverEl.querySelector('.popover-title'); + if (!titleEl) return; + titleEl.textContent = leaf.view?.getDisplayText(); + if (leaf?.view?.getViewType()) { + hoverEditor.hoverEl.setAttribute('data-active-view-type', leaf.view.getViewType()); + } + if (leaf.view?.file?.path) { + titleEl.setAttribute('data-path', leaf.view.file.path); + } else { + titleEl.removeAttribute('data-path'); + } + } + } + + async customizeCodeMirror(cm: CodeMirror.Editor, view: MarkdownView): Promise { + // LoggerUtil.log(''); + } + async customizeVaultCreate(file: TAbstractFile): Promise { // LoggerUtil.log(''); } @@ -294,13 +299,13 @@ export default class AwesomeBrainManagerPlugin extends Plugin { override async onload(): Promise { await this.pluginDataIO.load(); LoggerUtil.init(SETTINGS.debugEnable); + this.patchWorkspaceLeaf(); DBUtil.init(this, () => { usePomodoroStore().loadPomodoroData(); this.startPomodoroTask(); }); EditorUtil.init(this); NotifyUtil.init(this); - this.setupUI(); this.setupCommands(); if (SETTINGS.enableTwemoji.value) { MarkdownPreviewRenderer.registerPostProcessor(this.process.EmojiProcess); @@ -313,12 +318,83 @@ export default class AwesomeBrainManagerPlugin extends Plugin { if (SETTINGS.debugEnable.value) { monkeyPatchConsole(this); } + this.setupUI(); this.watchVault(); + setTimeout(() => { + // workaround to ensure our plugin shows up properly within Style Settings + this.app.workspace.trigger('css-change'); + }, 2000); }); await this.migrate(); this.announceUpdate(); } + patchWorkspaceLeaf() { + this.register( + around(WorkspaceLeaf.prototype, { + getRoot(old) { + return function () { + const top = old.call(this); + top.getRoot === this.getRoot ? top : top.getRoot(); + // bugfix make.md冲突,不能使用ctrl+o打开文件 #bug + return top; + }; + }, + onResize(old) { + return function () { + this.view?.onResize(); + }; + }, + setViewState(old) { + return async function (viewState: ViewState, eState?: unknown) { + const result = await old.call(this, viewState, eState); + // try and catch files that are opened from outside of the + // HoverEditor class so that we can update the popover title bar + try { + const he = HoverEditor.forLeaf(this); + if (he) { + if (viewState.type) he.hoverEl.setAttribute('data-active-view-type', viewState.type); + const titleEl = he.hoverEl.querySelector('.popover-title'); + if (titleEl) { + titleEl.textContent = this.view?.getDisplayText(); + if (this.view?.file?.path) { + titleEl.setAttribute('data-path', this.view.file.path); + } else { + titleEl.removeAttribute('data-path'); + } + } + } + } catch { + // ignore + } + return result; + }; + }, + setEphemeralState(old) { + return function (state: EphemeralState) { + old.call(this, state); + if (state.focus && this.view?.getViewType() === 'empty') { + // Force empty (no-file) view to have focus so dialogs don't reset active pane + this.view.contentEl.tabIndex = -1; + this.view.contentEl.focus(); + } + }; + }, + }), + ); + this.register( + around(WorkspaceItem.prototype, { + getContainer(old) { + return function () { + if (!old) return; // 0.14.x doesn't have this + if (!this.parentSplit || this instanceof WorkspaceContainer) return old.call(this); + return this.parentSplit.getContainer(); + }; + }, + }), + ); + } + private startPomodoroTask() { // 进来就找到ing任务,如果有,则开始interval任务,倒计时准备弹窗提醒 // 监听数据库变化事件,若变化,则刷新监听的任务 @@ -403,7 +479,13 @@ export default class AwesomeBrainManagerPlugin extends Plugin { getLocalRandom: (title, path) => { return getLocalRandomImg(this.app, title, path); }, - getWeather, + weatherDesc: (apiKey, amapKey) => { + return weatherDesc({ + apiKey: apiKey || SETTINGS.qweatherApiKey.value, + amapKey: amapKey || SETTINGS.aMapApiKey.value, + type: 'obsidian', + }); + }, }; async setRandomBanner(path: TAbstractFile | null, origin: string): Promise { @@ -434,6 +516,13 @@ export default class AwesomeBrainManagerPlugin extends Plugin { }); } + spawnPopover(initiatingEl?: HTMLElement, onShowCallback?: () => unknown): WorkspaceLeaf { + const parent = this.app.workspace.activeLeaf as unknown as HoverEditorParent; + if (!initiatingEl) initiatingEl = parent.containerEl; + const hoverPopover = new HoverEditor(parent, initiatingEl!, this, undefined, onShowCallback); + return hoverPopover.attachLeaf(); + } + private setupCommands() { this.addCommand({ id: 'cut-line', @@ -446,6 +535,18 @@ export default class AwesomeBrainManagerPlugin extends Plugin { } }, }); + this.addCommand({ + id: 'plan-pomodoro', + icon: 'scissors', + name: t.command['plan-pomodoro'], + callback: () => { + const editor = this.app.workspace.activeEditor?.editor; + if (editor) { + const task = EditorUtils.getCurrentSelection(editor); + usePomodoroStore().quickAddPomodoro(task); + } + }, + }); this.addCommand({ id: 'check-in', name: t.command['check-in'], @@ -468,7 +569,7 @@ export default class AwesomeBrainManagerPlugin extends Plugin { hotkeys: [{ modifiers: ['Mod', 'Shift'], key: 'o' }], // 带条件的编辑器指令 // editorCheckCallback: (checking: boolean, editor: Editor, view: MarkdownView) => {} - editorCallback: (editor: Editor, view: MarkdownView) => { + editorCallback: (editor: Editor, view: MarkdownView | MarkdownFileInfo) => { const evt = new CustomEvent(eventTypes.calledFunction, { detail: { type: 'OpenAI', @@ -573,6 +674,16 @@ export default class AwesomeBrainManagerPlugin extends Plugin { }); } + maybeRefresh = () => { + // TODO + // If the index revision has changed recently, then queue a reload. + // But only if we're mounted in the DOM and auto-refreshing is active. + // if (this.lastReload != this.index.revision && this.container.isShown() && this.settings.refreshEnabled) { + // this.lastReload = this.index.revision; + // this.render(); + // } + }; + private watchVault() { // https://github.com/kepano/obsidian-system-dark-mode/blob/master/main.ts // Watch for system changes to color theme @@ -601,6 +712,19 @@ export default class AwesomeBrainManagerPlugin extends Plugin { media.addEventListener('change', callback); this.register(() => media.removeEventListener('change', callback)); this.register(() => mutationObserver.disconnect()); + window.onkeydown = event => { + if (event.key === 'Tab') { + const editor = this.app.workspace.activeEditor?.editor as Editor; + if (editor) { + const triggerText = EditorUtils.getCurrentSelection(editor); + const targetText = expandEmmetAbbreviation(triggerText); + if (targetText) { + EditorUtils.replaceCurrentSelection(editor, targetText); + event.preventDefault(); + } + } + } + }; // window.addEventListener('languagechange', () => { // console.log('languagechange event detected!'); // }); @@ -610,14 +734,33 @@ export default class AwesomeBrainManagerPlugin extends Plugin { this.registerDomEvent(activeDocument, 'click', async (e: MouseEvent) => { toggleMouseClickEffects(e, SETTINGS.clickString); }); - window.addEventListener(eventTypes.openBrowser, this.openBrowserHandle.bind(this)); + const mouseMoveCallback = (event: MouseEvent) => { + useSystemStore().updateMouseCoords({ + x: event.clientX, + y: event.clientY, + }); + }; + const previewCursorCallback = (e: CustomEvent) => { + const newLeaf = this.spawnPopover(undefined, () => this.app.workspace.setActiveLeaf(newLeaf, false, true)); + newLeaf.openLinkText(e.detail.cursorTarget.title, e.detail.cursorTarget.path); + }; + window.addEventListener('mousemove', mouseMoveCallback); + this.register(() => window.removeEventListener('mousemove', mouseMoveCallback)); + window.addEventListener(eventTypes.previewCursor, previewCursorCallback); + this.register(() => window.removeEventListener(eventTypes.previewCursor, previewCursorCallback)); + const openBrowserCallback = this.openBrowserHandle.bind(this); + window.addEventListener(eventTypes.openBrowser, openBrowserCallback); + this.register(() => window.removeEventListener(eventTypes.openBrowser, openBrowserCallback)); [ - this.app.workspace.on('click', this.clickFunction), + this.app.workspace.on('dataview:refresh-views', this.maybeRefresh), + this.app.workspace.on('codemirror', this.codemirrorFunction), + // this.app.workspace.on('click', this.clickFunction), this.app.workspace.on('resize', this.resizeFunction), this.app.workspace.on('editor-change', this.editorChangeFunction), this.app.workspace.on('editor-paste', this.editorPasteFunction), this.app.workspace.on('file-menu', this.fileMenuFunction), this.app.workspace.on('editor-menu', this.editorMenuFunction), + this.app.workspace.on('active-leaf-change', this.activeLeafChangeFunction), this.app.vault.on('create', this.vaultCreateFunction), this.app.vault.on('modify', this.vaultModifyFunction), this.app.vault.on('delete', this.vaultDeleteFunction), diff --git a/src/model/settings.ts b/src/model/settings.ts index 56b2038..0cb97bc 100644 --- a/src/model/settings.ts +++ b/src/model/settings.ts @@ -1,7 +1,6 @@ import { AbstractTextComponent, Setting } from 'obsidian'; -import type { ReadOnlyReference } from '../model/ref'; -import { Reference } from '../model/ref'; -import LoggerUtil from '../utils/logger'; +import { type ReadOnlyReference, Reference } from '@/model/ref'; +import { LoggerUtil } from '@/utils/logger'; class SettingRegistry { private settingContexts: Array = []; @@ -164,7 +163,10 @@ interface Serde { type AnyValueChanged = (context: SettingContext) => void; abstract class AbstractSettingModelBuilder { - constructor(protected context: SettingContext, protected initValue: R) {} + constructor( + protected context: SettingContext, + protected initValue: R, + ) {} onAnyValueChanged(anyValueChanged: AnyValueChanged) { this.context.anyValueChanged = anyValueChanged; @@ -187,7 +189,11 @@ abstract class AbstractSettingModelBuilder { class TextSettingModelBuilder extends AbstractSettingModelBuilder { private _placeHolder?: string; - constructor(context: SettingContext, private longText: boolean, initValue: string) { + constructor( + context: SettingContext, + private longText: boolean, + initValue: string, + ) { super(context, initValue); } @@ -282,7 +288,10 @@ class ToggleSettingModelBuilder extends AbstractSettingModelBuilder { } class DropdownOption { - constructor(public label: string, public value: string) {} + constructor( + public label: string, + public value: string, + ) {} } class DropdownSettingModelBuilder extends AbstractSettingModelBuilder { diff --git a/src/popover.ts b/src/popover.ts new file mode 100644 index 0000000..d674b48 --- /dev/null +++ b/src/popover.ts @@ -0,0 +1,415 @@ +import { + Component, + HoverPopover, + MarkdownView, + type MousePos, + PopoverState, + View, + Workspace, + WorkspaceLeaf, + WorkspaceSplit, + WorkspaceTabs, + requireApiVersion, + setIcon, +} from 'obsidian'; +import HoverEditorPlugin from '@/main'; +import { useSystemStore } from '@/stores'; + +import { genId } from '@/utils/common'; +import { SETTINGS } from '@/settings'; + +const popovers = new WeakMap(); +export interface HoverEditorParent { + hoverPopover: HoverEditor | null; + containerEl?: HTMLElement; + view?: View; + dom?: HTMLElement; + parent: HoverEditorParent | null; +} +type ConstructableWorkspaceSplit = new (ws: Workspace, dir: 'horizontal' | 'vertical') => WorkspaceSplit; + +function nosuper(base: new (...args: unknown[]) => T): new () => T { + const derived = function () { + return Object.setPrototypeOf(new Component(), new.target.prototype); + }; + derived.prototype = base.prototype; + return Object.setPrototypeOf(derived, base); +} + +export class HoverEditor extends nosuper(HoverPopover) { + onTarget: boolean; + + onHover: boolean; + + shownPos: MousePos | null; + + detaching = false; + + opening = false; + + rootSplit: WorkspaceSplit = new (WorkspaceSplit as ConstructableWorkspaceSplit)(window.app.workspace, 'vertical'); + + targetRect = this.targetEl?.getBoundingClientRect(); + + titleEl: HTMLElement; + + containerEl: HTMLElement; + + parent: HoverEditorParent | null; + + oldPopover: HoverEditor | null; + + document: Document = this.targetEl?.ownerDocument ?? window.activeDocument ?? window.document; + + id = genId(8); + + originalPath: string; // these are kept to avoid adopting targets w/a different link + originalLinkText: string; + + static activePopover?: HoverEditor; + + static activeWindows() { + const windows: Window[] = [window]; + const { floatingSplit } = app.workspace; + if (floatingSplit) { + for (const split of floatingSplit.children) { + if (split.win) windows.push(split.win); + } + } + return windows; + } + + static forLeaf(leaf: WorkspaceLeaf | undefined) { + // leaf can be null such as when right clicking on an internal link + const el = leaf && document.body.matchParent.call(leaf.containerEl, '.hover-popover'); // work around matchParent race condition + return el ? popovers.get(el) : undefined; + } + + hoverEl: HTMLElement = this.document.defaultView!.createDiv({ + cls: 'popover hover-popover', + attr: { id: 'he' + this.id }, + }); + + constructor( + parent: HoverEditorParent, + public targetEl: HTMLElement, + public plugin: HoverEditorPlugin, + waitTime?: number, + public onShowCallback?: () => unknown, + ) { + // + super(); + + this.oldPopover = parent.hoverPopover ?? null; + if (waitTime === undefined) { + waitTime = 300; + } + this.onTarget = true; + this.onHover = false; + this.shownPos = null; + this.parent = parent; + this.waitTime = waitTime; + this.state = PopoverState.Showing; + + this.timer = window.setTimeout(this.show.bind(this), waitTime); + + // custom logic begin + popovers.set(this.hoverEl, this); + this.hoverEl.addClass('hover-editor'); + this.containerEl = this.hoverEl.createDiv('popover-content'); + this.buildWindowControls(); + this.setInitialDimensions(); + } + + updateLeaves() { + if (this.onTarget && this.targetEl && !this.document.contains(this.targetEl)) { + this.onTarget = false; + this.transition(); + } + let leafCount = 0; + this.plugin.app.workspace.iterateLeaves(leaf => { + leafCount++; + }, this.rootSplit); + if (leafCount === 0) { + this.hide(); // close if we have no leaves + } + this.hoverEl.setAttribute('data-leaf-count', leafCount.toString()); + } + + attachLeaf(): WorkspaceLeaf { + this.rootSplit.getRoot = () => app.workspace[this.document === document ? 'rootSplit' : 'floatingSplit']!; + this.titleEl.insertAdjacentElement('afterend', this.rootSplit.containerEl); + const leaf = this.plugin.app.workspace.createLeafInParent(this.rootSplit, 0); + this.updateLeaves(); + return leaf; + } + + onload(): void { + super.onload(); + this.registerEvent(this.plugin.app.workspace.on('layout-change', this.updateLeaves, this)); + this.registerEvent( + app.workspace.on('layout-change', () => { + // Ensure that top-level items in a popover are not tabbed + this.rootSplit.children.forEach((item, index) => { + if (item instanceof WorkspaceTabs) { + this.rootSplit.replaceChild(index, item.children[0]); + } + }); + }), + ); + } + + leaves() { + const leaves: WorkspaceLeaf[] = []; + this.plugin.app.workspace.iterateLeaves(leaf => { + leaves.push(leaf); + }, this.rootSplit); + return leaves; + } + + setInitialDimensions() { + this.hoverEl.style.height = SETTINGS.initialHeight.value; + this.hoverEl.style.width = SETTINGS.initialWidth.value; + } + + buildWindowControls() { + this.titleEl = this.document.defaultView!.createDiv('popover-titlebar'); + this.titleEl.createDiv('popover-title'); + const popoverActions = this.titleEl.createDiv('popover-actions'); + + const closeEl = popoverActions.createEl('a', 'popover-action mod-close'); + setIcon(closeEl, 'x'); + closeEl.addEventListener('click', event => { + this.hide(); + }); + this.containerEl.prepend(this.titleEl); + } + + onShow() { + // Once we've been open for closeDelay, use the closeDelay as a hiding timeout + const closeDelay = SETTINGS.closeDelay.value; + setTimeout(() => (this.waitTime = closeDelay), closeDelay); + + this.oldPopover?.hide(); + this.oldPopover = null; + + this.hoverEl.toggleClass('is-new', true); + + this.document.body.addEventListener( + 'click', + () => { + this.hoverEl.toggleClass('is-new', false); + }, + { once: true, capture: true }, + ); + + if (this.parent) { + this.parent.hoverPopover = this; + } + + // Workaround until 0.15.7 + if (requireApiVersion('0.15.1') && !requireApiVersion('0.15.7')) + app.workspace.iterateLeaves(leaf => { + if (leaf.view instanceof MarkdownView) (leaf.view.editMode as any).reinit?.(); + }, this.rootSplit); + + this.onShowCallback?.(); + this.onShowCallback = undefined; // only call it once + } + + transition() { + if (this.state === PopoverState.Hiding) { + this.state = PopoverState.Shown; + clearTimeout(this.timer); + } + } + + position(pos?: MousePos | null): void { + // without this adjustment, the x dimension keeps sliding over to the left as you progressively mouse over files + // disabling this for now since messing with pos.x like this breaks the detect() logic + // if (pos && pos.x !== undefined) { + // pos.x = pos.x + 20; + // } + + // native obsidian logic + if (pos === undefined) { + pos = this.shownPos; + } + + let rect; + + if (pos) { + rect = { + top: pos.y - 10, + bottom: pos.y + 10, + left: pos.x, + right: pos.x, + }; + } + + this.document.body.appendChild(this.hoverEl); + positionEl(rect, this.hoverEl, { gap: 10 }, this.document); + } + + show() { + // native obsidian logic start + if (!this.targetEl || this.document.body.contains(this.targetEl)) { + this.state = PopoverState.Shown; + this.timer = 0; + const mouseCoords: MousePos = useSystemStore().systemState.mouseCoords; + this.shownPos = mouseCoords; + this.position(mouseCoords); + this.onShow(); + app.workspace.onLayoutChange(); + this.load(); + } else { + this.hide(); + } + // native obsidian logic end + + // if this is an image view, set the dimensions to the natural dimensions of the image + // an interactjs reflow will be triggered to constrain the image to the viewport if it's + // too large + if (this.hoverEl.dataset.imgHeight && this.hoverEl.dataset.imgWidth) { + this.hoverEl.style.height = parseFloat(this.hoverEl.dataset.imgHeight) + this.titleEl.offsetHeight + 'px'; + this.hoverEl.style.width = parseFloat(this.hoverEl.dataset.imgWidth) + 'px'; + } + } + + onHide() { + this.oldPopover = null; + if (this.parent?.hoverPopover === this) { + this.parent.hoverPopover = null; + } + } + + hide() { + this.onTarget = this.onHover = false; + this.detaching = true; + + // A timer might be pending to call show() for the first time, make sure + // it doesn't bring us back up after we close + if (this.timer) { + clearTimeout(this.timer); + this.timer = 0; + } + + // Hide our HTML element immediately, even if our leaves might not be + // detachable yet. This makes things more responsive and improves the + // odds of not showing an empty popup that's just going to disappear + // momentarily. + this.hoverEl.hide(); + + // If a file load is in progress, we need to wait until it's finished before + // detaching leaves. Because we set .detaching, The in-progress openFile() + // will call us again when it finishes. + if (this.opening) return; + + const leaves = this.leaves(); + if (leaves.length) { + // Detach all leaves before we unload the popover and remove it from the DOM. + // Each leaf.detach() will trigger layout-changed and the updateLeaves() + // method will then call hide() again when the last one is gone. + leaves.forEach(leaf => { + leaf.detach(); + // Newer obsidians don't switch the active leaf until layout processing :( + if (leaf === app.workspace.activeLeaf) app.workspace.activeLeaf = null; + }); + } else { + this.parent = null; + return this.nativeHide(); + } + } + + nativeHide() { + const { hoverEl, targetEl } = this; + + this.state = PopoverState.Hidden; + + hoverEl.detach(); + + if (targetEl) { + const parent = targetEl.matchParent('.hover-popover'); + if (parent) popovers.get(parent)?.transition(); + } + + this.onHide(); + this.unload(); + } +} + +/** + * It positions an element relative to a rectangle, taking into account the boundaries of the element's + * offset parent + * @param rect - The rectangle of the element you want to position the popup relative to. + * @param {HTMLElement} el - The element to position + * @param [options] - { + * @returns An object with the top, left, and vresult properties. + */ +export function positionEl( + rect: { top: number; bottom: number; left: number; right: number }, + el: HTMLElement, + options: { gap?: number; preference?: string; offsetParent?: HTMLElement; horizontalAlignment?: string }, + document: Document, +) { + options = options || {}; + el.show(); + const gap = options.gap || 0; + const verticalPref = options.preference || 'bottom'; + const parentEl = options.offsetParent || el.offsetParent || document.documentElement; + const horizontalAlignment = options.horizontalAlignment || 'left'; + const parentTop = parentEl.scrollTop + 10; + const parentBottom = parentEl.scrollTop + parentEl.clientHeight - 10; + const top = Math.min(rect.top, parentBottom); + const bottom = Math.max(rect.bottom, parentTop); + const elHeight = el.offsetHeight; + const fitsAbove = rect.top - parentTop >= elHeight + gap; + const fitsBelow = parentBottom - rect.bottom >= elHeight + gap; + let topResult = 0; + let vresult = ''; // vertical result + + if (!fitsAbove || ('top' !== verticalPref && fitsBelow)) { + if (!fitsBelow || ('bottom' !== verticalPref && fitsAbove)) { + if (parentEl.clientHeight < elHeight + gap) { + topResult = parentTop; + vresult = 'overlap'; + } else { + if ('top' === verticalPref) { + topResult = parentTop + gap; + vresult = 'overlap'; + } else { + topResult = parentBottom - elHeight; + vresult = 'overlap'; + } + } + } else { + topResult = bottom + gap; + vresult = 'bottom'; + } + } else { + topResult = top - gap - elHeight; + vresult = 'top'; + } + + const leftBoundary = parentEl.scrollLeft + 10; + const rightBoundary = parentEl.scrollLeft + parentEl.clientWidth - 10; + const elWidth = el.offsetWidth; + let leftResult = 'left' === horizontalAlignment ? rect.left : rect.right - elWidth; + + if (leftResult < leftBoundary) { + leftResult = leftBoundary; + } else { + if (leftResult > rightBoundary - elWidth) { + leftResult = rightBoundary - elWidth; + } + } + + el.style.top = ''.concat(topResult.toString(), 'px'); + el.style.left = ''.concat(leftResult.toString(), 'px'); + + return { + top: topResult, + left: leftResult, + vresult: vresult, + }; +} diff --git a/src/process/Process.ts b/src/process/Process.ts index 67c91e7..15708ca 100644 --- a/src/process/Process.ts +++ b/src/process/Process.ts @@ -3,9 +3,9 @@ import { debounce } from 'obsidian'; import twemoji from 'twemoji'; import plantuml from 'plantuml-encoder'; import { v4 as uuidv4 } from 'uuid'; -import type AwesomeBrainManagerPlugin from '../main'; -import { insertImageWithMap, insertVueComponent } from '../utils/content'; -import { request } from '../utils/request'; +import { request } from '@/utils/request'; +import type AwesomeBrainManagerPlugin from '@/main'; +import { insertImageWithMap, insertVueComponent } from '@/utils/content'; export default class Process { plugin: AwesomeBrainManagerPlugin; @@ -30,7 +30,10 @@ export default class Process { // https://github.com/joethei/obsidian-plantuml UMLProcess = async (source: string, el: HTMLElement, ctx: MarkdownPostProcessorContext) => { - const debounceMap = new Map>(); + const debounceMap = new Map< + string, + Debouncer<[string, HTMLElement, MarkdownPostProcessorContext], Promise> + >(); const processor = async (source: string, el: HTMLElement, _: MarkdownPostProcessorContext) => { const url = 'https://www.plantuml.com/plantuml'; const imageUrlBase = url + '/png/'; diff --git a/src/render/Blast.ts b/src/render/Blast.ts index fb24a23..39407f8 100644 --- a/src/render/Blast.ts +++ b/src/render/Blast.ts @@ -1,9 +1,11 @@ // https://github.com/chinchang/code-blast-codemirror -import type { Editor } from 'obsidian'; +import { type Editor, Platform } from 'obsidian'; +import { throttle } from 'lodash-es'; import party from 'party-js'; import type { DynamicSourceType } from 'party-js/lib/systems/sources'; -import t from '../i18n'; -import type { SettingModel } from 'model/settings'; +import t from '@/i18n'; +import type { SettingModel } from '@/model/settings'; +import { EditorUtils } from '@/utils/editor'; let shakeTime = 0, shakeTimeMax = 0, @@ -13,22 +15,11 @@ let shakeTime = 0, isActive = false, enableShake: SettingModel, cmNode, - titleBarHeight = 40, canvas, ctx; -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore -if (window.app.isMobile) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - titleBarHeight = document.getElementsByClassName('view-header')[5]?.innerHeight || 40; -} else { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - titleBarHeight = document.getElementsByClassName('titlebar')[0]?.innerHeight || 40; -} const shakeIntensity = 5, - particles: any[] = [], + titleBarHeight = EditorUtils.getTitleBarHeight(), + particles: Particle[] = [], MAX_PARTICLES = 500, PARTICLE_NUM_RANGE = { min: 5, max: 10 }, PARTICLE_GRAVITY = 0.08, @@ -89,16 +80,20 @@ function heartBeat(node) { }); } -function partyMe(cm) { +function partyMe(cm: Editor) { const cursorPos = cm.getCursor(); - const pos = cm.coordsAtPos(cursorPos); - const node = document.elementFromPoint(pos.left, pos.top) as DynamicSourceType; - if (effect == '3') { - party.confetti(node, { - count: party.variation.range(20, 40), - }); - } else if (effect == '4') { - heartBeat(node); + try { + const pos = cm.coordsAtPos(cursorPos); + const node = document.elementFromPoint(pos.left, pos.top) as DynamicSourceType; + if (effect == '3') { + party.confetti(node, { + count: party.variation.range(20, 40), + }); + } else if (effect == '4') { + heartBeat(node); + } + } catch (error) { + // console.log(error); } } @@ -117,19 +112,35 @@ function getRGBComponents(node) { function spawnParticles(cm) { const cursorPos = cm.getCursor(); - const pos = cm.coordsAtPos(cursorPos); - const node = document.elementFromPoint(pos.left, pos.top); - const numParticles = random(PARTICLE_NUM_RANGE.min, PARTICLE_NUM_RANGE.max); - const color = getRGBComponents(node); - - for (let i = numParticles; i--; ) { - particles[particlePointer] = createParticle(pos.left + 10, pos.top - titleBarHeight, color); - particlePointer = (particlePointer + 1) % MAX_PARTICLES; + try { + const pos = cm.coordsAtPos(cursorPos); + const node = document.elementFromPoint(pos.left, pos.top); + const numParticles = random(PARTICLE_NUM_RANGE.min, PARTICLE_NUM_RANGE.max); + const color = getRGBComponents(node); + for (let i = numParticles; i--; ) { + particles[particlePointer] = createParticle(pos.left + 10, pos.top - titleBarHeight, color); + particlePointer = (particlePointer + 1) % MAX_PARTICLES; + } + } catch (error) { + // console.log(error); } } +interface Particle { + x: number; + y: number; + alpha: number; + color: [number, number, number]; + size: number; + vx: number; + vy: number; + drag: number; + wander: number; + theta: number; +} + function createParticle(x, y, color) { - const p = { + const p: Particle = { x: x, y: y + 10, alpha: 1, @@ -207,8 +218,6 @@ function drawParticles() { } function shake(editor: Editor, time) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore cmNode = editor.containerEl; shakeTime = shakeTimeMax = time; } @@ -221,20 +230,6 @@ function random(min, max) { return min + ~~(Math.random() * (max - min + 1)); } -function throttle(callback, limit) { - let wait = false; - return function () { - if (!wait) { - // eslint-disable-next-line prefer-rest-params - callback.apply(this, arguments); - wait = true; - setTimeout(function () { - wait = false; - }, limit); - } - }; -} - function loop() { if (!isActive) { return; @@ -258,15 +253,9 @@ function loop() { requestAnimationFrame(loop); } -export function onCodeMirrorChange(editor) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore +export function onCodeMirrorChange(editor: Editor) { throttledShake(editor, 0.3); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore throttledSpawnParticles(editor); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore throttledPartyMe(editor); } diff --git a/src/render/CursorEffects.ts b/src/render/CursorEffects.ts index 322051a..eee5740 100644 --- a/src/render/CursorEffects.ts +++ b/src/render/CursorEffects.ts @@ -22,12 +22,16 @@ import { // An elasticish trail of cursors that will nip to wherever your mouse is trailingCursor, } from 'cursor-effects'; -import { randomColor } from '../utils/common'; +import { debounce } from 'lodash-es'; +import { randomColor } from '@/utils/common'; +import { EditorUtils } from '@/utils/editor'; import type { SettingModel } from 'model/settings'; -const cursorEffects: any[] = []; - +const cursorEffects: object[] = []; +let oldCursorEffects: object[] = []; +let newCanvas: HTMLCanvasElement; function enableCursorEffect(effectName) { + const canvasesBefore = Array.from(document.querySelectorAll('canvas')); let emo; switch (effectName) { case 'bubbleCursor': @@ -67,13 +71,42 @@ function enableCursorEffect(effectName) { break; } cursorEffects.push(emo); + const canvasesAfter = Array.from(document.querySelectorAll('canvas')); + newCanvas = canvasesAfter.find(canvas => !canvasesBefore.includes(canvas)) as unknown as HTMLCanvasElement; + // 调整特效层级,解决在侧边栏和设置弹窗时不可见的问题 + newCanvas.style.zIndex = '9999'; } export function toggleCursorEffects(target: string) { + const appendHandle = debounce(() => { + if (!document.body.contains(newCanvas)) { + document.body.appendChild(newCanvas); + } + }, 500); + + const appendCanvas = (event: Event) => { + appendHandle(); + }; + const removeCanvas = (event: Event) => { + if (document.body.contains(newCanvas)) { + document.body.removeChild(newCanvas); + } + }; + oldCursorEffects = [...cursorEffects]; + const titlebarEleList = document.querySelectorAll('.titlebar, .workspace-tab-header-container'); if (target != 'none') { disableCursorEffect(); + // mouseenter无法完成该效果 + titlebarEleList.forEach(ele => { + ele.addEventListener('mouseenter', removeCanvas); + ele.addEventListener('mouseleave', appendCanvas); + }); enableCursorEffect(target); } else { + titlebarEleList.forEach(ele => { + ele.removeEventListener('mouseenter', removeCanvas); + ele.removeEventListener('mouseleave', appendCanvas); + }); disableCursorEffect(); } } diff --git a/src/render/Tag.ts b/src/render/Tag.ts index 7546085..a62fb95 100644 --- a/src/render/Tag.ts +++ b/src/render/Tag.ts @@ -1,20 +1,24 @@ -import type { Tag } from '../types/types'; +import type { Tag } from '@/types/types'; export function buildTagRules(tag: Tag) { return [ - `body:not(.tag-default) span.cm-tag-${tag.type}:not(.cm-formatting-hashtag)::after, - body:not(.tag-default) .tag[href^='#${tag.type}']::after { - content: '${tag.icon}'; - }`, - `body:not(.tag-default) .tag:is([href^='#${tag.type}']):not(.token), - body:not(.tag-default) span:is(.cm-tag-${tag.type}) { - font-family: ${tag.font} !important; - font-weight: lighter; - color: ${tag.color} !important; - background-color: ${tag.bgColor} !important; - opacity: 0.7; - font-size: var(--font-size-tag); - filter: hue-rotate(0) !important; - }`, + `body.tag-awesome-brain-manager:not(.tag-default) .cm-s-obsidian.is-live-preview span.cm-tag-${tag.type}:not(.cm-formatting-hashtag)::after, +body:not(.tag-default) .cm-s-obsidian.is-live-preview .tag[href^='#${tag.type}']::after, +body.tag-awesome-brain-manager:not(.tag-default) .markdown-preview-view span.cm-tag-${tag.type}:not(.cm-formatting-hashtag)::after, +body:not(.tag-default) .markdown-preview-view .tag[href^='#${tag.type}']::after { + content: '${tag.icon}'; +}`, + `body.tag-awesome-brain-manager:not(.tag-default) .markdown-preview-view .tag:is([href^='#${tag.type}']):not(.token), +body.tag-awesome-brain-manager:not(.tag-default) .markdown-preview-view span:is(.cm-tag-${tag.type}), +body.tag-awesome-brain-manager:not(.tag-default) .cm-s-obsidian.is-live-preview .tag:is([href^='#${tag.type}']):not(.token), +body.tag-awesome-brain-manager:not(.tag-default) .cm-s-obsidian.is-live-preview span:is(.cm-tag-${tag.type}) { + font-family: ${tag.font} !important; + font-weight: lighter; + color: ${tag.color} !important; + background-color: ${tag.bgColor} !important; + opacity: 0.7; + font-size: var(--font-size-tag); + filter: hue-rotate(0) !important; +}`, ]; } diff --git a/src/settings.ts b/src/settings.ts index 3ef29ba..c9a327f 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -1,12 +1,11 @@ // https://github.com/uphy/obsidian-reminder/blob/master/src/settings.ts -import { App, PluginSettingTab, Plugin_2 } from 'obsidian'; -import type { SettingModel } from './model/settings'; -import { RawSerde, SettingTabModel } from './model/settings'; -import type { PluginDataIO } from './data'; -import { toggleCursorEffects } from './render/CursorEffects'; -import { toggleBlast } from './render/Blast'; -import t from './i18n'; -import { EditorUtil } from './utils/editor'; +import { App, Plugin, PluginSettingTab } from 'obsidian'; +import { RawSerde, type SettingModel, SettingTabModel } from '@/model/settings'; +import { toggleCursorEffects } from '@/render/CursorEffects'; +import { toggleBlast } from '@/render/Blast'; +import t from '@/i18n'; +import { EditorUtil } from '@/utils/editor'; +import type { PluginDataIO } from '@/data'; class Settings { settings: SettingTabModel = new SettingTabModel(); @@ -27,10 +26,96 @@ class Settings { noticeAudio: SettingModel; ntfyServerHost: SettingModel; ntfyToken: SettingModel; + qweatherApiKey: SettingModel; + aMapApiKey: SettingModel; version: SettingModel; enableTwemoji: SettingModel; + defaultMode: SettingModel; + triggerDelay: SettingModel; + closeDelay: SettingModel; + autoPin: SettingModel; + rollDown: SettingModel; + imageZoom: SettingModel; + autoFocus: SettingModel; + snapToEdges: SettingModel; + initialHeight: SettingModel; + initialWidth: SettingModel; + showViewHeader: SettingModel; + hoverEmbeds: SettingModel; constructor() { + this.defaultMode = this.settings + .newSettingBuilder() + .key('defaultMode') + .name(t.setting.defaultMode.name) + .desc(t.setting.defaultMode.desc) + .dropdown('preview') + .build(new RawSerde()); + + this.autoPin = this.settings + .newSettingBuilder() + .key('autoPin') + .name(t.setting.autoPin.name) + .desc(t.setting.autoPin.desc) + .text('onMove') + .build(new RawSerde()); + + this.triggerDelay = this.settings + .newSettingBuilder() + .key('triggerDelay') + .name(t.setting.triggerDelay.name) + .desc(t.setting.triggerDelay.desc) + .number(300) + .build(new RawSerde()); + + this.closeDelay = this.settings + .newSettingBuilder() + .key('closeDelay') + .name(t.setting.closeDelay.name) + .desc(t.setting.closeDelay.desc) + .number(600) + .build(new RawSerde()); + + this.autoFocus = this.settings + .newSettingBuilder() + .key('autoFocus') + .name(t.setting.autoFocus.name) + .desc(t.setting.autoFocus.desc) + .toggle(true) + .build(new RawSerde()); + + this.rollDown = this.settings + .newSettingBuilder() + .key('rollDown') + .name(t.setting.rollDown.name) + .desc(t.setting.rollDown.desc) + .toggle(false) + .build(new RawSerde()); + + this.snapToEdges = this.settings + .newSettingBuilder() + .key('snapToEdges') + .name(t.setting.snapToEdges.name) + .desc(t.setting.snapToEdges.desc) + .toggle(false) + .build(new RawSerde()); + + this.initialHeight = this.settings + .newSettingBuilder() + .key('initialHeight') + .name(t.setting.initialHeight.name) + .desc(t.setting.initialHeight.desc) + .text('340px') + .build(new RawSerde()); + + this.initialWidth = this.settings + .newSettingBuilder() + .key('initialWidth') + .name(t.setting.initialWidth.name) + .desc(t.setting.initialWidth.desc) + .text('400px') + .build(new RawSerde()); + this.cursorEffectBuilder = this.settings .newSettingBuilder() .key('cursorEffect') @@ -38,6 +123,30 @@ class Settings { .desc(t.setting.cursorEffect.desc) .dropdown('none'); + this.showViewHeader = this.settings + .newSettingBuilder() + .key('showViewHeader') + .name(t.setting.showViewHeader.name) + .desc(t.setting.showViewHeader.desc) + .toggle(true) + .build(new RawSerde()); + + this.imageZoom = this.settings + .newSettingBuilder() + .key('imageZoom') + .name(t.setting.imageZoom.name) + .desc(t.setting.imageZoom.desc) + .toggle(true) + .build(new RawSerde()); + + this.hoverEmbeds = this.settings + .newSettingBuilder() + .key('hoverEmbeds') + .name(t.setting.hoverEmbeds.name) + .desc(t.setting.hoverEmbeds.desc) + .toggle(false) + .build(new RawSerde()); + Object.keys(t.info.effects).forEach(f => this.cursorEffectBuilder.addOption(`${t.info.effects[f]}`, f)); this.cursorEffect = this.cursorEffectBuilder @@ -94,8 +203,8 @@ class Settings { ['white', '#058c1c', 'complete', ' ', ''], ['red', '#ffb6b9', 'principle', ' 📌', ''], ['white', '#323232', 'abandon', ' 🏁', ''], - ['white', '#eaffd0', 'review', ' 🌱', ''], - ['white', '#eaffd0', 'flashcards', ' 🌱', ''], + ['white', '#b5dc8e', 'review', ' 🌱', ''], + ['white', '#b5dc8e', 'flashcards', ' 🌱', ''], ['white', '#a6e3e9', 'juck', ' 👨‍💻', ''], ['white', '#a6e3e9', 'juckz', ' 👨‍💻', ''], ['white', '#a6e3e9', 'todo', ' 📥', ''], @@ -182,6 +291,22 @@ class Settings { .text('') .build(new RawSerde()); + this.qweatherApiKey = this.settings + .newSettingBuilder() + .key('qweatherApiKey') + .name('Qweather ApiKey') + .desc('input your ApiKey from https://dev.qweather.com/') + .text('') + .build(new RawSerde()); + + this.aMapApiKey = this.settings + .newSettingBuilder() + .key('aMapApiKey') + .name('AMap ApiKey') + .desc('input your ApiKey from aMapApiKey') + .text('') + .build(new RawSerde()); + this.version = this.settings .newSettingBuilder() .key('version') @@ -200,7 +325,14 @@ class Settings { this.settings .newGroup('Notification') - .addSettings(this.systemNoticeEnable, this.noticeAudio, this.ntfyServerHost, this.ntfyToken); + .addSettings( + this.systemNoticeEnable, + this.noticeAudio, + this.ntfyServerHost, + this.ntfyToken, + this.qweatherApiKey, + this.aMapApiKey, + ); this.settings.newGroup('Advanced').addSettings(this.serverHost, this.debugEnable, this.version); } @@ -212,7 +344,11 @@ class Settings { export const SETTINGS = new Settings(); export class AwesomeBrainSettingTab extends PluginSettingTab { - constructor(app: App, plugin: Plugin_2, protected pluginData: PluginDataIO) { + constructor( + app: App, + plugin: Plugin, + protected pluginData: PluginDataIO, + ) { super(app, plugin); } diff --git a/src/stores/editor.ts b/src/stores/editor.ts index 7b40a3d..a76cc58 100644 --- a/src/stores/editor.ts +++ b/src/stores/editor.ts @@ -1,11 +1,11 @@ import { defineStore } from 'pinia'; import { reactive } from 'vue'; -import type { EditorState } from '../types/types'; +import type { EditorState } from '@/types/types'; export const useEditorStore = defineStore('editor', () => { const editorState: EditorState = reactive({ - currentEle: null as unknown as Element, + currentEle: undefined, position: { top: 0, bottom: 0, diff --git a/src/stores/index.ts b/src/stores/index.ts index e97db36..b902ccd 100644 --- a/src/stores/index.ts +++ b/src/stores/index.ts @@ -1,7 +1,7 @@ import { createPinia } from 'pinia'; -import { useEditorStore } from './editor'; -import { useSystemStore } from './system'; -import { usePomodoroStore } from './pomodoro'; +import { useSystemStore } from '@/stores/system'; +import { usePomodoroStore } from '@/stores/pomodoro'; +import { useEditorStore } from '@/stores/editor'; const pinia = createPinia(); export default pinia; export { useEditorStore, useSystemStore, usePomodoroStore }; diff --git a/src/stores/pomodoro.ts b/src/stores/pomodoro.ts index 4e3cfba..09e1f04 100644 --- a/src/stores/pomodoro.ts +++ b/src/stores/pomodoro.ts @@ -1,7 +1,10 @@ import { defineStore } from 'pinia'; import { type Ref, ref } from 'vue'; import type { Pomodoro } from '@/schemas/spaces'; +import t from '@/i18n'; import { DBUtil } from '@/utils/db/db'; +import { getTagsFromTask, getTaskContentFromTask } from '@/utils/common'; +import { SETTINGS } from '@/settings'; // TODO 将数据持久化,优化性能 注意不同设备之间的持久化策略 export const usePomodoroStore = defineStore('pomodoro', () => { @@ -26,6 +29,30 @@ export const usePomodoroStore = defineStore('pomodoro', () => { currentPomodoro.value = data.filter(pomodoro => pomodoro.status === 'ing')[0] as Pomodoro; } + function quickAddPomodoro(task: string) { + task = task.replace('- [x] ', ''); + task = task.replace('- [ ] ', '').trim(); + if (!task) { + task = t.menu.defaultTask + Date.now(); + } + const createTime = moment().format('YYYY-MM-DD HH:mm:ss'); + const tags: string[] = getTagsFromTask(task); + const content: string = getTaskContentFromTask(task); + const tagsStr = tags.join(','); + const currentPomodoro = { + timestamp: new Date().getTime() + '', + task: content, + start: '', + createTime, + spend: '0', + breaknum: '0', + expectedTime: (parseFloat(SETTINGS.expectedTime.value) * 60 * 1000).toString(), + status: 'todo', + tags: tagsStr, + }; + this.addPomodoro(currentPomodoro as Pomodoro); + } + function addPomodoro(pomodoro: Pomodoro) { DBUtil.addPomodoro(pomodoro); pomodoroHistory.value.push(pomodoro); @@ -45,6 +72,7 @@ export const usePomodoroStore = defineStore('pomodoro', () => { totalTask, pomodoroHistory, loadPomodoroData, + quickAddPomodoro, addPomodoro, updatePomodoro, deletePomodoro, diff --git a/src/stores/system.ts b/src/stores/system.ts index a44be3a..4d745e8 100644 --- a/src/stores/system.ts +++ b/src/stores/system.ts @@ -1,12 +1,16 @@ import { defineStore } from 'pinia'; import { reactive } from 'vue'; -import type { SystemState } from '../types/types'; +import type { SystemState } from '@/types/types'; export const useSystemStore = defineStore('system', () => { const systemState: SystemState = reactive({ language: 'en', theme: 'light', + mouseCoords: { + x: 0, + y: 0, + }, }); function updateLanguage(language) { @@ -17,9 +21,14 @@ export const useSystemStore = defineStore('system', () => { systemState.theme = theme; } + function updateMouseCoords(mouseCoords) { + systemState.mouseCoords = mouseCoords; + } + return { systemState, updateLanguage, updateTheme, + updateMouseCoords, }; }); diff --git a/src/color-schemes/atom.scss b/src/styles/color-schemes/atom.scss similarity index 100% rename from src/color-schemes/atom.scss rename to src/styles/color-schemes/atom.scss diff --git a/src/color-schemes/awesome.scss b/src/styles/color-schemes/awesome.scss similarity index 100% rename from src/color-schemes/awesome.scss rename to src/styles/color-schemes/awesome.scss diff --git a/src/color-schemes/macos.scss b/src/styles/color-schemes/macos.scss similarity index 100% rename from src/color-schemes/macos.scss rename to src/styles/color-schemes/macos.scss diff --git a/src/color-schemes/nord.scss b/src/styles/color-schemes/nord.scss similarity index 100% rename from src/color-schemes/nord.scss rename to src/styles/color-schemes/nord.scss diff --git a/src/styles/emoji-modal.scss b/src/styles/emoji-modal.scss new file mode 100644 index 0000000..f246ade --- /dev/null +++ b/src/styles/emoji-modal.scss @@ -0,0 +1,27 @@ +img.emoji { + height: 1em; + width: 1em; + margin: 0 0.05em 0 0.1em; + vertical-align: -0.1em; + display: inline-block; +} + +#emoji-modal { + padding: 0px; + min-width: unset; + width: unset !important; +} + +#emoji-modal>.modal-content { + margin-top: 0px; +} + +#emoji-modal>button { + background-color: unset; + border: 0px !important; + box-shadow: 0px !important; +} + +#emoji-modal>.modal-close-button { + visibility: hidden; +} diff --git a/src/styles/hover-editor.scss b/src/styles/hover-editor.scss new file mode 100644 index 0000000..c628f12 --- /dev/null +++ b/src/styles/hover-editor.scss @@ -0,0 +1,554 @@ +/* @settings + +name: Hover Editor +id: hover-editor +settings: + - + id: titlebar-heading + title: Title bar + type: heading + level: 1 + collapsed: true + - + id: titlebar-heading + title: Title bar background/foreground + type: heading + level: 2 + collapsed: true + - + id: he-title-bar-active-bg + title: Active unpinned title bar background color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: he-title-bar-inactive-bg + title: Inactive unpinned title bar background color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: he-title-bar-active-pinned-bg + title: Active pinned title bar background color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: he-title-bar-inactive-pinned-bg + title: Inactive pinned title bar background color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: he-title-bar-active-fg + title: Active title bar foreground color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: he-title-bar-inactive-fg + title: Inactive title bar foreground color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: titlebar-action-heading + title: Title bar icons + type: heading + level: 2 + collapsed: true + - + id: he-title-bar-inactive-action + title: Title bar inactive icon color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: he-title-bar-active-action + title: Titlebar active icon color + type: variable-themed-color + format: hex + default-light: '#' + default-dark: '#' + - + id: titlebar-text-heading + title: Title bar text + type: heading + level: 2 + collapsed: true + - + id: he-title-bar-font-size + title: Title bar Font size + type: variable-text + description: Accepts any CSS font-size value + default: 15px + - + id: titlebar-height-heading + title: Title bar height + type: heading + level: 2 + collapsed: true + - + id: he-title-bar-height + title: Title bar height + type: variable-text + description: Accepts any CSS font-size value + default: 28px +*/ + +:root { + /* general styling */ + --he-popover-opacity-while-dragging: 0.8; + --he-popover-border-radius: 6px; + --he-popover-header-transition-speed: 0.3s; + --he-popover-snap-to-edge-transition-speed: 0.3s; + /* resize handle sizing */ + --he-resize-handle-side-size: 12px; + --he-resize-handle-corner-size: 18px; + /* view header height */ + --he-view-header-height: 36px; +} + +body { + --he-text-on-accent-inactive: var(--text-on-accent); + /* couldn't find a good variable that worked across themes */ + --he-text-on-accent-active: #fff; + /* z-index layer settings, probably not a good idea to mess with these */ + --he-popover-layer-inactive: var(--layer-popover); + --he-popover-layer-active: calc(var(--he-popover-layer-inactive) + 1); + --he-popover-layer-new: calc(var(--he-popover-layer-inactive) + 2); + --he-leaf-drag-overlay: calc(var(--he-popover-layer-inactive) + 3); + /* calculated variables, do not modify */ + --he-resize-handle-side-offset: calc((var(--he-resize-handle-side-size) - 3px) * -1); + --he-resize-handle-corner-offset: calc((var(--he-resize-handle-corner-size) / 2) * -1); + --he-resize-handle-side-length: calc(100% - var(--he-resize-handle-corner-size)); + /* title bar colors */ + --he-title-bar-active-bg: var(--interactive-accent); + --he-title-bar-inactive-bg: #777777; + --he-title-bar-inactive-pinned-bg: #777777; + --he-title-bar-active-pinned-bg: var(--interactive-accent); + + --he-title-bar-active-fg: var(--he-text-on-accent-active); + --he-title-bar-inactive-fg: var(--he-text-on-accent-inactive); + /* title bar action/icon colors */ + --he-title-bar-inactive-action: var(--he-text-on-accent-inactive); + --he-title-bar-active-action: var(--he-text-on-accent-active); + /* titlebar sizing */ + --he-title-bar-height: 28px; + --he-title-bar-font-size: 15px; +} + +.popover.hover-editor .workspace-leaf, +.popover.hover-editor .workspace-split { + height: 100%; + width: 100%; +} + +.popover.hover-editor { + min-height: unset; + max-height: unset; + /* touch action none fixes dragging and resizing on mobile */ + touch-action: none; + /* this is set to allow the drag/resize handles to overflow the popover frame */ + overflow: visible; + border: none; + padding: 0; + z-index: var(--he-popover-layer-inactive); + border-radius: var(--he-popover-border-radius); + + /* Prevent snagging on titlebar */ + -webkit-app-region: no-drag; +} + +.popover.hover-editor .markdown-preview-view { + font-size: inherit; +} + +.popover.hover-editor.is-active { + z-index: var(--he-popover-layer-active); +} + +.popover.hover-editor.is-new { + z-index: var(--he-popover-layer-new); +} + +/* Drag/link overlay needs to overlay popups */ +.workspace-fake-target-overlay, +.workspace-drop-overlay { + z-index: var(--he-leaf-drag-overlay); +} + +.popover.hover-editor .resize-handle { + position: absolute; + touch-action: none; +} + +.popover.hover-editor .resize-handle.top { + top: var(--he-resize-handle-side-offset); + height: var(--he-resize-handle-side-size); + left: calc(var(--he-resize-handle-corner-offset) * -1); + width: var(--he-resize-handle-side-length); +} + +.popover.hover-editor .resize-handle.left { + height: var(--he-resize-handle-side-length); + left: var(--he-resize-handle-side-offset); + top: calc(var(--he-resize-handle-corner-offset) * -1); + width: var(--he-resize-handle-side-size); +} + +.popover.hover-editor .resize-handle.right { + height: var(--he-resize-handle-side-length); + right: var(--he-resize-handle-side-offset); + top: calc(var(--he-resize-handle-corner-offset) * -1); + width: var(--he-resize-handle-side-size); +} + +.popover.hover-editor .resize-handle.bottom { + bottom: var(--he-resize-handle-side-offset); + height: var(--he-resize-handle-side-size); + left: calc(var(--he-resize-handle-corner-offset) * -1); + width: var(--he-resize-handle-side-length); +} + +.popover.hover-editor .resize-handle.bottom-left { + bottom: var(--he-resize-handle-corner-offset); + height: var(--he-resize-handle-corner-size); + left: var(--he-resize-handle-corner-offset); + width: var(--he-resize-handle-corner-size); +} + +.popover.hover-editor .resize-handle.bottom-right { + bottom: var(--he-resize-handle-corner-offset); + height: var(--he-resize-handle-corner-size); + right: var(--he-resize-handle-corner-offset); + width: var(--he-resize-handle-corner-size); +} + +.popover.hover-editor .resize-handle.top-left { + top: var(--he-resize-handle-corner-offset); + height: var(--he-resize-handle-corner-size); + left: var(--he-resize-handle-corner-offset); + width: var(--he-resize-handle-corner-size); +} + +.popover.hover-editor .resize-handle.top-right { + top: var(--he-resize-handle-corner-offset); + height: var(--he-resize-handle-corner-size); + right: var(--he-resize-handle-corner-offset); + width: var(--he-resize-handle-corner-size); +} + +/* body.is-dragging-popover .tooltip { + opacity: 0; + } */ + +.popover-header-icon { + width: fit-content; +} + +.mod-pin-popover>svg { + transform: rotate(45deg); +} + +.mod-pin-popover.is-active>svg { + transform: rotate(0deg); +} + +.popover-action, +.popover-header-icon { + margin: 0 8px; + cursor: pointer; + color: var(--he-title-bar-inactive-action); + position: relative; + display: flex; + align-items: center; +} + +.popover-action.is-active, +.mod-pin-popover.is-active { + color: var(--he-title-bar-active-action); +} + +.popover-action:hover, +.popover-header-icon:hover { + color: var(--he-title-bar-active-action); +} + +.popover-action.is-active svg, +.mod-pin-popover.is-active svg {} + +.mod-pin-popover.is-active>svg { + transform: unset; +} + +.popover.hover-editor .workspace-leaf-content[data-type="empty"] .view-header { + /* ensures that minimal theme doesn't hide the popover header */ + display: flex; +} + +.popover.hover-editor .workspace-split>.workspace-leaf:last-child>.workspace-leaf-resize-handle { + /* this hides the leaf resize handles that touch the edge of the popover */ + /* without this the leaf resize handles conflict with the popover resize handles */ + display: none; +} + +.popover.hover-editor.is-dragging { + opacity: var(--he-popover-opacity-while-dragging); +} + +.popover.hover-editor:is(.snap-to-viewport, .snap-to-left, .snap-to-right) .resize-handle { + display: none; +} + +.popover.hover-editor.snap-to-right .resize-handle.left, +.popover.hover-editor.snap-to-left .resize-handle.right { + display: block; +} + +.popover.hover-editor.is-dragging.snap-to-left, +.popover.hover-editor.is-dragging.snap-to-right, +.popover.hover-editor.is-dragging.snap-to-viewport { + transition: width var(--he-popover-snap-to-edge-transition-speed), + height var(--he-popover-snap-to-edge-transition-speed), top var(--he-popover-snap-to-edge-transition-speed), + left var(--he-popover-snap-to-edge-transition-speed); +} + +.hover-popover.is-dragging.snap-to-left::after, +.hover-popover.is-dragging.snap-to-right::after, +.hover-popover.is-dragging.snap-to-viewport::after { + position: absolute; + content: ""; + width: 100%; + height: 100%; + top: 0; + border-radius: var(--he-popover-border-radius); + box-shadow: inset 0px 0px 0px 4px var(--interactive-accent); + pointer-events: none; +} + +.popover.hover-editor.snap-to-left { + max-height: unset !important; +} + +.popover.hover-editor.snap-to-right { + right: 0 !important; + max-height: unset !important; +} + +.popover.hover-editor.snap-to-viewport { + max-height: unset !important; + max-width: unset !important; +} + +.popover.hover-editor .popover-titlebar { + display: flex; + height: var(--he-title-bar-height); + width: 100%; + background-color: var(--he-title-bar-inactive-bg); +} + +.popover.hover-editor.is-active .popover-titlebar { + background-color: var(--he-title-bar-active-bg); +} + +.popover.hover-editor.is-pinned.is-pinned .popover-titlebar { + background-color: var(--he-title-bar-inactive-pinned-bg); +} + +.popover.hover-editor.is-pinned.is-pinned.is-active .popover-titlebar { + background-color: var(--he-title-bar-active-pinned-bg); +} + +.popover.hover-editor .popover-titlebar .popover-actions { + display: flex; + justify-content: flex-end; +} + +.popover.hover-editor .popover-content { + margin: 0; + border-radius: var(--he-popover-border-radius); + overflow: hidden; + height: 100%; +} + +.popover.hover-editor .popover-titlebar .popover-title { + display: block; + flex-grow: 1; + transition: all 0.3s; + align-self: center; + font-size: var(--he-title-bar-font-size); + font-weight: 500; + white-space: pre; + word-wrap: normal; + color: var(--he-title-bar-inactive-fg); + overflow: hidden; + position: relative; +} + +.popover.hover-editor.is-active .popover-title { + color: var(--he-title-bar-active-fg); +} + +.popover.hover-editor.is-active .popover-title:after { + background: linear-gradient(to right, transparent, var(--he-title-bar-active-bg)); +} + +.popover.hover-editor.is-pinned.is-pinned.is-active .popover-title:after { + background: linear-gradient(to right, transparent, var(--he-title-bar-active-pinned-bg)); +} + +.popover.hover-editor.is-pinned.is-pinned .popover-title:after { + background: linear-gradient(to right, transparent, var(--he-title-bar-inactive-pinned-bg)); +} + +.popover.hover-editor .popover-title:after { + content: " "; + position: absolute; + top: 0; + right: 0; + width: 30px; + height: 100%; + background: linear-gradient(to right, transparent, var(--he-title-bar-inactive-bg)); +} + +.popover.hover-editor .mod-show-navbar svg { + transform: rotate(90deg); +} + +.popover.hover-editor>.popover-content>.workspace-split { + height: calc(100% - var(--he-title-bar-height)); +} + +.popover.hover-editor .view-header { + border-top: none; + transition: all var(--he-popover-header-transition-speed); + display: flex; +} + +.popover.hover-editor .view-header .view-header-icon { + display: flex; +} + +.popover.hover-editor.show-navbar:not(.is-minimized) .popover-title { + opacity: 0; +} + +.popover.hover-editor:not(.show-navbar) .view-header { + height: 0px; + overflow: hidden; +} + +.popover.hover-editor.show-navbar .view-header { + /* theme devs: if you want to change the header height, you must do so by setting the --he-view-header-height variable */ + /* if you don't use the variable, you will break internal measurement logic */ + height: var(--he-view-header-height); + overflow: unset; +} + +.popover.hover-editor:not(.show-navbar) .view-content { + height: 100%; +} + +.popover.hover-editor .workspace-leaf-content[data-type="image"] .view-content { + padding: 0; + position: relative; + overflow: hidden; +} + +.popover.hover-editor .workspace-leaf-content[data-type="image"] img { + display: block; + position: relative; + height: 100%; + width: 100%; + max-width: unset; + border-radius: 0; +} + +body .popover.hover-editor .view-content { + /* theme devs: if you want to change the header height, you must do so by setting the --he-view-header-height variable */ + /* if you don't use the variable, you will break internal measurement logic */ + height: calc(100% - var(--he-view-header-height)); +} + +/* start: zoomable images feature */ + +.popover.hover-editor.image-zoom .view-content .image-embed:active { + aspect-ratio: unset; + cursor: zoom-out; + display: block; + z-index: 200; + position: fixed; + max-height: calc(100% + 1px); + max-width: 100%; + height: calc(100% + 1px); + width: 100%; + object-fit: contain; + margin: -0.5px auto 0; + text-align: center; + padding: 0; + left: 0; + right: 0; + bottom: 0; + max-width: unset; +} + +/* extra specificity to override some community theme styles that cause issues */ +.popover.hover-editor.image-zoom .view-content .image-embed img:active { + top: 50%; + z-index: 99; + transform: translateY(-50%); + padding: 0; + margin: 0 auto; + width: calc(100% - 20px); + height: unset; + max-height: 95vh; + object-fit: contain; + left: 0; + right: 0; + bottom: 0; + position: absolute; + opacity: 1; + max-width: unset; + max-height: 100%; +} + +.popover.hover-editor.image-zoom .view-content .image-embed:active:after { + background-color: var(--background-primary); + opacity: 0.9; + content: " "; + height: calc(100% + 1px); + width: 100%; + position: fixed; + left: 0; + right: 1px; + z-index: 0; +} + +.popover.hover-editor.image-zoom .view-content img { + cursor: zoom-in; +} + +/* extra specificity to override some community theme styles that cause issues */ +.popover.hover-editor.image-zoom .workspace-leaf-content[data-type="image"] img { + cursor: zoom-in; + top: 50%; + transform: translateY(-50%); + object-fit: contain; + height: unset; + left: 0; + right: 0; + bottom: 0; + position: absolute; + opacity: 1; + max-height: 100%; +} + +/* end: zoomable images feature */ diff --git a/src/theme/blockquote.scss b/src/styles/theme/blockquote.scss similarity index 100% rename from src/theme/blockquote.scss rename to src/styles/theme/blockquote.scss diff --git a/src/theme/callout.scss b/src/styles/theme/callout.scss similarity index 99% rename from src/theme/callout.scss rename to src/styles/theme/callout.scss index a44df00..afc25e1 100644 --- a/src/theme/callout.scss +++ b/src/styles/theme/callout.scss @@ -805,6 +805,13 @@ body.style-options-for-admonition-plugin .admonition-flex .admonition-content[da justify-content: space-around; } +// 第一个列表不需要padding-inline-start +body.style-options-for-admonition-plugin .admonition-flex .admonition-content { + ul:nth-child(1), ol:nth-child(1) { + padding-inline-start: 0; + } +} + .print .markdown-preview-view .admonition-flex .admonition-content { display: flex !important; } diff --git a/src/styles/theme/checkbox.scss b/src/styles/theme/checkbox.scss new file mode 100644 index 0000000..5be4c8e --- /dev/null +++ b/src/styles/theme/checkbox.scss @@ -0,0 +1,1190 @@ +// https://github.com/SlRvb/Obsidian--ITS-Theme/blob/main/Snippets/S%20-%20Checkboxes.css + +/* @settings +name: SlRvb's Checkboxes +id: checkbox +settings: + - + title: Colorful Task Text + description: Add color to the text of the task. + id: check-color + type: class-toggle + - + title: Colorful Task Background + description: Add color to the background of the task. + id: check-bg + type: class-toggle + - + title: Normal Task Text + description: Reapply regular text color to the text of the task. + id: check-text + type: class-toggle + - + title: Checkbox Strikethrough + description: Restore default strike through + id: check-strike + type: class-toggle + - + title: Checkbox Fixes + id: Checkbox-Fixes + type: heading + level: 2 + collapsed: true + - + title: Checkbox Padding Fix + description: Toggle off if checklists are misaligned for your current theme. + id: chck-pad + type: class-toggle + default: true + - + title: Checkbox Height Adjustment (LP/P/R) + description: Preview/Reading Mode Icon adjustment slider. + id: chbx-pre-height + type: variable-number-slider + default: 0 + format: px + min: -8 + max: 8 + step: 1 + - + title: Checkbox Height Adjustment (S) + description: Source Mode Icon adjustment slider. + id: chbx-ed-height + type: variable-number-slider + default: 4 + format: px + min: -8 + max: 8 + step: 1 + - + title: Checkbox Strike Specific + id: Checkbox-Strike-Specific + type: heading + level: 2 + collapsed: true + - + title: "[x] Regular" + id: chst-reg + type: class-toggle + - + title: "[X] Checked" + id: chst-chk + type: class-toggle + - + title: "[-] Dropped" + id: chst-drop + type: class-toggle + - + title: "[>] Forward" + id: chst-frwd + type: class-toggle + - + title: "[D] Defer" + id: chst-defr + type: class-toggle + - + title: "[?] Question" + id: chst-q + type: class-toggle + - + title: "[/] Half" + id: chst-half + type: class-toggle + - + title: "[+] Add" + id: chst-add + type: class-toggle + - + title: "[R] Research" + id: chst-rsrch + type: class-toggle + - + title: "[!] Important" + id: chst-imp + type: class-toggle + - + title: "[i] Idea" + id: chst-idea + type: class-toggle + - + title: "[B] Brainstorm" + id: chst-brn + type: class-toggle + - + title: "[P] Pro" + id: chst-pro + type: class-toggle + - + title: "[C] Con" + id: chst-con + type: class-toggle + - + title: "[Q] Quote" + id: chst-quot + type: class-toggle + - + title: "[N] Note" + id: chst-brn + type: class-toggle + - + title: "[b] Bookmark" + id: chst-book + type: class-toggle + - + title: "[I] info" + id: chst-info + type: class-toggle +*/ +/*Icon: ITS Icons*/ +@font-face { + font-family: "its"; + src: url("data:application/octet-stream;base64,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") format("woff"), url("data:application/octet-stream;base64,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AREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAARmaWxlBmZvbGRlcgZidWxsZXQOZC1hbmQtZC1icmFuZHMGbm90ZS0yBmxheWVycwdwcmludGVyCGJhY2tsaW5rB291dGxpbmsEbGluawVjbG9zZRBmb3JtYXQtbGlzdC10ZXh0CHBlbmNpbC0xBmJvb2stMwxwbGFuZXQtc2hhcnAJbGlnaHRuaW5nDWxpbmstZXh0ZXJuYWwNbGluay1pbnRlcm5hbBBmb290bm90ZS13cml0aW5nC2xlLWJlYW4tZG5kB3NlYXJjaDIIZm9vdG5vdGUPYW5nbGUtZG91YmxlLXVwCWNoYXItbWFpbg9jaGFyLWFudGFnb25pc3QJY2hhci1zaWRlCmNoYXItZXh0cmEJY2hhcmFjdGVyJGljX2ZsdWVudF9wZW9wbGVfY29tbXVuaXR5XzE2X2ZpbGxlZA5mYS1jaGVjay1zb2xpZAVtaW51cxdmZWF0aGVyLWljb24tcGFwZXItcGxhbg1jYWxlbmRhci1maWxsEWZvbnRpc3RvLXF1ZXN0aW9uFWJveGljb25zLXBsdXMtbWVkaWNhbBRlbHVzaXZlLWljb25zLXNlYXJjaBlmb250LWF3ZXNvbWU0LWV4Y2xhbWF0aW9uCWxpZ2h0YnVsYhFidWJibGUtY2hhcnQtZmlsbA10aHVtYi11cC1maWxsD3RodW1iLWRvd24tZmlsbA1mb250aXNvLXF1b3RlEWZpbGUtcGFwZXItMi1maWxsDWJvb2ttYXJrLWZpbGwLZW50eXBvLWluZm8EaGFsZgdleGFtcGxlEmFuZ2xlLWRvdWJsZS1yaWdodApvay1jaXJjbGVkCm1hcC1tYXJrZXIFYXdhcmQLc3RyZWV0LXZpZXcNYnVsbGV0LXNlbGVjdAVzcGluMgR0aW1lBGNoYXQEY3JvdwpzaWducy1wb3N0BWhlYXJ0BGxvY2sIeWluLXlhbmcOc3dvcmQtZmlsbC1maXgAAAAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViw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") format("truetype"); + } + :root { + --chbx-ed-height: 4px; + --chbx-pre-height: 0px; + --chbx-margin: -5px; + --its: "its"; + } + + .theme-dark { + --chbx-q: 253, 175, 0; + /*#fdaf00*/ + --chbx-h: 92, 118, 153; + /*#5c7699*/ + --chbx-d: 62, 69, 82; + /*#3e4552*/ + --chbx-i: 194, 42, 42; + /*#c22a2a*/ + --chbx-a: 248, 114, 181; + /*#f872b5*/ + --chbx-R: 170, 179, 202; + /*#aab3ca*/ + --chbx-id:231, 231, 171; + /* #e7e7ab*/ + --chbx-B: 136, 94, 233; + /*#885ee9*/ + --chbx-P: 79, 165, 79; + /*#4fa54f*/ + --chbx-C: 207, 67, 67; + /*#cf4343*/ + --chbx-N: 133, 91, 65; + /*#855b41*/ + --chbx-b: 230, 129, 63; + /*#e6813f*/ + --chbx-I: 82, 139, 212; + /*#528bd4*/ + --chbx-c: 149, 233, 238; + /*#95E9EE*/ + --chbx-r: 249, 190, 123; + /*#f9be7b*/ + } + + .theme-light { + --chbx-q: 253, 175, 0; + /*#fdaf00*/ + --chbx-h: 168, 177, 189; + /*#a8b1bd*/ + --chbx-d: 203, 212, 235; + /*#cad3eb*/ + --chbx-i: 219, 1, 1; + /*#db0101*/ + --chbx-a: 248, 114, 181; + /*#f872b5*/ + --chbx-R: 159, 186, 223; + /*#9fbadf*/ + --chbx-id:202, 199, 0; + /* #cac700*/ + --chbx-B: 182, 118, 255; + /*#b676ff*/ + --chbx-P: 79, 165, 79; + /*#4fa54f*/ + --chbx-C: 214, 108, 108; + /*#d66c6c*/ + --chbx-N: 161, 106, 73; + /*#a16a49*/ + --chbx-b: 251, 146, 76; + /*#fb924c*/ + --chbx-I: 82, 139, 212; + /*#528bd4*/ + --chbx-c: 149, 217, 238; + /*#95E9EE*/ + --chbx-r: 249, 190, 123; + /*#f9be7b*/ + } + + /*Restyle Checkboxes*/ + /*Different/Alternate Checkbox*/ + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:is([data-task=X], + [data-task=">"], + [data-task="-"], + [data-task=">"], + [data-task=D], + [data-task="?"], + [data-task="/"], + [data-task="+"], + [data-task=R], + [data-task="!"], + [data-task=i], + [data-task=B], + [data-task=P], + [data-task=C], + [data-task=Q], + [data-task=N], + [data-task=b], + [data-task=I], + [data-task=p], + [data-task=L], + [data-task=E], + [data-task=A], + [data-task=r], + [data-task=c], + [data-task=o], + [data-task=d], + [data-task=T], + [data-task=t], + [data-task=O], + [data-task=W], + [data-task="@"], + [data-task=F], + [data-task=f], + [data-task="~"], + [data-task=H], + [data-task="&"], + [data-task=s]) > .task-list-item-checkbox, body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:is([data-task=X], + [data-task=">"], + [data-task="-"], + [data-task=">"], + [data-task=D], + [data-task="?"], + [data-task="/"], + [data-task="+"], + [data-task=R], + [data-task="!"], + [data-task=i], + [data-task=B], + [data-task=P], + [data-task=C], + [data-task=Q], + [data-task=N], + [data-task=b], + [data-task=I], + [data-task=p], + [data-task=L], + [data-task=E], + [data-task=A], + [data-task=r], + [data-task=c], + [data-task=o], + [data-task=d], + [data-task=T], + [data-task=t], + [data-task=O], + [data-task=W], + [data-task="@"], + [data-task=F], + [data-task=f], + [data-task="~"], + [data-task=H], + [data-task="&"], + [data-task=s]) input:is([type=checkbox], [type=checkbox i]):checked, body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:is([data-task=X], + [data-task=">"], + [data-task="-"], + [data-task=">"], + [data-task=D], + [data-task="?"], + [data-task="/"], + [data-task="+"], + [data-task=R], + [data-task="!"], + [data-task=i], + [data-task=B], + [data-task=P], + [data-task=C], + [data-task=Q], + [data-task=N], + [data-task=b], + [data-task=I], + [data-task=p], + [data-task=L], + [data-task=E], + [data-task=A], + [data-task=r], + [data-task=c], + [data-task=o], + [data-task=d], + [data-task=T], + [data-task=t], + [data-task=O], + [data-task=W], + [data-task="@"], + [data-task=F], + [data-task=f], + [data-task="~"], + [data-task=H], + [data-task="&"], + [data-task=s]) input:is([type=checkbox], [type=checkbox i]):checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked:is([data-task=X], + [data-task=">"], + [data-task="-"], + [data-task=">"], + [data-task=D], + [data-task="?"], + [data-task="/"], + [data-task="+"], + [data-task=R], + [data-task="!"], + [data-task=i], + [data-task=B], + [data-task=P], + [data-task=C], + [data-task=Q], + [data-task=N], + [data-task=b], + [data-task=I], + [data-task=p], + [data-task=L], + [data-task=E], + [data-task=A], + [data-task=r], + [data-task=c], + [data-task=o], + [data-task=d], + [data-task=T], + [data-task=t], + [data-task=O], + [data-task=W], + [data-task="@"], + [data-task=F], + [data-task=f], + [data-task="~"], + [data-task=H], + [data-task="&"], + [data-task=s]) > .task-list-item-checkbox, body:not(.alt-chkbx-off) .task-list-item.is-checked:is([data-task=X], + [data-task=">"], + [data-task="-"], + [data-task=">"], + [data-task=D], + [data-task="?"], + [data-task="/"], + [data-task="+"], + [data-task=R], + [data-task="!"], + [data-task=i], + [data-task=B], + [data-task=P], + [data-task=C], + [data-task=Q], + [data-task=N], + [data-task=b], + [data-task=I], + [data-task=p], + [data-task=L], + [data-task=E], + [data-task=A], + [data-task=r], + [data-task=c], + [data-task=o], + [data-task=d], + [data-task=T], + [data-task=t], + [data-task=O], + [data-task=W], + [data-task="@"], + [data-task=F], + [data-task=f], + [data-task="~"], + [data-task=H], + [data-task="&"], + [data-task=s]) input:is([type=checkbox], [type=checkbox i]):checked, body:not(.alt-chkbx-off) .task-list-item.is-checked:is([data-task=X], + [data-task=">"], + [data-task="-"], + [data-task=">"], + [data-task=D], + [data-task="?"], + [data-task="/"], + [data-task="+"], + [data-task=R], + [data-task="!"], + [data-task=i], + [data-task=B], + [data-task=P], + [data-task=C], + [data-task=Q], + [data-task=N], + [data-task=b], + [data-task=I], + [data-task=p], + [data-task=L], + [data-task=E], + [data-task=A], + [data-task=r], + [data-task=c], + [data-task=o], + [data-task=d], + [data-task=T], + [data-task=t], + [data-task=O], + [data-task=W], + [data-task="@"], + [data-task=F], + [data-task=f], + [data-task="~"], + [data-task=H], + [data-task="&"], + [data-task=s]) input:is([type=checkbox], [type=checkbox i]):checked::after { + background-image: url(); + position: relative; + -webkit-appearance: none; + appearance: none; + filter: none; + cursor: pointer; + background-color: transparent !important; + transform: unset; + box-shadow: unset; + font: var(--its); + font-family: var(--its); + font-size: inherit; + top: var(--chbx-pre-height); + font-weight: 10; + border: 0; + vertical-align: 0px; + text-align: center; + } + + .markdown-source-view.mod-cm6 .task-list-item-checkbox { + vertical-align: -2px; + } + + .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task:not([data-task=" "]):not([data-task=x])::before { + border: none; + } + + /*Checked Text*/ + .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:not([data-task=" "]), + ul > li.task-list-item.is-checked, + ol > li.task-list-item.is-checked { + color: var(--lines, var(--text-faint)); + font-weight: bold; + } + + :not(.chkbx-strike) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:not([data-task=" "]), + :not(.chkbx-strike) .task-list-item.is-checked { + text-decoration: unset; + } + + /* Checkbox Text Normal */ + .check-text.check-text.check-text.check-text .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task], .check-text.check-text.check-text.check-text ul li:not([data-task=x]).task-list-item.is-checked { + color: unset; + font-weight: unset; + } + + /*CodeMirrorOptions Plugin Support*/ + body.theme-dark.hide-tokens.style-check-box .cm-s-obsidian span.cm-formatting-task, + body.theme-light.hide-tokens.style-check-box .cm-s-obsidian span.cm-formatting-task { + filter: unset; + } + + .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task::before { + position: absolute; + content: " "; + font-family: var(--its); + border: 1px solid var(--accent, var(--interactive-accent)); + height: 0.9em; + width: 0.9em; + margin-top: var(--chbx-ed-height); + margin-left: 4px; + border-radius: 50%; + } + + .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=x]::before { + background: var(--accent, var(--interactive-accent)); + } + + /* Checkbox Icon Setup*/ + .markdown-source-view.mod-cm6 .task-list-item-checkbox::before, + .markdown-source-view.mod-cm6 .task-list-item-checkbox:not([data-task=x]):not([data-task=" "]) { + padding-left: 0px; + font-family: var(--its); + font-weight: 10; + } + + .markdown-source-view.mod-cm6 .task-list-item-checkbox { + vertical-align: middle; + } + + /*Fixes*/ + body .markdown-source-view.mod-cm6 .task-list-item-checkbox:not([data-task=x]):before, + body .markdown-preview-view li:not([data-task=x]) .task-list-item-checkbox:checked::before { + background-image: unset; + transform: none; + padding: unset; + -webkit-mask-image: unset; + left: unset; + font-size: inherit; + text-shadow: none; + } + + .markdown-preview-view li:not([data-task=x]) .task-list-item-checkbox:checked { + box-shadow: none; + } + + input[type=checkbox]:not([data-task=x]) { + padding: initial; + } + + .minimal-light li:not([data-task=x]) input[type=checkbox i]:checked, .minimal-light .cm-s-obsidian input[type=checkbox]:not([data-task=x]):checked, + .minimal-dark li:not([data-task=x]) input[type=checkbox i]:checked, + .minimal-dark .cm-s-obsidian input[type=checkbox]:not([data-task=x]):checked { + background-color: transparent !important; + } + + .check-bg.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task], .check-bg.check-bg .rtl li[data-task].task-list-item.is-checked, .check-bg.check-bg li[data-task].task-list-item.is-checked { + border-left: unset; + } + + input[type=checkbox]:checked, + li > input[type=checkbox]:checked, + li > p > input[type=checkbox]:checked { + -webkit-mask-image: unset; + overflow: unset; + } + + input[type=checkbox]:checked:after, + li > input[type=checkbox]:checked:after, + li > p > input[type=checkbox]:checked:after { + content: ""; + } + + /*--Checkbox Type Icons--*/ + body:not(.alt-chkbx-off) { + /* [X]: Checked: Checkmark */ + /* [>]: Forward: SVG Plane */ + /* [D]: Deferred/Scheduled: Calendar */ + /* [-]: Cancelled/Non-Task: Line */ + /* [?]: Question: Question Mark */ + /* [!]: Important: Exclamation Mark */ + /* [+]: Add: Plus */ + /* [/]: Half Done: Right Triangle */ + /* [R]: Research: Magnifying Glass */ + /* [i]: Idea: Lightbulb */ + /* [B]: Brainstorm: Bubbles */ + /* [P]: Pro: Thumbs Up */ + /* [C]: Con: Thumbs Down */ + /* [I]: Info: Italicized I */ + /* [Q]: Quote: Closing Quotation Mark */ + /* [N]: Note: Open Scroll */ + /* [b]: Bookmark: Bookmark Flag */ + /* [p]: Paraphrase */ + /* [E]: Example */ + /* [L]: Location */ + /* [A]: Answer */ + /* [r]: Answer */ + /* [c]: Choice */ + /* [o]: Option */ + /* [d]: Doing */ + /* [T]: Time */ + /* [@]: Person / Character */ + /* [t]: Talk */ + /* [O]: Outline */ + /* [W]: World */ + /* [F]: Foreshadow */ + /* [f]: Clue / Find */ + /* [~]: Conflict */ + /* [H]: Health */ + /* [&]: Symbolism */ + /* [s]: Secret */ + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=X]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=X]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=X]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=X] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=X] p > input[type=checkbox]:checked::before { + color: var(--accent2-lite, var(--text-accent)); + content: "\ec01"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=">"]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=">"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=">"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=">"] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=">"] p > input[type=checkbox]:checked::before { + color: var(--text-normal); + content: "\ec03"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=D]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=D]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=D]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=D] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=D] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-h)); + content: "\ec04"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="-"]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task="-"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task="-"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="-"] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="-"] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-d)); + content: "\ec02"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="?"]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task="?"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task="?"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="?"] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="?"] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-q)); + content: "\ec05"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="!"]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task="!"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task="!"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="!"] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="!"] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-i)); + content: "\ec08"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="+"]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task="+"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task="+"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="+"] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="+"] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-a)); + content: "\ec06"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="/"]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task="/"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task="/"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="/"] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="/"] p > input[type=checkbox]:checked::before { + color: var(--accent, var(--interactive-accent)); + content: "\ec17"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=R]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=R]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=R]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=R] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=R] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-R)); + content: "\ec07"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=i]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=i]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=i]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=i] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=i] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-id)); + content: "\ec09"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=B]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=B]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=B]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=B] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=B] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-B)); + content: "\ec10"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=P]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=P]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=P]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=P] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=P] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-P)); + content: "\ec11"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=C]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=C]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=C]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=C] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=C] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-C)); + content: "\ec12"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=I]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=I]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=I]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=I] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=I] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-I)); + content: "\ec16"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=Q]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=Q]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=Q]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=Q] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=Q] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-R)); + content: "\ec13"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=N]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=N]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=N]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=N] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=N] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-N)); + content: "\ec14"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=b]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=b]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=b]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=b] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=b] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-b)); + content: "\ec15"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=p]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=p]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=p]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=p] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=p] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-R)); + content: "\ec19"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=E]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=E]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=E]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=E] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=E] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-I)); + content: "\ec18"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=L]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=L]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=L]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=L] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=L] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-N)); + content: "\ec21"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=A]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=A]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=A]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=A] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=A] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-P)); + content: "\ec20"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=r]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=r]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=r]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=r] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=r] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-r)); + content: "\ec22"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=c]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=c]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=c]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=c] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=c] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-c)); + content: "\ec23"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=o]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=o]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=o]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=o] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=o] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-b)); + content: "\ec24"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=d]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=d]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=d]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=d] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=d] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-I)); + content: "\ec25"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=T]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=T]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=T]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=T] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=T] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-R)); + content: "\ec26"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="@"]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task="@"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task="@"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="@"] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="@"] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-b)); + content: "\e900"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=t]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=t]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=t]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=t] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=t] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-R)); + content: "\ec27"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=O]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=O]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=O]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=O] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=O] p > input[type=checkbox]:checked::before { + color: var(--accent, var(--interactive-accent)); + content: "\e805"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=W]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=W]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=W]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=W] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=W] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-P)); + content: "\e813"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=F]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=F]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=F]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=F] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=F] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-h)); + content: "\ec28"; + margin-left: -4px; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=f]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=f]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=f]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=f] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=f] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-N)); + content: "\e81e"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="~"]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task="~"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task="~"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="~"] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="~"] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-C)); + content: "\ec33"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=H]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=H]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=H]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=H] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=H] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-C)); + content: "\ec30"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="&"]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task="&"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task="&"]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="&"] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="&"] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-B)); + content: "\ec32"; + } + body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=s]::before, body:not(.alt-chkbx-off) .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task[data-task=s]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked .task-list-item-checkbox[data-task=s]::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=s] > input[type=checkbox]:checked::before, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=s] p > input[type=checkbox]:checked::before { + color: rgb(var(--chbx-d)); + content: "\ec31"; + } + + /*--Checkbox Text Colors--*/ + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=X], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=X], .check-color.check-color ul li[data-task=X].task-list-item.is-checked { + color: var(--text-faint); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=">"], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=">"], .check-color.check-color ul li[data-task=">"].task-list-item.is-checked { + color: var(--text-normal); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=D], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=D], .check-color.check-color ul li[data-task=D].task-list-item.is-checked { + color: rgb(var(--chbx-h)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="-"], .check-color span[data-task="-"], .check-color.check-color ul li[data-task="-"].task-list-item.is-checked { + color: rgb(var(--chbx-d)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="?"], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task="?"], .check-color.check-color ul li[data-task="?"].task-list-item.is-checked { + color: rgb(var(--chbx-q)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="!"], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task="!"], .check-color.check-color ul li[data-task="!"].task-list-item.is-checked { + color: rgb(var(--chbx-i)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="+"], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task="+"], .check-color.check-color ul li[data-task="+"].task-list-item.is-checked { + color: rgb(var(--chbx-a)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="/"], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task="/"], .check-color.check-color ul li[data-task="/"].task-list-item.is-checked:not(::before) { + background: linear-gradient(to right, var(--accent, var(--interactive-accent)) 0%, var(--chbx-d) 10%); + -webkit-text-fill-color: transparent; + -webkit-background-clip: text; + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="/"], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task="/"] { + background: linear-gradient(to right, var(--accent, var(--interactive-accent)) 0%, var(--chbx-d) 80%); + -webkit-background-clip: text; + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=R], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=R], .check-color.check-color ul li[data-task=R].task-list-item.is-checked { + color: rgb(var(--chbx-R)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=i], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=i], .check-color.check-color ul li[data-task=i].task-list-item.is-checked { + color: rgb(var(--chbx-id)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=B], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=B], .check-color.check-color ul li[data-task=B].task-list-item.is-checked { + color: rgb(var(--chbx-B)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=P], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=P], .check-color.check-color ul li[data-task=P].task-list-item.is-checked { + color: rgb(var(--chbx-P)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=C], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=C], .check-color.check-color ul li[data-task=C].task-list-item.is-checked { + color: rgb(var(--chbx-C)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=I], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=I], .check-color.check-color ul li[data-task=I].task-list-item.is-checked { + color: rgb(var(--chbx-I)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=Q], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=Q], .check-color.check-color ul li[data-task=Q].task-list-item.is-checked { + color: rgb(var(--chbx-R)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=N], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=N], .check-color.check-color ul li[data-task=N].task-list-item.is-checked { + color: rgb(var(--chbx-N)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=b], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=b], .check-color.check-color ul li[data-task=b].task-list-item.is-checked { + color: rgb(var(--chbx-b)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=p], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=p], .check-color.check-color ul li[data-task=p].task-list-item.is-checked { + color: rgb(var(--chbx-R)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=L], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=L], .check-color.check-color ul li[data-task=L].task-list-item.is-checked { + color: rgb(var(--chbx-N)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=E], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=E], .check-color.check-color ul li[data-task=E].task-list-item.is-checked { + color: rgb(var(--chbx-I)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=A], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=A], .check-color.check-color ul li[data-task=A].task-list-item.is-checked { + color: rgb(var(--chbx-P)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=r], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=r], .check-color.check-color ul li[data-task=r].task-list-item.is-checked { + color: rgb(var(--chbx-r)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=c], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=c], .check-color.check-color ul li[data-task=c].task-list-item.is-checked { + color: rgb(var(--chbx-c)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=d], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=d], .check-color.check-color ul li[data-task=d].task-list-item.is-checked { + color: rgb(var(--chbx-I)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=T], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=T], .check-color.check-color ul li[data-task=T].task-list-item.is-checked { + color: rgb(var(--chbx-R)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="@"], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task="@"], .check-color.check-color ul li[data-task="@"].task-list-item.is-checked { + color: rgb(var(--chbx-b)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=t], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=t], .check-color.check-color ul li[data-task=t].task-list-item.is-checked { + color: rgb(var(--chbx-R)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=O], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=O], .check-color.check-color ul li[data-task=O].task-list-item.is-checked { + color: var(--text-normal); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="~"], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task="~"], .check-color.check-color ul li[data-task="~"].task-list-item.is-checked { + color: rgb(var(--chbx-C)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=W], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=W], .check-color.check-color ul li[data-task=W].task-list-item.is-checked { + color: rgb(var(--chbx-P)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=f], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=f], .check-color.check-color ul li[data-task=f].task-list-item.is-checked { + color: rgb(var(--chbx-N)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=F], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=F], .check-color.check-color ul li[data-task=F].task-list-item.is-checked { + color: rgb(var(--chbx-h)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=H], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=H], .check-color.check-color ul li[data-task=H].task-list-item.is-checked { + color: rgb(var(--chbx-a)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="&"], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task="&"], .check-color.check-color ul li[data-task="&"].task-list-item.is-checked { + color: rgb(var(--chbx-B)); + } + .check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=s], .check-color span:not(.cm-link):not(.cm-inline-code) span[data-task=s], .check-color.check-color ul li[data-task=s].task-list-item.is-checked { + color: rgb(var(--chbx-d)); + } + + /*--Checkbox Background--*/ + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=X], .check-bg li[data-task=X].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-R)); + background: rgba(var(--chbx-R), 20%); + /*#bbcbff17*/ + } + .check-bg .rtl li[data-task=X].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-R)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=">"], .check-bg li[data-task=">"].task-list-item.is-checked { + border-left: 2px double rgb(var(--chbx-h)); + background: rgba(var(--chbx-h), 20%); + } + .check-bg .rtl li[data-task=">"].task-list-item.is-checked { + border-left: unset; + border-right: 2px double rgb(var(--chbx-h)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=D], .check-bg li[data-task=D].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-h)); + background: rgba(var(--chbx-h), 20%); + } + .check-bg .rtl li[data-task=D].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-h)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="-"], .check-bg li[data-task="-"].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-d)); + background: rgba(var(--chbx-d), 20%); + } + .check-bg .rtl li[data-task="-"].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-d)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="?"], .check-bg li[data-task="?"].task-list-item.is-checked { + border-left: 2px dashed rgb(var(--chbx-q)); + background: rgba(var(--chbx-q), 20%); + /*#fac35d17*/ + } + .check-bg .rtl li[data-task="?"].task-list-item.is-checked { + border-left: unset; + border-right: 2px dashed rgb(var(--chbx-q)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="!"], .check-bg li[data-task="!"].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-i)); + background: rgba(var(--chbx-i), 20%); + } + .check-bg .rtl li[data-task="!"].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-i)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="+"], .check-bg li[data-task="+"].task-list-item.is-checked { + border-left: 2px dashed rgb(var(--chbx-a)); + background: rgba(var(--chbx-a), 20%); + } + .check-bg .rtl li[data-task="+"].task-list-item.is-checked { + border-left: unset; + border-right: 2px dashed rgb(var(--chbx-a)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="/"], .check-bg li[data-task="/"].task-list-item.is-checked { + border-left: 2px dashed rgb(var(--chbx-R)); + background: linear-gradient(to left, var(--accent, var(--interactive-accent)) 0%, transparent 1%); + } + .check-bg .rtl li[data-task="/"].task-list-item.is-checked { + border-left: unset; + border-right: 2px dashed rgb(var(--chbx-R)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=R], .check-bg li[data-task=R].task-list-item.is-checked { + border-left: 2px dashed rgb(var(--chbx-R)); + background: rgba(var(--chbx-R), 20%); + /*#bbcbff17*/ + } + .check-bg .rtl li[data-task=R].task-list-item.is-checked { + border-left: unset; + border-right: 2px dashed rgb(var(--chbx-R)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=i], .check-bg li[data-task=i].task-list-item.is-checked { + border-left: 2px dashed rgb(var(--chbx-id)); + background: rgba(var(--chbx-id), 20%); + } + .check-bg .rtl li[data-task=i].task-list-item.is-checked { + border-left: unset; + border-right: 2px dashed rgb(var(--chbx-id)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=B], .check-bg li[data-task=B].task-list-item.is-checked { + border-left: 2px double rgb(var(--chbx-B)); + background: rgba(var(--chbx-B), 20%); + /*#945dfa25*/ + } + .check-bg .rtl li[data-task=B].task-list-item.is-checked { + border-left: unset; + border-right: 2px double rgb(var(--chbx-B)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=P], .check-bg li[data-task=P].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-P)); + background: rgba(var(--chbx-P), 20%); + } + .check-bg .rtl li[data-task=P].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-P)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=C], .check-bg li[data-task=C].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-C)); + background: rgba(var(--chbx-C), 20%); + } + .check-bg .rtl li[data-task=C].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-C)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=I], .check-bg li[data-task=I].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-I)); + background: rgba(var(--chbx-I), 20%); + } + .check-bg .rtl li[data-task=I].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-I)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=Q], .check-bg li[data-task=Q].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-R)); + border-right: 2px solid rgb(var(--chbx-R)); + background: rgba(var(--chbx-R), 20%); + } + .check-bg .rtl li[data-task=Q].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-R)); + border-right: 2px solid rgb(var(--chbx-R)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=N], .check-bg li[data-task=N].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-N)); + background: rgba(var(--chbx-N), 20%); + } + .check-bg .rtl li[data-task=N].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-N)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=b], .check-bg li[data-task=b].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-b)); + background: rgba(var(--chbx-b), 20%); + } + .check-bg .rtl li[data-task=b].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-b)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=p], .check-bg li[data-task=p].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-R)); + background: rgba(var(--chbx-R), 20%); + } + .check-bg .rtl li[data-task=p].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-R)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=L], .check-bg li[data-task=L].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-N)); + background: rgba(var(--chbx-N), 20%); + } + .check-bg .rtl li[data-task=L].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-N)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=E], .check-bg li[data-task=E].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-I)); + background: rgba(var(--chbx-I), 20%); + } + .check-bg .rtl li[data-task=E].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-I)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=A], .check-bg li[data-task=A].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-P)); + background: rgba(var(--chbx-P), 20%); + } + .check-bg .rtl li[data-task=A].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-P)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=r], .check-bg li[data-task=r].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-r)); + background: rgba(var(--chbx-r), 20%); + } + .check-bg .rtl li[data-task=r].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-r)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=c], .check-bg li[data-task=c].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-c)); + background: rgba(var(--chbx-c), 20%); + } + .check-bg .rtl li[data-task=c].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-c)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=d], .check-bg li[data-task=d].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-I)); + background: rgba(var(--chbx-I), 20%); + } + .check-bg .rtl li[data-task=d].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-I)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=T], .check-bg li[data-task=T].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-R)); + background: rgba(var(--chbx-R), 20%); + } + .check-bg .rtl li[data-task=T].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-R)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="@"], .check-bg li[data-task="@"].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-b)); + background: rgba(var(--chbx-b), 20%); + } + .check-bg .rtl li[data-task="@"].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-b)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=t], .check-bg li[data-task=t].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-R)); + background: rgba(var(--chbx-R), 20%); + } + .check-bg .rtl li[data-task=t].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-R)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=O], .check-bg li[data-task=O].task-list-item.is-checked { + border-left: 2px solid var(--interactive-accent); + background: var(--background-modifier-active-hover); + } + .check-bg .rtl li[data-task=O].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid var(--interactive-accent); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=W], .check-bg li[data-task=W].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-P)); + background: rgba(var(--chbx-P), 20%); + } + .check-bg .rtl li[data-task=W].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-P)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=f], .check-bg li[data-task=f].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-N)); + background: rgba(var(--chbx-N), 20%); + } + .check-bg .rtl li[data-task=f].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-N)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=F], .check-bg li[data-task=F].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-h)); + background: rgba(var(--chbx-h), 20%); + } + .check-bg .rtl li[data-task=F].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-h)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="~"], .check-bg li[data-task="~"].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-C)); + background: rgba(var(--chbx-C), 20%); + } + .check-bg .rtl li[data-task="~"].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-C)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=H], .check-bg li[data-task=H].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-a)); + background: rgba(var(--chbx-a), 20%); + } + .check-bg .rtl li[data-task=H].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-a)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="&"], .check-bg li[data-task="&"].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-B)); + background: rgba(var(--chbx-B), 20%); + } + .check-bg .rtl li[data-task="&"].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-B)); + } + .check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=s], .check-bg li[data-task=s].task-list-item.is-checked { + border-left: 2px solid rgb(var(--chbx-d)); + background: rgba(var(--chbx-d), 20%); + } + .check-bg .rtl li[data-task=s].task-list-item.is-checked { + border-left: unset; + border-right: 2px solid rgb(var(--chbx-d)); + } + + /*Hide Border For LP (Aligns Items Strangely) */ + body.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task] { + border: 0; + } + + /*Restore Strike Throughs*/ + .check-strike .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:not([data-task=" "]), .check-strike .markdown-preview-view ul > li.task-list-item.is-checked, .check-strike .markdown-preview-view ol > li.task-list-item.is-checked { + text-decoration: line-through 2px; + } + + .chst-reg.chst-reg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=x], + .chst-reg ul li[data-task=x].task-list-item.is-checked, + .chst-chk.chst-chk .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=X], + .chst-chk ul li[data-task=X].task-list-item.is-checked, + .chst-drop.chst-drop .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="-"], + .chst-drop ul li[data-task="-"].task-list-item.is-checked, + .chst-frwd.chst-frwd .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=">"], + .chst-frwd ul li[data-task=">"].task-list-item.is-checked, + .chst-defr.chst-defr .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=D], + .chst-defr ul li[data-task=D].task-list-item.is-checked, + .chst-q.chst-q .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="?"], + .chst-q ul li[data-task="?"].task-list-item.is-checked, + .chst-half.chst-half .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="/"], + .chst-half ul li[data-task="/"].task-list-item.is-checked, + .chst-add.chst-add .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="+"], + .chst-add ul li[data-task="+"].task-list-item.is-checked, + .chst-rsrch.chst-rsrch .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=R], + .chst-rsrch ul li[data-task=R].task-list-item.is-checked, + .chst-imp.chst-imp .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="!"], + .chst-imp ul li[data-task="!"].task-list-item.is-checked, + .chst-idea.chst-idea .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=i], + .chst-idea ul li[data-task=i].task-list-item.is-checked, + .chst-brn.chst-brn .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=B], + .chst-brn ul li[data-task=B].task-list-item.is-checked, + .chst-pro.chst-pro .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=P], + .chst-pro ul li[data-task=P].task-list-item.is-checked, + .chst-con.chst-con .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=C], + .chst-con ul li[data-task=C].task-list-item.is-checked, + .chst-quot.chst-quot .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=Q], + .chst-quot ul li[data-task=Q].task-list-item.is-checked, + .chst-note.chst-note .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=N], + .chst-note ul li[data-task=N].task-list-item.is-checked, + .chst-book.chst-book .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=b], + .chst-book ul li[data-task=b].task-list-item.is-checked, + .chst-info.chst-info .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=I], + .chst-info ul li[data-task=I].task-list-item.is-checked { + text-decoration: line-through 2px; + } diff --git a/src/theme/clutter-heading.scss b/src/styles/theme/clutter-heading.scss similarity index 100% rename from src/theme/clutter-heading.scss rename to src/styles/theme/clutter-heading.scss diff --git a/src/theme/fonts.scss b/src/styles/theme/fonts.scss similarity index 100% rename from src/theme/fonts.scss rename to src/styles/theme/fonts.scss diff --git a/src/theme/fullwidth.scss b/src/styles/theme/fullwidth.scss similarity index 100% rename from src/theme/fullwidth.scss rename to src/styles/theme/fullwidth.scss diff --git a/src/styles/theme/index.scss b/src/styles/theme/index.scss new file mode 100644 index 0000000..2ae6056 --- /dev/null +++ b/src/styles/theme/index.scss @@ -0,0 +1,46 @@ +// https://github.com/whyt-byte/Blue-Topaz_Obsidian-css and https://github.com/kepano/obsidian-minimal + +@mixin namespace($namespace) { + @at-root { + + //.#{$namespace} & { + // @content; + //} + &.#{$namespace} { + @content; + } + } +} +@import 'obsidian-default-theme'; +@import 'styles-setting'; +@import 'fonts'; +@import '../color-schemes/macos'; +@import '../color-schemes/atom'; +@import '../color-schemes/nord'; +@import '../color-schemes/awesome'; +@import 'clutter-heading'; +@import 'notebook-like-bg'; +@import 'callout'; +@import 'blockquote'; +@import 'fullwidth'; +@import 'checkbox'; + +body { + @include namespace('mod-windows') { + --theme-color: var(--interactive-accent); + /*radius*/ + --radius-xs: 3px; + --radius-s: 5px; + --radius-m: 7px; + --radius-l: 15px; + --font-size-preview-blockquote: 1em; + --callout-color: var(--interactive-accent-rgb); + // tag + --font-size-tag: 0.75em; + --font-family-special-tag: "Lucida Handwriting", "Segoe UI Emoji"; + } +} + +// .mod-windows { +// @extend body; +// } diff --git a/src/theme/notebook-like-bg.scss b/src/styles/theme/notebook-like-bg.scss similarity index 100% rename from src/theme/notebook-like-bg.scss rename to src/styles/theme/notebook-like-bg.scss diff --git a/src/theme/obsidian-default-theme.scss b/src/styles/theme/obsidian-default-theme.scss similarity index 100% rename from src/theme/obsidian-default-theme.scss rename to src/styles/theme/obsidian-default-theme.scss diff --git a/src/theme/styles-setting.scss b/src/styles/theme/styles-setting.scss similarity index 100% rename from src/theme/styles-setting.scss rename to src/styles/theme/styles-setting.scss diff --git a/src/theme/tag.scss b/src/styles/theme/tag.scss similarity index 100% rename from src/theme/tag.scss rename to src/styles/theme/tag.scss diff --git a/src/theme/theme-template.css b/src/styles/theme/theme-template.css similarity index 100% rename from src/theme/theme-template.css rename to src/styles/theme/theme-template.css diff --git a/src/styles/update-modal.scss b/src/styles/update-modal.scss new file mode 100644 index 0000000..9a53e4d --- /dev/null +++ b/src/styles/update-modal.scss @@ -0,0 +1,18 @@ +/* UpdateModal.ts */ +.awesome-brain-manager-update-modal-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.awesome-brain-manager-update-modal { + min-width: 35%; + max-height: 70%; +} + +.awesome-brain-manager-update-modal img { + width: 100%; + height: auto; + margin: 5px; +} diff --git a/src/theme/index.scss b/src/theme/index.scss deleted file mode 100644 index 9e39b14..0000000 --- a/src/theme/index.scss +++ /dev/null @@ -1,27 +0,0 @@ -// https://github.com/whyt-byte/Blue-Topaz_Obsidian-css and https://github.com/kepano/obsidian-minimal -@import 'obsidian-default-theme'; -@import 'styles-setting'; -@import 'fonts'; -@import '../color-schemes/macos'; -@import '../color-schemes/atom'; -@import '../color-schemes/nord'; -@import '../color-schemes/awesome'; -@import 'clutter-heading'; -@import 'notebook-like-bg'; -@import 'callout'; -@import 'blockquote'; -@import 'fullwidth'; - -body { - --theme-color: var(--interactive-accent); - /*radius*/ - --radius-xs: 3px; - --radius-s: 5px; - --radius-m: 7px; - --radius-l: 15px; - --font-size-preview-blockquote: 1em; - --callout-color: var(--interactive-accent-rgb); - // tag - --font-size-tag: 0.75em; - --font-family-special-tag: "Lucida Handwriting", "Segoe UI Emoji"; -} diff --git a/src/types/obsidian.d.ts b/src/types/obsidian.d.ts new file mode 100644 index 0000000..9c5694e --- /dev/null +++ b/src/types/obsidian.d.ts @@ -0,0 +1,215 @@ +// https://github.com/nothingislost/obsidian-hover-editor/blob/master/src/types/obsidian.d.ts +import type { EditorView } from '@codemirror/view'; +import { Plugin, SuggestModal, TFile, View, WorkspaceLeaf } from 'obsidian'; + +interface InternalPlugins { + switcher: QuickSwitcherPlugin; + 'page-preview': InternalPlugin; + graph: GraphPlugin; +} +declare class QuickSwitcherModal extends SuggestModal { + getSuggestions(query: string): TFile[] | Promise; + renderSuggestion(value: TFile, el: HTMLElement): unknown; + onChooseSuggestion(item: TFile, evt: MouseEvent | KeyboardEvent): unknown; +} +interface InternalPlugin { + disable(): void; + enable(): void; + enabled: boolean; + _loaded: boolean; + instance: { name: string; id: string }; +} +interface GraphPlugin extends InternalPlugin { + views: { localgraph: (leaf: WorkspaceLeaf) => GraphView }; +} + +interface GraphView extends View { + engine: typeof Object; + renderer: { worker: { terminate(): void } }; +} +interface QuickSwitcherPlugin extends InternalPlugin { + instance: { + name: string; + id: string; + QuickSwitcherModal: typeof QuickSwitcherModal; + }; +} + +declare global { + const i18next: { + t(id: string): string; + }; + interface Window { + activeWindow: Window; + activeDocument: Document; + } +} + +declare module 'obsidian' { + interface App { + internalPlugins: { + plugins: InternalPlugins; + getPluginById(id: T): InternalPlugins[T]; + }; + plugins: { + manifests: Record; + plugins: Record & { + ['recent-files-obsidian']: Plugin & { + shouldAddFile(file: TFile): boolean; + }; + }; + getPlugin(id: string): Plugin; + getPlugin(id: 'calendar'): CalendarPlugin; + getPluginFolder(): string; + }; + commands: { + commands: { [id: string]: Command }; + editorCommands: { [id: string]: Command }; + findCommand(id: string): Command; + executeCommandById(id: string): void; + listCommands(): Command[]; + }; + customCss: { + getSnippetsFolder(): string; + getSnippetPath(file: string): string; + readSnippets(): void; + setCssEnabledStatus(snippet: string, enabled: boolean): void; + }; + dom: { appContainerEl: HTMLElement }; + viewRegistry: ViewRegistry; + openWithDefaultApp(path: string): void; + } + interface Workspace { + activeLeaf: WorkspaceLeaf; + floatingSplit: any; + } + interface WorkspaceSplit { + children: any; + } + interface WorkspaceTabs { + children: any; + } + interface ViewRegistry { + typeByExtension: Record; // file extensions to view types + viewByType: Record View>; // file extensions to view types + } + interface CalendarPlugin { + view: View; + } + interface WorkspaceParent { + insertChild(index: number, child: WorkspaceItem, resize?: boolean): void; + replaceChild(index: number, child: WorkspaceItem, resize?: boolean): void; + removeChild(leaf: WorkspaceLeaf, resize?: boolean): void; + containerEl: HTMLElement; + } + interface MarkdownView { + editMode: { cm: EditorView }; + } + interface MarkdownEditView { + editorEl: HTMLElement; + } + class MarkdownPreviewRendererStatic extends MarkdownPreviewRenderer { + static registerDomEvents(el: HTMLElement, handlerInstance: unknown, cb: (el: HTMLElement) => unknown): void; + } + + interface WorkspaceLeaf { + openLinkText(linkText: string, path: string, state?: unknown): Promise; + updateHeader(): void; + containerEl: HTMLDivElement; + working: boolean; + parentSplit: WorkspaceParent; + activeTime: number; + } + interface Workspace { + /** Sent to rendered dataview components to tell them to possibly refresh */ + on(name: 'dataview:refresh-views', callback: () => void, ctx?: any): EventRef; + recordHistory(leaf: WorkspaceLeaf, pushHistory: boolean): void; + iterateLeaves( + callback: (item: WorkspaceLeaf) => boolean | void, + item: WorkspaceItem | WorkspaceItem[], + ): boolean; + iterateLeaves( + item: WorkspaceItem | WorkspaceItem[], + callback: (item: WorkspaceLeaf) => boolean | void, + ): boolean; + getDropLocation(event: MouseEvent): { + target: WorkspaceItem; + sidedock: boolean; + }; + recursiveGetTarget(event: MouseEvent, parent: WorkspaceParent): WorkspaceItem; + recordMostRecentOpenedFile(file: TFile): void; + onDragLeaf(event: MouseEvent, leaf: WorkspaceLeaf): void; + onLayoutChange(): void; // tell Obsidian leaves have been added/removed/etc. + } + interface Editor { + coordsAtPos(pos: EditorPosition): { left: number; top: number }; + containerEl: HTMLElement; + getClickableTokenAt(pos: EditorPosition): { + text: string; + type: string; + start: EditorPosition; + end: EditorPosition; + }; + } + interface View { + iconEl: HTMLElement; + file: TFile; + setMode(mode: MarkdownSubView): Promise; + followLinkUnderCursor(newLeaf: boolean): void; + modes: Record; + getMode(): string; + headerEl: HTMLElement; + contentEl: HTMLElement; + } + + interface EmptyView extends View { + actionListEl: HTMLElement; + emptyTitleEl: HTMLElement; + } + + interface FileManager { + createNewMarkdownFile(folder: TFolder, fileName: string): Promise; + } + enum PopoverState { + Showing, + Shown, + Hiding, + Hidden, + } + interface Menu { + items: MenuItem[]; + dom: HTMLElement; + hideCallback: () => unknown; + } + interface MenuItem { + iconEl: HTMLElement; + dom: HTMLElement; + } + interface EphemeralState { + focus?: boolean; + subpath?: string; + line?: number; + startLoc?: Loc; + endLoc?: Loc; + scroll?: number; + } + interface HoverParent { + type?: string; + } + interface HoverPopover { + targetEl: HTMLElement; + hoverEl: HTMLElement; + position(pos?: MousePos): void; + hide(): void; + show(): void; + shouldShowSelf(): boolean; + timer: number; + waitTime: number; + shouldShow(): boolean; + transition(): void; + } + interface MousePos { + x: number; + y: number; + } +} diff --git a/src/types/types.ts b/src/types/types.ts index 821e820..a06362b 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -5,6 +5,7 @@ export const eventTypes = { dbInited: 'db-inited', openBrowser: 'open-browser', calledFunction: 'called-function', + previewCursor: 'preview-cursor', }; export type GlobalChange = 'file-create' | 'file-remove' | 'file-rename'; @@ -15,29 +16,6 @@ export class AwesomeGlobalEvent extends Event { }; } -export class ExtApp extends App { - internalPlugins: any; - plugins: { - getPluginFolder(): string; - getPlugin(id: string): { - settings: any; - }; - }; - commands: { - commands: { [id: string]: Command }; - editorCommands: { [id: string]: Command }; - findCommand(id: string): Command; - executeCommandById(id: string): void; - listCommands(): Command[]; - }; - customCss: { - getSnippetsFolder(): string; - getSnippetPath(file: string): string; - readSnippets(): void; - setCssEnabledStatus(snippet: string, enabled: boolean): void; - }; -} - export class Tag { color: string; bgColor: string; @@ -54,7 +32,7 @@ export class Tag { } export type EditorState = { - currentEle: Element; + currentEle?: Element; position: { top: number; bottom: number; left: number; right: number }; selection: string; }; @@ -62,4 +40,8 @@ export type EditorState = { export type SystemState = { language: string; theme: string; + mouseCoords: { + x: number; + y: number; + }; }; diff --git a/src/ui/App.vue b/src/ui/App.vue index 13c886e..55c0060 100644 --- a/src/ui/App.vue +++ b/src/ui/App.vue @@ -50,9 +50,9 @@ import { } from 'naive-ui'; import { onUpdated, ref, watchEffect } from 'vue'; import { storeToRefs } from 'pinia'; -import LoggerUtil from '../utils/logger'; -import { useSystemStore } from '../stores'; -import Toolbar from './Toolbar.vue'; +import { useSystemStore } from '@/stores'; +import Toolbar from '@/ui/Toolbar.vue'; +import { LoggerUtil } from '@/utils/logger'; let theme = ref(darkTheme); let locale = ref(zhCN); diff --git a/src/ui/BrowserView.vue b/src/ui/BrowserView.vue index 9d4aaa5..814f8ce 100644 --- a/src/ui/BrowserView.vue +++ b/src/ui/BrowserView.vue @@ -4,7 +4,7 @@ diff --git a/src/ui/ClockView.vue b/src/ui/ClockView.vue index 9256d50..fbcce21 100644 --- a/src/ui/ClockView.vue +++ b/src/ui/ClockView.vue @@ -14,7 +14,8 @@ >
{{ time }}
- + + @@ -26,8 +27,8 @@ import type { Ref } from 'vue'; import { NResult, NSpace } from 'naive-ui'; import { moment } from 'obsidian'; import { storeToRefs } from 'pinia'; -import { usePomodoroStore } from '../stores'; -import t from '../i18n'; +import { usePomodoroStore } from '@/stores'; +import t from '@/i18n'; const time: Ref = ref(''); const currentSpend: Ref = ref(0); diff --git a/src/ui/DataViewTimeLine.vue b/src/ui/DataViewTimeLine.vue new file mode 100644 index 0000000..667dd47 --- /dev/null +++ b/src/ui/DataViewTimeLine.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/src/ui/DoughnutChart.vue b/src/ui/DoughnutChart.vue index d25213a..fe20a9a 100644 --- a/src/ui/DoughnutChart.vue +++ b/src/ui/DoughnutChart.vue @@ -8,8 +8,8 @@ import { onMounted, onUpdated, ref, toRefs } from 'vue'; import Chart from 'chart.js/auto'; import type { ChartItem } from 'chart.js/auto'; -import type { Pomodoro } from '../schemas/spaces'; -import t from '../i18n'; +import type { Pomodoro } from '@/schemas/spaces'; +import t from '@/i18n'; const props = defineProps<{ allPomodoro: Pomodoro[]; diff --git a/src/ui/LineChart.vue b/src/ui/LineChart.vue index 06cd142..967400d 100644 --- a/src/ui/LineChart.vue +++ b/src/ui/LineChart.vue @@ -9,8 +9,8 @@ import { onMounted, onUpdated, ref, toRefs } from 'vue'; import type { Ref } from 'vue'; import Chart from 'chart.js/auto'; import type { ChartItem } from 'chart.js/auto'; -import type { Pomodoro } from '../schemas/spaces'; -import t from '../i18n'; +import type { Pomodoro } from '@/schemas/spaces'; +import t from '@/i18n'; const props = defineProps<{ allPomodoro: Pomodoro[]; diff --git a/src/ui/OverView.vue b/src/ui/OverView.vue index 1cc3c07..994b583 100644 --- a/src/ui/OverView.vue +++ b/src/ui/OverView.vue @@ -1,24 +1,16 @@ @@ -27,9 +19,9 @@ import { NCard, NGrid, NGridItem } from 'naive-ui'; import { toRefs } from 'vue'; import { moment } from 'obsidian'; -import { getTheDay } from '../utils/constants'; -import type { Pomodoro } from '../schemas/spaces'; -import t from '../i18n'; +import { getTheDay } from '@/utils/constants'; +import type { Pomodoro } from '@/schemas/spaces'; +import t from '@/i18n'; const props = defineProps<{ allPomodoro: Pomodoro[]; diff --git a/src/ui/PomodoroHistory.vue b/src/ui/PomodoroHistory.vue index 7b6590a..12f6571 100644 --- a/src/ui/PomodoroHistory.vue +++ b/src/ui/PomodoroHistory.vue @@ -8,10 +8,11 @@ > -
+
+ @@ -37,36 +38,70 @@ - - diff --git a/src/ui/PomodoroListView.vue b/src/ui/PomodoroListView.vue index 3d03162..716519e 100644 --- a/src/ui/PomodoroListView.vue +++ b/src/ui/PomodoroListView.vue @@ -13,7 +13,12 @@ }" :show-divider="false" > - + {{ pomodoro.task }} @@ -27,9 +32,9 @@ import { NEllipsis, NList, NListItem } from 'naive-ui'; import { moment } from 'obsidian'; import { storeToRefs } from 'pinia'; import { ref, toRefs, watchEffect } from 'vue'; -import type { Pomodoro } from '../schemas/spaces'; -import { usePomodoroStore } from '../stores'; -import { colorSchema } from '../utils/constants'; +import type { Pomodoro } from '@/schemas/spaces'; +import { usePomodoroStore } from '@/stores'; +import { colorSchema } from '@/utils/constants'; const { pomodoroHistory } = storeToRefs(usePomodoroStore()); const pomodoroList = ref([] as Pomodoro[]); @@ -73,8 +78,13 @@ watchEffect(() => { ); }); -const getRandomStyle = () => { - const color = colorSchema[Math.floor(Math.random() * colorSchema.length)]; +const getRandomStyle = (pomodoro: Pomodoro) => { + let seed = 0; + for (let i = 0; i < pomodoro.task.length; i++) { + seed += pomodoro.task.charCodeAt(i); + } + let index = seed % colorSchema.length; + const color = colorSchema[index]; return `background-color: ${color.bg};color: ${color.fg};`; }; diff --git a/src/ui/TaskSelector.vue b/src/ui/TaskSelector.vue new file mode 100644 index 0000000..d0365dd --- /dev/null +++ b/src/ui/TaskSelector.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/ui/TestTitle.tsx b/src/ui/TestTitle.tsx index 9e8c66e..00d40b7 100644 --- a/src/ui/TestTitle.tsx +++ b/src/ui/TestTitle.tsx @@ -1,5 +1,5 @@ import { defineComponent } from 'vue'; -import t from '../i18n'; +import t from '@/i18n'; export default defineComponent({ setup() { diff --git a/src/ui/TimeLine.vue b/src/ui/TimeLine.vue index 4f6f2c1..2d99aca 100644 --- a/src/ui/TimeLine.vue +++ b/src/ui/TimeLine.vue @@ -15,7 +15,7 @@ :to="targetNode" > @@ -71,10 +71,10 @@ import { Airplane, RadioButtonOffOutline } from '@vicons/ionicons5'; import { Ref, onUpdated, ref, toRefs, watchEffect } from 'vue'; import { moment } from 'obsidian'; import { storeToRefs } from 'pinia'; -import type { Pomodoro } from '../schemas/spaces'; -import { PomodoroStatus } from '../utils/pomotodo'; -import t from '../i18n'; -import { usePomodoroStore } from '../stores'; +import { PomodoroStatus } from '@/utils/pomotodo'; +import t from '@/i18n'; +import { usePomodoroStore } from '@/stores'; +import type { Pomodoro } from '@/schemas/spaces'; const { pomodoroHistory } = storeToRefs(usePomodoroStore()); const pomodoroList = ref([] as Pomodoro[]); @@ -138,7 +138,11 @@ const getOptions = currentStatus => { key: 'cancelled', show: !['done', 'cancelled'].contains(currentStatus), }, - + { + label: t.info.repeatTask, + key: 'repeat', + show: true, + }, { label: t.info.deleteTask, key: 'deleted', @@ -147,18 +151,21 @@ const getOptions = currentStatus => { ]; }; const handleSelect = ( - targetStatus: 'ing' | 'done' | 'todo' | 'cancelled' | 'break' | 'deleted', + targetStatus: 'ing' | 'done' | 'todo' | 'cancelled' | 'break' | 'repeat' | 'deleted', pomodoro: Pomodoro, ) => { if (targetStatus != 'deleted') { const ps = new PomodoroStatus(pomodoro); - if (targetStatus == 'ing') { + if (targetStatus === 'ing') { const ingPomodoro = pomodoroList.value.find(item => item.status === 'ing'); if (ingPomodoro) { message.error(`${t.info.handleThisFirst + ingPomodoro.task}`); return; } } + if (targetStatus === 'repeat') { + usePomodoroStore().quickAddPomodoro(pomodoro.task); + } const changed = ps.changeState(targetStatus); if (changed) { usePomodoroStore().updatePomodoro(pomodoro); diff --git a/src/ui/Toolbar.vue b/src/ui/Toolbar.vue index fabff49..12102e0 100644 --- a/src/ui/Toolbar.vue +++ b/src/ui/Toolbar.vue @@ -62,19 +62,19 @@ import { onMounted, onUnmounted, onUpdated, ref, watchEffect } from 'vue'; import { NIcon, NTooltip, useNotification } from 'naive-ui'; import { storeToRefs } from 'pinia'; -import { ServiceNames, chatWith } from '../api'; -import { useEditorStore } from '../stores'; -import { eventTypes } from '../types/types'; -import LoggerUtil from '../utils/logger'; -import { getNumberFromStr } from '../utils/common'; -import OpenAI from './components/icon/OpenAI.vue'; -import Baidu from './components/icon/Baidu.vue'; -import Bing from './components/icon/Bing.vue'; -import ChatGPT from './components/icon/ChatGPT.vue'; -import Google from './components/icon/Google.vue'; -import ScanImage from './components/icon/ScanImage.vue'; +import { ServiceNames, chatWith } from '@/api'; +import { useEditorStore } from '@/stores'; +import { eventTypes } from '@/types/types'; +import { LoggerUtil } from '@/utils/logger'; +import { getNumberFromStr } from '@/utils/common'; +import OpenAI from '@/ui/components/icon/OpenAI.vue'; +import Baidu from '@/ui/components/icon/Baidu.vue'; +import Bing from '@/ui/components/icon/Bing.vue'; +import ChatGPT from '@/ui/components/icon/ChatGPT.vue'; +import Google from '@/ui/components/icon/Google.vue'; +import ScanImage from '@/ui/components/icon/ScanImage.vue'; -import { customAvatar, customContent, customDescription, customTitle } from './CustomContent'; +import { customAvatar, customContent, customDescription, customTitle } from '@/ui/CustomContent'; const { editorState: currentState } = storeToRefs(useEditorStore()); const isShow = ref(false); @@ -156,7 +156,7 @@ const getComputedStyle = () => { return currentState.value.position.top + topOffset; }; const getLeft = () => { - const activeDoc = activeDocument.querySelector('.workspace-leaf.mod-active .cm-content') as any; + const activeDoc = activeDocument.querySelector('.workspace-leaf.mod-active .cm-content'); if (activeDoc.innerWidth < 250) { return getElementViewLeft(activeLine); diff --git a/src/ui/modal/UpdateModal.ts b/src/ui/modal/UpdateModal.ts index 943a217..a862540 100644 --- a/src/ui/modal/UpdateModal.ts +++ b/src/ui/modal/UpdateModal.ts @@ -1,6 +1,6 @@ // https://raw.githubusercontent.com/chhoumann/quickadd/c536135609e37d44e3a686d2da0f2c18031f1222/src/gui/UpdateModal/UpdateModal.ts import { type Component, MarkdownRenderer, Modal } from 'obsidian'; -import LoggerUtil from '@/utils/logger'; +import { LoggerUtil } from '@/utils/logger'; type Release = { tag_name: string; diff --git a/src/ui/modal/index.ts b/src/ui/modal/index.ts index bb267e1..2ec227f 100644 --- a/src/ui/modal/index.ts +++ b/src/ui/modal/index.ts @@ -1,8 +1,8 @@ import { App, FuzzySuggestModal, Modal, Notice, SuggestModal, TAbstractFile } from 'obsidian'; import { Picker } from 'emoji-mart'; import data from '@emoji-mart/data'; -import type { Pomodoro } from '../../schemas/spaces'; -import t from '../../i18n'; +import type { Pomodoro } from '@/schemas/spaces'; +import t from '@/i18n'; import type AwesomeBrainManagerPlugin from 'main'; interface Book { @@ -109,7 +109,7 @@ export class EmojiPickerModal extends Modal { super(app); } - onSelect = (emoji: any) => { + onSelect = emoji => { const editor = this.app.workspace.activeEditor?.editor; // BUG 光标问题 editor?.replaceRange(emoji.native, editor.getCursor()); @@ -119,10 +119,10 @@ export class EmojiPickerModal extends Modal { async onOpen() { const { contentEl } = this; const pickerOptions = { onEmojiSelect: this.onSelect, data, skin: 1, set: 'native', theme: 'light' }; - const picker: any = new Picker(pickerOptions); + const picker = new Picker(pickerOptions); // for style this.modalEl.id = 'emoji-modal'; - contentEl.appendChild(picker); + contentEl.appendChild(picker as unknown as HTMLElement); } onClose() { @@ -130,3 +130,22 @@ export class EmojiPickerModal extends Modal { contentEl.empty(); } } + +export class CommonModal extends Modal { + content: Node; + + constructor(app: App, content: Node) { + super(app); + this.content = content; + } + + onOpen(): void { + const { contentEl } = this; + contentEl.appendChild(this.content); + } + + onClose(): void { + const { contentEl } = this; + contentEl.empty(); + } +} diff --git a/src/ui/view/BrowserView.ts b/src/ui/view/BrowserView.ts index 982c4cd..183ca20 100644 --- a/src/ui/view/BrowserView.ts +++ b/src/ui/view/BrowserView.ts @@ -1,8 +1,8 @@ import { HoverPopover, ItemView, WorkspaceLeaf } from 'obsidian'; import { createApp } from 'vue'; import type { Ref, App as VueApp } from 'vue'; -import BrowserViewComp from '../BrowserView.vue'; -import t from '../../i18n'; +import BrowserViewComp from '@/ui/BrowserView.vue'; +import t from '@/i18n'; import type AwesomeBrainManagerPlugin from 'main'; export const BROWSER_VIEW = 'browser-view'; diff --git a/src/ui/view/PomodoroHistoryView.ts b/src/ui/view/PomodoroHistoryView.ts index f5b63aa..d03c31a 100644 --- a/src/ui/view/PomodoroHistoryView.ts +++ b/src/ui/view/PomodoroHistoryView.ts @@ -1,8 +1,8 @@ import { HoverPopover, ItemView, WorkspaceLeaf } from 'obsidian'; import { createApp } from 'vue'; import type { App as VueApp } from 'vue'; -import PomodoroHistory from '../PomodoroHistory.vue'; -import t from '../../i18n'; +import PomodoroHistory from '@/ui/PomodoroHistory.vue'; +import t from '@/i18n'; import type AwesomeBrainManagerPlugin from 'main'; export const POMODORO_HISTORY_VIEW = 'pomodoro-history-view'; @@ -34,6 +34,9 @@ export class PomodoroHistoryView extends ItemView { async onOpen(): Promise { const container = this.containerEl.children[1]; + if (container instanceof HTMLElement) { + container.style.padding = '0'; + } container.empty(); container.createEl( 'div', diff --git a/src/utils/common.ts b/src/utils/common.ts index bc8387a..259d89c 100644 --- a/src/utils/common.ts +++ b/src/utils/common.ts @@ -12,7 +12,7 @@ export function randomColor() { } export const treeUtil = { - uniq: (a: any[]) => [...new Set(a)], + uniq: (a: []) => [...new Set(a)], }; export function getNumberFromStr(str: string) { @@ -40,3 +40,17 @@ export function deepCloneArr(source) { export function deepClone(source) { // TODO } + +export function genId(size: number) { + const chars: string[] = []; + for (let n = 0; n < size; n++) chars.push(((16 * Math.random()) | 0).toString(16)); + return chars.join(''); +} + +export async function getCurrentLocation(): Promise { + return new Promise((resolve, reject) => { + navigator.geolocation.getCurrentPosition(async position => { + resolve(position); + }, reject); + }); +} diff --git a/src/utils/content.ts b/src/utils/content.ts index 5ad6925..083df7a 100644 --- a/src/utils/content.ts +++ b/src/utils/content.ts @@ -1,7 +1,7 @@ import type { MarkdownPostProcessorContext } from 'obsidian'; import { VueApp, createApp } from 'vue/dist/vue.esm-bundler.js'; -import TestTitle from '../ui/TestTitle'; -import LoggerUtil from '../utils/logger'; +import TestTitle from '@/ui/TestTitle'; +import { LoggerUtil } from '@/utils/logger'; interface MContent { content: string; @@ -51,7 +51,7 @@ export function insertAfterHandler(targetString: string, formatted: string, file } // https://stackoverflow.com/questions/3115150/how-to-escape-regular-expression-special-characters-using-javascript -export function escapeRegExp(text: any) { +export function escapeRegExp(text: string) { return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); } diff --git a/src/utils/dataview.ts b/src/utils/dataview.ts new file mode 100644 index 0000000..4202502 --- /dev/null +++ b/src/utils/dataview.ts @@ -0,0 +1,321 @@ +import { DateTime } from 'luxon'; +import { type STask } from 'obsidian-dataview'; +import { Vault } from 'obsidian'; +// export function getTaskByTags(tags: string[], taskList: STask[]): STask | undefined { +// return taskList.find(task => { +// const taskTags = task.tags.map(tag => tag.tag); +// return tags.every(tag => taskTags.includes(tag)); +// }); +// } + +export const queryImportantTasks = `task +WHERE contains(tags, "#important") and !completed +SORT priority asc, date desc`; +export const listTasks = `task +WHERE contains(tags, "#important") +SORT priority asc, date desc`; +/**重要任务 */ +export const importantTasks = `task +WHERE contains(tags, "#important") and !completed +SORT priority asc, date desc`; +/**聚焦任务 */ +export const concentrateTasks = `task +WHERE !completed and (contains(tags, "#inprogress") or ((due and due <= date(today))) or (schedule and schedule <= date(today) or status = "open")) +sort priority, scheduled, due, heading desc`; +// export const listTasks = `LIST WHERE file.day +// SORT file.day DESC`; +// TODO +export const queryAll = `function overdue(t) { + let dValidate = moment(t.text, 'YYYY-MM-DD', true); + let d = moment(t.text, 'YYYY-MM-DD'); + let containsValidDate = dValidate._pf.unusedTokens.length==0 ; + let isOverdue = d.diff(moment()) <= 0; + return (containsValidDate && isOverdue); + } + + dv.taskList(dv.pages("").file.tasks + .where (t => overdue(t)) + .where (t => !t.completed))`; + +/** Trim empty ending lines. */ +function trimEndingLines(text: string): string { + const parts = text.split(/\r?\n/u); + let trim = parts.length - 1; + while (trim > 0 && parts[trim].trim() == '') trim--; + + return parts.join('\n'); +} + +/** Sets or replaces the value of an inline field; if the value is 'undefined', deletes the key. */ +export function setInlineField(source: string, key: string, value?: string): string { + const existing = extractInlineFields(source); + const existingKeys = existing.filter(f => f.key == key); + + // Don't do anything if there are duplicate keys OR the key already doesn't exist. + if (existingKeys.length > 2 || (existingKeys.length == 0 && !value)) return source; + const existingKey = existingKeys[0]; + + const annotation = value ? `[${key}:: ${value}]` : ''; + if (existingKey) { + const prefix = source.substring(0, existingKey.start); + const suffix = source.substring(existingKey.end); + + if (annotation) return `${prefix}${annotation}${suffix}`; + else return `${prefix}${suffix.trimStart()}`; + } else if (annotation) { + return `${source.trimEnd()} ${annotation}`; + } + + return source; +} + +export interface InlineField { + /** The raw parsed key. */ + key: string; + /** The raw value of the field. */ + value: string; + /** The start column of the field. */ + start: number; + /** The start column of the *value* for the field. */ + startValue: number; + /** The end column of the field. */ + end: number; + /** If this inline field was defined via a wrapping ('[' or '('), then the wrapping that was used. */ + wrapping?: string; +} + +/** The wrapper characters that can be used to define an inline field. */ +export const INLINE_FIELD_WRAPPERS: Readonly> = Object.freeze({ + '[': ']', + '(': ')', +}); + +/** Find the '::' separator in an inline field. */ +function findSeparator(line: string, start: number): { key: string; valueIndex: number } | undefined { + const sep = line.indexOf('::', start); + if (sep < 0) return undefined; + + return { key: line.substring(start, sep).trim(), valueIndex: sep + 2 }; +} + +/** + * Find a matching closing bracket that occurs at or after `start`, respecting nesting and escapes. If found, + * returns the value contained within and the string index after the end of the value. + */ +function findClosing( + line: string, + start: number, + open: string, + close: string, +): { value: string; endIndex: number } | undefined { + let nesting = 0; + let escaped = false; + for (let index = start; index < line.length; index++) { + const char = line.charAt(index); + + // Allows for double escapes like '\\' to be rendered normally. + if (char == '\\') { + escaped = !escaped; + continue; + } + + // If escaped, ignore the next character for computing nesting, regardless of what it is. + if (escaped) { + escaped = false; + continue; + } + + if (char == open) nesting++; + else if (char == close) nesting--; + + // Only occurs if we are on a close character and trhere is no more nesting. + if (nesting < 0) return { value: line.substring(start, index).trim(), endIndex: index + 1 }; + + escaped = false; + } + + return undefined; +} + +/** Try to completely parse an inline field starting at the given position. Assuems `start` is on a wrapping character. */ +function findSpecificInlineField(line: string, start: number): InlineField | undefined { + const open = line.charAt(start); + + const key = findSeparator(line, start + 1); + if (key === undefined) return undefined; + + // Fail the match if we find any separator characters (not allowed in keys). + for (const sep of Object.keys(INLINE_FIELD_WRAPPERS).concat(Object.values(INLINE_FIELD_WRAPPERS))) { + if (key.key.includes(sep)) return undefined; + } + + const value = findClosing(line, key.valueIndex, open, INLINE_FIELD_WRAPPERS[open]); + if (value === undefined) return undefined; + + return { + key: key.key, + value: value.value, + start: start, + startValue: key.valueIndex, + end: value.endIndex, + wrapping: open, + }; +} + +export const CREATED_DATE_REGEX = /\u{2795}\s*(\d{4}-\d{2}-\d{2})/u; +export const DUE_DATE_REGEX = /(?:\u{1F4C5}|\u{1F4C6}|\u{1F5D3}\u{FE0F}?)\s*(\d{4}-\d{2}-\d{2})/u; +export const DONE_DATE_REGEX = /\u{2705}\s*(\d{4}-\d{2}-\d{2})/u; +export const SCHEDULED_DATE_REGEX = /[\u{23F3}\u{231B}]\s*(\d{4}-\d{2}-\d{2})/u; +export const START_DATE_REGEX = /\u{1F6EB}\s*(\d{4}-\d{2}-\d{2})/u; + +export const EMOJI_REGEXES = [ + { regex: CREATED_DATE_REGEX, key: 'created' }, + { regex: START_DATE_REGEX, key: 'start' }, + { regex: SCHEDULED_DATE_REGEX, key: 'scheduled' }, + { regex: DUE_DATE_REGEX, key: 'due' }, + { regex: DONE_DATE_REGEX, key: 'completion' }, +]; + +/** Parse special completed/due/done task fields which are marked via emoji. */ +function extractSpecialTaskFields(line: string): InlineField[] { + const results: InlineField[] = []; + + for (const { regex, key } of EMOJI_REGEXES) { + const match = regex.exec(line); + if (!match) continue; + + results.push({ + key, + value: match[1], + start: match.index, + startValue: match.index + 1, + end: match.index + match[0].length, + wrapping: 'emoji-shorthand', + }); + } + + return results; +} + +/** Extracts inline fields of the form '[key:: value]' from a line of text. This is done in a relatively + * "robust" way to avoid failing due to bad nesting or other interfering Markdown symbols: + * + * - Look for any wrappers ('[' and '(') in the line, trying to parse whatever comes after it as an inline key::. + * - If successful, scan until you find a matching end bracket, and parse whatever remains as an inline value. + */ +export function extractInlineFields(line: string, includeTaskFields = false): InlineField[] { + let fields: InlineField[] = []; + for (const wrapper of Object.keys(INLINE_FIELD_WRAPPERS)) { + let foundIndex = line.indexOf(wrapper); + while (foundIndex >= 0) { + const parsedField = findSpecificInlineField(line, foundIndex); + if (!parsedField) { + foundIndex = line.indexOf(wrapper, foundIndex + 1); + continue; + } + + fields.push(parsedField); + foundIndex = line.indexOf(wrapper, parsedField.end); + } + } + + if (includeTaskFields) fields = fields.concat(extractSpecialTaskFields(line)); + + fields.sort((a, b) => a.start - b.start); + + const filteredFields: InlineField[] = []; + for (let i = 0; i < fields.length; i++) { + if (i == 0 || filteredFields[filteredFields.length - 1].end < fields[i].start) { + filteredFields.push(fields[i]); + } + } + return filteredFields; +} + +/** Set the task completion key on check. */ +export function setTaskCompletion( + originalText: string, + useEmojiShorthand: boolean, + completionKey: string, + completionDateFormat: string, + complete: boolean, +): string { + const blockIdRegex = /\^[a-z0-9\\-]+/i; + + if (!complete && !useEmojiShorthand) + return trimEndingLines(setInlineField(originalText.trimEnd(), completionKey)).trimEnd(); + + const parts = originalText.split(/\r?\n/u); + const matches = blockIdRegex.exec(parts[parts.length - 1]); + console.debug('matchreg', matches); + + let processedPart = parts[parts.length - 1].split(blockIdRegex).join(''); // last part without block id + if (useEmojiShorthand) { + processedPart = setEmojiShorthandCompletionField( + processedPart, + complete ? DateTime.now().toFormat('yyyy-MM-dd') : '', + ); + } else { + processedPart = setInlineField(processedPart, completionKey, DateTime.now().toFormat(completionDateFormat)); + } + processedPart = `${processedPart.trimEnd()}${matches?.length ? ' ' + matches[0].trim() : ''}`.trimEnd(); // add back block id + parts[parts.length - 1] = processedPart; + + return parts.join('\n'); +} + +export function setEmojiShorthandCompletionField(source: string, value?: string): string { + const existing = extractInlineFields(source, true); + const existingKeys = existing.filter(f => f.key === 'completion' && f.wrapping === 'emoji-shorthand'); + + // Don't do anything if there are duplicate keys OR the key already doesn't exist. + if (existingKeys.length > 2 || (existingKeys.length == 0 && !value)) return source; + + /* No wrapper, add own spacing at start */ + const annotation = value ? ` ✅ ${value}` : ''; + const existingKey = existingKeys[0]; + if (existingKey) { + const prefix = source.substring(0, existingKey.start); + const suffix = source.substring(existingKey.end); + return `${prefix.trimEnd()}${annotation}${suffix}`; + } else { + return `${source.trimEnd()}${annotation}`; + } +} + +// TODO: Consider using an actual parser in leiu of a more expensive regex. +export const LIST_ITEM_REGEX = /^[\s>]*(\d+\.|\d+\)|\*|-|\+)\s*(\[.{0,1}\])?\s*(.*)$/mu; + +/** Rewrite a task with the given completion status and new text. */ +export async function rewriteTask(vault: Vault, task: STask, desiredStatus: string, desiredText?: string) { + if (desiredStatus == task.status && (desiredText == undefined || desiredText == task.text)) return; + desiredStatus = desiredStatus == '' ? ' ' : desiredStatus; + + const rawFiletext = await vault.adapter.read(task.path); + const hasRN = rawFiletext.contains('\r'); + const filetext = rawFiletext.split(/\r?\n/u); + + if (filetext.length < task.line) return; + const match = LIST_ITEM_REGEX.exec(filetext[task.line]); + if (!match || match[2].length == 0) return; + + const taskTextParts = task.text.split('\n'); + if (taskTextParts[0].trim() != match[3].trim()) return; + + // We have a positive match here at this point, so go ahead and do the rewrite of the status. + const initialSpacing = /^[\s>]*/u.exec(filetext[task.line])![0]; + if (desiredText) { + const desiredParts = desiredText.split('\n'); + + const newTextLines: string[] = [`${initialSpacing}${task.symbol} [${desiredStatus}] ${desiredParts[0]}`].concat( + desiredParts.slice(1).map(l => initialSpacing + '\t' + l), + ); + + filetext.splice(task.line, task.lineCount, ...newTextLines); + } else { + filetext[task.line] = `${initialSpacing}${task.symbol} [${desiredStatus}] ${taskTextParts[0].trim()}`; + } + + const newText = filetext.join(hasRN ? '\r\n' : '\n'); + await vault.adapter.write(task.path, newText); +} diff --git a/src/utils/db/db.ts b/src/utils/db/db.ts index c6bae82..1af9456 100644 --- a/src/utils/db/db.ts +++ b/src/utils/db/db.ts @@ -1,12 +1,12 @@ // https://github.com/Make-md/makemd/blob/main/src/utils/db/db.ts -import { FileSystemAdapter, normalizePath } from 'obsidian'; +import { App, FileSystemAdapter, normalizePath } from 'obsidian'; import type { Database, QueryExecResult, SqlJsStatic } from 'sql.js'; -import { pomodoroDB } from '../constants'; -import LoggerUtil from '../logger'; -import { treeUtil } from '../common'; -import { sanitizeSQLStatement } from '../sanitize'; -import { loadSQL } from './sqljs'; -import { type ExtApp, eventTypes } from '@/types/types'; +import { pomodoroDB } from '@/utils/constants'; +import { LoggerUtil } from '@/utils/logger'; +import { treeUtil } from '@/utils/common'; +import { sanitizeSQLStatement } from '@/utils/sanitize'; +import { loadSQL } from '@/utils/db/sqljs'; +import { eventTypes } from '@/types/types'; import type { DBTable, DBTables } from '@/types/mdb'; import { type Pomodoro, pomodoroSchema } from '@/schemas/spaces'; import type AwesomeBrainManagerPlugin from '@/main'; @@ -15,7 +15,7 @@ const { uniq } = treeUtil; export class DBUtils { private plugin: AwesomeBrainManagerPlugin; - private app: ExtApp; + private app: App; awesomeBrainDB: Database; awesomeBrainDBPath: string; initedCallback: any; diff --git a/src/utils/db/sqljs.ts b/src/utils/db/sqljs.ts index c7dab60..fd2609c 100644 --- a/src/utils/db/sqljs.ts +++ b/src/utils/db/sqljs.ts @@ -1,7 +1,7 @@ import initSqlJs from 'sql.js'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -import sqlWasm from './sqljs/sql-wasm.wasm?url'; +import sqlWasm from '@/utils/db/sqljs/sql-wasm.wasm?url'; export const loadSQL = async () => { const sql = await initSqlJs({ diff --git a/src/utils/editor.ts b/src/utils/editor.ts index 64457d0..68b6269 100644 --- a/src/utils/editor.ts +++ b/src/utils/editor.ts @@ -1,20 +1,20 @@ -import { type Editor } from 'obsidian'; -import { type App, createApp } from 'vue'; -import type AwesomeBrainManagerPlugin from '../main'; -import AppVue from '../ui/App.vue'; -import { buildTagRules } from '../render/Tag'; +import { App, type Editor, Platform } from 'obsidian'; +import { type App as VueApp, createApp } from 'vue'; +import type AwesomeBrainManagerPlugin from '@/main'; +import AppVue from '@/ui/App.vue'; +import { buildTagRules } from '@/render/Tag'; import type { SettingModel } from 'model/settings'; -import { type ExtApp, Tag } from '@/types/types'; +import { Tag } from '@/types/types'; import pinia, { useEditorStore } from '@/stores'; -import LoggerUtil from '@/utils/logger'; +import { LoggerUtil } from '@/utils/logger'; export const appContainerId = 'app-container'; export class EditorUtils { plugin: AwesomeBrainManagerPlugin; - app: ExtApp; + app: App; ele: HTMLDivElement; loaded = false; - appViewVueApp: App; + appViewVueApp: VueApp; oldSelection: string; currentSelection: string; @@ -31,6 +31,16 @@ export class EditorUtils { this.appViewVueApp.mount(`#${appContainerId}`); } + static getTitleBarHeight(): number { + if (Platform.isMobile) { + const titleEl = document.getElementsByClassName('view-header')[5] as HTMLElement | undefined; + return titleEl?.innerHeight || 40; + } else { + const titleEl = document.getElementsByClassName('titlebar')[0] as HTMLElement | undefined; + return titleEl?.innerHeight || 40; + } + } + static getCurrentSelection(editor: Editor) { const cursorPos = editor.getCursor(); let content = editor.getSelection(); @@ -42,6 +52,12 @@ export class EditorUtils { return content; } + static replaceCurrentSelection(editor: Editor, targetText: string) { + const cursorPos = editor.getCursor(); + const line = editor.getLine(cursorPos.line); + editor.replaceRange(targetText, { line: cursorPos.line, ch: 0 }, { line: cursorPos.line, ch: line.length }); + } + unload() { if (this.ele) { document.body.removeChild(this.ele); @@ -80,6 +96,7 @@ export class EditorUtils { if (tags.length === 0) { return; } + document.body.addClass('tag-awesome-brain-manager'); tags.forEach(tag => { const rules = buildTagRules(new Tag(tag[0], tag[1], tag[2], tag[3], tag[4])); rules.forEach(rule => this.plugin.style.sheet?.insertRule(rule, this.plugin.style.sheet.cssRules.length)); diff --git a/src/utils/emmet.ts b/src/utils/emmet.ts new file mode 100644 index 0000000..5514f26 --- /dev/null +++ b/src/utils/emmet.ts @@ -0,0 +1,109 @@ +import { generateMarkdownTable } from '@/utils/table'; + +export function expandEmmetAbbreviation(syntax: string) { + syntax = syntax.trim().toUpperCase(); + if (syntax === 'T') { + return '- [ ] '; + } + const tableConfig = syntax.match(/^T(\d+)\*(\d+)/); + if (tableConfig) { + return generateMarkdownTable(tableConfig[1], tableConfig[2]); + } + if (syntax === 'SMART') { + return SMART; + } + if (syntax === 'SWOT') { + return SWOT; + } + if (syntax === 'PROBLEM') { + return RESOLVE_PROBLEM_STEP; + } + return ''; +} + +const SMART = ` +# 主题或目标 + +## Specific(具体性) + +明确你的笔记中要包含哪些内容,这个主题或目标的具体细节是什么?你想实现什么? + +## Measurable(可度量性) + +如何测量这个主题或目标的成功?是否需要特定的指标? + +## Achievable(可实现性) + +此笔记是否可实现?是否需要更多资源或技能? + +## Relevant(相关性) + +这个主题或目标是否与你的整体目标相一致?它是否与你正在进行的专业、职业或学术项目有关? + +## Time-bound(时限性) + +设置一个截止时间以避免拖延,并使笔记尽快产生实际价值。 + +# 概念和细节 + +在这里,你可以编写关于主题或目标的详细信息、定义、例子和其他必要的细节。 + +# 行动计划 + +制定一份行动计划,以便在将笔记用于未来项目和目标时,能够更有效地指导你的行动。 + +# 总结 + +对于这个主题或目标,做出一个总结,并列出任何需要进一步研究或了解的问题。`; + +const SWOT = ` +# 主题或目标 + +在这里输入你要分析的主题或目标。 + +## Strengths(优势) + +列出主题或目标的优势。 + +- 优势 1 +- 优势 2 +- 优势 3 + +## Weaknesses(劣势) + +列出主题或目标的劣势。 + +- 劣势 1 +- 劣势 2 +- 劣势 3 + +## Opportunities(机会) + +列出主题或目标的机会。 + +- 机会 1 +- 机会 2 +- 机会 3 + +## Threats(威胁) + +列出主题或目标所面临的威胁。 + +- 威胁 1 +- 威胁 2 +- 威胁 3 + +# 总结 + +在这里对 SWOT 分析进行总结,包括你的结论、建议和下一步行动计划。`; + +// TODO 如何成为解决问题的高手 +const RESOLVE_PROBLEM_STEP = ` +## 明确和理解问题 + +## 定位和拆分 + +## 猜想和验证 + +## 总结和反思 +`; diff --git a/src/utils/file.ts b/src/utils/file.ts index cd44f85..97cd374 100644 --- a/src/utils/file.ts +++ b/src/utils/file.ts @@ -1,5 +1,5 @@ -import { TFile, normalizePath } from 'obsidian'; -import LoggerUtil from './logger'; +import { App, TFile, normalizePath } from 'obsidian'; +import { LoggerUtil } from '@/utils/logger'; export async function getNotePath(directory, filename) { if (!filename.endsWith('.md')) { @@ -36,7 +36,7 @@ async function ensureFolderExists(path) { } } -export async function getAllFiles(app, folders, ignorePath: string[], ext, files): Promise { +export async function getAllFiles(app: App, folders, ignorePath: string[], ext, files): Promise { const ignoreMatch = ignorePath.find(item => folders.path.startsWith(item)); if (!ignoreMatch) { // eslint-disable-next-line @typescript-eslint/ban-ts-comment diff --git a/src/utils/genBanner.ts b/src/utils/genBanner.ts index bc6a959..0de6553 100644 --- a/src/utils/genBanner.ts +++ b/src/utils/genBanner.ts @@ -1,21 +1,21 @@ -import { request } from '../utils/request'; -import LoggerUtil from '../utils/logger'; -import { getAllFiles } from '../utils/file'; +import type { App } from 'obsidian'; +import { request } from '@/utils/request'; +import { LoggerUtil } from '@/utils/logger'; +import { getAllFiles } from '@/utils/file'; export const searchPicture = async (source: string, keyword: string): Promise => { const res: string = await new Promise((resolve, reject) => { request({ url: `https://api.ihave.cool/gen_image/from_keyword?origin=${source}&keyword=${keyword}`, - // url: `http://localhost:8080/gen_image/from_keyword?origin=${source}&keyword=${keyword}`, method: 'get', }).then(res => resolve(res)); }); return res || ''; }; -export const getLocalRandomImg = async (app, title, path: any) => { - path = app.vault.getAbstractFileByPath(path); - const allImages = await getAllFiles(app, path, [], ['png', 'jpg', 'jpeg', 'svg', 'gif', 'bmp', 'webp'], []); +export const getLocalRandomImg = async (app: App, title, path: string) => { + const abstractFile = app.vault.getAbstractFileByPath(path); + const allImages = await getAllFiles(app, abstractFile, [], ['png', 'jpg', 'jpeg', 'svg', 'gif', 'bmp', 'webp'], []); const randomImage = allImages[Math.floor(Math.random() * allImages.length)]; if (!randomImage) { return ''; diff --git a/src/utils/logger.ts b/src/utils/logger.ts index eda593f..3f17d2e 100644 --- a/src/utils/logger.ts +++ b/src/utils/logger.ts @@ -1,7 +1,8 @@ import { inspect } from 'util'; import chalk from 'chalk'; -import { ConstantReference } from '../model/ref'; -import type { ReadOnlyReference } from '../model/ref'; +import { Notice } from 'obsidian'; +import { ConstantReference } from '@/model/ref'; +import type { ReadOnlyReference } from '@/model/ref'; class Logger { private debugEnable: ReadOnlyReference = new ConstantReference(false); @@ -25,23 +26,45 @@ class Logger { init(debugEnableVal: ReadOnlyReference) { this.debugEnable = debugEnableVal; chalk.level = 3; + // window.onerror = (msg, url, lineNo, columnNo, error) => { + // if (!this.debugEnable.value) { + // return; + // } + // const string = msg.toString().toLowerCase(); + // const substring = 'script error'; + // if (string.indexOf(substring) > -1) { + // new Notice('Script Error: See Browser Console for Detail'); + // } else { + // const message = [ + // 'Message: ' + msg, + // 'URL: ' + url, + // 'Line: ' + lineNo, + // 'Column: ' + columnNo, + // 'Error object: ' + JSON.stringify(error), + // ].join(' - '); + + // new Notice(message); + // } + + // return false; + // }; } - log(...args: any) { + log(...args) { this.printer('log', args, chalk.bgCyanBright.blackBright.bold); } - dir(...args: any) { + dir(...args) { this.printer('dir', args, chalk.bgBlueBright.blackBright.bold); } - info(...args: any) { + info(...args) { this.printer('info', args, chalk.bgBlueBright.blackBright.bold); } - warn(...args: any) { + warn(...args) { this.printer('warn', args, chalk.bgYellowBright.blackBright.bold); } - error(...args: any) { + error(...args) { this.printer('error', args, chalk.bgRedBright.blackBright.bold); } - debug(...args: any[]) { + debug(...args) { this.printer('debug', args, chalk.bgRedBright.blackBright.bold); } } @@ -51,6 +74,4 @@ class Logger { // @ts-ignore const LoggerUtil = new Proxy(new Logger(), console); -export default LoggerUtil; - export { LoggerUtil }; diff --git a/src/utils/misc.ts b/src/utils/misc.ts new file mode 100644 index 0000000..74bb4c9 --- /dev/null +++ b/src/utils/misc.ts @@ -0,0 +1,27 @@ +export function parseCssUnitValue(value: string) { + // eslint-disable-next-line @typescript-eslint/no-var-requires + const parseUnit = require('parse-unit'); + // eslint-disable-next-line prefer-const + let [num, unit] = parseUnit(value); + if (!num) { + return false; + } + if (!unit) { + unit = 'px'; + } + const unitTypes = ['em', 'ex', 'ch', 'rem', 'vw', 'vh', 'vmin', 'vmax', '%', 'cm', 'mm', 'in', 'px', 'pt', 'pc']; + + if (unitTypes.contains(unit)) { + return num + unit; + } else { + return undefined; + } +} + +/** + * Window-safe 'instanceof' replacement for Event and DOM class checks + * (Compatibility wrapper for Obsidian 0.14.x: can be replaced with plain `.instanceOf()` later) + */ +export function isA(el: unknown, cls: new (...args: unknown[]) => T): el is T { + return el instanceof cls || (el as { instanceOf(cls: new () => T): boolean })?.instanceOf?.(cls); +} diff --git a/src/utils/notify.ts b/src/utils/notify.ts index f9ef5e6..a83c7e8 100644 --- a/src/utils/notify.ts +++ b/src/utils/notify.ts @@ -1,9 +1,26 @@ import type AwesomeBrainManagerPlugin from '@/main'; import { SETTINGS } from '@/settings'; +interface NotificationOptions { + title?: string; + subtitle?: string; + body?: string; + silent?: boolean; + icon?: string; + hasReply: boolean; + timeoutType: string; + replyPlaceholder: string; + sound?: string; + urgency: string; + closeButtonText: string; + actions: Array<{ + type: string; + text: string; + }>; +} export class NotifyUtils { plugin: AwesomeBrainManagerPlugin; - options: any; + options: NotificationOptions; audioEle: HTMLAudioElement; init(plugin: AwesomeBrainManagerPlugin) { diff --git a/src/utils/pomotodo.ts b/src/utils/pomotodo.ts index 125fe41..45a7027 100644 --- a/src/utils/pomotodo.ts +++ b/src/utils/pomotodo.ts @@ -1,5 +1,5 @@ -import type { Pomodoro } from '../schemas/spaces'; -import LoggerUtil from '../utils/logger'; +import type { Pomodoro } from '@/schemas/spaces'; +import { LoggerUtil } from '@/utils/logger'; export class PomodoroStatus { private pomodoro: Pomodoro; diff --git a/src/utils/request-v2.ts b/src/utils/request-v2.ts new file mode 100644 index 0000000..40234e9 --- /dev/null +++ b/src/utils/request-v2.ts @@ -0,0 +1,11 @@ +let request, test; + +if (import.meta.env.VITE_APP_MODE === 'vitest') { + import('obsidian').then(module => { + request = module.request; + }); +} else { + test = () => '123'; +} + +export { request, test }; diff --git a/src/utils/request.ts b/src/utils/request.ts index 7148edc..97310c9 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -1,3 +1,4 @@ +// TODO 如何条件编译,当在非obsidian环境中,单元测试不报错 import { request } from 'obsidian'; // 解耦,这里可以返回其他网络请求的实现 diff --git a/src/utils/table.ts b/src/utils/table.ts new file mode 100644 index 0000000..91f2f2d --- /dev/null +++ b/src/utils/table.ts @@ -0,0 +1,26 @@ +export function generateMarkdownTable(row, col) { + // Initialize table header + let tableHeader = '|'; + for (let i = 1; i <= col; i++) { + tableHeader += ` ${i} |`; + } + + // Initialize separator + let separator = '|'; + for (let i = 1; i <= col; i++) { + separator += '---|'; + } + + // Initialize table content + let tableContent = ''; + for (let i = 1; i <= row; i++) { + let rowContent = '|'; + for (let j = 1; j <= col; j++) { + rowContent += ` ${i}-${j} |`; + } + tableContent += `${rowContent}\n`; + } + + // Combine header, separator, and content to form the Markdown table + return `${tableHeader}\n${separator}\n${tableContent}`; +} diff --git a/src/utils/weather.ts b/src/utils/weather.ts deleted file mode 100644 index ddad9d8..0000000 --- a/src/utils/weather.ts +++ /dev/null @@ -1,171 +0,0 @@ -// https://github.com/PKM-er/Blue-topaz-example/blob/1d196ba3802dc9d37e83d48a7ea974f8d5c538f1/88-Template/script/fetchhomepage.js#L194 - -import { request } from './request'; -export async function getWeather(city) { - //尽量换成自己申请的key以免接口失效https://console.qweather.com - const key = 'dc0f31ac6f37484f88e3e7d45b84e403'; - let locationId = ''; - let windydesc = ''; - if (city) { - const location = await searchCity(city, key); - locationId = location.id; - } else { - const location = await getpos(key); - locationId = location.id; - city = location.name; - } - const weather = await getQWeather(locationId, key); - let today; - if (weather == '-1') { - return await getWWeather(city); - } else { - const air = await getair(locationId, key); - const windyspeed = Math.max(weather[0].windSpeedDay, weather[0].windSpeedNight); - if (windyspeed < 12) { - //小风 - windydesc = '微风习习'; - } else if (windyspeed < 39) { - //小风 - windydesc = '清风徐徐'; - } else windydesc = '有' + today.windDirDay + '风出没,风力' + today.windScaleDay + '级'; - today = weather[0]; - const desc = `${city} ${today.textDay}, ${today.tempMin}~${today.tempMax}℃ ${ - air.category - } ${windydesc}${today.moonPhase.replace(/[\u4e00-\u9fa5]/g, '')}`; - return desc; - } -} - -//wttr 天气入口 -async function getWWeather(city) { - if (city === undefined) { - city = ''; - } - let result = await fetch('https://wttr.in/' + city + '?format=%l:+%c+%t+%w').then(async res => await res.text()); - result = result.replace(/:/g, '').replace(/\+/g, '').replace(', China', ''); - return result; -} -// 和风天气入口获取天气信息 -async function getQWeather(locationId, key) { - const days = 1; - const weatherUrl = `https://devapi.qweather.com/v7/weather/3d?location=${locationId}&key=${key}`; - const wUrl = new URL(weatherUrl); - const res = await request({ - url: wUrl.href, - method: 'GET', - }); - - const data = JSON.parse(res); - if (data.code != '200') { - return -1; - } - const weather = data.daily.slice(0, 1); - - //添加表情 - for (let i = 0; i < days; i++) { - const textDay = weather[i].textDay; - const moon = weather[i].moonPhase; - if (textDay.includes('雨')) { - weather[i].textDay = '🌧' + textDay; - } else if (textDay.includes('云')) { - weather[i].textDay = '⛅' + textDay; - } else if (textDay.includes('晴')) { - weather[i].textDay = '🌞' + textDay; - } else if (textDay.includes('雪')) { - weather[i].textDay = '❄' + textDay; - } else if (textDay.includes('阴')) { - weather[i].textDay = '🌥' + textDay; - } else if (textDay.includes('风')) { - weather[i].textDay = '🍃' + textDay; - } else if (textDay.includes('雷')) { - weather[i].textDay = '⛈' + textDay; - } else if (textDay.includes('雾')) { - weather[i].textDay = '🌫' + textDay; - } - switch (moon) { - case '新月': - weather[i].moonPhase = '🌑' + moon; - break; - case '峨眉月': - weather[i].moonPhase = '🌒' + moon; - break; - case '朔月': - weather[i].moonPhase = '🌑' + moon; - break; - case '娥眉月': - weather[i].moonPhase = '🌒' + moon; - break; - case '上弦月': - weather[i].moonPhase = '🌓' + moon; - break; - case '盈凸月': - weather[i].moonPhase = '🌔' + moon; - break; - case '满月': - weather[i].moonPhase = '🌕' + moon; - break; - case '亏凸月': - weather[i].moonPhase = '🌖' + moon; - break; - case '下弦月': - weather[i].moonPhase = '🌗' + moon; - break; - default: - weather[i].moonPhase = '🌘' + moon; - } - } - return weather; -} -// 获取空气质量信息 -async function getair(locationId, key) { - const weatherUrl = `https://devapi.qweather.com/v7/air/now?location=${locationId}&key=${key}`; - const wUrl = new URL(weatherUrl); - const res = await request({ - url: wUrl.href, - method: 'GET', - }); - - const data = JSON.parse(res); - if (data.code != '200') { - return -1; - } - const air = data.now; - return air; -} - -//查询位置 -async function urlGet(url) { - const finalURL = new URL(url); - const res = await request({ - url: finalURL.href, - method: 'GET', - headers: { - 'Cache-Control': 'no-cache', - 'Content-Type': 'application/json;charset=gb2312', - 'User-Agent': - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.100.4758.11 Safari/537.36', - }, - }); - - return res; -} -async function getpos(key) { - const resultStr = await urlGet('http://whois.pconline.com.cn/ipJson.jsp?json=true'); - const resultObj = JSON.parse(resultStr) as { city: string; cityCode: string }; - const city = resultObj.cityCode; - return await searchCity(city, key); -} -//查询城市ID -async function searchCity(city, key) { - const searchUrl = `https://geoapi.qweather.com/v2/city/lookup?location=${city}&key=${key}&number=1`; - const sUrl = new URL(searchUrl); - const res = await request({ - url: sUrl.href, - method: 'GET', - }); - const data = JSON.parse(res); - if (data.code == '200') { - return data.location[0]; - } - return -1; -} diff --git a/src/waiter.ts b/src/waiter.ts index 19e7849..45c719b 100644 --- a/src/waiter.ts +++ b/src/waiter.ts @@ -11,12 +11,8 @@ const orderTitle = ' |___/ \n'; export function placeOrder(food, drink) { - const foodOrder = `${(chalk as any).green('You ordered the following food: ')} ${(chalk as any).blue.bold( - food, - )} \n`; - const drinkOrder = `${(chalk as any).green('You ordered the following drink: ')} ${(chalk as any).blue.bold( - drink, - )}`; + const foodOrder = `${chalk.green('You ordered the following food: ')} ${chalk.blue.bold(food)} \n`; + const drinkOrder = `${chalk.green('You ordered the following drink: ')} ${chalk.blue.bold(drink)}`; const order = `${orderTitle} ${boxen(foodOrder + drinkOrder, { padding: 1, diff --git a/src/web-worker/MessageManager.ts b/src/web-worker/MessageManager.ts new file mode 100644 index 0000000..1420b31 --- /dev/null +++ b/src/web-worker/MessageManager.ts @@ -0,0 +1,19 @@ +export class MessageManager { + private readonly message: string; + + public constructor(message: string) { + this.message = message; + } + + public sayHello(location: string): void { + console.info(`Hello from ${location}!`); + } + + public printMessage(): void { + console.info(`MESSAGE: ${this.message}`); + } + + public initDB(): void { + console.info('DB initialized'); + } +} diff --git a/src/web-worker/Worker.ts b/src/web-worker/Worker.ts new file mode 100644 index 0000000..779d9e1 --- /dev/null +++ b/src/web-worker/Worker.ts @@ -0,0 +1,27 @@ +import { MessageManager } from '@/web-worker/MessageManager'; + +let messageManager: MessageManager | null = null; + +function executeFunction(target: T, func: keyof T, args): void { + // eslint-disable-next-line @typescript-eslint/ban-types + (target[func] as unknown as Function)(args); +} + +self.addEventListener('message', e => { + const message = e.data || e; + + switch (message.type) { + case 'init': + messageManager = new MessageManager(message.args); + break; + + case 'exec': + if (messageManager) { + executeFunction(messageManager, message.func, message.args); + } + break; + + default: + break; + } +}); diff --git a/src/web-worker/index.ts b/src/web-worker/index.ts new file mode 100644 index 0000000..eedcfc0 --- /dev/null +++ b/src/web-worker/index.ts @@ -0,0 +1,21 @@ +import { MessageManager } from '@/web-worker/MessageManager'; + +const worker = new Worker(new URL('./Worker.ts', import.meta.url), { + // TODO type: 'module', + type: 'classic', +}); +const messageManager = new MessageManager('This instance was created on the main thread'); + +export function initWorker(): void { + worker.postMessage({ type: 'init', args: 'This instance was created in a worker' }); + + messageManager.sayHello('main thread'); + worker.postMessage({ type: 'exec', func: 'sayHello', args: 'web worker' }); + + messageManager.printMessage(); + worker.postMessage({ type: 'exec', func: 'printMessage', args: null }); +} + +export function initDB(): void { + worker.postMessage({ type: 'exec', func: 'initDB', args: null }); +} diff --git a/test-vault/.gitkeep b/test-vault/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test-vault/README.md b/test-vault/README.md new file mode 100644 index 0000000..e69de29 diff --git a/tsconfig.json b/tsconfig.json index f369f86..dfab632 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "@tsconfig/svelte/tsconfig.json", - "include": ["src/**/*.ts", "types.d.ts"], - "exclude": ["node_modules", "**/*.spec.ts"], + "include": ["src/**/*.ts", "types.d.ts",], + "exclude": ["node_modules"], "compilerOptions": { "baseUrl": "./src/", // "inlineSourceMap": true, diff --git a/uno.config.ts b/uno.config.ts new file mode 100644 index 0000000..07fec66 --- /dev/null +++ b/uno.config.ts @@ -0,0 +1,10 @@ +import { defineConfig, presetAttributify, presetUno } from 'unocss'; + +export default defineConfig({ + presets: [ + presetAttributify({ + /* preset options */ + }), + presetUno(), + ], +}); diff --git a/vite.config.ts b/vite.config.ts index 0fe70bc..a61c7b5 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,7 +1,9 @@ import { URL, fileURLToPath } from 'node:url'; import { resolve } from 'path'; -import { defineConfig, loadEnv } from 'vite'; +import UnoCSS from 'unocss/vite'; +import { type PluginOption, defineConfig, loadEnv } from 'vite'; import { nodeResolve } from '@rollup/plugin-node-resolve'; +import { visualizer } from 'rollup-plugin-visualizer'; import builtins from 'builtin-modules'; import vue from '@vitejs/plugin-vue'; @@ -46,6 +48,7 @@ export default defineConfig(({ command, mode }) => { // browser: true }), nodePolyfills({ + // include: ['path', 'fs', 'util'], sourceMap: true, }), ], @@ -60,6 +63,11 @@ export default defineConfig(({ command, mode }) => { // // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量 globals: { // vue: 'Vue', + // obsidian: 'obsidian', + // moment: 'moment', + // util: 'util', + // fs: 'fs', + // path: 'path', }, }, external: [ @@ -85,6 +93,7 @@ export default defineConfig(({ command, mode }) => { 'process.env.NODE_ENV': '"production"', }, plugins: [ + UnoCSS(), viteStaticCopy({ targets: [ { @@ -106,8 +115,37 @@ export default defineConfig(({ command, mode }) => { }, }), vueJsx(), + // visualizer({ + // open: true, //注意这里要设置为true,否则无效 + // gzipSize: true, + // brotliSize: true, + // }) as PluginOption, ], - optimizeDeps: {}, + optimizeDeps: { + // include: [ + // 'moment', + // '@lezer/common', + // '@lezer/highlight', + // '@lezer/lr', + // 'chart.js', + // 'commander', + // 'cursor-effects', + // 'emoji-mart', + // '@emoji-mart/data', + // 'lodash-es', + // 'naive-ui', + // 'ora', + // 'party-js', + // 'pinia', + // 'rrule', + // 'sql.js', + // 'svelte', + // 'twemoji', + // 'vue', + // 'vue3-radial-progress', + // ...builtins, + // ], + }, resolve: { alias: [ { diff --git a/vitest.config.ts b/vitest.config.ts index 1c9a076..64dec8f 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -3,5 +3,13 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { environment: 'jsdom', + coverage: { + provider: 'v8', + }, + }, + resolve: { + alias: { + '@': '/src', + }, }, });