├── .github
└── workflows
│ └── release.yml
├── .gitignore
├── .prettierrc
├── CHANGELOG.md
├── LICENSE
├── README.md
├── env.d.ts
├── esbuild.config.mjs
├── git-conventional-commits.json
├── manifest.json
├── package.json
├── pnpm-lock.yaml
├── src
├── CanvasView.ts
├── ModalOnboarding.ts
├── SetingTab.ts
├── fns
│ ├── addBackground.ts
│ ├── dataUrlToBlob.ts
│ ├── getCurrentFileName.ts
│ ├── getSelectedText.ts
│ └── openView.ts
├── logo.svg
├── main.ts
└── queue.ts
├── stuff
└── img.png
├── styles.css
├── tsconfig.json
├── version-bump.mjs
└── versions.json
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: Build obsidian plugin
2 |
3 | on:
4 | push:
5 | tags:
6 | - '*'
7 | env:
8 | PLUGIN_NAME: obsidian-share
9 | jobs:
10 | build:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/checkout@v2
14 | - name: Use Node.js
15 | uses: actions/setup-node@v1
16 | with:
17 | node-version: '14.x'
18 | - name: Build
19 | id: build
20 | run: |
21 | yarn
22 | yarn run build --if-present
23 | mkdir ${{ env.PLUGIN_NAME }}
24 | cp main.js manifest.json ${{ env.PLUGIN_NAME }}
25 | zip -r ${{ env.PLUGIN_NAME }}.zip ${{ env.PLUGIN_NAME }}
26 | ls
27 | echo "::set-output name=tag_name::$(git tag --sort version:refname | tail -n 1)"
28 | - name: Create Release
29 | id: create_release
30 | uses: actions/create-release@v1
31 | env:
32 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33 | VERSION: ${{ github.ref }}
34 | with:
35 | tag_name: ${{ github.ref }}
36 | release_name: ${{ github.ref }}
37 | draft: false
38 | prerelease: false
39 | - name: Upload zip file
40 | id: upload-zip
41 | uses: actions/upload-release-asset@v1
42 | env:
43 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
44 | with:
45 | upload_url: ${{ steps.create_release.outputs.upload_url }}
46 | asset_path: ./${{ env.PLUGIN_NAME }}.zip
47 | asset_name: ${{ env.PLUGIN_NAME }}-${{ steps.build.outputs.tag_name }}.zip
48 | asset_content_type: application/zip
49 | - name: Upload main.js
50 | id: upload-main
51 | uses: actions/upload-release-asset@v1
52 | env:
53 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
54 | with:
55 | upload_url: ${{ steps.create_release.outputs.upload_url }}
56 | asset_path: ./main.js
57 | asset_name: main.js
58 | asset_content_type: text/javascript
59 | - name: Upload manifest.json
60 | id: upload-manifest
61 | uses: actions/upload-release-asset@v1
62 | env:
63 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
64 | with:
65 | upload_url: ${{ steps.create_release.outputs.upload_url }}
66 | asset_path: ./manifest.json
67 | asset_name: manifest.json
68 | asset_content_type: application/json
69 |
70 | - name: Upload css
71 | id: upload-css
72 | uses: actions/upload-release-asset@v1
73 | env:
74 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
75 | with:
76 | upload_url: ${{ steps.create_release.outputs.upload_url }}
77 | asset_path: ./styles.css
78 | asset_name: styles.css
79 | asset_content_type: text/css
80 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # vscode
2 | .vscode
3 |
4 | # Intellij
5 | *.iml
6 | .idea
7 |
8 | # npm
9 | node_modules
10 |
11 | # Don't include the compiled main.js file in the repo.
12 | # They should be uploaded to GitHub releases instead.
13 | main.js
14 |
15 | # Exclude sourcemaps
16 | *.map
17 |
18 | # obsidian
19 | data.json
20 |
21 | # Exclude macOS Finder (System Explorer) View States
22 | .DS_Store
23 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "none",
3 | "tabWidth": 4,
4 | "semi": false,
5 | "singleQuote": true
6 | }
7 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## **1.0.5** 2023-01-09 (318648e...2e9301a)
2 |
3 | ### chore
4 | * update version (c59a5ce)* update version (e9a0dfe)* update version (2e9301a)
5 |
6 | ### Bug Fixes
7 | * update (318648e)
8 |
9 |
10 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | All Rights Reserved
2 |
3 | Copyright (c) 2022 Nguyen Van Duoc
4 |
5 | Created by Nguyen Van Duoc
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
8 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
9 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
10 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
11 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
12 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
13 | THE SOFTWARE.
14 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | # Obsidian Share
4 |
5 | This plugin allows you to embed any website in your Obsidian.
6 |
7 | ## Features
8 |
9 | - Generate gradient image for your text
10 |
11 | ## Usage
12 |
13 | 1. Drop text to the gradient
14 | 1. click "Copy to clipboard"
15 | 1. Paste it to your note or Twitter
16 |
--------------------------------------------------------------------------------
/env.d.ts:
--------------------------------------------------------------------------------
1 | declare type FramePosition = 'left' | 'center' | 'right'
2 |
--------------------------------------------------------------------------------
/esbuild.config.mjs:
--------------------------------------------------------------------------------
1 | import esbuild from 'esbuild'
2 | import process from 'process'
3 | import builtins from 'builtin-modules'
4 |
5 | const banner = `/*
6 | THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
7 | if you want to view the source, please visit the github repository of this plugin
8 | */
9 | `
10 |
11 | const prod = process.argv[2] === 'production'
12 |
13 | esbuild
14 | .build({
15 | banner: {
16 | js: banner
17 | },
18 | entryPoints: ['src/main.ts'],
19 | bundle: true,
20 | external: [
21 | 'obsidian',
22 | 'electron',
23 | '@codemirror/autocomplete',
24 | '@codemirror/collab',
25 | '@codemirror/commands',
26 | '@codemirror/language',
27 | '@codemirror/lint',
28 | '@codemirror/search',
29 | '@codemirror/state',
30 | '@codemirror/view',
31 | '@lezer/common',
32 | '@lezer/highlight',
33 | '@lezer/lr',
34 | ...builtins
35 | ],
36 | format: 'cjs',
37 | watch: !prod,
38 | target: 'es2018',
39 | logLevel: 'info',
40 | sourcemap: prod ? false : 'inline',
41 | treeShaking: true,
42 | outfile: 'main.js',
43 | loader:{
44 | '.svg': 'text'
45 | }
46 | })
47 | .catch(() => process.exit(1))
48 |
--------------------------------------------------------------------------------
/git-conventional-commits.json:
--------------------------------------------------------------------------------
1 | {
2 | "convention" : {
3 | "commitTypes": [
4 | "feat",
5 | "fix",
6 | "perf",
7 | "refactor",
8 | "style",
9 | "test",
10 | "build",
11 | "ops",
12 | "docs",
13 | "merge",
14 | "chore"
15 | ],
16 | "commitScopes": [],
17 | "releaseTagGlobPattern": "[0-9]*.[0-9]*.[0-9]*"
18 | },
19 |
20 | "changelog" : {
21 | "commitTypes": [
22 | "feat",
23 | "fix",
24 | "perf",
25 | "merge",
26 | "chore"
27 | ],
28 | "includeInvalidCommits": true,
29 | "commitScopes": [],
30 | "commitIgnoreRegexPattern": "^WIP ",
31 | "headlines": {
32 | "feat": "Features",
33 | "fix": "Bug Fixes",
34 | "perf": "Performance Improvements",
35 | "merge": "Merges",
36 | "breakingChange": "BREAKING CHANGES"
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "quote-share",
3 | "name": "Quote Share",
4 | "version": "1.0.5",
5 | "minAppVersion": "0.15.0",
6 | "description": "With this plugin, you can easily generate beautiful gradient images from text and share them on social media.",
7 | "author": "duocnv",
8 | "authorUrl": "https://twitter.com/duocdev",
9 | "fundingUrl": {
10 | "Buy Me a Coffee": "https://paypal.me/duocnguyen",
11 | "Follow me": "https://twitter.com/duocdev"
12 | },
13 | "isDesktopOnly": true
14 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "quote-share",
3 | "version": "1.0.5",
4 | "description": "Generate gradient images from your Obsidian notes",
5 | "main": "main.js",
6 | "scripts": {
7 | "dev": "node esbuild.config.mjs",
8 | "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production",
9 | "version": "node version-bump.mjs && git add manifest.json versions.json",
10 | "format": "prettier --write ."
11 | },
12 | "keywords": [],
13 | "author": "",
14 | "license": "MIT",
15 | "devDependencies": {
16 | "@types/chrome": "^0.0.203",
17 | "@types/fabric": "^4.5.14",
18 | "@types/node": "^16.11.6",
19 | "@typescript-eslint/eslint-plugin": "5.29.0",
20 | "@typescript-eslint/parser": "5.29.0",
21 | "builtin-modules": "3.3.0",
22 | "esbuild": "0.14.47",
23 | "obsidian": "latest",
24 | "prettier": "^2.8.1",
25 | "tslib": "2.4.0",
26 | "typescript": "4.7.4"
27 | },
28 | "dependencies": {
29 | "fabric": "^5.2.4"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.4
2 |
3 | specifiers:
4 | '@types/chrome': ^0.0.203
5 | '@types/fabric': ^4.5.14
6 | '@types/node': ^16.11.6
7 | '@typescript-eslint/eslint-plugin': 5.29.0
8 | '@typescript-eslint/parser': 5.29.0
9 | builtin-modules: 3.3.0
10 | esbuild: 0.14.47
11 | fabric: ^5.2.4
12 | obsidian: latest
13 | prettier: ^2.8.1
14 | tslib: 2.4.0
15 | typescript: 4.7.4
16 |
17 | dependencies:
18 | fabric: 5.2.4
19 |
20 | devDependencies:
21 | '@types/chrome': 0.0.203
22 | '@types/fabric': 4.5.14
23 | '@types/node': 16.18.7
24 | '@typescript-eslint/eslint-plugin': 5.29.0_yl5z64k6lhc4hlrfojtltgnk2q
25 | '@typescript-eslint/parser': 5.29.0_wogtpudmlxya2leoxia5qf2rl4
26 | builtin-modules: 3.3.0
27 | esbuild: 0.14.47
28 | obsidian: 1.1.1_ootph5s5ydlpya6ok6lxu3ipni
29 | prettier: 2.8.1
30 | tslib: 2.4.0
31 | typescript: 4.7.4
32 |
33 | packages:
34 |
35 | /@codemirror/state/6.2.0:
36 | resolution: {integrity: sha512-69QXtcrsc3RYtOtd+GsvczJ319udtBf1PTrr2KbLWM/e2CXUPnh0Nz9AUo8WfhSQ7GeL8dPVNUmhQVgpmuaNGA==}
37 | dev: true
38 |
39 | /@codemirror/view/6.7.2:
40 | resolution: {integrity: sha512-HeK2GyycxceaQVyvYVYXmn1vUKYYBsHCcfGRSsFO+3fRRtwXx2STK0YiFBmiWx2vtU9gUAJgIUXUN8a0osI8Ng==}
41 | dependencies:
42 | '@codemirror/state': 6.2.0
43 | style-mod: 4.0.0
44 | w3c-keyname: 2.2.6
45 | dev: true
46 |
47 | /@eslint/eslintrc/1.4.1:
48 | resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==}
49 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
50 | dependencies:
51 | ajv: 6.12.6
52 | debug: 4.3.4
53 | espree: 9.4.1
54 | globals: 13.19.0
55 | ignore: 5.2.1
56 | import-fresh: 3.3.0
57 | js-yaml: 4.1.0
58 | minimatch: 3.1.2
59 | strip-json-comments: 3.1.1
60 | transitivePeerDependencies:
61 | - supports-color
62 | dev: true
63 |
64 | /@humanwhocodes/config-array/0.11.8:
65 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
66 | engines: {node: '>=10.10.0'}
67 | dependencies:
68 | '@humanwhocodes/object-schema': 1.2.1
69 | debug: 4.3.4
70 | minimatch: 3.1.2
71 | transitivePeerDependencies:
72 | - supports-color
73 | dev: true
74 |
75 | /@humanwhocodes/module-importer/1.0.1:
76 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
77 | engines: {node: '>=12.22'}
78 | dev: true
79 |
80 | /@humanwhocodes/object-schema/1.2.1:
81 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
82 | dev: true
83 |
84 | /@mapbox/node-pre-gyp/1.0.10:
85 | resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==}
86 | hasBin: true
87 | dependencies:
88 | detect-libc: 2.0.1
89 | https-proxy-agent: 5.0.1
90 | make-dir: 3.1.0
91 | node-fetch: 2.6.7
92 | nopt: 5.0.0
93 | npmlog: 5.0.1
94 | rimraf: 3.0.2
95 | semver: 7.3.8
96 | tar: 6.1.13
97 | transitivePeerDependencies:
98 | - encoding
99 | - supports-color
100 | dev: false
101 | optional: true
102 |
103 | /@nodelib/fs.scandir/2.1.5:
104 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
105 | engines: {node: '>= 8'}
106 | dependencies:
107 | '@nodelib/fs.stat': 2.0.5
108 | run-parallel: 1.2.0
109 | dev: true
110 |
111 | /@nodelib/fs.stat/2.0.5:
112 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
113 | engines: {node: '>= 8'}
114 | dev: true
115 |
116 | /@nodelib/fs.walk/1.2.8:
117 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
118 | engines: {node: '>= 8'}
119 | dependencies:
120 | '@nodelib/fs.scandir': 2.1.5
121 | fastq: 1.14.0
122 | dev: true
123 |
124 | /@tootallnate/once/2.0.0:
125 | resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
126 | engines: {node: '>= 10'}
127 | dev: false
128 | optional: true
129 |
130 | /@types/chrome/0.0.203:
131 | resolution: {integrity: sha512-JlQNebwpBETVc8U1Rr2inDFuOTtn0lahRAhnddx1dd0S5RrLAFJEEsyIu7AXI14mkCgSunksnuLGioH8kvBqRA==}
132 | dependencies:
133 | '@types/filesystem': 0.0.32
134 | '@types/har-format': 1.2.10
135 | dev: true
136 |
137 | /@types/codemirror/0.0.108:
138 | resolution: {integrity: sha512-3FGFcus0P7C2UOGCNUVENqObEb4SFk+S8Dnxq7K6aIsLVs/vDtlangl3PEO0ykaKXyK56swVF6Nho7VsA44uhw==}
139 | dependencies:
140 | '@types/tern': 0.23.4
141 | dev: true
142 |
143 | /@types/estree/1.0.0:
144 | resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
145 | dev: true
146 |
147 | /@types/fabric/4.5.14:
148 | resolution: {integrity: sha512-Hdi/HlG9+7a6eOCGQ0ViwBRxbgSK2Na8SE2oNMdhbn+dRkrH0jrjZVNnSspQzyxqA4OL6A3DotfavTwj7qEz/A==}
149 | dev: true
150 |
151 | /@types/filesystem/0.0.32:
152 | resolution: {integrity: sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ==}
153 | dependencies:
154 | '@types/filewriter': 0.0.29
155 | dev: true
156 |
157 | /@types/filewriter/0.0.29:
158 | resolution: {integrity: sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==}
159 | dev: true
160 |
161 | /@types/har-format/1.2.10:
162 | resolution: {integrity: sha512-o0J30wqycjF5miWDKYKKzzOU1ZTLuA42HZ4HE7/zqTOc/jTLdQ5NhYWvsRQo45Nfi1KHoRdNhteSI4BAxTF1Pg==}
163 | dev: true
164 |
165 | /@types/json-schema/7.0.11:
166 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
167 | dev: true
168 |
169 | /@types/node/16.18.7:
170 | resolution: {integrity: sha512-SghuoXv8ghvkrKjTyvhRTeNzivPzGQ8pe09PPGdyqsExiKvBYV/6E3imvjsaJuW8ca61qQN2+SoSzyEHS9r2LA==}
171 | dev: true
172 |
173 | /@types/tern/0.23.4:
174 | resolution: {integrity: sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==}
175 | dependencies:
176 | '@types/estree': 1.0.0
177 | dev: true
178 |
179 | /@typescript-eslint/eslint-plugin/5.29.0_yl5z64k6lhc4hlrfojtltgnk2q:
180 | resolution: {integrity: sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==}
181 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
182 | peerDependencies:
183 | '@typescript-eslint/parser': ^5.0.0
184 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
185 | typescript: '*'
186 | peerDependenciesMeta:
187 | typescript:
188 | optional: true
189 | dependencies:
190 | '@typescript-eslint/parser': 5.29.0_wogtpudmlxya2leoxia5qf2rl4
191 | '@typescript-eslint/scope-manager': 5.29.0
192 | '@typescript-eslint/type-utils': 5.29.0_wogtpudmlxya2leoxia5qf2rl4
193 | '@typescript-eslint/utils': 5.29.0_wogtpudmlxya2leoxia5qf2rl4
194 | debug: 4.3.4
195 | eslint: 8.31.0
196 | functional-red-black-tree: 1.0.1
197 | ignore: 5.2.1
198 | regexpp: 3.2.0
199 | semver: 7.3.8
200 | tsutils: 3.21.0_typescript@4.7.4
201 | typescript: 4.7.4
202 | transitivePeerDependencies:
203 | - supports-color
204 | dev: true
205 |
206 | /@typescript-eslint/parser/5.29.0_wogtpudmlxya2leoxia5qf2rl4:
207 | resolution: {integrity: sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==}
208 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
209 | peerDependencies:
210 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
211 | typescript: '*'
212 | peerDependenciesMeta:
213 | typescript:
214 | optional: true
215 | dependencies:
216 | '@typescript-eslint/scope-manager': 5.29.0
217 | '@typescript-eslint/types': 5.29.0
218 | '@typescript-eslint/typescript-estree': 5.29.0_typescript@4.7.4
219 | debug: 4.3.4
220 | eslint: 8.31.0
221 | typescript: 4.7.4
222 | transitivePeerDependencies:
223 | - supports-color
224 | dev: true
225 |
226 | /@typescript-eslint/scope-manager/5.29.0:
227 | resolution: {integrity: sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==}
228 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
229 | dependencies:
230 | '@typescript-eslint/types': 5.29.0
231 | '@typescript-eslint/visitor-keys': 5.29.0
232 | dev: true
233 |
234 | /@typescript-eslint/type-utils/5.29.0_wogtpudmlxya2leoxia5qf2rl4:
235 | resolution: {integrity: sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==}
236 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
237 | peerDependencies:
238 | eslint: '*'
239 | typescript: '*'
240 | peerDependenciesMeta:
241 | typescript:
242 | optional: true
243 | dependencies:
244 | '@typescript-eslint/utils': 5.29.0_wogtpudmlxya2leoxia5qf2rl4
245 | debug: 4.3.4
246 | eslint: 8.31.0
247 | tsutils: 3.21.0_typescript@4.7.4
248 | typescript: 4.7.4
249 | transitivePeerDependencies:
250 | - supports-color
251 | dev: true
252 |
253 | /@typescript-eslint/types/5.29.0:
254 | resolution: {integrity: sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg==}
255 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
256 | dev: true
257 |
258 | /@typescript-eslint/typescript-estree/5.29.0_typescript@4.7.4:
259 | resolution: {integrity: sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==}
260 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
261 | peerDependencies:
262 | typescript: '*'
263 | peerDependenciesMeta:
264 | typescript:
265 | optional: true
266 | dependencies:
267 | '@typescript-eslint/types': 5.29.0
268 | '@typescript-eslint/visitor-keys': 5.29.0
269 | debug: 4.3.4
270 | globby: 11.1.0
271 | is-glob: 4.0.3
272 | semver: 7.3.8
273 | tsutils: 3.21.0_typescript@4.7.4
274 | typescript: 4.7.4
275 | transitivePeerDependencies:
276 | - supports-color
277 | dev: true
278 |
279 | /@typescript-eslint/utils/5.29.0_wogtpudmlxya2leoxia5qf2rl4:
280 | resolution: {integrity: sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==}
281 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
282 | peerDependencies:
283 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
284 | dependencies:
285 | '@types/json-schema': 7.0.11
286 | '@typescript-eslint/scope-manager': 5.29.0
287 | '@typescript-eslint/types': 5.29.0
288 | '@typescript-eslint/typescript-estree': 5.29.0_typescript@4.7.4
289 | eslint: 8.31.0
290 | eslint-scope: 5.1.1
291 | eslint-utils: 3.0.0_eslint@8.31.0
292 | transitivePeerDependencies:
293 | - supports-color
294 | - typescript
295 | dev: true
296 |
297 | /@typescript-eslint/visitor-keys/5.29.0:
298 | resolution: {integrity: sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==}
299 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
300 | dependencies:
301 | '@typescript-eslint/types': 5.29.0
302 | eslint-visitor-keys: 3.3.0
303 | dev: true
304 |
305 | /abab/2.0.6:
306 | resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
307 | dev: false
308 | optional: true
309 |
310 | /abbrev/1.1.1:
311 | resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
312 | dev: false
313 | optional: true
314 |
315 | /acorn-globals/6.0.0:
316 | resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==}
317 | dependencies:
318 | acorn: 7.4.1
319 | acorn-walk: 7.2.0
320 | dev: false
321 | optional: true
322 |
323 | /acorn-jsx/5.3.2_acorn@8.8.1:
324 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
325 | peerDependencies:
326 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
327 | dependencies:
328 | acorn: 8.8.1
329 | dev: true
330 |
331 | /acorn-walk/7.2.0:
332 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
333 | engines: {node: '>=0.4.0'}
334 | dev: false
335 | optional: true
336 |
337 | /acorn/7.4.1:
338 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
339 | engines: {node: '>=0.4.0'}
340 | hasBin: true
341 | dev: false
342 | optional: true
343 |
344 | /acorn/8.8.1:
345 | resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
346 | engines: {node: '>=0.4.0'}
347 | hasBin: true
348 |
349 | /agent-base/6.0.2:
350 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
351 | engines: {node: '>= 6.0.0'}
352 | dependencies:
353 | debug: 4.3.4
354 | transitivePeerDependencies:
355 | - supports-color
356 | dev: false
357 | optional: true
358 |
359 | /ajv/6.12.6:
360 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
361 | dependencies:
362 | fast-deep-equal: 3.1.3
363 | fast-json-stable-stringify: 2.1.0
364 | json-schema-traverse: 0.4.1
365 | uri-js: 4.4.1
366 | dev: true
367 |
368 | /ansi-regex/5.0.1:
369 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
370 | engines: {node: '>=8'}
371 |
372 | /ansi-styles/4.3.0:
373 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
374 | engines: {node: '>=8'}
375 | dependencies:
376 | color-convert: 2.0.1
377 | dev: true
378 |
379 | /aproba/2.0.0:
380 | resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
381 | dev: false
382 | optional: true
383 |
384 | /are-we-there-yet/2.0.0:
385 | resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
386 | engines: {node: '>=10'}
387 | dependencies:
388 | delegates: 1.0.0
389 | readable-stream: 3.6.0
390 | dev: false
391 | optional: true
392 |
393 | /argparse/2.0.1:
394 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
395 | dev: true
396 |
397 | /array-union/2.1.0:
398 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
399 | engines: {node: '>=8'}
400 | dev: true
401 |
402 | /asynckit/0.4.0:
403 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
404 | dev: false
405 | optional: true
406 |
407 | /balanced-match/1.0.2:
408 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
409 |
410 | /brace-expansion/1.1.11:
411 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
412 | dependencies:
413 | balanced-match: 1.0.2
414 | concat-map: 0.0.1
415 |
416 | /braces/3.0.2:
417 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
418 | engines: {node: '>=8'}
419 | dependencies:
420 | fill-range: 7.0.1
421 | dev: true
422 |
423 | /browser-process-hrtime/1.0.0:
424 | resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==}
425 | dev: false
426 | optional: true
427 |
428 | /builtin-modules/3.3.0:
429 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
430 | engines: {node: '>=6'}
431 | dev: true
432 |
433 | /callsites/3.1.0:
434 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
435 | engines: {node: '>=6'}
436 | dev: true
437 |
438 | /canvas/2.10.2:
439 | resolution: {integrity: sha512-FSmlsip0nZ0U4Zcfht0qBJqDhlfGuevTZKE8h+dBOYrJjGvY3iqMGSzzbvkaFhvMXiVxfcMaPHS/kge++T5SKg==}
440 | engines: {node: '>=6'}
441 | requiresBuild: true
442 | dependencies:
443 | '@mapbox/node-pre-gyp': 1.0.10
444 | nan: 2.17.0
445 | simple-get: 3.1.1
446 | transitivePeerDependencies:
447 | - encoding
448 | - supports-color
449 | dev: false
450 | optional: true
451 |
452 | /chalk/4.1.2:
453 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
454 | engines: {node: '>=10'}
455 | dependencies:
456 | ansi-styles: 4.3.0
457 | supports-color: 7.2.0
458 | dev: true
459 |
460 | /chownr/2.0.0:
461 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
462 | engines: {node: '>=10'}
463 | dev: false
464 | optional: true
465 |
466 | /color-convert/2.0.1:
467 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
468 | engines: {node: '>=7.0.0'}
469 | dependencies:
470 | color-name: 1.1.4
471 | dev: true
472 |
473 | /color-name/1.1.4:
474 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
475 | dev: true
476 |
477 | /color-support/1.1.3:
478 | resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
479 | hasBin: true
480 | dev: false
481 | optional: true
482 |
483 | /combined-stream/1.0.8:
484 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
485 | engines: {node: '>= 0.8'}
486 | dependencies:
487 | delayed-stream: 1.0.0
488 | dev: false
489 | optional: true
490 |
491 | /concat-map/0.0.1:
492 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
493 |
494 | /console-control-strings/1.1.0:
495 | resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
496 | dev: false
497 | optional: true
498 |
499 | /cross-spawn/7.0.3:
500 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
501 | engines: {node: '>= 8'}
502 | dependencies:
503 | path-key: 3.1.1
504 | shebang-command: 2.0.0
505 | which: 2.0.2
506 | dev: true
507 |
508 | /cssom/0.3.8:
509 | resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
510 | dev: false
511 | optional: true
512 |
513 | /cssom/0.5.0:
514 | resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
515 | dev: false
516 | optional: true
517 |
518 | /cssstyle/2.3.0:
519 | resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
520 | engines: {node: '>=8'}
521 | dependencies:
522 | cssom: 0.3.8
523 | dev: false
524 | optional: true
525 |
526 | /data-urls/3.0.2:
527 | resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
528 | engines: {node: '>=12'}
529 | dependencies:
530 | abab: 2.0.6
531 | whatwg-mimetype: 3.0.0
532 | whatwg-url: 11.0.0
533 | dev: false
534 | optional: true
535 |
536 | /debug/4.3.4:
537 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
538 | engines: {node: '>=6.0'}
539 | peerDependencies:
540 | supports-color: '*'
541 | peerDependenciesMeta:
542 | supports-color:
543 | optional: true
544 | dependencies:
545 | ms: 2.1.2
546 |
547 | /decimal.js/10.4.3:
548 | resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
549 | dev: false
550 | optional: true
551 |
552 | /decompress-response/4.2.1:
553 | resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==}
554 | engines: {node: '>=8'}
555 | dependencies:
556 | mimic-response: 2.1.0
557 | dev: false
558 | optional: true
559 |
560 | /deep-is/0.1.4:
561 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
562 |
563 | /delayed-stream/1.0.0:
564 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
565 | engines: {node: '>=0.4.0'}
566 | dev: false
567 | optional: true
568 |
569 | /delegates/1.0.0:
570 | resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
571 | dev: false
572 | optional: true
573 |
574 | /detect-libc/2.0.1:
575 | resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==}
576 | engines: {node: '>=8'}
577 | dev: false
578 | optional: true
579 |
580 | /dir-glob/3.0.1:
581 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
582 | engines: {node: '>=8'}
583 | dependencies:
584 | path-type: 4.0.0
585 | dev: true
586 |
587 | /doctrine/3.0.0:
588 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
589 | engines: {node: '>=6.0.0'}
590 | dependencies:
591 | esutils: 2.0.3
592 | dev: true
593 |
594 | /domexception/4.0.0:
595 | resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
596 | engines: {node: '>=12'}
597 | dependencies:
598 | webidl-conversions: 7.0.0
599 | dev: false
600 | optional: true
601 |
602 | /emoji-regex/8.0.0:
603 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
604 | dev: false
605 | optional: true
606 |
607 | /esbuild-android-64/0.14.47:
608 | resolution: {integrity: sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==}
609 | engines: {node: '>=12'}
610 | cpu: [x64]
611 | os: [android]
612 | requiresBuild: true
613 | dev: true
614 | optional: true
615 |
616 | /esbuild-android-arm64/0.14.47:
617 | resolution: {integrity: sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==}
618 | engines: {node: '>=12'}
619 | cpu: [arm64]
620 | os: [android]
621 | requiresBuild: true
622 | dev: true
623 | optional: true
624 |
625 | /esbuild-darwin-64/0.14.47:
626 | resolution: {integrity: sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==}
627 | engines: {node: '>=12'}
628 | cpu: [x64]
629 | os: [darwin]
630 | requiresBuild: true
631 | dev: true
632 | optional: true
633 |
634 | /esbuild-darwin-arm64/0.14.47:
635 | resolution: {integrity: sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==}
636 | engines: {node: '>=12'}
637 | cpu: [arm64]
638 | os: [darwin]
639 | requiresBuild: true
640 | dev: true
641 | optional: true
642 |
643 | /esbuild-freebsd-64/0.14.47:
644 | resolution: {integrity: sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==}
645 | engines: {node: '>=12'}
646 | cpu: [x64]
647 | os: [freebsd]
648 | requiresBuild: true
649 | dev: true
650 | optional: true
651 |
652 | /esbuild-freebsd-arm64/0.14.47:
653 | resolution: {integrity: sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==}
654 | engines: {node: '>=12'}
655 | cpu: [arm64]
656 | os: [freebsd]
657 | requiresBuild: true
658 | dev: true
659 | optional: true
660 |
661 | /esbuild-linux-32/0.14.47:
662 | resolution: {integrity: sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==}
663 | engines: {node: '>=12'}
664 | cpu: [ia32]
665 | os: [linux]
666 | requiresBuild: true
667 | dev: true
668 | optional: true
669 |
670 | /esbuild-linux-64/0.14.47:
671 | resolution: {integrity: sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==}
672 | engines: {node: '>=12'}
673 | cpu: [x64]
674 | os: [linux]
675 | requiresBuild: true
676 | dev: true
677 | optional: true
678 |
679 | /esbuild-linux-arm/0.14.47:
680 | resolution: {integrity: sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==}
681 | engines: {node: '>=12'}
682 | cpu: [arm]
683 | os: [linux]
684 | requiresBuild: true
685 | dev: true
686 | optional: true
687 |
688 | /esbuild-linux-arm64/0.14.47:
689 | resolution: {integrity: sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==}
690 | engines: {node: '>=12'}
691 | cpu: [arm64]
692 | os: [linux]
693 | requiresBuild: true
694 | dev: true
695 | optional: true
696 |
697 | /esbuild-linux-mips64le/0.14.47:
698 | resolution: {integrity: sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==}
699 | engines: {node: '>=12'}
700 | cpu: [mips64el]
701 | os: [linux]
702 | requiresBuild: true
703 | dev: true
704 | optional: true
705 |
706 | /esbuild-linux-ppc64le/0.14.47:
707 | resolution: {integrity: sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==}
708 | engines: {node: '>=12'}
709 | cpu: [ppc64]
710 | os: [linux]
711 | requiresBuild: true
712 | dev: true
713 | optional: true
714 |
715 | /esbuild-linux-riscv64/0.14.47:
716 | resolution: {integrity: sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==}
717 | engines: {node: '>=12'}
718 | cpu: [riscv64]
719 | os: [linux]
720 | requiresBuild: true
721 | dev: true
722 | optional: true
723 |
724 | /esbuild-linux-s390x/0.14.47:
725 | resolution: {integrity: sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==}
726 | engines: {node: '>=12'}
727 | cpu: [s390x]
728 | os: [linux]
729 | requiresBuild: true
730 | dev: true
731 | optional: true
732 |
733 | /esbuild-netbsd-64/0.14.47:
734 | resolution: {integrity: sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==}
735 | engines: {node: '>=12'}
736 | cpu: [x64]
737 | os: [netbsd]
738 | requiresBuild: true
739 | dev: true
740 | optional: true
741 |
742 | /esbuild-openbsd-64/0.14.47:
743 | resolution: {integrity: sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==}
744 | engines: {node: '>=12'}
745 | cpu: [x64]
746 | os: [openbsd]
747 | requiresBuild: true
748 | dev: true
749 | optional: true
750 |
751 | /esbuild-sunos-64/0.14.47:
752 | resolution: {integrity: sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==}
753 | engines: {node: '>=12'}
754 | cpu: [x64]
755 | os: [sunos]
756 | requiresBuild: true
757 | dev: true
758 | optional: true
759 |
760 | /esbuild-windows-32/0.14.47:
761 | resolution: {integrity: sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==}
762 | engines: {node: '>=12'}
763 | cpu: [ia32]
764 | os: [win32]
765 | requiresBuild: true
766 | dev: true
767 | optional: true
768 |
769 | /esbuild-windows-64/0.14.47:
770 | resolution: {integrity: sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==}
771 | engines: {node: '>=12'}
772 | cpu: [x64]
773 | os: [win32]
774 | requiresBuild: true
775 | dev: true
776 | optional: true
777 |
778 | /esbuild-windows-arm64/0.14.47:
779 | resolution: {integrity: sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==}
780 | engines: {node: '>=12'}
781 | cpu: [arm64]
782 | os: [win32]
783 | requiresBuild: true
784 | dev: true
785 | optional: true
786 |
787 | /esbuild/0.14.47:
788 | resolution: {integrity: sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==}
789 | engines: {node: '>=12'}
790 | hasBin: true
791 | requiresBuild: true
792 | optionalDependencies:
793 | esbuild-android-64: 0.14.47
794 | esbuild-android-arm64: 0.14.47
795 | esbuild-darwin-64: 0.14.47
796 | esbuild-darwin-arm64: 0.14.47
797 | esbuild-freebsd-64: 0.14.47
798 | esbuild-freebsd-arm64: 0.14.47
799 | esbuild-linux-32: 0.14.47
800 | esbuild-linux-64: 0.14.47
801 | esbuild-linux-arm: 0.14.47
802 | esbuild-linux-arm64: 0.14.47
803 | esbuild-linux-mips64le: 0.14.47
804 | esbuild-linux-ppc64le: 0.14.47
805 | esbuild-linux-riscv64: 0.14.47
806 | esbuild-linux-s390x: 0.14.47
807 | esbuild-netbsd-64: 0.14.47
808 | esbuild-openbsd-64: 0.14.47
809 | esbuild-sunos-64: 0.14.47
810 | esbuild-windows-32: 0.14.47
811 | esbuild-windows-64: 0.14.47
812 | esbuild-windows-arm64: 0.14.47
813 | dev: true
814 |
815 | /escape-string-regexp/4.0.0:
816 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
817 | engines: {node: '>=10'}
818 | dev: true
819 |
820 | /escodegen/2.0.0:
821 | resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==}
822 | engines: {node: '>=6.0'}
823 | hasBin: true
824 | dependencies:
825 | esprima: 4.0.1
826 | estraverse: 5.3.0
827 | esutils: 2.0.3
828 | optionator: 0.8.3
829 | optionalDependencies:
830 | source-map: 0.6.1
831 | dev: false
832 | optional: true
833 |
834 | /eslint-scope/5.1.1:
835 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
836 | engines: {node: '>=8.0.0'}
837 | dependencies:
838 | esrecurse: 4.3.0
839 | estraverse: 4.3.0
840 | dev: true
841 |
842 | /eslint-scope/7.1.1:
843 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
844 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
845 | dependencies:
846 | esrecurse: 4.3.0
847 | estraverse: 5.3.0
848 | dev: true
849 |
850 | /eslint-utils/3.0.0_eslint@8.31.0:
851 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
852 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
853 | peerDependencies:
854 | eslint: '>=5'
855 | dependencies:
856 | eslint: 8.31.0
857 | eslint-visitor-keys: 2.1.0
858 | dev: true
859 |
860 | /eslint-visitor-keys/2.1.0:
861 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
862 | engines: {node: '>=10'}
863 | dev: true
864 |
865 | /eslint-visitor-keys/3.3.0:
866 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
867 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
868 | dev: true
869 |
870 | /eslint/8.31.0:
871 | resolution: {integrity: sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==}
872 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
873 | hasBin: true
874 | dependencies:
875 | '@eslint/eslintrc': 1.4.1
876 | '@humanwhocodes/config-array': 0.11.8
877 | '@humanwhocodes/module-importer': 1.0.1
878 | '@nodelib/fs.walk': 1.2.8
879 | ajv: 6.12.6
880 | chalk: 4.1.2
881 | cross-spawn: 7.0.3
882 | debug: 4.3.4
883 | doctrine: 3.0.0
884 | escape-string-regexp: 4.0.0
885 | eslint-scope: 7.1.1
886 | eslint-utils: 3.0.0_eslint@8.31.0
887 | eslint-visitor-keys: 3.3.0
888 | espree: 9.4.1
889 | esquery: 1.4.0
890 | esutils: 2.0.3
891 | fast-deep-equal: 3.1.3
892 | file-entry-cache: 6.0.1
893 | find-up: 5.0.0
894 | glob-parent: 6.0.2
895 | globals: 13.19.0
896 | grapheme-splitter: 1.0.4
897 | ignore: 5.2.1
898 | import-fresh: 3.3.0
899 | imurmurhash: 0.1.4
900 | is-glob: 4.0.3
901 | is-path-inside: 3.0.3
902 | js-sdsl: 4.2.0
903 | js-yaml: 4.1.0
904 | json-stable-stringify-without-jsonify: 1.0.1
905 | levn: 0.4.1
906 | lodash.merge: 4.6.2
907 | minimatch: 3.1.2
908 | natural-compare: 1.4.0
909 | optionator: 0.9.1
910 | regexpp: 3.2.0
911 | strip-ansi: 6.0.1
912 | strip-json-comments: 3.1.1
913 | text-table: 0.2.0
914 | transitivePeerDependencies:
915 | - supports-color
916 | dev: true
917 |
918 | /espree/9.4.1:
919 | resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==}
920 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
921 | dependencies:
922 | acorn: 8.8.1
923 | acorn-jsx: 5.3.2_acorn@8.8.1
924 | eslint-visitor-keys: 3.3.0
925 | dev: true
926 |
927 | /esprima/4.0.1:
928 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
929 | engines: {node: '>=4'}
930 | hasBin: true
931 | dev: false
932 | optional: true
933 |
934 | /esquery/1.4.0:
935 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
936 | engines: {node: '>=0.10'}
937 | dependencies:
938 | estraverse: 5.3.0
939 | dev: true
940 |
941 | /esrecurse/4.3.0:
942 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
943 | engines: {node: '>=4.0'}
944 | dependencies:
945 | estraverse: 5.3.0
946 | dev: true
947 |
948 | /estraverse/4.3.0:
949 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
950 | engines: {node: '>=4.0'}
951 | dev: true
952 |
953 | /estraverse/5.3.0:
954 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
955 | engines: {node: '>=4.0'}
956 |
957 | /esutils/2.0.3:
958 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
959 | engines: {node: '>=0.10.0'}
960 |
961 | /fabric/5.2.4:
962 | resolution: {integrity: sha512-3+oLKvsbSJ76/nvPPrQVuUJDp0kOh8i867PpdrOPIHUyN+eLc+9nY3rmzMmDw6ndRm20f/uULv55G8sN01j9+Q==}
963 | engines: {node: '>=14.0.0'}
964 | optionalDependencies:
965 | canvas: 2.10.2
966 | jsdom: 19.0.0_canvas@2.10.2
967 | transitivePeerDependencies:
968 | - bufferutil
969 | - encoding
970 | - supports-color
971 | - utf-8-validate
972 | dev: false
973 |
974 | /fast-deep-equal/3.1.3:
975 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
976 | dev: true
977 |
978 | /fast-glob/3.2.12:
979 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
980 | engines: {node: '>=8.6.0'}
981 | dependencies:
982 | '@nodelib/fs.stat': 2.0.5
983 | '@nodelib/fs.walk': 1.2.8
984 | glob-parent: 5.1.2
985 | merge2: 1.4.1
986 | micromatch: 4.0.5
987 | dev: true
988 |
989 | /fast-json-stable-stringify/2.1.0:
990 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
991 | dev: true
992 |
993 | /fast-levenshtein/2.0.6:
994 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
995 |
996 | /fastq/1.14.0:
997 | resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==}
998 | dependencies:
999 | reusify: 1.0.4
1000 | dev: true
1001 |
1002 | /file-entry-cache/6.0.1:
1003 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1004 | engines: {node: ^10.12.0 || >=12.0.0}
1005 | dependencies:
1006 | flat-cache: 3.0.4
1007 | dev: true
1008 |
1009 | /fill-range/7.0.1:
1010 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1011 | engines: {node: '>=8'}
1012 | dependencies:
1013 | to-regex-range: 5.0.1
1014 | dev: true
1015 |
1016 | /find-up/5.0.0:
1017 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1018 | engines: {node: '>=10'}
1019 | dependencies:
1020 | locate-path: 6.0.0
1021 | path-exists: 4.0.0
1022 | dev: true
1023 |
1024 | /flat-cache/3.0.4:
1025 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
1026 | engines: {node: ^10.12.0 || >=12.0.0}
1027 | dependencies:
1028 | flatted: 3.2.7
1029 | rimraf: 3.0.2
1030 | dev: true
1031 |
1032 | /flatted/3.2.7:
1033 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
1034 | dev: true
1035 |
1036 | /form-data/4.0.0:
1037 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
1038 | engines: {node: '>= 6'}
1039 | dependencies:
1040 | asynckit: 0.4.0
1041 | combined-stream: 1.0.8
1042 | mime-types: 2.1.35
1043 | dev: false
1044 | optional: true
1045 |
1046 | /fs-minipass/2.1.0:
1047 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
1048 | engines: {node: '>= 8'}
1049 | dependencies:
1050 | minipass: 3.3.6
1051 | dev: false
1052 | optional: true
1053 |
1054 | /fs.realpath/1.0.0:
1055 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1056 |
1057 | /functional-red-black-tree/1.0.1:
1058 | resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==}
1059 | dev: true
1060 |
1061 | /gauge/3.0.2:
1062 | resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
1063 | engines: {node: '>=10'}
1064 | dependencies:
1065 | aproba: 2.0.0
1066 | color-support: 1.1.3
1067 | console-control-strings: 1.1.0
1068 | has-unicode: 2.0.1
1069 | object-assign: 4.1.1
1070 | signal-exit: 3.0.7
1071 | string-width: 4.2.3
1072 | strip-ansi: 6.0.1
1073 | wide-align: 1.1.5
1074 | dev: false
1075 | optional: true
1076 |
1077 | /glob-parent/5.1.2:
1078 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1079 | engines: {node: '>= 6'}
1080 | dependencies:
1081 | is-glob: 4.0.3
1082 | dev: true
1083 |
1084 | /glob-parent/6.0.2:
1085 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1086 | engines: {node: '>=10.13.0'}
1087 | dependencies:
1088 | is-glob: 4.0.3
1089 | dev: true
1090 |
1091 | /glob/7.2.3:
1092 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1093 | dependencies:
1094 | fs.realpath: 1.0.0
1095 | inflight: 1.0.6
1096 | inherits: 2.0.4
1097 | minimatch: 3.1.2
1098 | once: 1.4.0
1099 | path-is-absolute: 1.0.1
1100 |
1101 | /globals/13.19.0:
1102 | resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==}
1103 | engines: {node: '>=8'}
1104 | dependencies:
1105 | type-fest: 0.20.2
1106 | dev: true
1107 |
1108 | /globby/11.1.0:
1109 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1110 | engines: {node: '>=10'}
1111 | dependencies:
1112 | array-union: 2.1.0
1113 | dir-glob: 3.0.1
1114 | fast-glob: 3.2.12
1115 | ignore: 5.2.1
1116 | merge2: 1.4.1
1117 | slash: 3.0.0
1118 | dev: true
1119 |
1120 | /grapheme-splitter/1.0.4:
1121 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
1122 | dev: true
1123 |
1124 | /has-flag/4.0.0:
1125 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1126 | engines: {node: '>=8'}
1127 | dev: true
1128 |
1129 | /has-unicode/2.0.1:
1130 | resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
1131 | dev: false
1132 | optional: true
1133 |
1134 | /html-encoding-sniffer/3.0.0:
1135 | resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
1136 | engines: {node: '>=12'}
1137 | dependencies:
1138 | whatwg-encoding: 2.0.0
1139 | dev: false
1140 | optional: true
1141 |
1142 | /http-proxy-agent/5.0.0:
1143 | resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
1144 | engines: {node: '>= 6'}
1145 | dependencies:
1146 | '@tootallnate/once': 2.0.0
1147 | agent-base: 6.0.2
1148 | debug: 4.3.4
1149 | transitivePeerDependencies:
1150 | - supports-color
1151 | dev: false
1152 | optional: true
1153 |
1154 | /https-proxy-agent/5.0.1:
1155 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
1156 | engines: {node: '>= 6'}
1157 | dependencies:
1158 | agent-base: 6.0.2
1159 | debug: 4.3.4
1160 | transitivePeerDependencies:
1161 | - supports-color
1162 | dev: false
1163 | optional: true
1164 |
1165 | /iconv-lite/0.6.3:
1166 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
1167 | engines: {node: '>=0.10.0'}
1168 | dependencies:
1169 | safer-buffer: 2.1.2
1170 | dev: false
1171 | optional: true
1172 |
1173 | /ignore/5.2.1:
1174 | resolution: {integrity: sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==}
1175 | engines: {node: '>= 4'}
1176 | dev: true
1177 |
1178 | /import-fresh/3.3.0:
1179 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1180 | engines: {node: '>=6'}
1181 | dependencies:
1182 | parent-module: 1.0.1
1183 | resolve-from: 4.0.0
1184 | dev: true
1185 |
1186 | /imurmurhash/0.1.4:
1187 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1188 | engines: {node: '>=0.8.19'}
1189 | dev: true
1190 |
1191 | /inflight/1.0.6:
1192 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1193 | dependencies:
1194 | once: 1.4.0
1195 | wrappy: 1.0.2
1196 |
1197 | /inherits/2.0.4:
1198 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1199 |
1200 | /is-extglob/2.1.1:
1201 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1202 | engines: {node: '>=0.10.0'}
1203 | dev: true
1204 |
1205 | /is-fullwidth-code-point/3.0.0:
1206 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1207 | engines: {node: '>=8'}
1208 | dev: false
1209 | optional: true
1210 |
1211 | /is-glob/4.0.3:
1212 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1213 | engines: {node: '>=0.10.0'}
1214 | dependencies:
1215 | is-extglob: 2.1.1
1216 | dev: true
1217 |
1218 | /is-number/7.0.0:
1219 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1220 | engines: {node: '>=0.12.0'}
1221 | dev: true
1222 |
1223 | /is-path-inside/3.0.3:
1224 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1225 | engines: {node: '>=8'}
1226 | dev: true
1227 |
1228 | /is-potential-custom-element-name/1.0.1:
1229 | resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
1230 | dev: false
1231 | optional: true
1232 |
1233 | /isexe/2.0.0:
1234 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1235 | dev: true
1236 |
1237 | /js-sdsl/4.2.0:
1238 | resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==}
1239 | dev: true
1240 |
1241 | /js-yaml/4.1.0:
1242 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1243 | hasBin: true
1244 | dependencies:
1245 | argparse: 2.0.1
1246 | dev: true
1247 |
1248 | /jsdom/19.0.0_canvas@2.10.2:
1249 | resolution: {integrity: sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==}
1250 | engines: {node: '>=12'}
1251 | requiresBuild: true
1252 | peerDependencies:
1253 | canvas: ^2.5.0
1254 | peerDependenciesMeta:
1255 | canvas:
1256 | optional: true
1257 | dependencies:
1258 | abab: 2.0.6
1259 | acorn: 8.8.1
1260 | acorn-globals: 6.0.0
1261 | canvas: 2.10.2
1262 | cssom: 0.5.0
1263 | cssstyle: 2.3.0
1264 | data-urls: 3.0.2
1265 | decimal.js: 10.4.3
1266 | domexception: 4.0.0
1267 | escodegen: 2.0.0
1268 | form-data: 4.0.0
1269 | html-encoding-sniffer: 3.0.0
1270 | http-proxy-agent: 5.0.0
1271 | https-proxy-agent: 5.0.1
1272 | is-potential-custom-element-name: 1.0.1
1273 | nwsapi: 2.2.2
1274 | parse5: 6.0.1
1275 | saxes: 5.0.1
1276 | symbol-tree: 3.2.4
1277 | tough-cookie: 4.1.2
1278 | w3c-hr-time: 1.0.2
1279 | w3c-xmlserializer: 3.0.0
1280 | webidl-conversions: 7.0.0
1281 | whatwg-encoding: 2.0.0
1282 | whatwg-mimetype: 3.0.0
1283 | whatwg-url: 10.0.0
1284 | ws: 8.11.0
1285 | xml-name-validator: 4.0.0
1286 | transitivePeerDependencies:
1287 | - bufferutil
1288 | - supports-color
1289 | - utf-8-validate
1290 | dev: false
1291 | optional: true
1292 |
1293 | /json-schema-traverse/0.4.1:
1294 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1295 | dev: true
1296 |
1297 | /json-stable-stringify-without-jsonify/1.0.1:
1298 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1299 | dev: true
1300 |
1301 | /levn/0.3.0:
1302 | resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==}
1303 | engines: {node: '>= 0.8.0'}
1304 | dependencies:
1305 | prelude-ls: 1.1.2
1306 | type-check: 0.3.2
1307 | dev: false
1308 | optional: true
1309 |
1310 | /levn/0.4.1:
1311 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1312 | engines: {node: '>= 0.8.0'}
1313 | dependencies:
1314 | prelude-ls: 1.2.1
1315 | type-check: 0.4.0
1316 | dev: true
1317 |
1318 | /locate-path/6.0.0:
1319 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1320 | engines: {node: '>=10'}
1321 | dependencies:
1322 | p-locate: 5.0.0
1323 | dev: true
1324 |
1325 | /lodash.merge/4.6.2:
1326 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1327 | dev: true
1328 |
1329 | /lru-cache/6.0.0:
1330 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1331 | engines: {node: '>=10'}
1332 | dependencies:
1333 | yallist: 4.0.0
1334 |
1335 | /make-dir/3.1.0:
1336 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
1337 | engines: {node: '>=8'}
1338 | dependencies:
1339 | semver: 6.3.0
1340 | dev: false
1341 | optional: true
1342 |
1343 | /merge2/1.4.1:
1344 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1345 | engines: {node: '>= 8'}
1346 | dev: true
1347 |
1348 | /micromatch/4.0.5:
1349 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
1350 | engines: {node: '>=8.6'}
1351 | dependencies:
1352 | braces: 3.0.2
1353 | picomatch: 2.3.1
1354 | dev: true
1355 |
1356 | /mime-db/1.52.0:
1357 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
1358 | engines: {node: '>= 0.6'}
1359 | dev: false
1360 | optional: true
1361 |
1362 | /mime-types/2.1.35:
1363 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
1364 | engines: {node: '>= 0.6'}
1365 | dependencies:
1366 | mime-db: 1.52.0
1367 | dev: false
1368 | optional: true
1369 |
1370 | /mimic-response/2.1.0:
1371 | resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==}
1372 | engines: {node: '>=8'}
1373 | dev: false
1374 | optional: true
1375 |
1376 | /minimatch/3.1.2:
1377 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1378 | dependencies:
1379 | brace-expansion: 1.1.11
1380 |
1381 | /minipass/3.3.6:
1382 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
1383 | engines: {node: '>=8'}
1384 | dependencies:
1385 | yallist: 4.0.0
1386 | dev: false
1387 | optional: true
1388 |
1389 | /minipass/4.0.0:
1390 | resolution: {integrity: sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==}
1391 | engines: {node: '>=8'}
1392 | dependencies:
1393 | yallist: 4.0.0
1394 | dev: false
1395 | optional: true
1396 |
1397 | /minizlib/2.1.2:
1398 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
1399 | engines: {node: '>= 8'}
1400 | dependencies:
1401 | minipass: 3.3.6
1402 | yallist: 4.0.0
1403 | dev: false
1404 | optional: true
1405 |
1406 | /mkdirp/1.0.4:
1407 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
1408 | engines: {node: '>=10'}
1409 | hasBin: true
1410 | dev: false
1411 | optional: true
1412 |
1413 | /moment/2.29.4:
1414 | resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==}
1415 | dev: true
1416 |
1417 | /ms/2.1.2:
1418 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1419 |
1420 | /nan/2.17.0:
1421 | resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==}
1422 | dev: false
1423 | optional: true
1424 |
1425 | /natural-compare/1.4.0:
1426 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1427 | dev: true
1428 |
1429 | /node-fetch/2.6.7:
1430 | resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
1431 | engines: {node: 4.x || >=6.0.0}
1432 | peerDependencies:
1433 | encoding: ^0.1.0
1434 | peerDependenciesMeta:
1435 | encoding:
1436 | optional: true
1437 | dependencies:
1438 | whatwg-url: 5.0.0
1439 | dev: false
1440 | optional: true
1441 |
1442 | /nopt/5.0.0:
1443 | resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
1444 | engines: {node: '>=6'}
1445 | hasBin: true
1446 | dependencies:
1447 | abbrev: 1.1.1
1448 | dev: false
1449 | optional: true
1450 |
1451 | /npmlog/5.0.1:
1452 | resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
1453 | dependencies:
1454 | are-we-there-yet: 2.0.0
1455 | console-control-strings: 1.1.0
1456 | gauge: 3.0.2
1457 | set-blocking: 2.0.0
1458 | dev: false
1459 | optional: true
1460 |
1461 | /nwsapi/2.2.2:
1462 | resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==}
1463 | dev: false
1464 | optional: true
1465 |
1466 | /object-assign/4.1.1:
1467 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1468 | engines: {node: '>=0.10.0'}
1469 | dev: false
1470 | optional: true
1471 |
1472 | /obsidian/1.1.1_ootph5s5ydlpya6ok6lxu3ipni:
1473 | resolution: {integrity: sha512-GcxhsHNkPEkwHEjeyitfYNBcQuYGeAHFs1pEpZIv0CnzSfui8p8bPLm2YKLgcg20B764770B1sYGtxCvk9ptxg==}
1474 | peerDependencies:
1475 | '@codemirror/state': ^6.0.0
1476 | '@codemirror/view': ^6.0.0
1477 | dependencies:
1478 | '@codemirror/state': 6.2.0
1479 | '@codemirror/view': 6.7.2
1480 | '@types/codemirror': 0.0.108
1481 | moment: 2.29.4
1482 | dev: true
1483 |
1484 | /once/1.4.0:
1485 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1486 | dependencies:
1487 | wrappy: 1.0.2
1488 |
1489 | /optionator/0.8.3:
1490 | resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==}
1491 | engines: {node: '>= 0.8.0'}
1492 | dependencies:
1493 | deep-is: 0.1.4
1494 | fast-levenshtein: 2.0.6
1495 | levn: 0.3.0
1496 | prelude-ls: 1.1.2
1497 | type-check: 0.3.2
1498 | word-wrap: 1.2.3
1499 | dev: false
1500 | optional: true
1501 |
1502 | /optionator/0.9.1:
1503 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
1504 | engines: {node: '>= 0.8.0'}
1505 | dependencies:
1506 | deep-is: 0.1.4
1507 | fast-levenshtein: 2.0.6
1508 | levn: 0.4.1
1509 | prelude-ls: 1.2.1
1510 | type-check: 0.4.0
1511 | word-wrap: 1.2.3
1512 | dev: true
1513 |
1514 | /p-limit/3.1.0:
1515 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1516 | engines: {node: '>=10'}
1517 | dependencies:
1518 | yocto-queue: 0.1.0
1519 | dev: true
1520 |
1521 | /p-locate/5.0.0:
1522 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1523 | engines: {node: '>=10'}
1524 | dependencies:
1525 | p-limit: 3.1.0
1526 | dev: true
1527 |
1528 | /parent-module/1.0.1:
1529 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1530 | engines: {node: '>=6'}
1531 | dependencies:
1532 | callsites: 3.1.0
1533 | dev: true
1534 |
1535 | /parse5/6.0.1:
1536 | resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
1537 | dev: false
1538 | optional: true
1539 |
1540 | /path-exists/4.0.0:
1541 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1542 | engines: {node: '>=8'}
1543 | dev: true
1544 |
1545 | /path-is-absolute/1.0.1:
1546 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1547 | engines: {node: '>=0.10.0'}
1548 |
1549 | /path-key/3.1.1:
1550 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1551 | engines: {node: '>=8'}
1552 | dev: true
1553 |
1554 | /path-type/4.0.0:
1555 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1556 | engines: {node: '>=8'}
1557 | dev: true
1558 |
1559 | /picomatch/2.3.1:
1560 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1561 | engines: {node: '>=8.6'}
1562 | dev: true
1563 |
1564 | /prelude-ls/1.1.2:
1565 | resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==}
1566 | engines: {node: '>= 0.8.0'}
1567 | dev: false
1568 | optional: true
1569 |
1570 | /prelude-ls/1.2.1:
1571 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1572 | engines: {node: '>= 0.8.0'}
1573 | dev: true
1574 |
1575 | /prettier/2.8.1:
1576 | resolution: {integrity: sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==}
1577 | engines: {node: '>=10.13.0'}
1578 | hasBin: true
1579 | dev: true
1580 |
1581 | /psl/1.9.0:
1582 | resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
1583 | dev: false
1584 | optional: true
1585 |
1586 | /punycode/2.1.1:
1587 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
1588 | engines: {node: '>=6'}
1589 |
1590 | /querystringify/2.2.0:
1591 | resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
1592 | dev: false
1593 | optional: true
1594 |
1595 | /queue-microtask/1.2.3:
1596 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1597 | dev: true
1598 |
1599 | /readable-stream/3.6.0:
1600 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
1601 | engines: {node: '>= 6'}
1602 | dependencies:
1603 | inherits: 2.0.4
1604 | string_decoder: 1.3.0
1605 | util-deprecate: 1.0.2
1606 | dev: false
1607 | optional: true
1608 |
1609 | /regexpp/3.2.0:
1610 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
1611 | engines: {node: '>=8'}
1612 | dev: true
1613 |
1614 | /requires-port/1.0.0:
1615 | resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
1616 | dev: false
1617 | optional: true
1618 |
1619 | /resolve-from/4.0.0:
1620 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1621 | engines: {node: '>=4'}
1622 | dev: true
1623 |
1624 | /reusify/1.0.4:
1625 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1626 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1627 | dev: true
1628 |
1629 | /rimraf/3.0.2:
1630 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1631 | hasBin: true
1632 | dependencies:
1633 | glob: 7.2.3
1634 |
1635 | /run-parallel/1.2.0:
1636 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1637 | dependencies:
1638 | queue-microtask: 1.2.3
1639 | dev: true
1640 |
1641 | /safe-buffer/5.2.1:
1642 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
1643 | dev: false
1644 | optional: true
1645 |
1646 | /safer-buffer/2.1.2:
1647 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
1648 | dev: false
1649 | optional: true
1650 |
1651 | /saxes/5.0.1:
1652 | resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==}
1653 | engines: {node: '>=10'}
1654 | dependencies:
1655 | xmlchars: 2.2.0
1656 | dev: false
1657 | optional: true
1658 |
1659 | /semver/6.3.0:
1660 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
1661 | hasBin: true
1662 | dev: false
1663 | optional: true
1664 |
1665 | /semver/7.3.8:
1666 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
1667 | engines: {node: '>=10'}
1668 | hasBin: true
1669 | dependencies:
1670 | lru-cache: 6.0.0
1671 |
1672 | /set-blocking/2.0.0:
1673 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
1674 | dev: false
1675 | optional: true
1676 |
1677 | /shebang-command/2.0.0:
1678 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1679 | engines: {node: '>=8'}
1680 | dependencies:
1681 | shebang-regex: 3.0.0
1682 | dev: true
1683 |
1684 | /shebang-regex/3.0.0:
1685 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1686 | engines: {node: '>=8'}
1687 | dev: true
1688 |
1689 | /signal-exit/3.0.7:
1690 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
1691 | dev: false
1692 | optional: true
1693 |
1694 | /simple-concat/1.0.1:
1695 | resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
1696 | dev: false
1697 | optional: true
1698 |
1699 | /simple-get/3.1.1:
1700 | resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==}
1701 | dependencies:
1702 | decompress-response: 4.2.1
1703 | once: 1.4.0
1704 | simple-concat: 1.0.1
1705 | dev: false
1706 | optional: true
1707 |
1708 | /slash/3.0.0:
1709 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1710 | engines: {node: '>=8'}
1711 | dev: true
1712 |
1713 | /source-map/0.6.1:
1714 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
1715 | engines: {node: '>=0.10.0'}
1716 | requiresBuild: true
1717 | dev: false
1718 | optional: true
1719 |
1720 | /string-width/4.2.3:
1721 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1722 | engines: {node: '>=8'}
1723 | dependencies:
1724 | emoji-regex: 8.0.0
1725 | is-fullwidth-code-point: 3.0.0
1726 | strip-ansi: 6.0.1
1727 | dev: false
1728 | optional: true
1729 |
1730 | /string_decoder/1.3.0:
1731 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
1732 | dependencies:
1733 | safe-buffer: 5.2.1
1734 | dev: false
1735 | optional: true
1736 |
1737 | /strip-ansi/6.0.1:
1738 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1739 | engines: {node: '>=8'}
1740 | dependencies:
1741 | ansi-regex: 5.0.1
1742 |
1743 | /strip-json-comments/3.1.1:
1744 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1745 | engines: {node: '>=8'}
1746 | dev: true
1747 |
1748 | /style-mod/4.0.0:
1749 | resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==}
1750 | dev: true
1751 |
1752 | /supports-color/7.2.0:
1753 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1754 | engines: {node: '>=8'}
1755 | dependencies:
1756 | has-flag: 4.0.0
1757 | dev: true
1758 |
1759 | /symbol-tree/3.2.4:
1760 | resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
1761 | dev: false
1762 | optional: true
1763 |
1764 | /tar/6.1.13:
1765 | resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==}
1766 | engines: {node: '>=10'}
1767 | dependencies:
1768 | chownr: 2.0.0
1769 | fs-minipass: 2.1.0
1770 | minipass: 4.0.0
1771 | minizlib: 2.1.2
1772 | mkdirp: 1.0.4
1773 | yallist: 4.0.0
1774 | dev: false
1775 | optional: true
1776 |
1777 | /text-table/0.2.0:
1778 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
1779 | dev: true
1780 |
1781 | /to-regex-range/5.0.1:
1782 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1783 | engines: {node: '>=8.0'}
1784 | dependencies:
1785 | is-number: 7.0.0
1786 | dev: true
1787 |
1788 | /tough-cookie/4.1.2:
1789 | resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==}
1790 | engines: {node: '>=6'}
1791 | dependencies:
1792 | psl: 1.9.0
1793 | punycode: 2.1.1
1794 | universalify: 0.2.0
1795 | url-parse: 1.5.10
1796 | dev: false
1797 | optional: true
1798 |
1799 | /tr46/0.0.3:
1800 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
1801 | dev: false
1802 | optional: true
1803 |
1804 | /tr46/3.0.0:
1805 | resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
1806 | engines: {node: '>=12'}
1807 | dependencies:
1808 | punycode: 2.1.1
1809 | dev: false
1810 | optional: true
1811 |
1812 | /tslib/1.14.1:
1813 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
1814 | dev: true
1815 |
1816 | /tslib/2.4.0:
1817 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
1818 | dev: true
1819 |
1820 | /tsutils/3.21.0_typescript@4.7.4:
1821 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
1822 | engines: {node: '>= 6'}
1823 | peerDependencies:
1824 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
1825 | dependencies:
1826 | tslib: 1.14.1
1827 | typescript: 4.7.4
1828 | dev: true
1829 |
1830 | /type-check/0.3.2:
1831 | resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==}
1832 | engines: {node: '>= 0.8.0'}
1833 | dependencies:
1834 | prelude-ls: 1.1.2
1835 | dev: false
1836 | optional: true
1837 |
1838 | /type-check/0.4.0:
1839 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1840 | engines: {node: '>= 0.8.0'}
1841 | dependencies:
1842 | prelude-ls: 1.2.1
1843 | dev: true
1844 |
1845 | /type-fest/0.20.2:
1846 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
1847 | engines: {node: '>=10'}
1848 | dev: true
1849 |
1850 | /typescript/4.7.4:
1851 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==}
1852 | engines: {node: '>=4.2.0'}
1853 | hasBin: true
1854 | dev: true
1855 |
1856 | /universalify/0.2.0:
1857 | resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
1858 | engines: {node: '>= 4.0.0'}
1859 | dev: false
1860 | optional: true
1861 |
1862 | /uri-js/4.4.1:
1863 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1864 | dependencies:
1865 | punycode: 2.1.1
1866 | dev: true
1867 |
1868 | /url-parse/1.5.10:
1869 | resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
1870 | dependencies:
1871 | querystringify: 2.2.0
1872 | requires-port: 1.0.0
1873 | dev: false
1874 | optional: true
1875 |
1876 | /util-deprecate/1.0.2:
1877 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1878 | dev: false
1879 | optional: true
1880 |
1881 | /w3c-hr-time/1.0.2:
1882 | resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==}
1883 | deprecated: Use your platform's native performance.now() and performance.timeOrigin.
1884 | dependencies:
1885 | browser-process-hrtime: 1.0.0
1886 | dev: false
1887 | optional: true
1888 |
1889 | /w3c-keyname/2.2.6:
1890 | resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==}
1891 | dev: true
1892 |
1893 | /w3c-xmlserializer/3.0.0:
1894 | resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==}
1895 | engines: {node: '>=12'}
1896 | dependencies:
1897 | xml-name-validator: 4.0.0
1898 | dev: false
1899 | optional: true
1900 |
1901 | /webidl-conversions/3.0.1:
1902 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
1903 | dev: false
1904 | optional: true
1905 |
1906 | /webidl-conversions/7.0.0:
1907 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
1908 | engines: {node: '>=12'}
1909 | dev: false
1910 | optional: true
1911 |
1912 | /whatwg-encoding/2.0.0:
1913 | resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
1914 | engines: {node: '>=12'}
1915 | dependencies:
1916 | iconv-lite: 0.6.3
1917 | dev: false
1918 | optional: true
1919 |
1920 | /whatwg-mimetype/3.0.0:
1921 | resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
1922 | engines: {node: '>=12'}
1923 | dev: false
1924 | optional: true
1925 |
1926 | /whatwg-url/10.0.0:
1927 | resolution: {integrity: sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==}
1928 | engines: {node: '>=12'}
1929 | dependencies:
1930 | tr46: 3.0.0
1931 | webidl-conversions: 7.0.0
1932 | dev: false
1933 | optional: true
1934 |
1935 | /whatwg-url/11.0.0:
1936 | resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
1937 | engines: {node: '>=12'}
1938 | dependencies:
1939 | tr46: 3.0.0
1940 | webidl-conversions: 7.0.0
1941 | dev: false
1942 | optional: true
1943 |
1944 | /whatwg-url/5.0.0:
1945 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
1946 | dependencies:
1947 | tr46: 0.0.3
1948 | webidl-conversions: 3.0.1
1949 | dev: false
1950 | optional: true
1951 |
1952 | /which/2.0.2:
1953 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1954 | engines: {node: '>= 8'}
1955 | hasBin: true
1956 | dependencies:
1957 | isexe: 2.0.0
1958 | dev: true
1959 |
1960 | /wide-align/1.1.5:
1961 | resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
1962 | dependencies:
1963 | string-width: 4.2.3
1964 | dev: false
1965 | optional: true
1966 |
1967 | /word-wrap/1.2.3:
1968 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
1969 | engines: {node: '>=0.10.0'}
1970 |
1971 | /wrappy/1.0.2:
1972 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1973 |
1974 | /ws/8.11.0:
1975 | resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==}
1976 | engines: {node: '>=10.0.0'}
1977 | peerDependencies:
1978 | bufferutil: ^4.0.1
1979 | utf-8-validate: ^5.0.2
1980 | peerDependenciesMeta:
1981 | bufferutil:
1982 | optional: true
1983 | utf-8-validate:
1984 | optional: true
1985 | dev: false
1986 | optional: true
1987 |
1988 | /xml-name-validator/4.0.0:
1989 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
1990 | engines: {node: '>=12'}
1991 | dev: false
1992 | optional: true
1993 |
1994 | /xmlchars/2.2.0:
1995 | resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
1996 | dev: false
1997 | optional: true
1998 |
1999 | /yallist/4.0.0:
2000 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
2001 |
2002 | /yocto-queue/0.1.0:
2003 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
2004 | engines: {node: '>=10'}
2005 | dev: true
2006 |
--------------------------------------------------------------------------------
/src/CanvasView.ts:
--------------------------------------------------------------------------------
1 | import { ItemView, WorkspaceLeaf, Menu, Notice } from 'obsidian'
2 | import { fabric } from 'fabric'
3 | import { backgrounds, createBackground } from './fns/addBackground'
4 | import { dataURItoBlob } from './fns/dataUrlToBlob'
5 | import { getCurrentFileName } from './fns/getCurrentFileName'
6 | import SharePlugin from './main'
7 | import { dequeue, onQueueAdded } from './queue'
8 |
9 | export const ViewType = 'obsidian-share-view'
10 |
11 | export class CanvasView extends ItemView {
12 | private canvas: fabric.Canvas
13 | private paddingPercent = 0.08
14 | private canvasWidth = 1920
15 | private canvasHeight = 1400
16 | private plugin: SharePlugin
17 |
18 | constructor(leaf: WorkspaceLeaf, plugin: SharePlugin) {
19 | super(leaf)
20 | this.plugin = plugin
21 | }
22 |
23 | onload(): void {
24 | this.contentEl.empty()
25 | this.contentEl.addClass('obsidian-share-view')
26 |
27 | const controllerContainer = this.contentEl.createDiv({
28 | cls: 'controller-container'
29 | })
30 | controllerContainer.createEl('button', {
31 | text: 'Copy',
32 | attr: {
33 | id: 'copy-to-clipboard'
34 | }
35 | })
36 | this.contentEl.on('click', '#copy-to-clipboard', async (e) => {
37 | const blob = dataURItoBlob(this.canvas.toDataURL())
38 | const item = new ClipboardItem({ 'image/png': blob })
39 | await navigator.clipboard.write([item])
40 | new Notice('Copied to clipboard')
41 | })
42 |
43 | /*controllerContainer.createEl('button', {
44 | text: 'Drag to share',
45 | attr: {
46 | id: 'drag-to-share',
47 | draggable: 'true'
48 | }
49 | })
50 | this.contentEl.on('dragstart', '#drag-to-share', async (e) => {
51 | const img = document.createElement('img')
52 | img.src = this.canvas.toDataURL()
53 | e.dataTransfer?.setDragImage(img, 0, 0)
54 | })*/
55 |
56 | const canvasEl = this.contentEl.createEl('canvas', {
57 | attr: { id: 'canvas' }
58 | })
59 |
60 | this.contentEl.on('drop', 'canvas', (e) => {
61 | this.drawText(e.dataTransfer?.getData('Text').trim() || '')
62 | this.canvas.renderAll()
63 | })
64 |
65 | this.canvas = new fabric.Canvas(canvasEl, {
66 | width: this.canvasWidth,
67 | height: this.canvasHeight,
68 | backgroundColor: '#000',
69 | selection: false
70 | })
71 |
72 | const background = createBackground(
73 | this.plugin.settings.backgroundIndex
74 | )
75 | this.canvas.add(background)
76 |
77 | // the card
78 | const widthPadding = this.canvasWidth * this.paddingPercent
79 | const rectWidth = this.canvasWidth - widthPadding * 2
80 | const rectHeight = this.canvasHeight - widthPadding * 2
81 | const card = new fabric.Rect({
82 | width: rectWidth,
83 | height: rectHeight,
84 | fill: 'rgba(0,0,0,0.45)',
85 | selectable: false,
86 | rx: this.canvasWidth * 0.02,
87 | ry: this.canvasWidth * 0.02,
88 | shadow: new fabric.Shadow({
89 | color: 'rgba(0,0,0,0.9)',
90 | blur: 30
91 | }),
92 | strokeWidth: 2,
93 | stroke: 'rgba(0,0,0,0.5)'
94 | })
95 | this.canvas.centerObject(card)
96 | this.canvas.add(card)
97 |
98 | this.drawText('Drag text here')
99 |
100 | // gradient
101 |
102 | const gradients = controllerContainer.createDiv({ cls: 'gradients' })
103 |
104 | backgrounds.forEach((background, index) => {
105 | gradients.createEl('button', {
106 | text: index.toString(),
107 | cls: 'change-background',
108 | attr: {
109 | 'data-index': index,
110 | style: background.css
111 | }
112 | })
113 | })
114 |
115 | this.contentEl.on('click', '.change-background', async (e) => {
116 | this.canvas
117 | .getObjects()
118 | .filter((o) => o.name === 'background')
119 | .forEach((o) => {
120 | this.canvas.remove(o)
121 | })
122 |
123 | const target = e.target as HTMLElement
124 | const backgroundIndex = parseInt(target.dataset.index || '0')
125 | const background = createBackground(backgroundIndex)
126 | this.canvas.add(background)
127 | this.canvas.sendToBack(background)
128 |
129 | this.plugin.settings.backgroundIndex = backgroundIndex
130 | await this.plugin.saveSettings()
131 | })
132 |
133 | const queuedText = dequeue()
134 | if (queuedText) {
135 | this.drawText(queuedText)
136 | }
137 |
138 | onQueueAdded(() => {
139 | const queuedText = dequeue()
140 | if (queuedText) {
141 | this.drawText(queuedText)
142 | }
143 | })
144 | }
145 |
146 | private createTextNode(
147 | rectWidth: number,
148 | textContent: string,
149 | subText?: string
150 | ) {
151 | // the text
152 | const textWidth = rectWidth * 0.8
153 | const text = new fabric.Textbox(textContent, {
154 | width: textWidth,
155 | fill: 'white',
156 | textAlign: 'center',
157 | fontSize: 80
158 | })
159 |
160 | const vaultName = new fabric.Textbox(`// ${subText}`, {
161 | width: textWidth,
162 | left: text.left,
163 | top: text.height! + text.top! + 50,
164 | fill: 'white',
165 | textAlign: 'center',
166 | fontSize: 50
167 | })
168 |
169 | return new fabric.Group([text, vaultName], {
170 | selectable: false,
171 | name: 'mainText'
172 | })
173 | }
174 |
175 | drawText(text: string) {
176 | this.canvas
177 | .getObjects()
178 | .filter((o) => o.name === 'mainText')
179 | .forEach((o) => {
180 | this.canvas.remove(o)
181 | })
182 |
183 | const textWidth =
184 | this.canvasWidth - this.canvasWidth * this.paddingPercent
185 |
186 | const subText = getCurrentFileName(this.app)
187 |
188 | const textGroup = this.createTextNode(textWidth, text, subText)
189 | this.canvas.centerObject(textGroup)
190 | this.canvas.add(textGroup)
191 | }
192 |
193 | onunload() {
194 | this.canvas.dispose()
195 | super.onunload()
196 | }
197 |
198 | onPaneMenu(menu: Menu, source: string): void {
199 | super.onPaneMenu(menu, source)
200 | menu.addItem((item) => {
201 | item.setTitle('Help...')
202 | item.setIcon('globe')
203 | item.onClick(() => {
204 | open('https://twitter.com/duocdev')
205 | })
206 | })
207 | }
208 |
209 | getViewType(): string {
210 | return ViewType
211 | }
212 |
213 | getDisplayText(): string {
214 | return 'Obsidian Share'
215 | }
216 |
217 | getIcon(): string {
218 | return 'obsidian-share'
219 | }
220 | }
221 |
--------------------------------------------------------------------------------
/src/ModalOnboarding.ts:
--------------------------------------------------------------------------------
1 | import { App, Modal } from 'obsidian'
2 |
3 | export class ModalOnBoarding extends Modal {
4 | onOpen() {
5 | const { contentEl } = this
6 | contentEl.createEl('h3', { text: 'Welcome to Share' })
7 | contentEl.createEl('p', {
8 | text: 'With this plugin, you can easily generate beautiful gradient images from text,'
9 | })
10 | contentEl.createEl('p', {
11 | text: 'To create a new image, click on the "Share" button in the sidebar. Drag text into the editor to create a new image.'
12 | })
13 | }
14 |
15 | onClose() {
16 | const { contentEl } = this
17 | contentEl.empty()
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/SetingTab.ts:
--------------------------------------------------------------------------------
1 | import { App, PluginSettingTab, Setting } from 'obsidian'
2 | import OpenGatePlugin from './main'
3 |
4 | export class SettingTab extends PluginSettingTab {
5 | plugin: OpenGatePlugin
6 | shouldNotify: boolean
7 |
8 | constructor(app: App, plugin: OpenGatePlugin) {
9 | super(app, plugin)
10 | this.plugin = plugin
11 | }
12 |
13 | display(): void {
14 | this.shouldNotify = false
15 | const { containerEl } = this
16 | containerEl.empty()
17 |
18 | const settingContainerEl = containerEl.createDiv('setting-container')
19 |
20 | containerEl.createEl('h3', { text: 'Help' })
21 |
22 | containerEl.createEl('small', {
23 | attr: {
24 | style: 'display: block; margin-bottom: 10px'
25 | },
26 | text: 'This product is free, because I am passionate about it and use it every day. I also do many other plugins. So follow me for more updates.'
27 | })
28 |
29 | new Setting(containerEl)
30 | .setName('Follow me on Twitter')
31 | .setDesc('@duocdev')
32 | .addButton((button) => {
33 | button.setCta()
34 | button.setButtonText('Follow for update').onClick(() => {
35 | window.open('https://twitter.com/duocdev')
36 | })
37 | })
38 | .addButton((button) => {
39 | button.buttonEl.outerHTML =
40 | "
"
41 | })
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/fns/addBackground.ts:
--------------------------------------------------------------------------------
1 | import { fabric } from 'fabric'
2 |
3 | const width = 1920
4 | const height = 1400
5 |
6 | export const backgrounds = [
7 | {
8 | css: 'background-image: linear-gradient(160deg, #0093E9 0%, #80D0C7 100%);',
9 | type: 'linear',
10 | coords: { x1: 0, y1: 0, x2: width, y2: height },
11 | colorStops: [
12 | {
13 | color: '#0093E9',
14 | offset: 0
15 | },
16 | {
17 | color: '#80D0C7',
18 | offset: 1
19 | }
20 | ]
21 | },
22 | {
23 | css: 'background-image: radial-gradient( circle farthest-corner at 12.3% 19.3%, rgba(85,88,218,1) 0%, rgba(95,209,249,1) 100.2% );',
24 | type: 'radial',
25 | coords: {
26 | x1: width * 0.123,
27 | y1: height * 0.193,
28 | r1: 0,
29 | x2: width * 0.123,
30 | y2: height * 0.193,
31 | r2: width
32 | },
33 | colorStops: [
34 | {
35 | color: 'rgba(85,88,218,1)',
36 | offset: 0
37 | },
38 | {
39 | color: 'rgba(95,209,249,1)',
40 | offset: 1
41 | }
42 | ]
43 | },
44 | {
45 | css: 'background-image: radial-gradient( circle farthest-corner at 10% 20%, rgba(255,209,67,1) 0%, rgba(255,145,83,1) 90% );',
46 | type: 'radial',
47 | coords: {
48 | x1: width * 0.1,
49 | y1: height * 0.2,
50 | r1: 0,
51 | x2: width * 0.1,
52 | y2: height * 0.2,
53 | r2: width
54 | },
55 | colorStops: [
56 | {
57 | color: 'rgba(255,209,67,1)',
58 | offset: 0
59 | },
60 | {
61 | color: 'rgba(255,145,83,1)',
62 | offset: 0.9
63 | }
64 | ]
65 | },
66 | {
67 | css: 'background-image: radial-gradient( circle farthest-corner at 10% 20%, rgba(228,93,93,1) 0%, rgba(248,148,233,1) 90% );',
68 | type: 'radial',
69 | coords: {
70 | x1: width * 0.1,
71 | y1: height * 0.2,
72 | r1: 0,
73 | x2: width * 0.1,
74 | y2: height * 0.2,
75 | r2: width
76 | },
77 | colorStops: [
78 | {
79 | color: 'rgba(228,93,93,1)',
80 | offset: 0
81 | },
82 | {
83 | color: 'rgba(248,148,233,1)',
84 | offset: 0.9
85 | }
86 | ]
87 | },
88 | {
89 | css: 'background-image: radial-gradient( circle farthest-corner at 10% 20%, rgba(14,174,87,1) 0%, rgba(12,116,117,1) 90% );',
90 | type: 'radial',
91 | coords: {
92 | x1: width * 0.1,
93 | y1: height * 0.2,
94 | r1: 0,
95 | x2: width * 0.1,
96 | y2: height * 0.2,
97 | r2: width
98 | },
99 | colorStops: [
100 | {
101 | color: 'rgba(14,174,87,1)',
102 | offset: 0
103 | },
104 | {
105 | color: 'rgba(12,116,117,1)',
106 | offset: 0.9
107 | }
108 | ]
109 | },
110 |
111 | {
112 | css: 'background-image: radial-gradient( circle farthest-corner at 10% 20%, rgba(255,229,168,1) 0%, rgba(251,174,222,1) 100.7% );',
113 | type: 'radial',
114 | coords: {
115 | x1: width * 0.1,
116 | y1: height * 0.2,
117 | r1: 0,
118 | x2: width * 0.1,
119 | y2: height * 0.2,
120 | r2: width
121 | },
122 | colorStops: [
123 | {
124 | color: 'rgba(255,229,168,1)',
125 | offset: 0
126 | },
127 | {
128 | color: 'rgba(251,174,222,1)',
129 | offset: 1
130 | }
131 | ]
132 | }
133 | ]
134 |
135 | export const createBackground = (backgroundIndex: number) => {
136 | const background = backgrounds[backgroundIndex]
137 | const grad = new fabric.Gradient(background)
138 |
139 | return new fabric.Rect({
140 | name: 'background',
141 | width: width,
142 | height: height,
143 | fill: grad,
144 | selectable: false
145 | })
146 | }
147 |
--------------------------------------------------------------------------------
/src/fns/dataUrlToBlob.ts:
--------------------------------------------------------------------------------
1 | export const dataURItoBlob = (dataURI: string) => {
2 | const byteString = atob(dataURI.split(',')[1])
3 | const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]
4 | const ab = new ArrayBuffer(byteString.length)
5 | const ia = new Uint8Array(ab)
6 |
7 | for (let i = 0; i < byteString.length; i++) {
8 | ia[i] = byteString.charCodeAt(i)
9 | }
10 |
11 | return new Blob([ab], { type: mimeString })
12 | }
13 |
--------------------------------------------------------------------------------
/src/fns/getCurrentFileName.ts:
--------------------------------------------------------------------------------
1 | import { App, MarkdownView } from 'obsidian'
2 |
3 | export const getCurrentFileName = (app: App): string => {
4 | const activeFile = app.workspace.getActiveFile()
5 | return activeFile?.name.replace(".md", "") || ''
6 | }
7 |
--------------------------------------------------------------------------------
/src/fns/getSelectedText.ts:
--------------------------------------------------------------------------------
1 | import { MarkdownView, Workspace } from 'obsidian'
2 |
3 | export const getSelectedText = (workspace: Workspace): string => {
4 | let view = workspace.getActiveViewOfType(MarkdownView)
5 | if (!view) {
6 | return ''
7 | }
8 |
9 | let view_mode = view.getMode()
10 | switch (view_mode) {
11 | case 'source':
12 | if ('editor' in view) {
13 | return view.editor.getSelection().trim()
14 | }
15 | break
16 | case 'preview':
17 | default:
18 | return ''
19 | }
20 |
21 | return ''
22 | }
23 |
--------------------------------------------------------------------------------
/src/fns/openView.ts:
--------------------------------------------------------------------------------
1 | import { Workspace, WorkspaceLeaf } from 'obsidian'
2 |
3 | export const openView = async (
4 | workspace: Workspace,
5 | id: string,
6 | position?: FramePosition
7 | ): Promise => {
8 | let leafs = workspace.getLeavesOfType(id)
9 | if (leafs.length == 0) {
10 | return createView(workspace, id, position)
11 | }
12 |
13 | let leaf = workspace.getLeavesOfType(id)[0]
14 | workspace.revealLeaf(leaf)
15 | return leaf
16 | }
17 |
18 | const createView = (
19 | workspace: Workspace,
20 | id: string,
21 | position?: FramePosition
22 | ): WorkspaceLeaf | undefined => {
23 | let leaf: WorkspaceLeaf | undefined
24 | switch (position) {
25 | case 'left':
26 | leaf = workspace.getLeftLeaf(false)
27 | break
28 | case 'center':
29 | leaf = workspace.getLeaf(false)
30 | break
31 | case 'right':
32 | default:
33 | leaf = workspace.getRightLeaf(false)
34 | break
35 | }
36 |
37 | leaf?.setViewState({ type: id, active: true })
38 |
39 | return leaf
40 | }
41 |
--------------------------------------------------------------------------------
/src/logo.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import {addIcon, MarkdownView, Menu, Notice, Plugin} from 'obsidian'
2 | import {SettingTab} from './SetingTab'
3 | import {ModalOnBoarding} from './ModalOnboarding'
4 | import {CanvasView, ViewType} from './CanvasView'
5 | import {openView} from './fns/openView'
6 | import {enqueue} from './queue'
7 | // @ts-ignore-next-line
8 | import logo from './logo.svg'
9 |
10 | interface PluginSetting {
11 | isFirstRun: boolean
12 | backgroundIndex: number
13 | }
14 |
15 | const DEFAULT_SETTINGS: PluginSetting = {
16 | isFirstRun: true,
17 | backgroundIndex: 0
18 | }
19 |
20 | export default class SharePlugin extends Plugin {
21 | settings: PluginSetting
22 |
23 | async onload() {
24 | await this.loadSettings()
25 | this.addSettingTab(new SettingTab(this.app, this))
26 |
27 | addIcon('obsidian-share', logo)
28 |
29 | this.registerView(ViewType, (leaf) => {
30 | return new CanvasView(leaf, this)
31 | })
32 |
33 | this.addRibbonIcon('obsidian-share', 'Share', async () => {
34 | await openView(this.app.workspace, ViewType)
35 | })
36 |
37 | if (this.settings.isFirstRun) {
38 | this.settings.isFirstRun = false
39 |
40 | const modal = new ModalOnBoarding(this.app)
41 | modal.open()
42 |
43 | await openView(this.app.workspace, ViewType)
44 |
45 | await this.saveSettings()
46 | }
47 |
48 | this.app.workspace.on('editor-menu', (menu, editor, view) => {
49 | const onClick = async (isEmbed: boolean) => {
50 | enqueue(editor.getSelection())
51 | await openView(this.app.workspace, ViewType)
52 | }
53 |
54 | menu.addItem((item) => {
55 | item.setTitle('Share as gradient')
56 | .setIcon('links-coming-in')
57 | .onClick(() => onClick(false))
58 | })
59 | })
60 |
61 | // add command
62 | this.addCommand({
63 | id: 'share-as-gradient',
64 | name: 'Share as gradient',
65 | callback: async () => {
66 | const editor =
67 | this.app.workspace.getActiveViewOfType(MarkdownView)?.editor
68 | const selection = editor?.getSelection()
69 | if (!selection) {
70 | new Notice('Please select text to share.')
71 | return
72 | }
73 | enqueue(selection)
74 | await openView(this.app.workspace, ViewType)
75 | }
76 | })
77 | }
78 |
79 | onunload() {
80 | this.app.workspace.detachLeavesOfType(ViewType)
81 | }
82 |
83 | async loadSettings() {
84 | this.settings = await this.loadData()
85 |
86 | if (!this.settings) {
87 | this.settings = DEFAULT_SETTINGS
88 | }
89 |
90 | if (this.settings.backgroundIndex === undefined) {
91 | this.settings.backgroundIndex = DEFAULT_SETTINGS.backgroundIndex
92 | }
93 |
94 | await this.saveSettings()
95 | }
96 |
97 | async saveSettings() {
98 | await this.saveData(this.settings)
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/src/queue.ts:
--------------------------------------------------------------------------------
1 | const queue: Array = []
2 | let onQueueAddedFn: () => void | undefined
3 |
4 | export const enqueue = (item: string) => {
5 | queue.push(item)
6 |
7 | if (onQueueAddedFn) {
8 | onQueueAddedFn()
9 | }
10 | }
11 |
12 | export const dequeue = () => {
13 | return queue.shift()
14 | }
15 |
16 | export const onQueueAdded = (callback: () => void) => {
17 | onQueueAddedFn = callback
18 | }
19 |
--------------------------------------------------------------------------------
/stuff/img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nguyenvanduocit/quote-share/d7975dd63900e8cba6d5d0616c1aeb2b4470fcb1/stuff/img.png
--------------------------------------------------------------------------------
/styles.css:
--------------------------------------------------------------------------------
1 | .obsidian-share-view {
2 | background-color: var(--color-base-00);
3 | overflow: hidden !important;
4 | }
5 |
6 | .obsidian-share-view canvas {
7 | width: 100% !important;
8 | height: auto !important;
9 | }
10 |
11 | .canvas-container {
12 | position: relative;
13 | width: 100% !important;
14 | height: auto !important;
15 | box-sizing: border-box;
16 | }
17 |
18 | .controller-container {
19 | margin-bottom: 10px;
20 | display: flex;
21 | justify-content: flex-start;
22 | gap: 10px;
23 | }
24 |
25 | .gradients {
26 | display: flex;
27 | flex-wrap: wrap;
28 | gap: 5px;
29 | }
30 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "inlineSourceMap": true,
5 | "inlineSources": true,
6 | "module": "ESNext",
7 | "target": "ES6",
8 | "allowJs": true,
9 | "noImplicitAny": true,
10 | "moduleResolution": "node",
11 | "importHelpers": true,
12 | "isolatedModules": true,
13 | "strictNullChecks": true,
14 | "lib": ["DOM", "ES5", "ES6", "ES7"]
15 | },
16 | "include": ["src", "env.d.ts"]
17 | }
18 |
--------------------------------------------------------------------------------
/version-bump.mjs:
--------------------------------------------------------------------------------
1 | import { readFileSync, writeFileSync } from 'fs'
2 |
3 | const targetVersion = process.env.npm_package_version
4 |
5 | // read minAppVersion from manifest.json and bump version to target version
6 | let manifest = JSON.parse(readFileSync('manifest.json', 'utf8'))
7 | const { minAppVersion } = manifest
8 | manifest.version = targetVersion
9 | writeFileSync('manifest.json', JSON.stringify(manifest, null, '\t'))
10 |
11 | // update versions.json with target version and minAppVersion from manifest.json
12 | let versions = JSON.parse(readFileSync('versions.json', 'utf8'))
13 | versions[targetVersion] = minAppVersion
14 | writeFileSync('versions.json', JSON.stringify(versions, null, '\t'))
15 |
--------------------------------------------------------------------------------
/versions.json:
--------------------------------------------------------------------------------
1 | {
2 | "1.0.0": "0.15.0",
3 | "1.0.1": "0.15.0",
4 | "1.0.2": "0.15.0",
5 | "1.0.3": "0.15.0",
6 | "1.0.4": "0.15.0",
7 | "1.0.5": "0.15.0",
8 | "1.0.6": "0.15.0"
9 | }
--------------------------------------------------------------------------------