├── .github └── workflows │ └── publish.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── auto-imports.d.ts ├── components.d.ts ├── icon.png ├── index.html ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── screencast.gif ├── src ├── App.vue ├── components │ ├── Editor.vue │ └── dialog.vue ├── main.ts ├── stores │ └── editor.ts ├── style.css └── vue.d.ts ├── tailwind.config.js ├── tsconfig.json └── vite.config.ts /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Build plugin 2 | 3 | on: 4 | push: 5 | # Sequence of patterns matched against refs/tags 6 | tags: 7 | - "*" # Push events to matching any tag format, i.e. 1.0, 20.15.10 8 | 9 | env: 10 | PLUGIN_NAME: logseq-plugin-global-custom-css 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | 16 | steps: 17 | - uses: actions/checkout@v2 18 | - name: Use Node.js 19 | uses: actions/setup-node@v1 20 | with: 21 | node-version: "16.x" # You might need to adjust this value to your own version 22 | - name: Build 23 | id: build 24 | run: | 25 | npm install -g pnpm 26 | pnpm install 27 | pnpm build 28 | mv dist ${{ env.PLUGIN_NAME }} 29 | zip -r ${{ env.PLUGIN_NAME }}.zip ${{ env.PLUGIN_NAME }} 30 | tar -cvzf ${{ env.PLUGIN_NAME }}.tar.gz -C ${{ env.PLUGIN_NAME }} . 31 | ls 32 | echo "::set-output name=tag_name::$(git tag --sort version:refname | tail -n 1)" 33 | 34 | - name: Create Release 35 | uses: ncipollo/release-action@v1 36 | id: create_release 37 | env: 38 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 39 | VERSION: ${{ github.ref }} 40 | with: 41 | allowUpdates: true 42 | draft: false 43 | prerelease: false 44 | 45 | - name: Upload zip file 46 | id: upload_zip 47 | uses: actions/upload-release-asset@v1 48 | env: 49 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 50 | with: 51 | upload_url: ${{ steps.create_release.outputs.upload_url }} 52 | asset_path: ./${{ env.PLUGIN_NAME }}.zip 53 | asset_name: ${{ env.PLUGIN_NAME }}-${{ steps.build.outputs.tag_name }}.zip 54 | asset_content_type: application/zip 55 | 56 | - name: Upload tar.gz file 57 | id: upload_metadata 58 | uses: actions/upload-release-asset@v1 59 | env: 60 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 61 | with: 62 | upload_url: ${{ steps.create_release.outputs.upload_url }} 63 | asset_path: ./${{ env.PLUGIN_NAME }}.tar.gz 64 | asset_name: ${{ env.PLUGIN_NAME }}-${{ steps.build.outputs.tag_name }}.tar.gz 65 | asset_content_type: application/gzip 66 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | dist -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # CHANGELOG 2 | 3 | ## v0.0.3 4 | 5 | - fix: add github username setting 6 | 7 | ## v0.0.2 8 | 9 | - fix: toolbar key is wrong -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Logseq Global Custom CSS 2 | 3 | [![Github All Releases](https://img.shields.io/github/downloads/vipzhicheng/logseq-plugin-global-custom-css/total.svg)](https://github.com/vipzhicheng/logseq-plugin-global-custom-css/releases) 4 | 5 | ![Screenshot](./screencast.gif) 6 | 7 | A plugin for Logseq themer. Logseq's custom.css give end user the ability to customize look and feel of Logseq over the theme layer, it's awesome but have some limits. 8 | 9 | * Each repo has a custom.css, if you have many repos, you need to copy and paste changes all the time. 10 | * You need to go back and forth to preview after editing. 11 | 12 | ## Features 13 | 14 | With this plugins, it create a new workflow for themer to customize css globally. 15 | 16 | * It's a CSS editor in popup modal which can be drag and drop. 17 | * Support syntax highlight, and autocomplete. 18 | * Code will be applied automatically. 19 | * Save to/Load from Github Gists. 20 | * Support fullscreen press F11. 21 | * Support Code format. 22 | 23 | ## Workflow 24 | 25 | * You can rely on this plugin to replace the original custom.css, so you can get the ability to edit once and use it globally. 26 | * Or, you can just use it as a debug window, you can preview effects when you editing, then if it works, you can copy all code to custom.css, and clear the window. 27 | 28 | ## Settings 29 | 30 | If you do not need to save code to Github Gist, it's an out-of-the-box. For now it can only be trigger from the right top corner, the colorful icon. 31 | 32 | If you do need to save code to Github Gist, you need to config the plugin 33 | 34 | ### Github Personal Access Token 35 | 36 | It's best only grant **Gist Create** permission for this token. You can apply it [here](https://github.com/settings/tokens). 37 | 38 | ### Gist ID 39 | 40 | The plugin can not help you create a gist and alway use the created one to save code, so you need to set a specific gist id, the plugin will not touch any other your gists. 41 | 42 | ## Buy me a coffee 43 | 44 | If my plugin solve your situation a little bit and you will, you can choose to buy me a coffee via [this](https://www.buymeacoffee.com/vipzhicheng) and [this](https://afdian.net/@vipzhicheng). 45 | 46 | ## Licence 47 | MIT 48 | -------------------------------------------------------------------------------- /auto-imports.d.ts: -------------------------------------------------------------------------------- 1 | // Generated by 'unplugin-auto-import' 2 | export {} 3 | declare global { 4 | const EffectScope: typeof import('vue')['EffectScope'] 5 | const computed: typeof import('vue')['computed'] 6 | const createApp: typeof import('vue')['createApp'] 7 | const customRef: typeof import('vue')['customRef'] 8 | const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] 9 | const defineComponent: typeof import('vue')['defineComponent'] 10 | const effectScope: typeof import('vue')['effectScope'] 11 | const getCurrentInstance: typeof import('vue')['getCurrentInstance'] 12 | const getCurrentScope: typeof import('vue')['getCurrentScope'] 13 | const h: typeof import('vue')['h'] 14 | const inject: typeof import('vue')['inject'] 15 | const isReadonly: typeof import('vue')['isReadonly'] 16 | const isRef: typeof import('vue')['isRef'] 17 | const markRaw: typeof import('vue')['markRaw'] 18 | const nextTick: typeof import('vue')['nextTick'] 19 | const onActivated: typeof import('vue')['onActivated'] 20 | const onBeforeMount: typeof import('vue')['onBeforeMount'] 21 | const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] 22 | const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] 23 | const onDeactivated: typeof import('vue')['onDeactivated'] 24 | const onErrorCaptured: typeof import('vue')['onErrorCaptured'] 25 | const onMounted: typeof import('vue')['onMounted'] 26 | const onRenderTracked: typeof import('vue')['onRenderTracked'] 27 | const onRenderTriggered: typeof import('vue')['onRenderTriggered'] 28 | const onScopeDispose: typeof import('vue')['onScopeDispose'] 29 | const onServerPrefetch: typeof import('vue')['onServerPrefetch'] 30 | const onUnmounted: typeof import('vue')['onUnmounted'] 31 | const onUpdated: typeof import('vue')['onUpdated'] 32 | const provide: typeof import('vue')['provide'] 33 | const reactive: typeof import('vue')['reactive'] 34 | const readonly: typeof import('vue')['readonly'] 35 | const ref: typeof import('vue')['ref'] 36 | const resolveComponent: typeof import('vue')['resolveComponent'] 37 | const shallowReactive: typeof import('vue')['shallowReactive'] 38 | const shallowReadonly: typeof import('vue')['shallowReadonly'] 39 | const shallowRef: typeof import('vue')['shallowRef'] 40 | const toRaw: typeof import('vue')['toRaw'] 41 | const toRef: typeof import('vue')['toRef'] 42 | const toRefs: typeof import('vue')['toRefs'] 43 | const triggerRef: typeof import('vue')['triggerRef'] 44 | const unref: typeof import('vue')['unref'] 45 | const useAttrs: typeof import('vue')['useAttrs'] 46 | const useCssModule: typeof import('vue')['useCssModule'] 47 | const useCssVars: typeof import('vue')['useCssVars'] 48 | const useSlots: typeof import('vue')['useSlots'] 49 | const watch: typeof import('vue')['watch'] 50 | const watchEffect: typeof import('vue')['watchEffect'] 51 | } 52 | -------------------------------------------------------------------------------- /components.d.ts: -------------------------------------------------------------------------------- 1 | // generated by unplugin-vue-components 2 | // We suggest you to commit this file into source control 3 | // Read more: https://github.com/vuejs/vue-next/pull/3399 4 | import '@vue/runtime-core' 5 | 6 | declare module '@vue/runtime-core' { 7 | export interface GlobalComponents { 8 | Dialog: typeof import('./src/components/dialog.vue')['default'] 9 | Editor: typeof import('./src/components/editor.vue')['default'] 10 | ElButton: typeof import('element-plus/es')['ElButton'] 11 | ElDialog: typeof import('element-plus/es')['ElDialog'] 12 | } 13 | } 14 | 15 | export {} 16 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vipzhicheng/logseq-plugin-global-custom-css/0f99a81974373b855e9c68756f2fc4408a01a3ba/icon.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Starter 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "logseq-plugin-global-custom-css", 3 | "version": "0.0.3", 4 | "description": "A plugin for Logseq themer", 5 | "main": "index.html", 6 | "scripts": { 7 | "dev": "vite dev", 8 | "build": "vue-tsc --noEmit && vite build && cp icon.png package.json LICENSE dist/" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "devDependencies": { 14 | "@types/codemirror": "^5.60.5", 15 | "@types/node": "^17.0.35", 16 | "@vitejs/plugin-vue": "^2.3.3", 17 | "autoprefixer": "^10.4.7", 18 | "postcss": "^8.4.14", 19 | "tailwindcss": "^3.0.24", 20 | "typescript": "^4.7.2", 21 | "unplugin-auto-import": "^0.8.5", 22 | "unplugin-vue-components": "^0.19.5", 23 | "vite": "^2.9.9", 24 | "vite-plugin-logseq": "^1.1.2", 25 | "vue-tsc": "^0.34.16" 26 | }, 27 | "dependencies": { 28 | "@logseq/libs": "^0.0.6", 29 | "@octokit/rest": "^18.12.0", 30 | "codemirror": "^5.65.4", 31 | "element-plus": "^2.2.2", 32 | "pinia": "^2.0.14", 33 | "simply-beautiful": "^0.2.13", 34 | "vue": "^3.2.36" 35 | }, 36 | "logseq": { 37 | "id": "logseq-plugin-global-custom-css", 38 | "title": "Global Custom CSS", 39 | "icon": "./icon.png" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | '@logseq/libs': ^0.0.6 5 | '@octokit/rest': ^18.12.0 6 | '@types/codemirror': ^5.60.5 7 | '@types/node': ^17.0.35 8 | '@vitejs/plugin-vue': ^2.3.3 9 | autoprefixer: ^10.4.7 10 | codemirror: ^5.65.4 11 | element-plus: ^2.2.2 12 | pinia: ^2.0.14 13 | postcss: ^8.4.14 14 | simply-beautiful: ^0.2.13 15 | tailwindcss: ^3.0.24 16 | typescript: ^4.7.2 17 | unplugin-auto-import: ^0.8.5 18 | unplugin-vue-components: ^0.19.5 19 | vite: ^2.9.9 20 | vite-plugin-logseq: ^1.1.2 21 | vue: ^3.2.36 22 | vue-tsc: ^0.34.16 23 | 24 | dependencies: 25 | '@logseq/libs': 0.0.6 26 | '@octokit/rest': 18.12.0 27 | codemirror: 5.65.4 28 | element-plus: 2.2.2_vue@3.2.36 29 | pinia: 2.0.14_typescript@4.7.2+vue@3.2.36 30 | simply-beautiful: 0.2.13 31 | vue: 3.2.36 32 | 33 | devDependencies: 34 | '@types/codemirror': 5.60.5 35 | '@types/node': 17.0.35 36 | '@vitejs/plugin-vue': 2.3.3_vite@2.9.9+vue@3.2.36 37 | autoprefixer: 10.4.7_postcss@8.4.14 38 | postcss: 8.4.14 39 | tailwindcss: 3.0.24 40 | typescript: 4.7.2 41 | unplugin-auto-import: 0.8.5_vite@2.9.9 42 | unplugin-vue-components: 0.19.5_vite@2.9.9+vue@3.2.36 43 | vite: 2.9.9 44 | vite-plugin-logseq: 1.1.2 45 | vue-tsc: 0.34.16_typescript@4.7.2 46 | 47 | packages: 48 | 49 | /@antfu/utils/0.5.2: 50 | resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==} 51 | dev: true 52 | 53 | /@babel/parser/7.17.3: 54 | resolution: {integrity: sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==} 55 | engines: {node: '>=6.0.0'} 56 | hasBin: true 57 | 58 | /@ctrl/tinycolor/3.4.1: 59 | resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==} 60 | engines: {node: '>=10'} 61 | dev: false 62 | 63 | /@element-plus/icons-vue/1.1.4_vue@3.2.36: 64 | resolution: {integrity: sha512-Iz/nHqdp1sFPmdzRwHkEQQA3lKvoObk8azgABZ81QUOpW9s/lUyQVUSh0tNtEPZXQlKwlSh7SPgoVxzrE0uuVQ==} 65 | peerDependencies: 66 | vue: ^3.2.0 67 | dependencies: 68 | vue: 3.2.36 69 | dev: false 70 | 71 | /@floating-ui/core/0.7.1: 72 | resolution: {integrity: sha512-grcqEmI8DTIolufpxhJagVeJmvloxBXE6xxSrVnSXz/Wz1uUIsC85ad+UNBqAoBOvzLxE42wvDj3YkmSGqWRxA==} 73 | dev: false 74 | 75 | /@floating-ui/dom/0.5.1: 76 | resolution: {integrity: sha512-dkPSy5JPiQEtljc3VpG9lauYctxfLlqj/8N9f+lmsR92gQaSVMAWuBbFBH2keY5DmdQn3p4Dv1dQd+e8osH+/g==} 77 | dependencies: 78 | '@floating-ui/core': 0.7.1 79 | dev: false 80 | 81 | /@logseq/libs/0.0.6: 82 | resolution: {integrity: sha512-0Fv+Wdno5m0EA9xW6tRRvoKNPAF5nznpi6A1bBjh8aq4XMt7rGvhHbsH+u84/nswCYlce3t2Q/ei8CRK8iWbdw==} 83 | dependencies: 84 | csstype: 3.0.8 85 | debug: 4.3.1 86 | dompurify: 2.3.1 87 | eventemitter3: 4.0.7 88 | fast-deep-equal: 3.1.3 89 | lodash-es: 4.17.21 90 | path: 0.12.7 91 | snake-case: 3.0.4 92 | transitivePeerDependencies: 93 | - supports-color 94 | dev: false 95 | 96 | /@nodelib/fs.scandir/2.1.5: 97 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 98 | engines: {node: '>= 8'} 99 | dependencies: 100 | '@nodelib/fs.stat': 2.0.5 101 | run-parallel: 1.2.0 102 | dev: true 103 | 104 | /@nodelib/fs.stat/2.0.5: 105 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 106 | engines: {node: '>= 8'} 107 | dev: true 108 | 109 | /@nodelib/fs.walk/1.2.8: 110 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 111 | engines: {node: '>= 8'} 112 | dependencies: 113 | '@nodelib/fs.scandir': 2.1.5 114 | fastq: 1.13.0 115 | dev: true 116 | 117 | /@octokit/auth-token/2.5.0: 118 | resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} 119 | dependencies: 120 | '@octokit/types': 6.34.0 121 | dev: false 122 | 123 | /@octokit/core/3.6.0: 124 | resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} 125 | dependencies: 126 | '@octokit/auth-token': 2.5.0 127 | '@octokit/graphql': 4.8.0 128 | '@octokit/request': 5.6.3 129 | '@octokit/request-error': 2.1.0 130 | '@octokit/types': 6.34.0 131 | before-after-hook: 2.2.2 132 | universal-user-agent: 6.0.0 133 | transitivePeerDependencies: 134 | - encoding 135 | dev: false 136 | 137 | /@octokit/endpoint/6.0.12: 138 | resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} 139 | dependencies: 140 | '@octokit/types': 6.34.0 141 | is-plain-object: 5.0.0 142 | universal-user-agent: 6.0.0 143 | dev: false 144 | 145 | /@octokit/graphql/4.8.0: 146 | resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} 147 | dependencies: 148 | '@octokit/request': 5.6.3 149 | '@octokit/types': 6.34.0 150 | universal-user-agent: 6.0.0 151 | transitivePeerDependencies: 152 | - encoding 153 | dev: false 154 | 155 | /@octokit/openapi-types/11.2.0: 156 | resolution: {integrity: sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==} 157 | dev: false 158 | 159 | /@octokit/plugin-paginate-rest/2.17.0_@octokit+core@3.6.0: 160 | resolution: {integrity: sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==} 161 | peerDependencies: 162 | '@octokit/core': '>=2' 163 | dependencies: 164 | '@octokit/core': 3.6.0 165 | '@octokit/types': 6.34.0 166 | dev: false 167 | 168 | /@octokit/plugin-request-log/1.0.4_@octokit+core@3.6.0: 169 | resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} 170 | peerDependencies: 171 | '@octokit/core': '>=3' 172 | dependencies: 173 | '@octokit/core': 3.6.0 174 | dev: false 175 | 176 | /@octokit/plugin-rest-endpoint-methods/5.13.0_@octokit+core@3.6.0: 177 | resolution: {integrity: sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==} 178 | peerDependencies: 179 | '@octokit/core': '>=3' 180 | dependencies: 181 | '@octokit/core': 3.6.0 182 | '@octokit/types': 6.34.0 183 | deprecation: 2.3.1 184 | dev: false 185 | 186 | /@octokit/request-error/2.1.0: 187 | resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} 188 | dependencies: 189 | '@octokit/types': 6.34.0 190 | deprecation: 2.3.1 191 | once: 1.4.0 192 | dev: false 193 | 194 | /@octokit/request/5.6.3: 195 | resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} 196 | dependencies: 197 | '@octokit/endpoint': 6.0.12 198 | '@octokit/request-error': 2.1.0 199 | '@octokit/types': 6.34.0 200 | is-plain-object: 5.0.0 201 | node-fetch: 2.6.7 202 | universal-user-agent: 6.0.0 203 | transitivePeerDependencies: 204 | - encoding 205 | dev: false 206 | 207 | /@octokit/rest/18.12.0: 208 | resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} 209 | dependencies: 210 | '@octokit/core': 3.6.0 211 | '@octokit/plugin-paginate-rest': 2.17.0_@octokit+core@3.6.0 212 | '@octokit/plugin-request-log': 1.0.4_@octokit+core@3.6.0 213 | '@octokit/plugin-rest-endpoint-methods': 5.13.0_@octokit+core@3.6.0 214 | transitivePeerDependencies: 215 | - encoding 216 | dev: false 217 | 218 | /@octokit/types/6.34.0: 219 | resolution: {integrity: sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==} 220 | dependencies: 221 | '@octokit/openapi-types': 11.2.0 222 | dev: false 223 | 224 | /@rollup/pluginutils/4.2.1: 225 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} 226 | engines: {node: '>= 8.0.0'} 227 | dependencies: 228 | estree-walker: 2.0.2 229 | picomatch: 2.3.1 230 | dev: true 231 | 232 | /@sxzz/popperjs-es/2.11.7: 233 | resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} 234 | dev: false 235 | 236 | /@types/codemirror/5.60.5: 237 | resolution: {integrity: sha512-TiECZmm8St5YxjFUp64LK0c8WU5bxMDt9YaAek1UqUb9swrSCoJhh92fWu1p3mTEqlHjhB5sY7OFBhWroJXZVg==} 238 | dependencies: 239 | '@types/tern': 0.23.4 240 | dev: true 241 | 242 | /@types/estree/0.0.51: 243 | resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} 244 | dev: true 245 | 246 | /@types/lodash-es/4.17.6: 247 | resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} 248 | dependencies: 249 | '@types/lodash': 4.14.182 250 | dev: false 251 | 252 | /@types/lodash/4.14.182: 253 | resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} 254 | dev: false 255 | 256 | /@types/node/17.0.35: 257 | resolution: {integrity: sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==} 258 | dev: true 259 | 260 | /@types/tern/0.23.4: 261 | resolution: {integrity: sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==} 262 | dependencies: 263 | '@types/estree': 0.0.51 264 | dev: true 265 | 266 | /@vitejs/plugin-vue/2.3.3_vite@2.9.9+vue@3.2.36: 267 | resolution: {integrity: sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==} 268 | engines: {node: '>=12.0.0'} 269 | peerDependencies: 270 | vite: ^2.5.10 271 | vue: ^3.2.25 272 | dependencies: 273 | vite: 2.9.9 274 | vue: 3.2.36 275 | dev: true 276 | 277 | /@volar/code-gen/0.34.16: 278 | resolution: {integrity: sha512-ep5us1iF66WlwzCFjTHMIdULIHzu6661228NknkSBGEAh878GPO+AgUqyQn9tY+al0KrsLuDRQVt6pwmeLoqwQ==} 279 | dependencies: 280 | '@volar/source-map': 0.34.16 281 | dev: true 282 | 283 | /@volar/source-map/0.34.16: 284 | resolution: {integrity: sha512-50F1XWcVRzKVXqwO7J39hZ4qd/htzHj62dsywz7FfhZZSOaQ43XT3uEy7cBAVgw7gs+qChFaUJAhM1iHb0FyOQ==} 285 | dev: true 286 | 287 | /@volar/vue-code-gen/0.34.16: 288 | resolution: {integrity: sha512-R8OGn26pCQsctXLa6mZi3BIkyXemcrhibTRGrVh1z2TqWMtnCIT/NiAYXR7kAH4UzFEpglOJAIxrjwnodJ7x6w==} 289 | dependencies: 290 | '@volar/code-gen': 0.34.16 291 | '@volar/source-map': 0.34.16 292 | '@vue/compiler-core': 3.2.36 293 | '@vue/compiler-dom': 3.2.36 294 | '@vue/shared': 3.2.36 295 | dev: true 296 | 297 | /@volar/vue-typescript/0.34.16: 298 | resolution: {integrity: sha512-Jmo19pKRJAIhbAmr/1974knqKws9FZlnYWuCDvvg9wimKHTFosjDhDysORIMVHZ97og/0idK70iIKbcsyDadvw==} 299 | dependencies: 300 | '@volar/code-gen': 0.34.16 301 | '@volar/source-map': 0.34.16 302 | '@volar/vue-code-gen': 0.34.16 303 | '@vue/compiler-sfc': 3.2.36 304 | '@vue/reactivity': 3.2.33 305 | dev: true 306 | 307 | /@vue/compiler-core/3.2.36: 308 | resolution: {integrity: sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw==} 309 | dependencies: 310 | '@babel/parser': 7.17.3 311 | '@vue/shared': 3.2.36 312 | estree-walker: 2.0.2 313 | source-map: 0.6.1 314 | 315 | /@vue/compiler-dom/3.2.36: 316 | resolution: {integrity: sha512-tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA==} 317 | dependencies: 318 | '@vue/compiler-core': 3.2.36 319 | '@vue/shared': 3.2.36 320 | 321 | /@vue/compiler-sfc/3.2.36: 322 | resolution: {integrity: sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==} 323 | dependencies: 324 | '@babel/parser': 7.17.3 325 | '@vue/compiler-core': 3.2.36 326 | '@vue/compiler-dom': 3.2.36 327 | '@vue/compiler-ssr': 3.2.36 328 | '@vue/reactivity-transform': 3.2.36 329 | '@vue/shared': 3.2.36 330 | estree-walker: 2.0.2 331 | magic-string: 0.25.7 332 | postcss: 8.4.14 333 | source-map: 0.6.1 334 | 335 | /@vue/compiler-ssr/3.2.36: 336 | resolution: {integrity: sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==} 337 | dependencies: 338 | '@vue/compiler-dom': 3.2.36 339 | '@vue/shared': 3.2.36 340 | 341 | /@vue/devtools-api/6.1.4: 342 | resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==} 343 | dev: false 344 | 345 | /@vue/reactivity-transform/3.2.36: 346 | resolution: {integrity: sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==} 347 | dependencies: 348 | '@babel/parser': 7.17.3 349 | '@vue/compiler-core': 3.2.36 350 | '@vue/shared': 3.2.36 351 | estree-walker: 2.0.2 352 | magic-string: 0.25.7 353 | 354 | /@vue/reactivity/3.2.33: 355 | resolution: {integrity: sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==} 356 | dependencies: 357 | '@vue/shared': 3.2.33 358 | dev: true 359 | 360 | /@vue/reactivity/3.2.36: 361 | resolution: {integrity: sha512-c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA==} 362 | dependencies: 363 | '@vue/shared': 3.2.36 364 | dev: false 365 | 366 | /@vue/runtime-core/3.2.36: 367 | resolution: {integrity: sha512-PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ==} 368 | dependencies: 369 | '@vue/reactivity': 3.2.36 370 | '@vue/shared': 3.2.36 371 | dev: false 372 | 373 | /@vue/runtime-dom/3.2.36: 374 | resolution: {integrity: sha512-gYPYblm7QXHVuBohqNRRT7Wez0f2Mx2D40rb4fleehrJU9CnkjG0phhcGEZFfGwCmHZRqBCRgbFWE98bPULqkg==} 375 | dependencies: 376 | '@vue/runtime-core': 3.2.36 377 | '@vue/shared': 3.2.36 378 | csstype: 2.6.19 379 | dev: false 380 | 381 | /@vue/server-renderer/3.2.36_vue@3.2.36: 382 | resolution: {integrity: sha512-uZE0+jfye6yYXWvAQYeHZv+f50sRryvy16uiqzk3jn8hEY8zTjI+rzlmZSGoE915k+W/Ol9XSw6vxOUD8dGkUg==} 383 | peerDependencies: 384 | vue: 3.2.36 385 | dependencies: 386 | '@vue/compiler-ssr': 3.2.36 387 | '@vue/shared': 3.2.36 388 | vue: 3.2.36 389 | dev: false 390 | 391 | /@vue/shared/3.2.33: 392 | resolution: {integrity: sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==} 393 | dev: true 394 | 395 | /@vue/shared/3.2.36: 396 | resolution: {integrity: sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ==} 397 | 398 | /@vueuse/core/8.5.0_vue@3.2.36: 399 | resolution: {integrity: sha512-VEJ6sGNsPlUp0o9BGda2YISvDZbhWJSOJu5zlp2TufRGVrLcYUKr31jyFEOj6RXzG3k/H4aCYeZyjpItfU8glw==} 400 | peerDependencies: 401 | '@vue/composition-api': ^1.1.0 402 | vue: ^2.6.0 || ^3.2.0 403 | peerDependenciesMeta: 404 | '@vue/composition-api': 405 | optional: true 406 | vue: 407 | optional: true 408 | dependencies: 409 | '@vueuse/metadata': 8.5.0 410 | '@vueuse/shared': 8.5.0_vue@3.2.36 411 | vue: 3.2.36 412 | vue-demi: 0.12.5_vue@3.2.36 413 | dev: false 414 | 415 | /@vueuse/metadata/8.5.0: 416 | resolution: {integrity: sha512-WxsD+Cd+bn+HcjpY6Dl9FJ8ywTRTT9pTwk3bCQpzEhXVYAyNczKDSahk50fCfIJKeWHhyI4B2+/ZEOxQAkUr0g==} 417 | dev: false 418 | 419 | /@vueuse/shared/8.5.0_vue@3.2.36: 420 | resolution: {integrity: sha512-qKG+SZb44VvGD4dU5cQ63z4JE2Yk39hQUecR0a9sEdJA01cx+XrxAvFKJfPooxwoiqalAVw/ktWK6xbyc/jS3g==} 421 | peerDependencies: 422 | '@vue/composition-api': ^1.1.0 423 | vue: ^2.6.0 || ^3.2.0 424 | peerDependenciesMeta: 425 | '@vue/composition-api': 426 | optional: true 427 | vue: 428 | optional: true 429 | dependencies: 430 | vue: 3.2.36 431 | vue-demi: 0.12.5_vue@3.2.36 432 | dev: false 433 | 434 | /acorn-node/1.8.2: 435 | resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} 436 | dependencies: 437 | acorn: 7.4.1 438 | acorn-walk: 7.2.0 439 | xtend: 4.0.2 440 | dev: true 441 | 442 | /acorn-walk/7.2.0: 443 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} 444 | engines: {node: '>=0.4.0'} 445 | dev: true 446 | 447 | /acorn/7.4.1: 448 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 449 | engines: {node: '>=0.4.0'} 450 | hasBin: true 451 | dev: true 452 | 453 | /anymatch/3.1.2: 454 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 455 | engines: {node: '>= 8'} 456 | dependencies: 457 | normalize-path: 3.0.0 458 | picomatch: 2.3.1 459 | dev: true 460 | 461 | /arg/5.0.1: 462 | resolution: {integrity: sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==} 463 | dev: true 464 | 465 | /async-validator/4.1.1: 466 | resolution: {integrity: sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA==} 467 | dev: false 468 | 469 | /autoprefixer/10.4.7_postcss@8.4.14: 470 | resolution: {integrity: sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==} 471 | engines: {node: ^10 || ^12 || >=14} 472 | hasBin: true 473 | peerDependencies: 474 | postcss: ^8.1.0 475 | dependencies: 476 | browserslist: 4.20.3 477 | caniuse-lite: 1.0.30001341 478 | fraction.js: 4.2.0 479 | normalize-range: 0.1.2 480 | picocolors: 1.0.0 481 | postcss: 8.4.14 482 | postcss-value-parser: 4.2.0 483 | dev: true 484 | 485 | /balanced-match/1.0.2: 486 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 487 | dev: true 488 | 489 | /before-after-hook/2.2.2: 490 | resolution: {integrity: sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==} 491 | dev: false 492 | 493 | /binary-extensions/2.2.0: 494 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 495 | engines: {node: '>=8'} 496 | dev: true 497 | 498 | /brace-expansion/2.0.1: 499 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 500 | dependencies: 501 | balanced-match: 1.0.2 502 | dev: true 503 | 504 | /braces/3.0.2: 505 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 506 | engines: {node: '>=8'} 507 | dependencies: 508 | fill-range: 7.0.1 509 | dev: true 510 | 511 | /browserslist/4.20.3: 512 | resolution: {integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==} 513 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 514 | hasBin: true 515 | dependencies: 516 | caniuse-lite: 1.0.30001341 517 | electron-to-chromium: 1.4.137 518 | escalade: 3.1.1 519 | node-releases: 2.0.4 520 | picocolors: 1.0.0 521 | dev: true 522 | 523 | /camelcase-css/2.0.1: 524 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 525 | engines: {node: '>= 6'} 526 | dev: true 527 | 528 | /caniuse-lite/1.0.30001341: 529 | resolution: {integrity: sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA==} 530 | dev: true 531 | 532 | /chokidar/3.5.3: 533 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 534 | engines: {node: '>= 8.10.0'} 535 | dependencies: 536 | anymatch: 3.1.2 537 | braces: 3.0.2 538 | glob-parent: 5.1.2 539 | is-binary-path: 2.1.0 540 | is-glob: 4.0.3 541 | normalize-path: 3.0.0 542 | readdirp: 3.6.0 543 | optionalDependencies: 544 | fsevents: 2.3.2 545 | dev: true 546 | 547 | /codemirror/5.65.4: 548 | resolution: {integrity: sha512-tytrSm5Rh52b6j36cbDXN+FHwHCl9aroY4BrDZB2NFFL3Wjfq9nuYVLFFhaOYOczKAg3JXTr8BuT8LcE5QY4Iw==} 549 | dev: false 550 | 551 | /color-name/1.1.4: 552 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 553 | dev: true 554 | 555 | /cssesc/3.0.0: 556 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 557 | engines: {node: '>=4'} 558 | hasBin: true 559 | dev: true 560 | 561 | /csstype/2.6.19: 562 | resolution: {integrity: sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==} 563 | dev: false 564 | 565 | /csstype/3.0.8: 566 | resolution: {integrity: sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==} 567 | dev: false 568 | 569 | /dayjs/1.11.2: 570 | resolution: {integrity: sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw==} 571 | dev: false 572 | 573 | /debug/4.3.1: 574 | resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} 575 | engines: {node: '>=6.0'} 576 | peerDependencies: 577 | supports-color: '*' 578 | peerDependenciesMeta: 579 | supports-color: 580 | optional: true 581 | dependencies: 582 | ms: 2.1.2 583 | dev: false 584 | 585 | /debug/4.3.4: 586 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 587 | engines: {node: '>=6.0'} 588 | peerDependencies: 589 | supports-color: '*' 590 | peerDependenciesMeta: 591 | supports-color: 592 | optional: true 593 | dependencies: 594 | ms: 2.1.2 595 | dev: true 596 | 597 | /defined/1.0.0: 598 | resolution: {integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=} 599 | dev: true 600 | 601 | /deprecation/2.3.1: 602 | resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} 603 | dev: false 604 | 605 | /detective/5.2.0: 606 | resolution: {integrity: sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==} 607 | engines: {node: '>=0.8.0'} 608 | hasBin: true 609 | dependencies: 610 | acorn-node: 1.8.2 611 | defined: 1.0.0 612 | minimist: 1.2.5 613 | dev: true 614 | 615 | /didyoumean/1.2.2: 616 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 617 | dev: true 618 | 619 | /dlv/1.1.3: 620 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 621 | dev: true 622 | 623 | /dompurify/2.3.1: 624 | resolution: {integrity: sha512-xGWt+NHAQS+4tpgbOAI08yxW0Pr256Gu/FNE2frZVTbgrBUn8M7tz7/ktS/LZ2MHeGqz6topj0/xY+y8R5FBFw==} 625 | dev: false 626 | 627 | /dot-case/3.0.4: 628 | resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} 629 | dependencies: 630 | no-case: 3.0.4 631 | tslib: 2.3.1 632 | dev: false 633 | 634 | /electron-to-chromium/1.4.137: 635 | resolution: {integrity: sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==} 636 | dev: true 637 | 638 | /element-plus/2.2.2_vue@3.2.36: 639 | resolution: {integrity: sha512-yGcj2Ayb0jZO1WbI51tHJ4efhlfWKlBqqGtWbzhq+tcpfaKzJZN+IHRouuFasqn0ZV3tWCDu1jggDR1+9y7XfQ==} 640 | peerDependencies: 641 | vue: ^3.2.0 642 | dependencies: 643 | '@ctrl/tinycolor': 3.4.1 644 | '@element-plus/icons-vue': 1.1.4_vue@3.2.36 645 | '@floating-ui/dom': 0.5.1 646 | '@popperjs/core': /@sxzz/popperjs-es/2.11.7 647 | '@types/lodash': 4.14.182 648 | '@types/lodash-es': 4.17.6 649 | '@vueuse/core': 8.5.0_vue@3.2.36 650 | async-validator: 4.1.1 651 | dayjs: 1.11.2 652 | escape-html: 1.0.3 653 | lodash: 4.17.21 654 | lodash-es: 4.17.21 655 | lodash-unified: 1.0.2_da03a4540fbd16bbaafbb96724306afd 656 | memoize-one: 6.0.0 657 | normalize-wheel-es: 1.1.2 658 | vue: 3.2.36 659 | transitivePeerDependencies: 660 | - '@vue/composition-api' 661 | dev: false 662 | 663 | /esbuild-android-64/0.14.39: 664 | resolution: {integrity: sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==} 665 | engines: {node: '>=12'} 666 | cpu: [x64] 667 | os: [android] 668 | requiresBuild: true 669 | dev: true 670 | optional: true 671 | 672 | /esbuild-android-arm64/0.14.39: 673 | resolution: {integrity: sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==} 674 | engines: {node: '>=12'} 675 | cpu: [arm64] 676 | os: [android] 677 | requiresBuild: true 678 | dev: true 679 | optional: true 680 | 681 | /esbuild-darwin-64/0.14.39: 682 | resolution: {integrity: sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==} 683 | engines: {node: '>=12'} 684 | cpu: [x64] 685 | os: [darwin] 686 | requiresBuild: true 687 | dev: true 688 | optional: true 689 | 690 | /esbuild-darwin-arm64/0.14.39: 691 | resolution: {integrity: sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==} 692 | engines: {node: '>=12'} 693 | cpu: [arm64] 694 | os: [darwin] 695 | requiresBuild: true 696 | dev: true 697 | optional: true 698 | 699 | /esbuild-freebsd-64/0.14.39: 700 | resolution: {integrity: sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==} 701 | engines: {node: '>=12'} 702 | cpu: [x64] 703 | os: [freebsd] 704 | requiresBuild: true 705 | dev: true 706 | optional: true 707 | 708 | /esbuild-freebsd-arm64/0.14.39: 709 | resolution: {integrity: sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==} 710 | engines: {node: '>=12'} 711 | cpu: [arm64] 712 | os: [freebsd] 713 | requiresBuild: true 714 | dev: true 715 | optional: true 716 | 717 | /esbuild-linux-32/0.14.39: 718 | resolution: {integrity: sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==} 719 | engines: {node: '>=12'} 720 | cpu: [ia32] 721 | os: [linux] 722 | requiresBuild: true 723 | dev: true 724 | optional: true 725 | 726 | /esbuild-linux-64/0.14.39: 727 | resolution: {integrity: sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==} 728 | engines: {node: '>=12'} 729 | cpu: [x64] 730 | os: [linux] 731 | requiresBuild: true 732 | dev: true 733 | optional: true 734 | 735 | /esbuild-linux-arm/0.14.39: 736 | resolution: {integrity: sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==} 737 | engines: {node: '>=12'} 738 | cpu: [arm] 739 | os: [linux] 740 | requiresBuild: true 741 | dev: true 742 | optional: true 743 | 744 | /esbuild-linux-arm64/0.14.39: 745 | resolution: {integrity: sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==} 746 | engines: {node: '>=12'} 747 | cpu: [arm64] 748 | os: [linux] 749 | requiresBuild: true 750 | dev: true 751 | optional: true 752 | 753 | /esbuild-linux-mips64le/0.14.39: 754 | resolution: {integrity: sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==} 755 | engines: {node: '>=12'} 756 | cpu: [mips64el] 757 | os: [linux] 758 | requiresBuild: true 759 | dev: true 760 | optional: true 761 | 762 | /esbuild-linux-ppc64le/0.14.39: 763 | resolution: {integrity: sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==} 764 | engines: {node: '>=12'} 765 | cpu: [ppc64] 766 | os: [linux] 767 | requiresBuild: true 768 | dev: true 769 | optional: true 770 | 771 | /esbuild-linux-riscv64/0.14.39: 772 | resolution: {integrity: sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==} 773 | engines: {node: '>=12'} 774 | cpu: [riscv64] 775 | os: [linux] 776 | requiresBuild: true 777 | dev: true 778 | optional: true 779 | 780 | /esbuild-linux-s390x/0.14.39: 781 | resolution: {integrity: sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==} 782 | engines: {node: '>=12'} 783 | cpu: [s390x] 784 | os: [linux] 785 | requiresBuild: true 786 | dev: true 787 | optional: true 788 | 789 | /esbuild-netbsd-64/0.14.39: 790 | resolution: {integrity: sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==} 791 | engines: {node: '>=12'} 792 | cpu: [x64] 793 | os: [netbsd] 794 | requiresBuild: true 795 | dev: true 796 | optional: true 797 | 798 | /esbuild-openbsd-64/0.14.39: 799 | resolution: {integrity: sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==} 800 | engines: {node: '>=12'} 801 | cpu: [x64] 802 | os: [openbsd] 803 | requiresBuild: true 804 | dev: true 805 | optional: true 806 | 807 | /esbuild-sunos-64/0.14.39: 808 | resolution: {integrity: sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==} 809 | engines: {node: '>=12'} 810 | cpu: [x64] 811 | os: [sunos] 812 | requiresBuild: true 813 | dev: true 814 | optional: true 815 | 816 | /esbuild-windows-32/0.14.39: 817 | resolution: {integrity: sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==} 818 | engines: {node: '>=12'} 819 | cpu: [ia32] 820 | os: [win32] 821 | requiresBuild: true 822 | dev: true 823 | optional: true 824 | 825 | /esbuild-windows-64/0.14.39: 826 | resolution: {integrity: sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==} 827 | engines: {node: '>=12'} 828 | cpu: [x64] 829 | os: [win32] 830 | requiresBuild: true 831 | dev: true 832 | optional: true 833 | 834 | /esbuild-windows-arm64/0.14.39: 835 | resolution: {integrity: sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==} 836 | engines: {node: '>=12'} 837 | cpu: [arm64] 838 | os: [win32] 839 | requiresBuild: true 840 | dev: true 841 | optional: true 842 | 843 | /esbuild/0.14.39: 844 | resolution: {integrity: sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==} 845 | engines: {node: '>=12'} 846 | hasBin: true 847 | requiresBuild: true 848 | optionalDependencies: 849 | esbuild-android-64: 0.14.39 850 | esbuild-android-arm64: 0.14.39 851 | esbuild-darwin-64: 0.14.39 852 | esbuild-darwin-arm64: 0.14.39 853 | esbuild-freebsd-64: 0.14.39 854 | esbuild-freebsd-arm64: 0.14.39 855 | esbuild-linux-32: 0.14.39 856 | esbuild-linux-64: 0.14.39 857 | esbuild-linux-arm: 0.14.39 858 | esbuild-linux-arm64: 0.14.39 859 | esbuild-linux-mips64le: 0.14.39 860 | esbuild-linux-ppc64le: 0.14.39 861 | esbuild-linux-riscv64: 0.14.39 862 | esbuild-linux-s390x: 0.14.39 863 | esbuild-netbsd-64: 0.14.39 864 | esbuild-openbsd-64: 0.14.39 865 | esbuild-sunos-64: 0.14.39 866 | esbuild-windows-32: 0.14.39 867 | esbuild-windows-64: 0.14.39 868 | esbuild-windows-arm64: 0.14.39 869 | dev: true 870 | 871 | /escalade/3.1.1: 872 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 873 | engines: {node: '>=6'} 874 | dev: true 875 | 876 | /escape-html/1.0.3: 877 | resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} 878 | dev: false 879 | 880 | /escape-string-regexp/5.0.0: 881 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 882 | engines: {node: '>=12'} 883 | dev: true 884 | 885 | /estree-walker/2.0.2: 886 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 887 | 888 | /eventemitter3/4.0.7: 889 | resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} 890 | dev: false 891 | 892 | /fast-deep-equal/3.1.3: 893 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 894 | dev: false 895 | 896 | /fast-glob/3.2.11: 897 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} 898 | engines: {node: '>=8.6.0'} 899 | dependencies: 900 | '@nodelib/fs.stat': 2.0.5 901 | '@nodelib/fs.walk': 1.2.8 902 | glob-parent: 5.1.2 903 | merge2: 1.4.1 904 | micromatch: 4.0.4 905 | dev: true 906 | 907 | /fastq/1.13.0: 908 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 909 | dependencies: 910 | reusify: 1.0.4 911 | dev: true 912 | 913 | /fill-range/7.0.1: 914 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 915 | engines: {node: '>=8'} 916 | dependencies: 917 | to-regex-range: 5.0.1 918 | dev: true 919 | 920 | /fraction.js/4.2.0: 921 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} 922 | dev: true 923 | 924 | /fsevents/2.3.2: 925 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 926 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 927 | os: [darwin] 928 | requiresBuild: true 929 | dev: true 930 | optional: true 931 | 932 | /function-bind/1.1.1: 933 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 934 | dev: true 935 | 936 | /glob-parent/5.1.2: 937 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 938 | engines: {node: '>= 6'} 939 | dependencies: 940 | is-glob: 4.0.3 941 | dev: true 942 | 943 | /glob-parent/6.0.2: 944 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 945 | engines: {node: '>=10.13.0'} 946 | dependencies: 947 | is-glob: 4.0.3 948 | dev: true 949 | 950 | /has/1.0.3: 951 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 952 | engines: {node: '>= 0.4.0'} 953 | dependencies: 954 | function-bind: 1.1.1 955 | dev: true 956 | 957 | /inherits/2.0.3: 958 | resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=} 959 | dev: false 960 | 961 | /is-binary-path/2.1.0: 962 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 963 | engines: {node: '>=8'} 964 | dependencies: 965 | binary-extensions: 2.2.0 966 | dev: true 967 | 968 | /is-core-module/2.8.1: 969 | resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} 970 | dependencies: 971 | has: 1.0.3 972 | dev: true 973 | 974 | /is-extglob/2.1.1: 975 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} 976 | engines: {node: '>=0.10.0'} 977 | dev: true 978 | 979 | /is-glob/4.0.3: 980 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 981 | engines: {node: '>=0.10.0'} 982 | dependencies: 983 | is-extglob: 2.1.1 984 | dev: true 985 | 986 | /is-number/7.0.0: 987 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 988 | engines: {node: '>=0.12.0'} 989 | dev: true 990 | 991 | /is-plain-object/5.0.0: 992 | resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} 993 | engines: {node: '>=0.10.0'} 994 | dev: false 995 | 996 | /jsonc-parser/3.0.0: 997 | resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} 998 | dev: true 999 | 1000 | /lilconfig/2.0.5: 1001 | resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} 1002 | engines: {node: '>=10'} 1003 | dev: true 1004 | 1005 | /local-pkg/0.4.1: 1006 | resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==} 1007 | engines: {node: '>=14'} 1008 | dev: true 1009 | 1010 | /lodash-es/4.17.21: 1011 | resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} 1012 | dev: false 1013 | 1014 | /lodash-unified/1.0.2_da03a4540fbd16bbaafbb96724306afd: 1015 | resolution: {integrity: sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==} 1016 | peerDependencies: 1017 | '@types/lodash-es': '*' 1018 | lodash: '*' 1019 | lodash-es: '*' 1020 | dependencies: 1021 | '@types/lodash-es': 4.17.6 1022 | lodash: 4.17.21 1023 | lodash-es: 4.17.21 1024 | dev: false 1025 | 1026 | /lodash/4.17.21: 1027 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1028 | dev: false 1029 | 1030 | /lower-case/2.0.2: 1031 | resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} 1032 | dependencies: 1033 | tslib: 2.3.1 1034 | dev: false 1035 | 1036 | /magic-string/0.25.7: 1037 | resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} 1038 | dependencies: 1039 | sourcemap-codec: 1.4.8 1040 | 1041 | /magic-string/0.26.1: 1042 | resolution: {integrity: sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==} 1043 | engines: {node: '>=12'} 1044 | dependencies: 1045 | sourcemap-codec: 1.4.8 1046 | dev: true 1047 | 1048 | /magic-string/0.26.2: 1049 | resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==} 1050 | engines: {node: '>=12'} 1051 | dependencies: 1052 | sourcemap-codec: 1.4.8 1053 | dev: true 1054 | 1055 | /memoize-one/6.0.0: 1056 | resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} 1057 | dev: false 1058 | 1059 | /merge2/1.4.1: 1060 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1061 | engines: {node: '>= 8'} 1062 | dev: true 1063 | 1064 | /micromatch/4.0.4: 1065 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} 1066 | engines: {node: '>=8.6'} 1067 | dependencies: 1068 | braces: 3.0.2 1069 | picomatch: 2.3.1 1070 | dev: true 1071 | 1072 | /minimatch/5.1.0: 1073 | resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} 1074 | engines: {node: '>=10'} 1075 | dependencies: 1076 | brace-expansion: 2.0.1 1077 | dev: true 1078 | 1079 | /minimist/1.2.5: 1080 | resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} 1081 | dev: true 1082 | 1083 | /mlly/0.3.19: 1084 | resolution: {integrity: sha512-zMq5n3cOf4fOzA4WoeulxagbAgMChdev3MgP6K51k7M0u2whTXxupfIY4VVzws4vxkiWhwH1rVQcsw7zDGfRhA==} 1085 | dev: true 1086 | 1087 | /mlly/0.5.2: 1088 | resolution: {integrity: sha512-4GTELSSErv6ZZJYU98fZNuIBJcXSz+ktHdRrCYEqU1m6ZlebOCG0jwZ+IEd9vOrbpYsVBBMC5OTrEyLnKRcauQ==} 1089 | dependencies: 1090 | pathe: 0.2.0 1091 | pkg-types: 0.3.2 1092 | dev: true 1093 | 1094 | /ms/2.1.2: 1095 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1096 | 1097 | /nanoid/3.3.4: 1098 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 1099 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1100 | hasBin: true 1101 | 1102 | /no-case/3.0.4: 1103 | resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} 1104 | dependencies: 1105 | lower-case: 2.0.2 1106 | tslib: 2.3.1 1107 | dev: false 1108 | 1109 | /node-fetch/2.6.7: 1110 | resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} 1111 | engines: {node: 4.x || >=6.0.0} 1112 | peerDependencies: 1113 | encoding: ^0.1.0 1114 | peerDependenciesMeta: 1115 | encoding: 1116 | optional: true 1117 | dependencies: 1118 | whatwg-url: 5.0.0 1119 | dev: false 1120 | 1121 | /node-releases/2.0.4: 1122 | resolution: {integrity: sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==} 1123 | dev: true 1124 | 1125 | /normalize-path/3.0.0: 1126 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1127 | engines: {node: '>=0.10.0'} 1128 | dev: true 1129 | 1130 | /normalize-range/0.1.2: 1131 | resolution: {integrity: sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=} 1132 | engines: {node: '>=0.10.0'} 1133 | dev: true 1134 | 1135 | /normalize-wheel-es/1.1.2: 1136 | resolution: {integrity: sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==} 1137 | dev: false 1138 | 1139 | /object-hash/3.0.0: 1140 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1141 | engines: {node: '>= 6'} 1142 | dev: true 1143 | 1144 | /once/1.4.0: 1145 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1146 | dependencies: 1147 | wrappy: 1.0.2 1148 | dev: false 1149 | 1150 | /path-parse/1.0.7: 1151 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1152 | dev: true 1153 | 1154 | /path/0.12.7: 1155 | resolution: {integrity: sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=} 1156 | dependencies: 1157 | process: 0.11.10 1158 | util: 0.10.4 1159 | dev: false 1160 | 1161 | /pathe/0.2.0: 1162 | resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} 1163 | dev: true 1164 | 1165 | /pathe/0.3.0: 1166 | resolution: {integrity: sha512-3vUjp552BJzCw9vqKsO5sttHkbYqqsZtH0x1PNtItgqx8BXEXzoY1SYRKcL6BTyVh4lGJGLj0tM42elUDMvcYA==} 1167 | dev: true 1168 | 1169 | /picocolors/1.0.0: 1170 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1171 | 1172 | /picomatch/2.3.1: 1173 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1174 | engines: {node: '>=8.6'} 1175 | dev: true 1176 | 1177 | /pinia/2.0.14_typescript@4.7.2+vue@3.2.36: 1178 | resolution: {integrity: sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==} 1179 | peerDependencies: 1180 | '@vue/composition-api': ^1.4.0 1181 | typescript: '>=4.4.4' 1182 | vue: ^2.6.14 || ^3.2.0 1183 | peerDependenciesMeta: 1184 | '@vue/composition-api': 1185 | optional: true 1186 | typescript: 1187 | optional: true 1188 | dependencies: 1189 | '@vue/devtools-api': 6.1.4 1190 | typescript: 4.7.2 1191 | vue: 3.2.36 1192 | vue-demi: 0.12.5_vue@3.2.36 1193 | dev: false 1194 | 1195 | /pkg-types/0.3.2: 1196 | resolution: {integrity: sha512-eBYzX/7NYsQEOR2alWY4rnQB49G62oHzFpoi9Som56aUr8vB8UGcmcIia9v8fpBeuhH3Ltentuk2OGpp4IQV3Q==} 1197 | dependencies: 1198 | jsonc-parser: 3.0.0 1199 | mlly: 0.3.19 1200 | pathe: 0.2.0 1201 | dev: true 1202 | 1203 | /postcss-js/4.0.0_postcss@8.4.14: 1204 | resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} 1205 | engines: {node: ^12 || ^14 || >= 16} 1206 | peerDependencies: 1207 | postcss: ^8.3.3 1208 | dependencies: 1209 | camelcase-css: 2.0.1 1210 | postcss: 8.4.14 1211 | dev: true 1212 | 1213 | /postcss-load-config/3.1.4_postcss@8.4.14: 1214 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 1215 | engines: {node: '>= 10'} 1216 | peerDependencies: 1217 | postcss: '>=8.0.9' 1218 | ts-node: '>=9.0.0' 1219 | peerDependenciesMeta: 1220 | postcss: 1221 | optional: true 1222 | ts-node: 1223 | optional: true 1224 | dependencies: 1225 | lilconfig: 2.0.5 1226 | postcss: 8.4.14 1227 | yaml: 1.10.2 1228 | dev: true 1229 | 1230 | /postcss-nested/5.0.6_postcss@8.4.14: 1231 | resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} 1232 | engines: {node: '>=12.0'} 1233 | peerDependencies: 1234 | postcss: ^8.2.14 1235 | dependencies: 1236 | postcss: 8.4.14 1237 | postcss-selector-parser: 6.0.10 1238 | dev: true 1239 | 1240 | /postcss-selector-parser/6.0.10: 1241 | resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} 1242 | engines: {node: '>=4'} 1243 | dependencies: 1244 | cssesc: 3.0.0 1245 | util-deprecate: 1.0.2 1246 | dev: true 1247 | 1248 | /postcss-value-parser/4.2.0: 1249 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1250 | dev: true 1251 | 1252 | /postcss/8.4.14: 1253 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} 1254 | engines: {node: ^10 || ^12 || >=14} 1255 | dependencies: 1256 | nanoid: 3.3.4 1257 | picocolors: 1.0.0 1258 | source-map-js: 1.0.2 1259 | 1260 | /process/0.11.10: 1261 | resolution: {integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI=} 1262 | engines: {node: '>= 0.6.0'} 1263 | dev: false 1264 | 1265 | /queue-microtask/1.2.3: 1266 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1267 | dev: true 1268 | 1269 | /quick-lru/5.1.1: 1270 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 1271 | engines: {node: '>=10'} 1272 | dev: true 1273 | 1274 | /readdirp/3.6.0: 1275 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1276 | engines: {node: '>=8.10.0'} 1277 | dependencies: 1278 | picomatch: 2.3.1 1279 | dev: true 1280 | 1281 | /resolve/1.22.0: 1282 | resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} 1283 | hasBin: true 1284 | dependencies: 1285 | is-core-module: 2.8.1 1286 | path-parse: 1.0.7 1287 | supports-preserve-symlinks-flag: 1.0.0 1288 | dev: true 1289 | 1290 | /reusify/1.0.4: 1291 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1292 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1293 | dev: true 1294 | 1295 | /rollup/2.67.2: 1296 | resolution: {integrity: sha512-hoEiBWwZtf1QdK3jZIq59L0FJj4Fiv4RplCO4pvCRC86qsoFurWB4hKQIjoRf3WvJmk5UZ9b0y5ton+62fC7Tw==} 1297 | engines: {node: '>=10.0.0'} 1298 | hasBin: true 1299 | optionalDependencies: 1300 | fsevents: 2.3.2 1301 | dev: true 1302 | 1303 | /run-parallel/1.2.0: 1304 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1305 | dependencies: 1306 | queue-microtask: 1.2.3 1307 | dev: true 1308 | 1309 | /scule/0.2.1: 1310 | resolution: {integrity: sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg==} 1311 | dev: true 1312 | 1313 | /simply-beautiful/0.2.13: 1314 | resolution: {integrity: sha512-ZJ85VJOW1XRq3nVfPKTWybIIxbqnbX7dtDOz7I0hguQu8P3p+9jfUCPNwERAu+ZBfBgttoAaS1NWcOq+fdoKBA==} 1315 | engines: {node: '>=6.0.0'} 1316 | dev: false 1317 | 1318 | /snake-case/3.0.4: 1319 | resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} 1320 | dependencies: 1321 | dot-case: 3.0.4 1322 | tslib: 2.3.1 1323 | dev: false 1324 | 1325 | /source-map-js/1.0.2: 1326 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1327 | engines: {node: '>=0.10.0'} 1328 | 1329 | /source-map/0.6.1: 1330 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1331 | engines: {node: '>=0.10.0'} 1332 | 1333 | /sourcemap-codec/1.4.8: 1334 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 1335 | 1336 | /supports-preserve-symlinks-flag/1.0.0: 1337 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1338 | engines: {node: '>= 0.4'} 1339 | dev: true 1340 | 1341 | /tailwindcss/3.0.24: 1342 | resolution: {integrity: sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==} 1343 | engines: {node: '>=12.13.0'} 1344 | hasBin: true 1345 | dependencies: 1346 | arg: 5.0.1 1347 | chokidar: 3.5.3 1348 | color-name: 1.1.4 1349 | detective: 5.2.0 1350 | didyoumean: 1.2.2 1351 | dlv: 1.1.3 1352 | fast-glob: 3.2.11 1353 | glob-parent: 6.0.2 1354 | is-glob: 4.0.3 1355 | lilconfig: 2.0.5 1356 | normalize-path: 3.0.0 1357 | object-hash: 3.0.0 1358 | picocolors: 1.0.0 1359 | postcss: 8.4.14 1360 | postcss-js: 4.0.0_postcss@8.4.14 1361 | postcss-load-config: 3.1.4_postcss@8.4.14 1362 | postcss-nested: 5.0.6_postcss@8.4.14 1363 | postcss-selector-parser: 6.0.10 1364 | postcss-value-parser: 4.2.0 1365 | quick-lru: 5.1.1 1366 | resolve: 1.22.0 1367 | transitivePeerDependencies: 1368 | - ts-node 1369 | dev: true 1370 | 1371 | /to-regex-range/5.0.1: 1372 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1373 | engines: {node: '>=8.0'} 1374 | dependencies: 1375 | is-number: 7.0.0 1376 | dev: true 1377 | 1378 | /tr46/0.0.3: 1379 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 1380 | dev: false 1381 | 1382 | /tslib/2.3.1: 1383 | resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} 1384 | dev: false 1385 | 1386 | /typescript/4.7.2: 1387 | resolution: {integrity: sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==} 1388 | engines: {node: '>=4.2.0'} 1389 | hasBin: true 1390 | dev: true 1391 | 1392 | /unimport/0.2.4_vite@2.9.9: 1393 | resolution: {integrity: sha512-7OEUIlZMS1s1h1uFAGkCPylMtE8hnlJ/cFurJQHdzKAqIyuGiOREFKaCLbkNtFloZicCpRAlqC0Ny2yMoz6mFg==} 1394 | dependencies: 1395 | '@rollup/pluginutils': 4.2.1 1396 | escape-string-regexp: 5.0.0 1397 | fast-glob: 3.2.11 1398 | local-pkg: 0.4.1 1399 | magic-string: 0.26.2 1400 | mlly: 0.5.2 1401 | pathe: 0.3.0 1402 | scule: 0.2.1 1403 | unplugin: 0.6.3_vite@2.9.9 1404 | transitivePeerDependencies: 1405 | - esbuild 1406 | - rollup 1407 | - vite 1408 | - webpack 1409 | dev: true 1410 | 1411 | /universal-user-agent/6.0.0: 1412 | resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} 1413 | dev: false 1414 | 1415 | /unplugin-auto-import/0.8.5_vite@2.9.9: 1416 | resolution: {integrity: sha512-JT43zA89fMjxtdqz+sTSkTsL9J0PNdnGmMOvcwbkpDi45yL5SU0aDCZgj0E8+qWLyQSIvvBaDBW3VuBrcc2MXg==} 1417 | engines: {node: '>=14'} 1418 | peerDependencies: 1419 | '@vueuse/core': '*' 1420 | peerDependenciesMeta: 1421 | '@vueuse/core': 1422 | optional: true 1423 | dependencies: 1424 | '@antfu/utils': 0.5.2 1425 | '@rollup/pluginutils': 4.2.1 1426 | local-pkg: 0.4.1 1427 | magic-string: 0.26.2 1428 | unimport: 0.2.4_vite@2.9.9 1429 | unplugin: 0.6.3_vite@2.9.9 1430 | transitivePeerDependencies: 1431 | - esbuild 1432 | - rollup 1433 | - vite 1434 | - webpack 1435 | dev: true 1436 | 1437 | /unplugin-vue-components/0.19.5_vite@2.9.9+vue@3.2.36: 1438 | resolution: {integrity: sha512-cIC+PdQEXmG+B1gmZGk4hws2xP+00C6pg3FD6ixEgRyW+WF+QXQW/60pc+hUhtDYs1PFE+23K3NY7yvYTnDDTA==} 1439 | engines: {node: '>=14'} 1440 | peerDependencies: 1441 | '@babel/parser': ^7.15.8 1442 | '@babel/traverse': ^7.15.4 1443 | vue: 2 || 3 1444 | peerDependenciesMeta: 1445 | '@babel/parser': 1446 | optional: true 1447 | '@babel/traverse': 1448 | optional: true 1449 | dependencies: 1450 | '@antfu/utils': 0.5.2 1451 | '@rollup/pluginutils': 4.2.1 1452 | chokidar: 3.5.3 1453 | debug: 4.3.4 1454 | fast-glob: 3.2.11 1455 | local-pkg: 0.4.1 1456 | magic-string: 0.26.1 1457 | minimatch: 5.1.0 1458 | resolve: 1.22.0 1459 | unplugin: 0.6.3_vite@2.9.9 1460 | vue: 3.2.36 1461 | transitivePeerDependencies: 1462 | - esbuild 1463 | - rollup 1464 | - supports-color 1465 | - vite 1466 | - webpack 1467 | dev: true 1468 | 1469 | /unplugin/0.6.3_vite@2.9.9: 1470 | resolution: {integrity: sha512-CoW88FQfCW/yabVc4bLrjikN9HC8dEvMU4O7B6K2jsYMPK0l6iAnd9dpJwqGcmXJKRCU9vwSsy653qg+RK0G6A==} 1471 | peerDependencies: 1472 | esbuild: '>=0.13' 1473 | rollup: ^2.50.0 1474 | vite: ^2.3.0 1475 | webpack: 4 || 5 1476 | peerDependenciesMeta: 1477 | esbuild: 1478 | optional: true 1479 | rollup: 1480 | optional: true 1481 | vite: 1482 | optional: true 1483 | webpack: 1484 | optional: true 1485 | dependencies: 1486 | chokidar: 3.5.3 1487 | vite: 2.9.9 1488 | webpack-sources: 3.2.3 1489 | webpack-virtual-modules: 0.4.3 1490 | dev: true 1491 | 1492 | /util-deprecate/1.0.2: 1493 | resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} 1494 | dev: true 1495 | 1496 | /util/0.10.4: 1497 | resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} 1498 | dependencies: 1499 | inherits: 2.0.3 1500 | dev: false 1501 | 1502 | /vite-plugin-logseq/1.1.2: 1503 | resolution: {integrity: sha512-l5YvoH3K25Zx9eqgoJFug7NfVqSPwq7/FcYYhN1TkdG8ZOiD+c+TAwdCS2dJbGgvx8GmSpbgwSZWgslB+wH53g==} 1504 | dependencies: 1505 | magic-string: 0.26.1 1506 | dev: true 1507 | 1508 | /vite/2.9.9: 1509 | resolution: {integrity: sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==} 1510 | engines: {node: '>=12.2.0'} 1511 | hasBin: true 1512 | peerDependencies: 1513 | less: '*' 1514 | sass: '*' 1515 | stylus: '*' 1516 | peerDependenciesMeta: 1517 | less: 1518 | optional: true 1519 | sass: 1520 | optional: true 1521 | stylus: 1522 | optional: true 1523 | dependencies: 1524 | esbuild: 0.14.39 1525 | postcss: 8.4.14 1526 | resolve: 1.22.0 1527 | rollup: 2.67.2 1528 | optionalDependencies: 1529 | fsevents: 2.3.2 1530 | dev: true 1531 | 1532 | /vue-demi/0.12.5_vue@3.2.36: 1533 | resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==} 1534 | engines: {node: '>=12'} 1535 | hasBin: true 1536 | requiresBuild: true 1537 | peerDependencies: 1538 | '@vue/composition-api': ^1.0.0-rc.1 1539 | vue: ^3.0.0-0 || ^2.6.0 1540 | peerDependenciesMeta: 1541 | '@vue/composition-api': 1542 | optional: true 1543 | dependencies: 1544 | vue: 3.2.36 1545 | dev: false 1546 | 1547 | /vue-tsc/0.34.16_typescript@4.7.2: 1548 | resolution: {integrity: sha512-9tYBQIOyl3Tz8ZrlYUKtftu5m/wXHfxCalyjR22QzSaUJoBJmZeNOoVs/QEllc0z4ideEZxvvU+pBFdoY3O16A==} 1549 | hasBin: true 1550 | peerDependencies: 1551 | typescript: '*' 1552 | dependencies: 1553 | '@volar/vue-typescript': 0.34.16 1554 | typescript: 4.7.2 1555 | dev: true 1556 | 1557 | /vue/3.2.36: 1558 | resolution: {integrity: sha512-5yTXmrE6gW8IQgttzHW5bfBiFA6mx35ZXHjGLDmKYzW6MMmYvCwuKybANRepwkMYeXw2v1buGg3/lPICY5YlZw==} 1559 | dependencies: 1560 | '@vue/compiler-dom': 3.2.36 1561 | '@vue/compiler-sfc': 3.2.36 1562 | '@vue/runtime-dom': 3.2.36 1563 | '@vue/server-renderer': 3.2.36_vue@3.2.36 1564 | '@vue/shared': 3.2.36 1565 | dev: false 1566 | 1567 | /webidl-conversions/3.0.1: 1568 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 1569 | dev: false 1570 | 1571 | /webpack-sources/3.2.3: 1572 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 1573 | engines: {node: '>=10.13.0'} 1574 | dev: true 1575 | 1576 | /webpack-virtual-modules/0.4.3: 1577 | resolution: {integrity: sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==} 1578 | dev: true 1579 | 1580 | /whatwg-url/5.0.0: 1581 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 1582 | dependencies: 1583 | tr46: 0.0.3 1584 | webidl-conversions: 3.0.1 1585 | dev: false 1586 | 1587 | /wrappy/1.0.2: 1588 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1589 | dev: false 1590 | 1591 | /xtend/4.0.2: 1592 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 1593 | engines: {node: '>=0.4'} 1594 | dev: true 1595 | 1596 | /yaml/1.10.2: 1597 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1598 | engines: {node: '>= 6'} 1599 | dev: true 1600 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /screencast.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vipzhicheng/logseq-plugin-global-custom-css/0f99a81974373b855e9c68756f2fc4408a01a3ba/screencast.gif -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/components/Editor.vue: -------------------------------------------------------------------------------- 1 | 11 | 16 | 26 | -------------------------------------------------------------------------------- /src/components/dialog.vue: -------------------------------------------------------------------------------- 1 | 6 | 30 | 38 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import "@logseq/libs"; 2 | import { createPinia } from "pinia"; 3 | import { createApp } from "vue"; 4 | import App from "./App.vue"; 5 | import "./style.css"; 6 | import { useEditorStore } from "@/stores/editor"; 7 | import { SettingSchemaDesc } from "@logseq/libs/dist/LSPlugin"; 8 | 9 | function createModel() { 10 | return { 11 | openModal() { 12 | logseq.showMainUI(); 13 | }, 14 | }; 15 | } 16 | 17 | async function triggerBlockModal() { 18 | createModel().openModal(); 19 | } 20 | 21 | const defineSettings: SettingSchemaDesc[] = [ 22 | { 23 | key: "personal_access_token", 24 | type: "string", 25 | default: "", 26 | title: "Personal Access Token", 27 | description: 28 | 'Apply Github Personal Access Token on https://github.com/settings/tokens, please only grant "Gist create" permisson for this token.', 29 | }, 30 | { 31 | key: "github_username", 32 | type: "string", 33 | default: "", 34 | title: "Github Username", 35 | description: 36 | "Your Github username, e.g. https://gist.github.com/[username]/[gist_id]", 37 | }, 38 | { 39 | key: "gist_id", 40 | type: "string", 41 | default: "", 42 | title: "Gist ID", 43 | description: 44 | "You need to create a gist on Github first, and then find out the gist id, e.g. https://gist.github.com/[username]/[gist_id]", 45 | }, 46 | ]; 47 | 48 | logseq.useSettingsSchema(defineSettings); 49 | 50 | const main = async () => { 51 | const settings = logseq.settings; 52 | if (settings.styles && settings.styles.global) { 53 | const style = "/* Global Custom CSS */\n" + settings.styles.global; 54 | logseq.provideStyle({ 55 | key: "global", 56 | style, 57 | }); 58 | } 59 | 60 | const app = createApp(App); 61 | app.use(createPinia()); 62 | app.mount("#app"); 63 | 64 | logseq.on("ui:visible:changed", (visible) => { 65 | if (!visible) { 66 | return; 67 | } 68 | 69 | const editorStore = useEditorStore(); 70 | 71 | editorStore.show(); 72 | }); 73 | 74 | logseq.App.registerUIItem("toolbar", { 75 | key: "global-custom-css", 76 | template: ` 77 | 78 | 79 | 80 | `, 81 | }); 82 | 83 | document.addEventListener("click", (e) => { 84 | logseq.hideMainUI(); 85 | }); 86 | }; 87 | 88 | logseq.ready(createModel(), main).catch(console.error); 89 | -------------------------------------------------------------------------------- /src/stores/editor.ts: -------------------------------------------------------------------------------- 1 | import "@logseq/libs"; 2 | import beautify from "simply-beautiful"; 3 | import { defineStore } from "pinia"; 4 | import { EditorFromTextArea } from "codemirror"; 5 | 6 | import * as CodeMirror from "codemirror"; 7 | 8 | import "codemirror/lib/codemirror.css"; 9 | 10 | import "codemirror/theme/monokai.css"; 11 | 12 | import "codemirror/mode/css/css"; 13 | 14 | // For auto close brackets and match brackets 15 | import "codemirror/addon/edit/matchbrackets.js"; 16 | import "codemirror/addon/edit/closebrackets.js"; 17 | 18 | // For auto complete 19 | import "codemirror/addon/hint/show-hint.css"; 20 | import "codemirror/addon/hint/show-hint.js"; 21 | import "codemirror/addon/hint/css-hint.js"; 22 | 23 | // For fullscreen 24 | import "codemirror/addon/display/fullscreen.css"; 25 | import "codemirror/addon/display/fullscreen.js"; 26 | 27 | export const useEditorStore = defineStore("editor", { 28 | state: () => ({ 29 | visible: true, 30 | cm: null as EditorFromTextArea | null, 31 | timer: null, 32 | }), 33 | actions: { 34 | show() { 35 | this.visible = true; 36 | }, 37 | 38 | async clear() { 39 | if (this.cm as EditorFromTextArea) { 40 | let style = ""; 41 | this.cm.setValue(style); 42 | this.apply(); 43 | } 44 | }, 45 | 46 | async loadFromGithubGist() { 47 | if (this.cm as EditorFromTextArea) { 48 | const gist_id = logseq.settings.gist_id; 49 | const token = logseq.settings.personal_access_token; 50 | const github_username = logseq.settings.github_username; 51 | 52 | if (!gist_id || !token || !github_username) { 53 | alert( 54 | "personal access token or github username or gist id not config" 55 | ); 56 | } 57 | await fetch( 58 | `https://gist.github.com/${github_username}/${gist_id}/raw?${Math.random()}`, 59 | { 60 | method: "GET", // *GET, POST, PUT, DELETE, etc. 61 | mode: "cors", // no-cors, *cors, same-origin 62 | cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached 63 | credentials: "same-origin", // include, *same-origin, omit 64 | // headers: { 65 | // "Content-Type": "application/json", 66 | // Authorization: `token ${token}`, 67 | // // 'Content-Type': 'application/x-www-form-urlencoded', 68 | // }, 69 | redirect: "follow", // manual, *follow, error 70 | referrerPolicy: "no-referrer", // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url 71 | } 72 | ).then(async (response) => { 73 | const body = await response.text(); 74 | this.cm.setValue(body); 75 | this.apply(); 76 | }); 77 | } 78 | }, 79 | 80 | async saveToGithubGist() { 81 | if (this.cm as EditorFromTextArea) { 82 | let style = this.cm.getValue(); 83 | 84 | const data = { 85 | description: "Logseq Global Custom CSS", 86 | files: { 87 | "logseq_global_custom.css": { 88 | content: style, 89 | }, 90 | }, 91 | }; 92 | 93 | const gist_id = logseq.settings.gist_id; 94 | const token = logseq.settings.personal_access_token; 95 | 96 | if (!gist_id || !token) { 97 | alert("gist_id or personal access token not config"); 98 | } 99 | await fetch(`https://api.github.com/gists/${gist_id}`, { 100 | method: "PATCH", // *GET, POST, PUT, DELETE, etc. 101 | mode: "cors", // no-cors, *cors, same-origin 102 | cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached 103 | credentials: "same-origin", // include, *same-origin, omit 104 | headers: { 105 | "Content-Type": "application/json", 106 | Authorization: `token ${token}`, 107 | // 'Content-Type': 'application/x-www-form-urlencoded', 108 | }, 109 | redirect: "follow", // manual, *follow, error 110 | referrerPolicy: "no-referrer", // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url 111 | body: JSON.stringify(data), // body data type must match "Content-Type" header 112 | }); 113 | 114 | alert("Save successfully!"); 115 | } 116 | }, 117 | 118 | format() { 119 | if (this.cm as EditorFromTextArea) { 120 | let style = this.cm.getValue(); 121 | var options = { 122 | indent_size: 2, 123 | }; 124 | let formated = beautify.css(style, options); 125 | this.cm.setValue(formated); 126 | } 127 | }, 128 | 129 | apply() { 130 | if (this.cm as EditorFromTextArea) { 131 | let style = this.cm.getValue(); 132 | 133 | logseq.updateSettings({ 134 | styles: { 135 | global: style, 136 | }, 137 | }); 138 | style = "/* Global Custom CSS */\n" + style; 139 | logseq.provideStyle({ 140 | key: "global", 141 | style, 142 | }); 143 | } 144 | }, 145 | 146 | async init(selector: string) { 147 | const editor = document.getElementById(selector) as HTMLTextAreaElement; 148 | 149 | const cm = markRaw( 150 | CodeMirror.fromTextArea(editor as HTMLTextAreaElement, { 151 | mode: "css", 152 | theme: "monokai", 153 | // // @ts-ignore 154 | // minimap: true, 155 | lineNumbers: true, 156 | lineWrapping: false, 157 | // autofocus: true, 158 | indentUnit: 2, 159 | tabSize: 2, 160 | indentWithTabs: true, 161 | showCursorWhenSelecting: true, 162 | autoCloseBrackets: true, 163 | }) 164 | ); 165 | 166 | cm.addKeyMap({ 167 | "Ctrl-Space": "autocomplete", 168 | F11: function (cm) { 169 | cm.setOption("fullScreen", !cm.getOption("fullScreen")); 170 | }, 171 | }); 172 | 173 | const keyMapDefault = CodeMirror.normalizeKeyMap({ 174 | // indent with spaces 175 | Tab: (cm: CodeMirror.Editor) => { 176 | // @ts-ignore 177 | const spaces = Array(cm.getOption("indentUnit") + 1).join(" "); 178 | cm.replaceSelection(spaces); 179 | }, 180 | }); 181 | 182 | cm.setOption("extraKeys", keyMapDefault); 183 | 184 | // Auto apply 185 | cm.on("change", (cm, change) => { 186 | if (this.timer) { 187 | clearTimeout(this.timer); 188 | } 189 | this.timer = setTimeout(() => { 190 | this.apply(); 191 | }, 300); 192 | }); 193 | 194 | this.cm = cm; 195 | 196 | logseq.on("ui:visible:changed", (visible) => { 197 | if (!visible) { 198 | return; 199 | } 200 | if (cm) { 201 | cm.refresh(); 202 | cm.focus(); 203 | const settings = logseq.settings; 204 | if (settings.styles && settings.styles.global) { 205 | cm.setValue(settings.styles.global); 206 | } 207 | } 208 | }); 209 | 210 | return cm; 211 | }, 212 | }, 213 | }); 214 | -------------------------------------------------------------------------------- /src/style.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; -------------------------------------------------------------------------------- /src/vue.d.ts: -------------------------------------------------------------------------------- 1 | // 2 | 3 | declare module "*.vue" { 4 | import { DefineComponent } from "vue" 5 | const component: DefineComponent<{}, {}, any> 6 | export default component 7 | } -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | content: ['index.html', 'src/**/*.vue'], 3 | theme: { 4 | extend: {}, 5 | }, 6 | plugins: [], 7 | } 8 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Enable incremental compilation */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "esnext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 15 | "lib": [ 16 | "ESNext", 17 | "DOM" 18 | ] /* Specify a set of bundled library declaration files that describe the target runtime environment. */, 19 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 20 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 21 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 22 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ 23 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 24 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ 25 | // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ 26 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 27 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 28 | 29 | /* Modules */ 30 | "module": "esnext" /* Specify what module code is generated. */, 31 | // "rootDir": "./", /* Specify the root folder within your source files. */ 32 | "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, 33 | "baseUrl": "./" /* Specify the base directory to resolve non-relative module names. */, 34 | "paths": { 35 | "@/*": ["src/*"] 36 | } /* Specify a set of entries that re-map imports to additional lookup locations. */, 37 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 38 | // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ 39 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 40 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 41 | "resolveJsonModule": true /* Enable importing .json files */, 42 | // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ 43 | 44 | /* JavaScript Support */ 45 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ 46 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 47 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ 48 | 49 | /* Emit */ 50 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 51 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 52 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 53 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 54 | // "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. */ 55 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 56 | // "removeComments": true, /* Disable emitting comments. */ 57 | // "noEmit": true, /* Disable emitting files from a compilation. */ 58 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 59 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ 60 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 61 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 62 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 63 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 64 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 65 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 66 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 67 | // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ 68 | // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ 69 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 70 | // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ 71 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 72 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 73 | 74 | /* Interop Constraints */ 75 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 76 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 77 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, 78 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 79 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 80 | 81 | /* Type Checking */ 82 | // "strict": true /* Enable all strict type-checking options. */, 83 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ 84 | // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ 85 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 86 | // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ 87 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 88 | // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ 89 | // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ 90 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 91 | // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ 92 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ 93 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 94 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 95 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 96 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 97 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 98 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ 99 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 100 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 101 | 102 | /* Completeness */ 103 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 104 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 105 | } 106 | // "include": ["src/**/*.vue", "src/**/*.ts", "src/**/*.tsx", "src/**/*.d.ts"] 107 | } 108 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import path from "path"; 3 | import vue from "@vitejs/plugin-vue"; 4 | import logseqPlugin from "vite-plugin-logseq"; 5 | 6 | import AutoImport from "unplugin-auto-import/vite"; 7 | import Components from "unplugin-vue-components/vite"; 8 | import { ElementPlusResolver } from "unplugin-vue-components/resolvers"; 9 | 10 | export default defineConfig({ 11 | base: "./", 12 | build: { 13 | sourcemap: false, 14 | // sourcemap: true, 15 | target: "esnext", 16 | minify: "esbuild", 17 | // minify: false, 18 | chunkSizeWarningLimit: 1024, 19 | rollupOptions: { 20 | output: { 21 | manualChunks: { 22 | logseq: ["@logseq/libs"], 23 | codemirror: ["codemirror"], 24 | }, 25 | }, 26 | }, 27 | }, 28 | resolve: { 29 | alias: { 30 | "@": path.resolve(__dirname, "./src"), 31 | }, 32 | }, 33 | plugins: [ 34 | vue(), 35 | AutoImport({ 36 | include: [ 37 | /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx 38 | /\.vue$/, 39 | /\.vue\?vue/, // .vue 40 | ], 41 | imports: ["vue"], 42 | resolvers: [ElementPlusResolver()], 43 | }), 44 | Components({ 45 | resolvers: [ElementPlusResolver()], 46 | }), 47 | logseqPlugin(), 48 | ], 49 | }); 50 | --------------------------------------------------------------------------------