From c14b1fa4ae2f46c629d3d38bf61d6a79e7622432 Mon Sep 17 00:00:00 2001 From: Martichou Date: Tue, 6 Aug 2024 08:39:26 +0200 Subject: [PATCH] fix: vue_lib is not a lib anymore, I give up for now Signed-off-by: Martichou --- app/common/vue_lib/.eslintrc-auto-import.json | 67 - app/common/vue_lib/.eslintrc.cjs | 73 - app/common/vue_lib/.gitignore | 30 - app/common/vue_lib/package.json | 37 - app/common/vue_lib/pnpm-lock.yaml | 1707 ----------------- app/common/vue_lib/src/components.ts | 4 - app/common/vue_lib/src/index.ts | 23 - app/common/vue_lib/tsconfig.json | 108 -- app/legacy/package.json | 3 +- app/legacy/pnpm-lock.yaml | 3 - app/legacy/src-tauri/src/main.rs | 8 +- app/legacy/src/components/HomePage.vue | 5 +- app/legacy/src/main.ts | 6 +- .../src}/vue_lib/assets/main.postcss | 0 .../components/atoms/ToastMessage.vue | 0 .../organisms/ToastNotification.vue | 0 .../src/vue_lib}/helper/ParamsHelper.d.ts | 0 app/legacy/src/vue_lib/index.ts | 13 + .../src/vue_lib}/stores/useToastStore.ts | 0 .../src => legacy/src/vue_lib}/types.ts | 0 .../src => legacy/src/vue_lib}/utils.ts | 5 +- app/legacy/vite.config.ts | 2 - app/main/package.json | 3 +- app/main/pnpm-lock.yaml | 3 - app/main/src/components/HomePage.vue | 7 +- app/main/src/main.ts | 6 +- app/main/src/vue_lib/assets/main.postcss | 218 +++ .../vue_lib/components/atoms/ToastMessage.vue | 29 + .../organisms/ToastNotification.vue | 26 + app/main/src/vue_lib/helper/ParamsHelper.d.ts | 34 + app/main/src/vue_lib/index.ts | 13 + app/main/src/vue_lib/stores/useToastStore.ts | 23 + app/main/src/vue_lib/types.ts | 55 + app/main/src/vue_lib/utils.ts | 221 +++ app/main/vite.config.ts | 2 - 35 files changed, 651 insertions(+), 2083 deletions(-) delete mode 100644 app/common/vue_lib/.eslintrc-auto-import.json delete mode 100644 app/common/vue_lib/.eslintrc.cjs delete mode 100644 app/common/vue_lib/.gitignore delete mode 100644 app/common/vue_lib/package.json delete mode 100644 app/common/vue_lib/pnpm-lock.yaml delete mode 100644 app/common/vue_lib/src/components.ts delete mode 100644 app/common/vue_lib/src/index.ts delete mode 100644 app/common/vue_lib/tsconfig.json rename app/{common => legacy/src}/vue_lib/assets/main.postcss (100%) rename app/{common/vue_lib/src => legacy/src/vue_lib}/components/atoms/ToastMessage.vue (100%) rename app/{common/vue_lib/src => legacy/src/vue_lib}/components/organisms/ToastNotification.vue (100%) rename app/{common/vue_lib/src => legacy/src/vue_lib}/helper/ParamsHelper.d.ts (100%) create mode 100644 app/legacy/src/vue_lib/index.ts rename app/{common/vue_lib/src => legacy/src/vue_lib}/stores/useToastStore.ts (100%) rename app/{common/vue_lib/src => legacy/src/vue_lib}/types.ts (100%) rename app/{common/vue_lib/src => legacy/src/vue_lib}/utils.ts (98%) create mode 100644 app/main/src/vue_lib/assets/main.postcss create mode 100644 app/main/src/vue_lib/components/atoms/ToastMessage.vue create mode 100644 app/main/src/vue_lib/components/organisms/ToastNotification.vue create mode 100644 app/main/src/vue_lib/helper/ParamsHelper.d.ts create mode 100644 app/main/src/vue_lib/index.ts create mode 100644 app/main/src/vue_lib/stores/useToastStore.ts create mode 100644 app/main/src/vue_lib/types.ts create mode 100644 app/main/src/vue_lib/utils.ts diff --git a/app/common/vue_lib/.eslintrc-auto-import.json b/app/common/vue_lib/.eslintrc-auto-import.json deleted file mode 100644 index b2abc8d..0000000 --- a/app/common/vue_lib/.eslintrc-auto-import.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "globals": { - "Component": true, - "ComponentPublicInstance": true, - "ComputedRef": true, - "EffectScope": true, - "ExtractDefaultPropTypes": true, - "ExtractPropTypes": true, - "ExtractPublicPropTypes": true, - "InjectionKey": true, - "PropType": true, - "Ref": true, - "VNode": true, - "WritableComputedRef": true, - "computed": true, - "createApp": true, - "customRef": true, - "defineAsyncComponent": true, - "defineComponent": true, - "effectScope": true, - "getCurrentInstance": true, - "getCurrentScope": true, - "h": true, - "inject": true, - "isProxy": true, - "isReactive": true, - "isReadonly": true, - "isRef": true, - "markRaw": true, - "nextTick": true, - "onActivated": true, - "onBeforeMount": true, - "onBeforeUnmount": true, - "onBeforeUpdate": true, - "onDeactivated": true, - "onErrorCaptured": true, - "onMounted": true, - "onRenderTracked": true, - "onRenderTriggered": true, - "onScopeDispose": true, - "onServerPrefetch": true, - "onUnmounted": true, - "onUpdated": true, - "provide": true, - "reactive": true, - "readonly": true, - "ref": true, - "resolveComponent": true, - "shallowReactive": true, - "shallowReadonly": true, - "shallowRef": true, - "toRaw": true, - "toRef": true, - "toRefs": true, - "toValue": true, - "triggerRef": true, - "unref": true, - "useAttrs": true, - "useCssModule": true, - "useCssVars": true, - "useSlots": true, - "watch": true, - "watchEffect": true, - "watchPostEffect": true, - "watchSyncEffect": true - } -} diff --git a/app/common/vue_lib/.eslintrc.cjs b/app/common/vue_lib/.eslintrc.cjs deleted file mode 100644 index fc02987..0000000 --- a/app/common/vue_lib/.eslintrc.cjs +++ /dev/null @@ -1,73 +0,0 @@ -module.exports = { - root: true, - env: { - node: true, - }, - extends: [ - 'eslint:recommended', - 'plugin:vue/base', - 'plugin:vue/vue3-essential', - 'plugin:vue/vue3-strongly-recommended', - '@vue/eslint-config-typescript', - "@vue/typescript/recommended", - './.eslintrc-auto-import.json', - ], - parserOptions: { - ecmaVersion: 'latest', - parser: '@typescript-eslint/parser', - }, - plugins: ["@typescript-eslint", "@stylistic"], - rules: { - 'vue/no-multiple-template-root': "off", - 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - 'vue/max-attributes-per-line': ['error', { - singleline: { - max: 4 - }, - multiline: { - max: 4 - } - }], - 'vue/html-closing-bracket-newline': ['error', { - singleline: 'never', - multiline: 'never' - }], - 'new-cap': 'off', - 'camelcase': 'off', - 'vue/no-multi-spaces': 'off', - 'vue/multi-word-component-names': 'off', - 'vue/html-indent': ['error', 'tab', { - attribute: 1, - baseIndent: 1, - closeBracket: 0, - alignAttributesVertically: true, - ignores: [] - }], - 'vue/script-indent': ['error', 'tab', { - baseIndent: 0, - switchCase: 0, - ignores: [] - }], - 'no-tabs': 0, - 'indent': [2, 'tab'], - '@stylistic/max-len': [ - 'error', - { - code: 160, - ignoreComments: true, - ignoreUrls: true, - ignoreStrings: true, - ignoreTemplateLiterals: true, - ignoreRegExpLiterals: true, - }, - ], - '@typescript-eslint/no-explicit-any': 'off' - }, - globals: { - defineProps: 'readonly', - defineEmits: 'readonly', - defineExpose: 'readonly', - withDefaults: 'readonly', - }, -} diff --git a/app/common/vue_lib/.gitignore b/app/common/vue_lib/.gitignore deleted file mode 100644 index bd9e5be..0000000 --- a/app/common/vue_lib/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist/** -!dist/keep -dist-ssr -*.local - -# Editor directories and files -.vscode/settings.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -src-tauri/target - -.env -LOCAL_NOTES.md -.gitpod.yml diff --git a/app/common/vue_lib/package.json b/app/common/vue_lib/package.json deleted file mode 100644 index 02793c7..0000000 --- a/app/common/vue_lib/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "vue_lib", - "version": "1.0.0", - "keywords": [], - "author": "", - "license": "ISC", - "description": "", - "main": "src/index.ts", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-path .gitignore" - }, - "files": [ - "assets" - ], - "peerDependencies": { - "@martichou/core_lib": "link:../../../core_lib", - "pinia": "^2.2.0", - "semver": "^7.6.3", - "vue": "^3.4.35" - }, - "dependencies": { - "@tauri-apps/api": "^1.5.6", - "@tauri-apps/plugin-store": "2.0.0-beta.5" - }, - "devDependencies": { - "@stylistic/eslint-plugin": "^2.1.0", - "@types/semver": "^7.5.8", - "@vue/eslint-config-typescript": "13.0.0", - "eslint": "8.57.0", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-security": "3.0.0", - "eslint-plugin-vue": "9.26.0", - "typescript": "^5.5.4" - } -} diff --git a/app/common/vue_lib/pnpm-lock.yaml b/app/common/vue_lib/pnpm-lock.yaml deleted file mode 100644 index 4e0b610..0000000 --- a/app/common/vue_lib/pnpm-lock.yaml +++ /dev/null @@ -1,1707 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@martichou/core_lib': - specifier: link:../../../core_lib - version: link:../../../core_lib - '@tauri-apps/api': - specifier: ^1.5.6 - version: 1.5.6 - '@tauri-apps/plugin-store': - specifier: 2.0.0-beta.5 - version: 2.0.0-beta.5 - pinia: - specifier: ^2.2.0 - version: 2.2.0(typescript@5.5.4)(vue@3.4.35(typescript@5.5.4)) - semver: - specifier: ^7.6.3 - version: 7.6.3 - vue: - specifier: ^3.4.35 - version: 3.4.35(typescript@5.5.4) - devDependencies: - '@stylistic/eslint-plugin': - specifier: ^2.1.0 - version: 2.2.2(eslint@8.57.0)(typescript@5.5.4) - '@types/semver': - specifier: ^7.5.8 - version: 7.5.8 - '@vue/eslint-config-typescript': - specifier: 13.0.0 - version: 13.0.0(eslint-plugin-vue@9.26.0(eslint@8.57.0))(eslint@8.57.0)(typescript@5.5.4) - eslint: - specifier: 8.57.0 - version: 8.57.0 - eslint-config-prettier: - specifier: 9.1.0 - version: 9.1.0(eslint@8.57.0) - eslint-plugin-node: - specifier: 11.1.0 - version: 11.1.0(eslint@8.57.0) - eslint-plugin-security: - specifier: 3.0.0 - version: 3.0.0 - eslint-plugin-vue: - specifier: 9.26.0 - version: 9.26.0(eslint@8.57.0) - typescript: - specifier: ^5.5.4 - version: 5.5.4 - -packages: - - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.25.3': - resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/types@7.25.2': - resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} - engines: {node: '>=6.9.0'} - - '@eslint-community/eslint-utils@4.4.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 - - '@eslint-community/regexpp@4.10.1': - resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@stylistic/eslint-plugin-js@2.2.2': - resolution: {integrity: sha512-Vj2Q1YHVvJw+ThtOvmk5Yx7wZanVrIBRUTT89horLDb4xdP9GA1um9XOYQC6j67VeUC2gjZQnz5/RVJMzaOhtw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin-jsx@2.2.2': - resolution: {integrity: sha512-xfIMdLivoMV1wV+5Tl0PtkLN/oUwjIt7LuIu48vhrZfJ2jCXwjlTGPGSoM7dnLZYD65XjtrHHIFAvPuvvvjlaw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin-plus@2.2.2': - resolution: {integrity: sha512-oeqPs01yAH4ad4bSchGtx8Jf5XTbxRx++A0joNYiOoq3EBTAUHE/ZB7dVv3BhNuCKiwojOQduLkUCXI5UMHoSw==} - peerDependencies: - eslint: '*' - - '@stylistic/eslint-plugin-ts@2.2.2': - resolution: {integrity: sha512-n6cYMSWTDDcrQLLxEKIrL/ihQ1lyyq6+gGp0g5VdstBElmImSRsQkCq+g3jRoDJIUo7tGO9lwQtGnuJ7oGB4kg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin@2.2.2': - resolution: {integrity: sha512-GNRtyhhPsc9I9FNTaU2L0V/4LdSPAciQNEdYo6NBRdAz7sdiaxgEJKLNSXeXSQAuO9JBWWjZBs/57+WvrU0Iug==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@tauri-apps/api@1.5.6': - resolution: {integrity: sha512-LH5ToovAHnDVe5Qa9f/+jW28I6DeMhos8bNDtBOmmnaDpPmJmYLyHdeDblAWWWYc7KKRDg9/66vMuKyq0WIeFA==} - engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} - - '@tauri-apps/api@2.0.0-beta.13': - resolution: {integrity: sha512-Np1opKANzRMF3lgJ9gDquBCB9SxlE2lRmNpVx1+L6RyzAmigkuh0ZulT5jMnDA3JLsuSDU135r/s4t/Pmx4atg==} - engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} - - '@tauri-apps/plugin-store@2.0.0-beta.5': - resolution: {integrity: sha512-lF1OxZv0w45G1eRVtvplNhfsthHuJD17Lx+KDZe46WPwaLbGL9KJE+OYx7c2ek5idU2qBXtx33lWVEu6ghxGJA==} - - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - - '@typescript-eslint/eslint-plugin@7.14.1': - resolution: {integrity: sha512-aAJd6bIf2vvQRjUG3ZkNXkmBpN+J7Wd0mfQiiVCJMu9Z5GcZZdcc0j8XwN/BM97Fl7e3SkTXODSk4VehUv7CGw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.14.1': - resolution: {integrity: sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@7.14.1': - resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/type-utils@7.14.1': - resolution: {integrity: sha512-/MzmgNd3nnbDbOi3LfasXWWe292+iuo+umJ0bCCMCPc1jLO/z2BQmWUUUXvXLbrQey/JgzdF/OV+I5bzEGwJkQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@7.14.1': - resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/typescript-estree@7.14.1': - resolution: {integrity: sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@7.14.1': - resolution: {integrity: sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/visitor-keys@7.14.1': - resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@vue/compiler-core@3.4.35': - resolution: {integrity: sha512-gKp0zGoLnMYtw4uS/SJRRO7rsVggLjvot3mcctlMXunYNsX+aRJDqqw/lV5/gHK91nvaAAlWFgdVl020AW1Prg==} - - '@vue/compiler-dom@3.4.35': - resolution: {integrity: sha512-pWIZRL76/oE/VMhdv/ovZfmuooEni6JPG1BFe7oLk5DZRo/ImydXijoZl/4kh2406boRQ7lxTYzbZEEXEhj9NQ==} - - '@vue/compiler-sfc@3.4.35': - resolution: {integrity: sha512-xacnRS/h/FCsjsMfxBkzjoNxyxEyKyZfBch/P4vkLRvYJwe5ChXmZZrj8Dsed/752H2Q3JE8kYu9Uyha9J6PgA==} - - '@vue/compiler-ssr@3.4.35': - resolution: {integrity: sha512-7iynB+0KB1AAJKk/biENTV5cRGHRdbdaD7Mx3nWcm1W8bVD6QmnH3B4AHhQQ1qZHhqFwzEzMwiytXm3PX1e60A==} - - '@vue/devtools-api@6.6.3': - resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} - - '@vue/eslint-config-typescript@13.0.0': - resolution: {integrity: sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - eslint-plugin-vue: ^9.0.0 - typescript: '>=4.7.4' - peerDependenciesMeta: - typescript: - optional: true - - '@vue/reactivity@3.4.35': - resolution: {integrity: sha512-Ggtz7ZZHakriKioveJtPlStYardwQH6VCs9V13/4qjHSQb/teE30LVJNrbBVs4+aoYGtTQKJbTe4CWGxVZrvEw==} - - '@vue/runtime-core@3.4.35': - resolution: {integrity: sha512-D+BAjFoWwT5wtITpSxwqfWZiBClhBbR+bm0VQlWYFOadUUXFo+5wbe9ErXhLvwguPiLZdEF13QAWi2vP3ZD5tA==} - - '@vue/runtime-dom@3.4.35': - resolution: {integrity: sha512-yGOlbos+MVhlS5NWBF2HDNgblG8e2MY3+GigHEyR/dREAluvI5tuUUgie3/9XeqhPE4LF0i2wjlduh5thnfOqw==} - - '@vue/server-renderer@3.4.35': - resolution: {integrity: sha512-iZ0e/u9mRE4T8tNhlo0tbA+gzVkgv8r5BX6s1kRbOZqfpq14qoIvCZ5gIgraOmYkMYrSEZgkkojFPr+Nyq/Mnw==} - peerDependencies: - vue: 3.4.35 - - '@vue/shared@3.4.35': - resolution: {integrity: sha512-hvuhBYYDe+b1G8KHxsQ0diDqDMA8D9laxWZhNAjE83VZb5UDaXl9Xnz7cGdDSyiHM90qqI/CyGMcpBpiDy6VVQ==} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} - engines: {node: '>=0.4.0'} - hasBin: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-es@3.0.1: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-node@11.1.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=5.16.0' - - eslint-plugin-security@3.0.0: - resolution: {integrity: sha512-2Ij7PkmXIF2cKwoVkEgemwoXbOnxg5UfdhdcpNxZwJxC/10dbsdhHISrTyJ/n8DUkt3yiN6P1ywEgcMGjIwHIw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-plugin-vue@9.26.0: - resolution: {integrity: sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - - 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} - - eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - espree@10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} - engines: {node: '>= 0.4'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - magic-string@0.30.11: - resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - pinia@2.2.0: - resolution: {integrity: sha512-iPrIh26GMqfpUlMOGyxuDowGmYousTecbTHFwT0xZ1zJvh23oQ+Cj99ZoPQA1TnUPhU6AuRPv6/drkTCJ0VHQA==} - peerDependencies: - '@vue/composition-api': ^1.4.0 - typescript: '>=4.4.4' - vue: ^2.6.14 || ^3.3.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - typescript: - optional: true - - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} - engines: {node: '>=4'} - - postcss@8.4.40: - resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - - regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - safe-regex@2.1.1: - resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} - hasBin: true - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - vue-demi@0.14.10: - resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} - engines: {node: '>=12'} - hasBin: true - peerDependencies: - '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - - vue-eslint-parser@9.4.3: - resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - - vue@3.4.35: - resolution: {integrity: sha512-+fl/GLmI4GPileHftVlCdB7fUL4aziPcqTudpTGXCT8s+iZWuOCeNEB5haX6Uz2IpRrbEXOgIFbe+XciCuGbNQ==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - -snapshots: - - '@babel/helper-string-parser@7.24.8': {} - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/parser@7.25.3': - dependencies: - '@babel/types': 7.25.2 - - '@babel/types@7.25.2': - dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.10.1': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.3.5 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.0': {} - - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@stylistic/eslint-plugin-js@2.2.2(eslint@8.57.0)': - dependencies: - '@types/eslint': 8.56.10 - acorn: 8.12.0 - eslint: 8.57.0 - eslint-visitor-keys: 4.0.0 - espree: 10.1.0 - - '@stylistic/eslint-plugin-jsx@2.2.2(eslint@8.57.0)': - dependencies: - '@stylistic/eslint-plugin-js': 2.2.2(eslint@8.57.0) - '@types/eslint': 8.56.10 - eslint: 8.57.0 - estraverse: 5.3.0 - picomatch: 4.0.2 - - '@stylistic/eslint-plugin-plus@2.2.2(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.4) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@stylistic/eslint-plugin-ts@2.2.2(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@stylistic/eslint-plugin-js': 2.2.2(eslint@8.57.0) - '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.4) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@stylistic/eslint-plugin@2.2.2(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@stylistic/eslint-plugin-js': 2.2.2(eslint@8.57.0) - '@stylistic/eslint-plugin-jsx': 2.2.2(eslint@8.57.0) - '@stylistic/eslint-plugin-plus': 2.2.2(eslint@8.57.0)(typescript@5.5.4) - '@stylistic/eslint-plugin-ts': 2.2.2(eslint@8.57.0)(typescript@5.5.4) - '@types/eslint': 8.56.10 - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@tauri-apps/api@1.5.6': {} - - '@tauri-apps/api@2.0.0-beta.13': {} - - '@tauri-apps/plugin-store@2.0.0-beta.5': - dependencies: - '@tauri-apps/api': 2.0.0-beta.13 - - '@types/eslint@8.56.10': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - - '@types/estree@1.0.5': {} - - '@types/json-schema@7.0.15': {} - - '@types/semver@7.5.8': {} - - '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/type-utils': 7.14.1(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.14.1 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.14.1 - debug: 4.3.5 - eslint: 8.57.0 - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@7.14.1': - dependencies: - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/visitor-keys': 7.14.1 - - '@typescript-eslint/type-utils@7.14.1(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.4) - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.4) - debug: 4.3.5 - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@7.14.1': {} - - '@typescript-eslint/typescript-estree@7.14.1(typescript@5.5.4)': - dependencies: - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/visitor-keys': 7.14.1 - debug: 4.3.5 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@7.14.1(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.4) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@7.14.1': - dependencies: - '@typescript-eslint/types': 7.14.1 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.2.0': {} - - '@vue/compiler-core@3.4.35': - dependencies: - '@babel/parser': 7.25.3 - '@vue/shared': 3.4.35 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - - '@vue/compiler-dom@3.4.35': - dependencies: - '@vue/compiler-core': 3.4.35 - '@vue/shared': 3.4.35 - - '@vue/compiler-sfc@3.4.35': - dependencies: - '@babel/parser': 7.25.3 - '@vue/compiler-core': 3.4.35 - '@vue/compiler-dom': 3.4.35 - '@vue/compiler-ssr': 3.4.35 - '@vue/shared': 3.4.35 - estree-walker: 2.0.2 - magic-string: 0.30.11 - postcss: 8.4.40 - source-map-js: 1.2.0 - - '@vue/compiler-ssr@3.4.35': - dependencies: - '@vue/compiler-dom': 3.4.35 - '@vue/shared': 3.4.35 - - '@vue/devtools-api@6.6.3': {} - - '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.26.0(eslint@8.57.0))(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.4) - eslint: 8.57.0 - eslint-plugin-vue: 9.26.0(eslint@8.57.0) - vue-eslint-parser: 9.4.3(eslint@8.57.0) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@vue/reactivity@3.4.35': - dependencies: - '@vue/shared': 3.4.35 - - '@vue/runtime-core@3.4.35': - dependencies: - '@vue/reactivity': 3.4.35 - '@vue/shared': 3.4.35 - - '@vue/runtime-dom@3.4.35': - dependencies: - '@vue/reactivity': 3.4.35 - '@vue/runtime-core': 3.4.35 - '@vue/shared': 3.4.35 - csstype: 3.1.3 - - '@vue/server-renderer@3.4.35(vue@3.4.35(typescript@5.5.4))': - dependencies: - '@vue/compiler-ssr': 3.4.35 - '@vue/shared': 3.4.35 - vue: 3.4.35(typescript@5.5.4) - - '@vue/shared@3.4.35': {} - - acorn-jsx@5.3.2(acorn@8.12.0): - dependencies: - acorn: 8.12.0 - - acorn@8.12.0: {} - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ansi-regex@5.0.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - argparse@2.0.1: {} - - array-union@2.1.0: {} - - balanced-match@1.0.2: {} - - boolbase@1.0.0: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - callsites@3.1.0: {} - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - concat-map@0.0.1: {} - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - cssesc@3.0.0: {} - - csstype@3.1.3: {} - - debug@4.3.5: - dependencies: - ms: 2.1.2 - - deep-is@0.1.4: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - - entities@4.5.0: {} - - escape-string-regexp@4.0.0: {} - - eslint-config-prettier@9.1.0(eslint@8.57.0): - dependencies: - eslint: 8.57.0 - - eslint-plugin-es@3.0.1(eslint@8.57.0): - dependencies: - eslint: 8.57.0 - eslint-utils: 2.1.0 - regexpp: 3.2.0 - - eslint-plugin-node@11.1.0(eslint@8.57.0): - dependencies: - eslint: 8.57.0 - eslint-plugin-es: 3.0.1(eslint@8.57.0) - eslint-utils: 2.1.0 - ignore: 5.3.1 - minimatch: 3.1.2 - resolve: 1.22.8 - semver: 6.3.1 - - eslint-plugin-security@3.0.0: - dependencies: - safe-regex: 2.1.1 - - eslint-plugin-vue@9.26.0(eslint@8.57.0): - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - eslint: 8.57.0 - globals: 13.24.0 - natural-compare: 1.4.0 - nth-check: 2.1.1 - postcss-selector-parser: 6.1.0 - semver: 7.6.3 - vue-eslint-parser: 9.4.3(eslint@8.57.0) - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - supports-color - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-utils@2.1.0: - dependencies: - eslint-visitor-keys: 1.3.0 - - eslint-visitor-keys@1.3.0: {} - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.0.0: {} - - eslint@8.57.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.5 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.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.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - espree@10.1.0: - dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) - eslint-visitor-keys: 4.0.0 - - espree@9.6.1: - dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) - eslint-visitor-keys: 3.4.3 - - esquery@1.5.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - estree-walker@2.0.2: {} - - esutils@2.0.3: {} - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.7 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@3.2.0: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 - - flatted@3.3.1: {} - - fs.realpath@1.0.0: {} - - function-bind@1.1.2: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 - - graphemer@1.4.0: {} - - has-flag@4.0.0: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - ignore@5.3.1: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - imurmurhash@0.1.4: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - is-core-module@2.14.0: - dependencies: - hasown: 2.0.2 - - is-extglob@2.1.1: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - is-path-inside@3.0.3: {} - - isexe@2.0.0: {} - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - json-buffer@3.0.1: {} - - json-schema-traverse@0.4.1: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.merge@4.6.2: {} - - lodash@4.17.21: {} - - magic-string@0.30.11: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - merge2@1.4.1: {} - - micromatch@4.0.7: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimatch@9.0.4: - dependencies: - brace-expansion: 2.0.1 - - ms@2.1.2: {} - - nanoid@3.3.7: {} - - natural-compare@1.4.0: {} - - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - path-exists@4.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-type@4.0.0: {} - - picocolors@1.0.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.2: {} - - pinia@2.2.0(typescript@5.5.4)(vue@3.4.35(typescript@5.5.4)): - dependencies: - '@vue/devtools-api': 6.6.3 - vue: 3.4.35(typescript@5.5.4) - vue-demi: 0.14.10(vue@3.4.35(typescript@5.5.4)) - optionalDependencies: - typescript: 5.5.4 - - postcss-selector-parser@6.1.0: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss@8.4.40: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - prelude-ls@1.2.1: {} - - punycode@2.3.1: {} - - queue-microtask@1.2.3: {} - - regexp-tree@0.1.27: {} - - regexpp@3.2.0: {} - - resolve-from@4.0.0: {} - - resolve@1.22.8: - dependencies: - is-core-module: 2.14.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - reusify@1.0.4: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - safe-regex@2.1.1: - dependencies: - regexp-tree: 0.1.27 - - semver@6.3.1: {} - - semver@7.6.3: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - slash@3.0.0: {} - - source-map-js@1.2.0: {} - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-json-comments@3.1.1: {} - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - text-table@0.2.0: {} - - to-fast-properties@2.0.0: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - ts-api-utils@1.3.0(typescript@5.5.4): - dependencies: - typescript: 5.5.4 - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-fest@0.20.2: {} - - typescript@5.5.4: {} - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - util-deprecate@1.0.2: {} - - vue-demi@0.14.10(vue@3.4.35(typescript@5.5.4)): - dependencies: - vue: 3.4.35(typescript@5.5.4) - - vue-eslint-parser@9.4.3(eslint@8.57.0): - dependencies: - debug: 4.3.5 - eslint: 8.57.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.6.3 - transitivePeerDependencies: - - supports-color - - vue@3.4.35(typescript@5.5.4): - dependencies: - '@vue/compiler-dom': 3.4.35 - '@vue/compiler-sfc': 3.4.35 - '@vue/runtime-dom': 3.4.35 - '@vue/server-renderer': 3.4.35(vue@3.4.35(typescript@5.5.4)) - '@vue/shared': 3.4.35 - optionalDependencies: - typescript: 5.5.4 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - word-wrap@1.2.5: {} - - wrappy@1.0.2: {} - - xml-name-validator@4.0.0: {} - - yocto-queue@0.1.0: {} diff --git a/app/common/vue_lib/src/components.ts b/app/common/vue_lib/src/components.ts deleted file mode 100644 index 625b0cf..0000000 --- a/app/common/vue_lib/src/components.ts +++ /dev/null @@ -1,4 +0,0 @@ -import ToastMessage from './components/atoms/ToastMessage.vue' -import ToastNotification from './components/organisms/ToastNotification.vue' - -export default { ToastMessage, ToastNotification } \ No newline at end of file diff --git a/app/common/vue_lib/src/index.ts b/app/common/vue_lib/src/index.ts deleted file mode 100644 index 5444808..0000000 --- a/app/common/vue_lib/src/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { App } from 'vue'; - -import components from'./components'; - -export * from './types'; - -import utils from './utils'; -export type UtilsType = typeof utils; - -export const VueLib = { - install: (app: App) => { - app.component("ToastMessage", components.ToastMessage); - app.component("ToastNotification", components.ToastNotification); - - app.provide('utils', utils); - } -} - -export { useToastStore } from './stores/useToastStore'; - -export function opt(v?: T) { - return v ?? null; -} \ No newline at end of file diff --git a/app/common/vue_lib/tsconfig.json b/app/common/vue_lib/tsconfig.json deleted file mode 100644 index 8bb6097..0000000 --- a/app/common/vue_lib/tsconfig.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "commonjs", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - // "outDir": "./", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "isolatedDeclarations": true, /* Require sufficient annotation on exports so other tools can trivially generate declaration files. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } -} diff --git a/app/legacy/package.json b/app/legacy/package.json index 6023797..eac0a1a 100644 --- a/app/legacy/package.json +++ b/app/legacy/package.json @@ -23,8 +23,7 @@ "semver": "^7.6.2", "tauri-plugin-autostart-api": "github:tauri-apps/tauri-plugin-autostart#v1", "tauri-plugin-store-api": "github:tauri-apps/tauri-plugin-store#v1", - "vue": "3.4.27", - "vue_lib": "link:../common/vue_lib" + "vue": "3.4.27" }, "devDependencies": { "@stylistic/eslint-plugin": "^2.1.0", diff --git a/app/legacy/pnpm-lock.yaml b/app/legacy/pnpm-lock.yaml index 8aefbc3..f1fdcc3 100644 --- a/app/legacy/pnpm-lock.yaml +++ b/app/legacy/pnpm-lock.yaml @@ -29,9 +29,6 @@ importers: vue: specifier: 3.4.27 version: 3.4.27(typescript@5.4.5) - vue_lib: - specifier: link:../common/vue_lib - version: link:../common/vue_lib devDependencies: '@stylistic/eslint-plugin': specifier: ^2.1.0 diff --git a/app/legacy/src-tauri/src/main.rs b/app/legacy/src-tauri/src/main.rs index 9d8e431..40bce09 100644 --- a/app/legacy/src-tauri/src/main.rs +++ b/app/legacy/src-tauri/src/main.rs @@ -9,7 +9,9 @@ extern crate log; use std::sync::{Arc, Mutex}; use rqs_lib::channel::{ChannelDirection, ChannelMessage}; -use rqs_lib::{EndpointInfo, SendInfo, State, Visibility, RQS}; +#[cfg(not(target_os = "macos"))] +use rqs_lib::State; +use rqs_lib::{EndpointInfo, SendInfo, Visibility, RQS}; use store::get_startminimized; use tauri::{ AppHandle, CustomMenuItem, GlobalWindowEvent, Manager, SystemTray, SystemTrayEvent, @@ -19,6 +21,7 @@ use tauri_plugin_autostart::MacosLauncher; use tokio::sync::{broadcast, mpsc, watch}; use crate::logger::set_up_logging; +#[cfg(not(target_os = "macos"))] use crate::notification::{send_request_notification, send_temporarily_notification}; use crate::store::{ get_download_path, get_port, get_realclose, get_visibility, init_default, set_visibility, @@ -26,6 +29,7 @@ use crate::store::{ mod cmds; mod logger; +#[cfg(not(target_os = "macos"))] mod notification; mod store; @@ -145,6 +149,7 @@ fn spawn_receiver_tasks(app_handle: &AppHandle) { match rinfo { Ok(info) => { + #[cfg(not(target_os = "macos"))] if info.state.as_ref().unwrap_or(&State::Initial) == &State::WaitingForUserConsent { @@ -216,6 +221,7 @@ fn spawn_receiver_tasks(app_handle: &AppHandle) { trace!("Tauri: ble received: {:?}", v); if v == Visibility::Invisible { + #[cfg(not(target_os = "macos"))] send_temporarily_notification(&capp_handle); } } diff --git a/app/legacy/src/components/HomePage.vue b/app/legacy/src/components/HomePage.vue index b512c12..09d3003 100644 --- a/app/legacy/src/components/HomePage.vue +++ b/app/legacy/src/components/HomePage.vue @@ -364,9 +364,7 @@ import { EndpointInfo } from '@martichou/core_lib/dist/EndpointInfo'; import { OutboundPayload } from '@martichou/core_lib/bindings/OutboundPayload'; import { Visibility } from '@martichou/core_lib/bindings/Visibility'; -import { ToDelete, stateToDisplay, autostartKey, DisplayedItem, useToastStore, UtilsType, opt, ToastType } from 'vue_lib'; - -import ToastNotification from 'vue_lib/src/components/organisms/ToastNotification.vue'; +import { ToastNotification, ToDelete, stateToDisplay, autostartKey, DisplayedItem, useToastStore, opt, ToastType, utils } from '../vue_lib'; export default { name: "HomePage", @@ -379,7 +377,6 @@ export default { const store = new Store(".settings.json"); const toastStore = useToastStore(); - const utils = inject('utils') as UtilsType; return { stateToDisplay, diff --git a/app/legacy/src/main.ts b/app/legacy/src/main.ts index eb40b89..1c5f549 100644 --- a/app/legacy/src/main.ts +++ b/app/legacy/src/main.ts @@ -1,9 +1,8 @@ import { devtools } from '@vue/devtools' import { createApp } from 'vue' import { createPinia } from 'pinia' -import { VueLib } from 'vue_lib'; -import 'vue_lib/assets/main.postcss' +import './vue_lib/assets/main.postcss' import App from './App.vue' @@ -16,7 +15,4 @@ const app = createApp(App) app.use(pinia); -// Not sure why as any is needed here -app.use(VueLib as any); - app.mount('#app') diff --git a/app/common/vue_lib/assets/main.postcss b/app/legacy/src/vue_lib/assets/main.postcss similarity index 100% rename from app/common/vue_lib/assets/main.postcss rename to app/legacy/src/vue_lib/assets/main.postcss diff --git a/app/common/vue_lib/src/components/atoms/ToastMessage.vue b/app/legacy/src/vue_lib/components/atoms/ToastMessage.vue similarity index 100% rename from app/common/vue_lib/src/components/atoms/ToastMessage.vue rename to app/legacy/src/vue_lib/components/atoms/ToastMessage.vue diff --git a/app/common/vue_lib/src/components/organisms/ToastNotification.vue b/app/legacy/src/vue_lib/components/organisms/ToastNotification.vue similarity index 100% rename from app/common/vue_lib/src/components/organisms/ToastNotification.vue rename to app/legacy/src/vue_lib/components/organisms/ToastNotification.vue diff --git a/app/common/vue_lib/src/helper/ParamsHelper.d.ts b/app/legacy/src/vue_lib/helper/ParamsHelper.d.ts similarity index 100% rename from app/common/vue_lib/src/helper/ParamsHelper.d.ts rename to app/legacy/src/vue_lib/helper/ParamsHelper.d.ts diff --git a/app/legacy/src/vue_lib/index.ts b/app/legacy/src/vue_lib/index.ts new file mode 100644 index 0000000..af8d794 --- /dev/null +++ b/app/legacy/src/vue_lib/index.ts @@ -0,0 +1,13 @@ +import ToastNotification from './components/organisms/ToastNotification.vue'; +import ToastMessage from './components/atoms/ToastMessage.vue'; + +export * from './types'; +export * from './utils'; + +export { ToastNotification, ToastMessage }; + +export { useToastStore } from './stores/useToastStore'; + +export function opt(v?: T) { + return v ?? null; +} \ No newline at end of file diff --git a/app/common/vue_lib/src/stores/useToastStore.ts b/app/legacy/src/vue_lib/stores/useToastStore.ts similarity index 100% rename from app/common/vue_lib/src/stores/useToastStore.ts rename to app/legacy/src/vue_lib/stores/useToastStore.ts diff --git a/app/common/vue_lib/src/types.ts b/app/legacy/src/vue_lib/types.ts similarity index 100% rename from app/common/vue_lib/src/types.ts rename to app/legacy/src/vue_lib/types.ts diff --git a/app/common/vue_lib/src/utils.ts b/app/legacy/src/vue_lib/utils.ts similarity index 98% rename from app/common/vue_lib/src/utils.ts rename to app/legacy/src/vue_lib/utils.ts index 5793147..9c346de 100644 --- a/app/common/vue_lib/src/utils.ts +++ b/app/legacy/src/vue_lib/utils.ts @@ -197,7 +197,7 @@ async function getLatestVersion(vm: TauriVM) { } // Default export -const utils = { +export const utils = { _displayedItems, setAutoStart, applyAutoStart, @@ -218,5 +218,4 @@ const utils = { setStartMinimized, getStartMinimized }; - -export default utils; \ No newline at end of file +export type UtilsType = typeof utils; \ No newline at end of file diff --git a/app/legacy/vite.config.ts b/app/legacy/vite.config.ts index 965d2cb..9287452 100644 --- a/app/legacy/vite.config.ts +++ b/app/legacy/vite.config.ts @@ -25,8 +25,6 @@ export default defineConfig({ strictPort: true, fs: { allow: [ - // Resolve the path dynamically - path.resolve(__dirname, '../common/vue_lib'), // Optionally, include other directories path.resolve(__dirname) ] diff --git a/app/main/package.json b/app/main/package.json index 56bba5d..8d4fcdc 100644 --- a/app/main/package.json +++ b/app/main/package.json @@ -25,8 +25,7 @@ "@tauri-apps/plugin-store": "2.0.0-rc.0", "pinia": "^2.2.0", "semver": "^7.6.3", - "vue": "3.4.27", - "vue_lib": "link:../common/vue_lib" + "vue": "3.4.27" }, "devDependencies": { "@tauri-apps/cli": "2.0.0-rc.1", diff --git a/app/main/pnpm-lock.yaml b/app/main/pnpm-lock.yaml index 540f2d4..60a763a 100644 --- a/app/main/pnpm-lock.yaml +++ b/app/main/pnpm-lock.yaml @@ -35,9 +35,6 @@ importers: vue: specifier: 3.4.27 version: 3.4.27(typescript@5.4.5) - vue_lib: - specifier: link:../common/vue_lib - version: link:../common/vue_lib devDependencies: '@stylistic/eslint-plugin': specifier: ^2.6.1 diff --git a/app/main/src/components/HomePage.vue b/app/main/src/components/HomePage.vue index 6e577e9..9c35df4 100644 --- a/app/main/src/components/HomePage.vue +++ b/app/main/src/components/HomePage.vue @@ -366,16 +366,19 @@ import { EndpointInfo } from '@martichou/core_lib/dist/EndpointInfo'; import { OutboundPayload } from '@martichou/core_lib/bindings/OutboundPayload'; import { Visibility } from '@martichou/core_lib/bindings/Visibility'; -import { ToDelete, stateToDisplay, autostartKey, DisplayedItem, useToastStore, UtilsType, opt, ToastType } from 'vue_lib'; +import { ToastNotification, ToDelete, stateToDisplay, autostartKey, DisplayedItem, useToastStore, opt, ToastType, utils } from '../vue_lib'; export default { name: "HomePage", + components: { + ToastNotification + }, + setup() { const store = new Store(".settings.json"); const toastStore = useToastStore(); - const utils = inject('utils') as UtilsType; return { stateToDisplay, diff --git a/app/main/src/main.ts b/app/main/src/main.ts index eb40b89..1c5f549 100644 --- a/app/main/src/main.ts +++ b/app/main/src/main.ts @@ -1,9 +1,8 @@ import { devtools } from '@vue/devtools' import { createApp } from 'vue' import { createPinia } from 'pinia' -import { VueLib } from 'vue_lib'; -import 'vue_lib/assets/main.postcss' +import './vue_lib/assets/main.postcss' import App from './App.vue' @@ -16,7 +15,4 @@ const app = createApp(App) app.use(pinia); -// Not sure why as any is needed here -app.use(VueLib as any); - app.mount('#app') diff --git a/app/main/src/vue_lib/assets/main.postcss b/app/main/src/vue_lib/assets/main.postcss new file mode 100644 index 0000000..4c96743 --- /dev/null +++ b/app/main/src/vue_lib/assets/main.postcss @@ -0,0 +1,218 @@ +@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;300;400;500;600;700;800;900&display=swap'); +@tailwind base; +@tailwind components; +@tailwind utilities; +@layer utilities { + /* Chrome, Safari and Opera */ + .no-scrollbar::-webkit-scrollbar { + display: none; + } + .no-scrollbar { + -ms-overflow-style: none; + /* IE and Edge */ + scrollbar-width: none; + /* Firefox */ + } +} + +html, +body, +#app { + font-family: 'Montserrat', sans-serif; + outline: 1px solid transparent; + -webkit-backface-visibility: hidden; + transform: translateZ(0); + will-change: transform; + -webkit-perspective: 1000; +} + +.status-indicator { + position: relative; + display: inline-block; + width: 48px; + height: 48px +} + +.status-indicator .circle { + position: absolute; + top: 18px; + left: 18px; + width: 12px; + height: 12px; + border-radius: 100px +} + +.status-indicator--xl { + width: 72px; + height: 72px +} + +.status-indicator--xl .circle { + position: absolute; + top: 27px; + left: 27px; + width: 18px; + height: 18px; + border-radius: 100px +} + +.status-indicator .circle.circle--animated { + animation-iteration-count: infinite; + animation-delay: 1s; + animation-fill-mode: backwards; + animation-duration: 4s; + animation-timing-function: linear +} + +.status-indicator .circle-main { + z-index: 3; + background: #000 +} + +.status-indicator .circle-main.circle--animated { + animation-name: pulsate-main-infinite +} + +.status-indicator .circle-secondary { + z-index: 2; + background: rgba(0, 0, 0, .1) +} + +.status-indicator .circle-secondary.circle--animated { + animation-name: pulsate-secondary-infinite +} + +.status-indicator .circle-tertiary { + z-index: 1; + background: rgba(0, 0, 0, .6); + opacity: 1 +} + +.status-indicator .circle-tertiary.circle--animated { + animation-name: pulsate-tertiary +} + +.status-indicator--infinite .circle.circle--animated { + animation-iteration-count: infinite +} + +.status-indicator--success .circle-main { + @apply bg-black +} + +.status-indicator--success .circle-secondary { + @apply bg-black bg-opacity-10 +} + +.status-indicator--success .circle-tertiary { + @apply bg-black bg-opacity-40 +} + +@keyframes pulsate-tertiary { + 45% { + transform: scale(1, 1) + } + 80% { + transform: scale(3, 3); + opacity: 0 + } + 100% { + transform: scale(3, 3); + opacity: 0 + } +} + +@keyframes pulsate-main-infinite { + 20% { + transform: scale(1, 1) + } + 45% { + transform: scale(1.2, 1.2) + } + 55% { + transform: scale(1.2, 1.2) + } + 80% { + transform: scale(1, 1) + } +} + +@keyframes pulsate-secondary-infinite { + 10% { + transform: scale(1, 1) + } + 25% { + transform: scale(1, 1) + } + 50% { + transform: scale(3, 3) + } + 75% { + transform: scale(3, 3) + } + 100% { + transform: scale(1, 1) + } +} + +.btn { + @apply h-12 min-h-12 cursor-pointer rounded-xl font-medium px-4 inline-flex justify-center items-center gap-2 hover:bg-gray-500 hover:bg-opacity-10 +} + +.checkbox { + flex-shrink: 0; + --chkbg: var(--fallback-bc, oklch(var(--bc) / 1)); + --chkfg: var(--fallback-b1, oklch(var(--b1) / 1)); + height: 1.5rem; + width: 1.5rem; + cursor: pointer; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: var(--rounded-btn, 0.5rem); + border-width: 1px; + border-color: var(--fallback-bc, oklch(var(--bc) / var(--tw-border-opacity))); + --tw-border-opacity: .2; +} + +.checkbox:checked, .checkbox[checked=true], .checkbox[aria-checked=true] { + background-repeat: no-repeat; + animation: checkmark var(--animation-input, .2s) ease-out; + background-color: #bbf7d0; + background-image: linear-gradient(-45deg, transparent 65%, #bbf7d0 65.99%), linear-gradient(45deg, transparent 75%, #bbf7d0 75.99%), linear-gradient(-45deg, #bbf7d0 40%, transparent 40.99%), linear-gradient(45deg, #bbf7d0 30%, black 30.99%, black 40%, transparent 40.99%), linear-gradient(-45deg, black 50%, #bbf7d0 50.99%); +} + +.checkbox:checked, .checkbox[checked=true], .checkbox[aria-checked=true] { + @apply bg-green-200 border-green-200 text-black; +} + +.circular-progress { + --size: 250px; + --half-size: calc(var(--size) / 2); + --stroke-width: 12px; + --radius: calc((var(--size) - var(--stroke-width)) / 2); + --circumference: calc(var(--radius) * pi * 2); + --dash: calc((var(--progress) * var(--circumference)) / 100); +} + +.circular-progress circle { + cx: var(--half-size); + cy: var(--half-size); + r: var(--radius); + stroke-width: var(--stroke-width); + fill: none; + stroke-linecap: round; +} + +.circular-progress circle.bg { + stroke: #ddd; +} + +.circular-progress circle.fg { + transform: rotate(-90deg); + transform-origin: var(--half-size) var(--half-size); + stroke-dasharray: var(--dash) calc(var(--circumference) - var(--dash)); + transition: stroke-dasharray 0.3s linear 0s; + + @apply stroke-black +} \ No newline at end of file diff --git a/app/main/src/vue_lib/components/atoms/ToastMessage.vue b/app/main/src/vue_lib/components/atoms/ToastMessage.vue new file mode 100644 index 0000000..4f7ec70 --- /dev/null +++ b/app/main/src/vue_lib/components/atoms/ToastMessage.vue @@ -0,0 +1,29 @@ + + + \ No newline at end of file diff --git a/app/main/src/vue_lib/components/organisms/ToastNotification.vue b/app/main/src/vue_lib/components/organisms/ToastNotification.vue new file mode 100644 index 0000000..410eab0 --- /dev/null +++ b/app/main/src/vue_lib/components/organisms/ToastNotification.vue @@ -0,0 +1,26 @@ + + + \ No newline at end of file diff --git a/app/main/src/vue_lib/helper/ParamsHelper.d.ts b/app/main/src/vue_lib/helper/ParamsHelper.d.ts new file mode 100644 index 0000000..e3d9173 --- /dev/null +++ b/app/main/src/vue_lib/helper/ParamsHelper.d.ts @@ -0,0 +1,34 @@ +import { Store } from '@tauri-apps/plugin-store'; +import { UnlistenFn } from '@tauri-apps/api/event'; + +import { ToDelete } from '../types'; + +import { EndpointInfo } from '@martichou/core_lib/bindings/EndpointInfo'; +import { Visibility } from '@martichou/core_lib/bindings/Visibility'; +import { OutboundPayload } from '@martichou/core_lib/bindings/OutboundPayload'; +import { ChannelMessage } from '@martichou/core_lib/bindings/ChannelMessage'; + +export interface TauriVM { + store: Store; + isAppInForeground: boolean; + discoveryRunning: boolean; + isDragHovering: boolean; + requests: ChannelMessage[]; + endpointsInfo: EndpointInfo[]; + toDelete: ToDelete[]; + outboundPayload: OutboundPayload | undefined; + unlisten: Array; + version: string | null; + autostart: boolean; + realclose: boolean; + startminimized: boolean; + visibility: Visibility; + downloadPath: string | undefined; + hostname: string | undefined; + settingsOpen: boolean; + new_version: string | null; + enable: () => Promise; + disable: () => Promise; + invoke: (cmd: string, args?: InvokeArgs) => Promise + setVisibility: (vm: TauriVM, visibility: Visibility) => Promise; +} \ No newline at end of file diff --git a/app/main/src/vue_lib/index.ts b/app/main/src/vue_lib/index.ts new file mode 100644 index 0000000..af8d794 --- /dev/null +++ b/app/main/src/vue_lib/index.ts @@ -0,0 +1,13 @@ +import ToastNotification from './components/organisms/ToastNotification.vue'; +import ToastMessage from './components/atoms/ToastMessage.vue'; + +export * from './types'; +export * from './utils'; + +export { ToastNotification, ToastMessage }; + +export { useToastStore } from './stores/useToastStore'; + +export function opt(v?: T) { + return v ?? null; +} \ No newline at end of file diff --git a/app/main/src/vue_lib/stores/useToastStore.ts b/app/main/src/vue_lib/stores/useToastStore.ts new file mode 100644 index 0000000..4aa25ec --- /dev/null +++ b/app/main/src/vue_lib/stores/useToastStore.ts @@ -0,0 +1,23 @@ +import { defineStore } from "pinia"; +import { ref } from "vue"; +import { Toast, ToastType } from "../types"; + +export const useToastStore = defineStore("toasts", () => { + const toasts = ref([]); + + function addToast(message: string, type: ToastType) { + const toast = { + id: Date.now(), + message, + type, + }; + toasts.value.push(toast); + setTimeout(() => removeToast(toast.id), 3000); + } + + function removeToast(id: number) { + toasts.value = toasts.value.filter((toast) => toast.id !== id); + } + + return { toasts, addToast, removeToast }; +}); \ No newline at end of file diff --git a/app/main/src/vue_lib/types.ts b/app/main/src/vue_lib/types.ts new file mode 100644 index 0000000..a2fdf33 --- /dev/null +++ b/app/main/src/vue_lib/types.ts @@ -0,0 +1,55 @@ +import { State } from '@martichou/core_lib/bindings/State'; +import { DeviceType } from '@martichou/core_lib/bindings/DeviceType'; +import { Visibility } from '@martichou/core_lib/bindings/Visibility'; + +export interface ToDelete { + id: string, + triggered: number +} + +export interface DisplayedItem { + id: string, + name: string, + deviceType: DeviceType, + endpoint: boolean, + + state?: State, + pin_code?: string, + files?: string[], + text_description?: string, + destination?: string, + total_bytes?: number, + ack_bytes?: number, +} + +export const visibilityToNumber: { [key in Visibility]: number } = { + 'Visible': 0, + 'Invisible': 1, + 'Temporarily': 2, +}; + +export const numberToVisibility: { [key: number]: Visibility } = { + 0: "Visible", + 1: "Invisible", + 2: "Temporarily", +}; + +export const autostartKey = "autostart"; +export const realcloseKey = "realclose"; +export const startminimizedKey = "startminimized"; +export const visibilityKey = "visibility"; +export const downloadPathKey = "download_path"; +export const stateToDisplay: Array> = ["ReceivedPairedKeyResult", "WaitingForUserConsent", "ReceivingFiles", "Disconnected", + "Finished", "SentIntroduction", "SendingFiles", "Cancelled", "Rejected"] + +export interface Toast { + id: number; + type: ToastType; + message: string; +} + +export enum ToastType { + Success = "SUCCESS", + Error = "ERROR", + Info = "INFO", +} \ No newline at end of file diff --git a/app/main/src/vue_lib/utils.ts b/app/main/src/vue_lib/utils.ts new file mode 100644 index 0000000..9c346de --- /dev/null +++ b/app/main/src/vue_lib/utils.ts @@ -0,0 +1,221 @@ +import { Visibility } from '@martichou/core_lib/bindings/Visibility'; +import { TauriVM } from './helper/ParamsHelper'; +import { autostartKey, DisplayedItem, downloadPathKey, numberToVisibility, realcloseKey, startminimizedKey, stateToDisplay, visibilityKey, visibilityToNumber } from './types'; +import { SendInfo } from '@martichou/core_lib/bindings/SendInfo'; +import { ChannelMessage } from '@martichou/core_lib/bindings/ChannelMessage'; +import { ChannelAction } from '@martichou/core_lib'; +import { gt } from 'semver'; + +function _displayedItems(vm: TauriVM): Array { + const ndisplayed = new Array(); + + vm.endpointsInfo.forEach((el) => { + const idx = ndisplayed.findIndex((nel) => el.id == nel.id); + if (idx !== -1) return; + + ndisplayed.push({ + id: el.id, + name: el.name ?? 'Unknown', + deviceType: el.rtype ?? 'Unknown', + endpoint: true, + }) + }); + + vm.requests.filter((el) => stateToDisplay.includes(el.state ?? 'Initial')).forEach((el) => { + const idx = ndisplayed.findIndex((nel) => el.id == nel.id); + const elem: DisplayedItem = { + id: el.id, + name: el.meta?.source?.name ?? 'Unknown', + deviceType: el.meta?.source?.device_type ?? 'Unknown', + endpoint: false, + + state: el.state ?? undefined, + pin_code: el.meta?.pin_code ?? undefined, + destination: el.meta?.destination ?? el.meta?.text_payload ?? undefined, + files: el.meta?.files ?? undefined, + text_description: el.meta?.text_description ?? undefined, + ack_bytes: (el.meta?.ack_bytes as number | undefined) ?? undefined, + total_bytes: (el.meta?.total_bytes as number | undefined) ?? undefined, + }; + + if (idx !== -1) { + ndisplayed.splice(idx, 1, elem); + } else { + ndisplayed.push(elem) + } + }); + + return ndisplayed; +} + +async function setAutoStart(vm: TauriVM, autostart: boolean) { + if (autostart) { + await vm.enable(); + } else { + await vm.disable(); + } + + await vm.store.set(autostartKey, autostart); + await vm.store.save(); + vm.autostart = autostart; +} + +async function applyAutoStart(vm: TauriVM) { + vm.autostart = await vm.store.get(autostartKey) ?? false; + + if (vm.autostart) { + await vm.enable(); + } else { + await vm.disable(); + } +} + +async function setRealClose(vm: TauriVM, realclose: boolean) { + await vm.store.set(realcloseKey, realclose); + await vm.store.save(); + vm.realclose = realclose; +} + +async function getRealclose(vm: TauriVM) { + vm.realclose = await vm.store.get(realcloseKey) ?? false; +} + +async function setStartMinimized(vm: TauriVM, startminimized: boolean) { + await vm.store.set(startminimizedKey, startminimized); + await vm.store.save(); + vm.startminimized = startminimized; +} + +async function getStartMinimized(vm: TauriVM) { + vm.startminimized = await vm.store.get(startminimizedKey) ?? false; +} + +async function setVisibility(vm: TauriVM, visibility: Visibility) { + await vm.invoke('change_visibility', { message: visibility }); + await vm.store.set(visibilityKey, visibilityToNumber[visibility]); + await vm.store.save(); + vm.visibility = visibility; +} + +async function getVisibility(vm: TauriVM) { + vm.visibility = numberToVisibility[(await vm.store.get(visibilityKey) ?? 0) as number]; +} + +async function invertVisibility(vm: TauriVM) { + if (vm.visibility === 'Temporarily') { + return; + } + + if (vm.visibility === 'Visible') { + return await vm.setVisibility(vm, 'Invisible'); + } + + return await vm.setVisibility(vm, 'Visible'); +} + +async function clearSending(vm: TauriVM, ) { + await vm.invoke('stop_discovery'); + vm.outboundPayload = undefined; + vm.discoveryRunning = false; + vm.endpointsInfo = []; +} + +function removeRequest(vm: TauriVM, id: string) { + const idx = vm.requests.findIndex((el) => el.id === id); + + if (idx !== -1) { + vm.requests.splice(idx, 1); + } +} + +async function sendInfo(vm: TauriVM, eid: string) { + if (vm.outboundPayload === undefined) return; + + const ei = vm.endpointsInfo.find((el) => el.id === eid); + if (!ei || !ei.ip || !ei.port) return; + + const msg: SendInfo = { + id: ei.id, + name: ei.name ?? 'Unknown', + addr: ei.ip + ":" + ei.port, + ob: vm.outboundPayload, + }; + + await vm.invoke('send_payload', { message: msg }); +} + +async function sendCmd(vm: TauriVM, id: string, action: ChannelAction) { + const cm: ChannelMessage = { + id: id, + direction: 'FrontToLib', + action: action, + meta: null, + state: null, + rtype: null, + }; + console.log("js2rs:", cm); + + await vm.invoke('send_to_rs', { message: cm }); +} + +function blured() { + (document.activeElement as any).blur(); +} + +function getProgress(item: DisplayedItem): string { + const value = item.ack_bytes! / item.total_bytes! * 100; + return `--progress: ${value}`; +} + +async function setDownloadPath(vm: TauriVM, dest: string) { + await vm.invoke('change_download_path', { message: dest }); + await vm.store.set(downloadPathKey, dest); + await vm.store.save(); + vm.downloadPath = dest; +} + +async function getDownloadPath(vm: TauriVM) { + vm.downloadPath = await vm.store.get(downloadPathKey) ?? undefined; +} + +async function getLatestVersion(vm: TauriVM) { + try { + const response = await fetch('https://api.github.com/repos/martichou/rquickshare/releases/latest'); + if (!response.ok) { + throw new Error(`Error: ${response.status} ${response.statusText}`); + } + const data = await response.json(); + const new_version = data.tag_name.substring(1); + console.log(`Latest version: ${vm.version} vs ${new_version}`); + + if (vm.version && gt(new_version, vm.version)) { + vm.new_version = new_version; + } + } catch (err) { + console.error(err); + } +} + +// Default export +export const utils = { + _displayedItems, + setAutoStart, + applyAutoStart, + setRealClose, + getRealclose, + setVisibility, + getVisibility, + invertVisibility, + clearSending, + removeRequest, + sendInfo, + sendCmd, + blured, + getProgress, + setDownloadPath, + getDownloadPath, + getLatestVersion, + setStartMinimized, + getStartMinimized +}; +export type UtilsType = typeof utils; \ No newline at end of file diff --git a/app/main/vite.config.ts b/app/main/vite.config.ts index 965d2cb..9287452 100644 --- a/app/main/vite.config.ts +++ b/app/main/vite.config.ts @@ -25,8 +25,6 @@ export default defineConfig({ strictPort: true, fs: { allow: [ - // Resolve the path dynamically - path.resolve(__dirname, '../common/vue_lib'), // Optionally, include other directories path.resolve(__dirname) ]