├── .github
└── workflows
│ └── build.yml
├── .gitignore
├── .husky
└── pre-commit
├── LICENSE
├── README.md
├── lint-staged.config.cjs
├── options.html
├── package.json
├── pnpm-lock.yaml
├── postcss.config.cjs
├── public
├── cover.png
├── icon.png
├── icon128.png
├── icon16.png
├── icon32.png
├── icon48.png
└── manifest.json
├── sidePanel.html
├── src
├── background.ts
├── content-script.ts
├── deploy.ts
├── options.css
├── options.tsx
├── sidePanel.css
└── sidePanel.tsx
├── tailwind.config.js
├── tsconfig.json
└── vite.config.ts
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: Build
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | pull_request:
8 | branches:
9 | - main
10 |
11 | jobs:
12 | build:
13 | runs-on: ubuntu-latest
14 |
15 | steps:
16 | - name: Checkout Repo
17 | uses: actions/checkout@v4
18 |
19 | - name: Install pnpm
20 | uses: pnpm/action-setup@v2
21 |
22 | - name: Set node
23 | uses: actions/setup-node@v3
24 | with:
25 | node-version: lts/*
26 |
27 | - name: Setup
28 | run: npm i -g @antfu/ni
29 |
30 | - name: Install
31 | run: nci
32 |
33 | - name: Lint
34 | run: nr style
35 |
36 | - name: Build
37 | run: nr build
38 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | npm-debug.log
2 | node_modules/
3 | dist/
4 | tmp/
5 | .DS_Store
6 | dist.zip
7 | .env.local
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | . "$(dirname -- "$0")/_/husky.sh"
3 |
4 | npx lint-staged
5 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Yuhang
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Artifacts for ChatGPT
2 |
3 | Instantly preview and deploy artifacts crafted by ChatGPT.
4 |
5 | [](https://youtu.be/DbcAerEBaQQ)
6 |
7 | Get the extension in Chrome web store: https://chromewebstore.google.com/detail/artifacts-for-chatgpt/mmedfkcijabkebmohholddkhmilonida
8 |
9 | ## How it works
10 |
11 | - Bootstrapped from [Chrome Extension Starter](https://github.com/MichaelYuhe/chrome-extension-starter)
12 | - Inspired by [Claude Artifacts](https://www.anthropic.com/news/claude-3-5-sonnet).
13 | - Get artifacts from ChatGPT through DOM monitoring.
14 | - Preview the artifacts in the extension sidepanel(HTML only for now).
15 | - Deploy the HTML file to [Zeabur](https://zeabur.com) with a random domain.
16 |
17 | ## Roadmap
18 |
19 | [ ] Support React and other web frameworks.
20 |
21 | [ ] Allow deploy with custom domains.
22 |
23 | [x] Publish to Chrome Web Store
24 |
25 | [ ] Support for other browsers
26 |
27 | ## Sponsor
28 |
29 | > This extension is free forever, if you love this extension, you can buy me a coffee here :D
30 |
31 |
32 |
--------------------------------------------------------------------------------
/lint-staged.config.cjs:
--------------------------------------------------------------------------------
1 | /**
2 | * https://github.com/vercel/next.js/blob/canary/lint-staged.config.js
3 | */
4 |
5 | const { quote } = require("shell-quote");
6 |
7 | const isWin = process.platform === "win32";
8 |
9 | module.exports = {
10 | "**/*.{js,jsx,cjs,mjs,ts,tsx,mts,cts,md,json}": (filenames) => {
11 | const escapedFileNames = filenames
12 | .map((filename) => `"${isWin ? filename : escape([filename])}"`)
13 | .join(" ");
14 | return [
15 | `prettier --write ${escapedFileNames}`,
16 | `git add ${escapedFileNames}`,
17 | ];
18 | },
19 | };
20 |
21 | function escape(str) {
22 | const escaped = quote(str);
23 | return escaped.replace(/\\@/g, "@");
24 | }
25 |
--------------------------------------------------------------------------------
/options.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Options
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "chrome-extension-starter",
3 | "private": true,
4 | "type": "module",
5 | "packageManager": "pnpm@9.1.3",
6 | "scripts": {
7 | "prepare": "husky install",
8 | "dev": "vite build --watch",
9 | "build": "vite build",
10 | "style": "prettier --check \"src/**/*.{ts,tsx}\"",
11 | "style:fix": "prettier --write \"src/**/*.{ts,tsx}\""
12 | },
13 | "author": "MichaelYuhe",
14 | "license": "MIT",
15 | "dependencies": {
16 | "@zeabur/zeabur-js": "0.0.1-alpha2",
17 | "jszip": "^3.10.1",
18 | "react": "^18.2.0",
19 | "react-dom": "^18.2.0",
20 | "react-syntax-highlighter": "^15.5.0"
21 | },
22 | "prettier": {
23 | "tabWidth": 2
24 | },
25 | "devDependencies": {
26 | "@tailwindcss/forms": "^0.5.7",
27 | "@types/chrome": "0.0.158",
28 | "@types/node": "^20.10.4",
29 | "@types/react": "^18.0.29",
30 | "@types/react-dom": "^18.0.11",
31 | "@types/react-syntax-highlighter": "^15.5.13",
32 | "@vitejs/plugin-react-swc": "^3.5.0",
33 | "autoprefixer": "^10.4.16",
34 | "husky": "^8.0.3",
35 | "lint-staged": "^15.2.0",
36 | "postcss": "^8.4.32",
37 | "prettier": "^2.2.1",
38 | "shell-quote": "^1.8.1",
39 | "tailwindcss": "^3.3.6",
40 | "typescript": "^5.0.4",
41 | "vite": "^5.0.7"
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | '@zeabur/zeabur-js':
12 | specifier: 0.0.1-alpha2
13 | version: 0.0.1-alpha2
14 | jszip:
15 | specifier: ^3.10.1
16 | version: 3.10.1
17 | react:
18 | specifier: ^18.2.0
19 | version: 18.2.0
20 | react-dom:
21 | specifier: ^18.2.0
22 | version: 18.2.0(react@18.2.0)
23 | react-syntax-highlighter:
24 | specifier: ^15.5.0
25 | version: 15.5.0(react@18.2.0)
26 | devDependencies:
27 | '@tailwindcss/forms':
28 | specifier: ^0.5.7
29 | version: 0.5.7(tailwindcss@3.3.6)
30 | '@types/chrome':
31 | specifier: 0.0.158
32 | version: 0.0.158
33 | '@types/node':
34 | specifier: ^20.10.4
35 | version: 20.10.4
36 | '@types/react':
37 | specifier: ^18.0.29
38 | version: 18.0.29
39 | '@types/react-dom':
40 | specifier: ^18.0.11
41 | version: 18.0.11
42 | '@types/react-syntax-highlighter':
43 | specifier: ^15.5.13
44 | version: 15.5.13
45 | '@vitejs/plugin-react-swc':
46 | specifier: ^3.5.0
47 | version: 3.5.0(vite@5.0.7(@types/node@20.10.4))
48 | autoprefixer:
49 | specifier: ^10.4.16
50 | version: 10.4.16(postcss@8.4.32)
51 | husky:
52 | specifier: ^8.0.3
53 | version: 8.0.3
54 | lint-staged:
55 | specifier: ^15.2.0
56 | version: 15.2.0
57 | postcss:
58 | specifier: ^8.4.32
59 | version: 8.4.32
60 | prettier:
61 | specifier: ^2.2.1
62 | version: 2.2.1
63 | shell-quote:
64 | specifier: ^1.8.1
65 | version: 1.8.1
66 | tailwindcss:
67 | specifier: ^3.3.6
68 | version: 3.3.6
69 | typescript:
70 | specifier: ^5.0.4
71 | version: 5.0.4
72 | vite:
73 | specifier: ^5.0.7
74 | version: 5.0.7(@types/node@20.10.4)
75 |
76 | packages:
77 |
78 | '@alloc/quick-lru@5.2.0':
79 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
80 | engines: {node: '>=10'}
81 |
82 | '@babel/runtime@7.24.7':
83 | resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==}
84 | engines: {node: '>=6.9.0'}
85 |
86 | '@esbuild/android-arm64@0.19.8':
87 | resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==}
88 | engines: {node: '>=12'}
89 | cpu: [arm64]
90 | os: [android]
91 |
92 | '@esbuild/android-arm@0.19.8':
93 | resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==}
94 | engines: {node: '>=12'}
95 | cpu: [arm]
96 | os: [android]
97 |
98 | '@esbuild/android-x64@0.19.8':
99 | resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==}
100 | engines: {node: '>=12'}
101 | cpu: [x64]
102 | os: [android]
103 |
104 | '@esbuild/darwin-arm64@0.19.8':
105 | resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==}
106 | engines: {node: '>=12'}
107 | cpu: [arm64]
108 | os: [darwin]
109 |
110 | '@esbuild/darwin-x64@0.19.8':
111 | resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==}
112 | engines: {node: '>=12'}
113 | cpu: [x64]
114 | os: [darwin]
115 |
116 | '@esbuild/freebsd-arm64@0.19.8':
117 | resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==}
118 | engines: {node: '>=12'}
119 | cpu: [arm64]
120 | os: [freebsd]
121 |
122 | '@esbuild/freebsd-x64@0.19.8':
123 | resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==}
124 | engines: {node: '>=12'}
125 | cpu: [x64]
126 | os: [freebsd]
127 |
128 | '@esbuild/linux-arm64@0.19.8':
129 | resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==}
130 | engines: {node: '>=12'}
131 | cpu: [arm64]
132 | os: [linux]
133 |
134 | '@esbuild/linux-arm@0.19.8':
135 | resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==}
136 | engines: {node: '>=12'}
137 | cpu: [arm]
138 | os: [linux]
139 |
140 | '@esbuild/linux-ia32@0.19.8':
141 | resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==}
142 | engines: {node: '>=12'}
143 | cpu: [ia32]
144 | os: [linux]
145 |
146 | '@esbuild/linux-loong64@0.19.8':
147 | resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==}
148 | engines: {node: '>=12'}
149 | cpu: [loong64]
150 | os: [linux]
151 |
152 | '@esbuild/linux-mips64el@0.19.8':
153 | resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==}
154 | engines: {node: '>=12'}
155 | cpu: [mips64el]
156 | os: [linux]
157 |
158 | '@esbuild/linux-ppc64@0.19.8':
159 | resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==}
160 | engines: {node: '>=12'}
161 | cpu: [ppc64]
162 | os: [linux]
163 |
164 | '@esbuild/linux-riscv64@0.19.8':
165 | resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==}
166 | engines: {node: '>=12'}
167 | cpu: [riscv64]
168 | os: [linux]
169 |
170 | '@esbuild/linux-s390x@0.19.8':
171 | resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==}
172 | engines: {node: '>=12'}
173 | cpu: [s390x]
174 | os: [linux]
175 |
176 | '@esbuild/linux-x64@0.19.8':
177 | resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==}
178 | engines: {node: '>=12'}
179 | cpu: [x64]
180 | os: [linux]
181 |
182 | '@esbuild/netbsd-x64@0.19.8':
183 | resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==}
184 | engines: {node: '>=12'}
185 | cpu: [x64]
186 | os: [netbsd]
187 |
188 | '@esbuild/openbsd-x64@0.19.8':
189 | resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==}
190 | engines: {node: '>=12'}
191 | cpu: [x64]
192 | os: [openbsd]
193 |
194 | '@esbuild/sunos-x64@0.19.8':
195 | resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==}
196 | engines: {node: '>=12'}
197 | cpu: [x64]
198 | os: [sunos]
199 |
200 | '@esbuild/win32-arm64@0.19.8':
201 | resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==}
202 | engines: {node: '>=12'}
203 | cpu: [arm64]
204 | os: [win32]
205 |
206 | '@esbuild/win32-ia32@0.19.8':
207 | resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==}
208 | engines: {node: '>=12'}
209 | cpu: [ia32]
210 | os: [win32]
211 |
212 | '@esbuild/win32-x64@0.19.8':
213 | resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==}
214 | engines: {node: '>=12'}
215 | cpu: [x64]
216 | os: [win32]
217 |
218 | '@jridgewell/gen-mapping@0.3.3':
219 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
220 | engines: {node: '>=6.0.0'}
221 |
222 | '@jridgewell/resolve-uri@3.1.1':
223 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
224 | engines: {node: '>=6.0.0'}
225 |
226 | '@jridgewell/set-array@1.1.2':
227 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
228 | engines: {node: '>=6.0.0'}
229 |
230 | '@jridgewell/sourcemap-codec@1.4.15':
231 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
232 |
233 | '@jridgewell/trace-mapping@0.3.20':
234 | resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
235 |
236 | '@nodelib/fs.scandir@2.1.5':
237 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
238 | engines: {node: '>= 8'}
239 |
240 | '@nodelib/fs.stat@2.0.5':
241 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
242 | engines: {node: '>= 8'}
243 |
244 | '@nodelib/fs.walk@1.2.8':
245 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
246 | engines: {node: '>= 8'}
247 |
248 | '@rollup/rollup-android-arm-eabi@4.7.0':
249 | resolution: {integrity: sha512-rGku10pL1StFlFvXX5pEv88KdGW6DHUghsxyP/aRYb9eH+74jTGJ3U0S/rtlsQ4yYq1Hcc7AMkoJOb1xu29Fxw==}
250 | cpu: [arm]
251 | os: [android]
252 |
253 | '@rollup/rollup-android-arm64@4.7.0':
254 | resolution: {integrity: sha512-/EBw0cuJ/KVHiU2qyVYUhogXz7W2vXxBzeE9xtVIMC+RyitlY2vvaoysMUqASpkUtoNIHlnKTu/l7mXOPgnKOA==}
255 | cpu: [arm64]
256 | os: [android]
257 |
258 | '@rollup/rollup-darwin-arm64@4.7.0':
259 | resolution: {integrity: sha512-4VXG1bgvClJdbEYYjQ85RkOtwN8sqI3uCxH0HC5w9fKdqzRzgG39K7GAehATGS8jghA7zNoS5CjSKkDEqWmNZg==}
260 | cpu: [arm64]
261 | os: [darwin]
262 |
263 | '@rollup/rollup-darwin-x64@4.7.0':
264 | resolution: {integrity: sha512-/ImhO+T/RWJ96hUbxiCn2yWI0/MeQZV/aeukQQfhxiSXuZJfyqtdHPUPrc84jxCfXTxbJLmg4q+GBETeb61aNw==}
265 | cpu: [x64]
266 | os: [darwin]
267 |
268 | '@rollup/rollup-linux-arm-gnueabihf@4.7.0':
269 | resolution: {integrity: sha512-zhye8POvTyUXlKbfPBVqoHy3t43gIgffY+7qBFqFxNqVtltQLtWeHNAbrMnXiLIfYmxcoL/feuLDote2tx+Qbg==}
270 | cpu: [arm]
271 | os: [linux]
272 |
273 | '@rollup/rollup-linux-arm64-gnu@4.7.0':
274 | resolution: {integrity: sha512-RAdr3OJnUum6Vs83cQmKjxdTg31zJnLLTkjhcFt0auxM6jw00GD6IPFF42uasYPr/wGC6TRm7FsQiJyk0qIEfg==}
275 | cpu: [arm64]
276 | os: [linux]
277 |
278 | '@rollup/rollup-linux-arm64-musl@4.7.0':
279 | resolution: {integrity: sha512-nhWwYsiJwZGq7SyR3afS3EekEOsEAlrNMpPC4ZDKn5ooYSEjDLe9W/xGvoIV8/F/+HNIY6jY8lIdXjjxfxopXw==}
280 | cpu: [arm64]
281 | os: [linux]
282 |
283 | '@rollup/rollup-linux-riscv64-gnu@4.7.0':
284 | resolution: {integrity: sha512-rlfy5RnQG1aop1BL/gjdH42M2geMUyVQqd52GJVirqYc787A/XVvl3kQ5NG/43KXgOgE9HXgCaEH05kzQ+hLoA==}
285 | cpu: [riscv64]
286 | os: [linux]
287 |
288 | '@rollup/rollup-linux-x64-gnu@4.7.0':
289 | resolution: {integrity: sha512-cCkoGlGWfBobdDtiiypxf79q6k3/iRVGu1HVLbD92gWV5WZbmuWJCgRM4x2N6i7ljGn1cGytPn9ZAfS8UwF6vg==}
290 | cpu: [x64]
291 | os: [linux]
292 |
293 | '@rollup/rollup-linux-x64-musl@4.7.0':
294 | resolution: {integrity: sha512-R2oBf2p/Arc1m+tWmiWbpHBjEcJnHVnv6bsypu4tcKdrYTpDfl1UT9qTyfkIL1iiii5D4WHxUHCg5X0pzqmxFg==}
295 | cpu: [x64]
296 | os: [linux]
297 |
298 | '@rollup/rollup-win32-arm64-msvc@4.7.0':
299 | resolution: {integrity: sha512-CPtgaQL1aaPc80m8SCVEoxFGHxKYIt3zQYC3AccL/SqqiWXblo3pgToHuBwR8eCP2Toa+X1WmTR/QKFMykws7g==}
300 | cpu: [arm64]
301 | os: [win32]
302 |
303 | '@rollup/rollup-win32-ia32-msvc@4.7.0':
304 | resolution: {integrity: sha512-pmioUlttNh9GXF5x2CzNa7Z8kmRTyhEzzAC+2WOOapjewMbl+3tGuAnxbwc5JyG8Jsz2+hf/QD/n5VjimOZ63g==}
305 | cpu: [ia32]
306 | os: [win32]
307 |
308 | '@rollup/rollup-win32-x64-msvc@4.7.0':
309 | resolution: {integrity: sha512-SeZzC2QhhdBQUm3U0c8+c/P6UlRyBcLL2Xp5KX7z46WXZxzR8RJSIWL9wSUeBTgxog5LTPJuPj0WOT9lvrtP7Q==}
310 | cpu: [x64]
311 | os: [win32]
312 |
313 | '@swc/core-darwin-arm64@1.3.100':
314 | resolution: {integrity: sha512-XVWFsKe6ei+SsDbwmsuRkYck1SXRpO60Hioa4hoLwR8fxbA9eVp6enZtMxzVVMBi8ej5seZ4HZQeAWepbukiBw==}
315 | engines: {node: '>=10'}
316 | cpu: [arm64]
317 | os: [darwin]
318 |
319 | '@swc/core-darwin-x64@1.3.100':
320 | resolution: {integrity: sha512-KF/MXrnH1nakm1wbt4XV8FS7kvqD9TGmVxeJ0U4bbvxXMvzeYUurzg3AJUTXYmXDhH/VXOYJE5N5RkwZZPs5iA==}
321 | engines: {node: '>=10'}
322 | cpu: [x64]
323 | os: [darwin]
324 |
325 | '@swc/core-linux-arm64-gnu@1.3.100':
326 | resolution: {integrity: sha512-p8hikNnAEJrw5vHCtKiFT4hdlQxk1V7vqPmvUDgL/qe2menQDK/i12tbz7/3BEQ4UqUPnvwpmVn2d19RdEMNxw==}
327 | engines: {node: '>=10'}
328 | cpu: [arm64]
329 | os: [linux]
330 |
331 | '@swc/core-linux-arm64-musl@1.3.100':
332 | resolution: {integrity: sha512-BWx/0EeY89WC4q3AaIaBSGfQxkYxIlS3mX19dwy2FWJs/O+fMvF9oLk/CyJPOZzbp+1DjGeeoGFuDYpiNO91JA==}
333 | engines: {node: '>=10'}
334 | cpu: [arm64]
335 | os: [linux]
336 |
337 | '@swc/core-linux-x64-gnu@1.3.100':
338 | resolution: {integrity: sha512-XUdGu3dxAkjsahLYnm8WijPfKebo+jHgHphDxaW0ovI6sTdmEGFDew7QzKZRlbYL2jRkUuuKuDGvD6lO5frmhA==}
339 | engines: {node: '>=10'}
340 | cpu: [x64]
341 | os: [linux]
342 |
343 | '@swc/core-linux-x64-musl@1.3.100':
344 | resolution: {integrity: sha512-PhoXKf+f0OaNW/GCuXjJ0/KfK9EJX7z2gko+7nVnEA0p3aaPtbP6cq1Ubbl6CMoPL+Ci3gZ7nYumDqXNc3CtLQ==}
345 | engines: {node: '>=10'}
346 | cpu: [x64]
347 | os: [linux]
348 |
349 | '@swc/core-win32-arm64-msvc@1.3.100':
350 | resolution: {integrity: sha512-PwLADZN6F9cXn4Jw52FeP/MCLVHm8vwouZZSOoOScDtihjY495SSjdPnlosMaRSR4wJQssGwiD/4MbpgQPqbAw==}
351 | engines: {node: '>=10'}
352 | cpu: [arm64]
353 | os: [win32]
354 |
355 | '@swc/core-win32-ia32-msvc@1.3.100':
356 | resolution: {integrity: sha512-0f6nicKSLlDKlyPRl2JEmkpBV4aeDfRQg6n8mPqgL7bliZIcDahG0ej+HxgNjZfS3e0yjDxsNRa6sAqWU2Z60A==}
357 | engines: {node: '>=10'}
358 | cpu: [ia32]
359 | os: [win32]
360 |
361 | '@swc/core-win32-x64-msvc@1.3.100':
362 | resolution: {integrity: sha512-b7J0rPoMkRTa3XyUGt8PwCaIBuYWsL2DqbirrQKRESzgCvif5iNpqaM6kjIjI/5y5q1Ycv564CB51YDpiS8EtQ==}
363 | engines: {node: '>=10'}
364 | cpu: [x64]
365 | os: [win32]
366 |
367 | '@swc/core@1.3.100':
368 | resolution: {integrity: sha512-7dKgTyxJjlrMwFZYb1auj3Xq0D8ZBe+5oeIgfMlRU05doXZypYJe0LAk0yjj3WdbwYzpF+T1PLxwTWizI0pckw==}
369 | engines: {node: '>=10'}
370 | peerDependencies:
371 | '@swc/helpers': ^0.5.0
372 | peerDependenciesMeta:
373 | '@swc/helpers':
374 | optional: true
375 |
376 | '@swc/counter@0.1.2':
377 | resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==}
378 |
379 | '@swc/types@0.1.5':
380 | resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==}
381 |
382 | '@tailwindcss/forms@0.5.7':
383 | resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==}
384 | peerDependencies:
385 | tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1'
386 |
387 | '@types/chrome@0.0.158':
388 | resolution: {integrity: sha512-sjBs9E/XDlYyLf3YkPYIN6sFZ/d9LbwMSK+BYphenFdkk39M5P8xcRfykk54RgZr8/QMex1yKlX5EB52TaqhsQ==}
389 |
390 | '@types/filesystem@0.0.35':
391 | resolution: {integrity: sha512-1eKvCaIBdrD2mmMgy5dwh564rVvfEhZTWVQQGRNn0Nt4ZEnJ0C8oSUCzvMKRA4lGde5oEVo+q2MrTTbV/GHDCQ==}
392 |
393 | '@types/filewriter@0.0.32':
394 | resolution: {integrity: sha512-Kpi2GXQyYJdjL8mFclL1eDgihn1SIzorMZjD94kdPZh9E4VxGOeyjPxi5LpsM4Zku7P0reqegZTt2GxhmA9VBg==}
395 |
396 | '@types/har-format@1.2.15':
397 | resolution: {integrity: sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==}
398 |
399 | '@types/hast@2.3.10':
400 | resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==}
401 |
402 | '@types/node@20.10.4':
403 | resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==}
404 |
405 | '@types/prop-types@15.7.11':
406 | resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==}
407 |
408 | '@types/react-dom@18.0.11':
409 | resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==}
410 |
411 | '@types/react-syntax-highlighter@15.5.13':
412 | resolution: {integrity: sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==}
413 |
414 | '@types/react@18.0.29':
415 | resolution: {integrity: sha512-wXHktgUABxplw1+UnljseDq4+uztQyp2tlWZRIxHlpchsCFqiYkvaDS8JR7eKOQm8wziTH/el5qL7D6gYNkYcw==}
416 |
417 | '@types/scheduler@0.16.8':
418 | resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==}
419 |
420 | '@types/unist@2.0.10':
421 | resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
422 |
423 | '@vitejs/plugin-react-swc@3.5.0':
424 | resolution: {integrity: sha512-1PrOvAaDpqlCV+Up8RkAh9qaiUjoDUcjtttyhXDKw53XA6Ve16SOp6cCOpRs8Dj8DqUQs6eTW5YkLcLJjrXAig==}
425 | peerDependencies:
426 | vite: ^4 || ^5
427 |
428 | '@zeabur/zeabur-js@0.0.1-alpha2':
429 | resolution: {integrity: sha512-QPrG0UziErZEKKkR1e6ZJwfFgDV6KNcDuLoHPbkS13ORmZN36ZE6KNJy8ILRjWzVOVGVrhj1i1lHEOwc1R9fAQ==}
430 |
431 | ansi-escapes@6.2.0:
432 | resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==}
433 | engines: {node: '>=14.16'}
434 |
435 | ansi-regex@6.0.1:
436 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
437 | engines: {node: '>=12'}
438 |
439 | ansi-styles@6.2.1:
440 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
441 | engines: {node: '>=12'}
442 |
443 | any-promise@1.3.0:
444 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
445 |
446 | anymatch@3.1.3:
447 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
448 | engines: {node: '>= 8'}
449 |
450 | arg@5.0.2:
451 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
452 |
453 | autoprefixer@10.4.16:
454 | resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==}
455 | engines: {node: ^10 || ^12 || >=14}
456 | hasBin: true
457 | peerDependencies:
458 | postcss: ^8.1.0
459 |
460 | balanced-match@1.0.2:
461 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
462 |
463 | binary-extensions@2.2.0:
464 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
465 | engines: {node: '>=8'}
466 |
467 | brace-expansion@1.1.11:
468 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
469 |
470 | braces@3.0.2:
471 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
472 | engines: {node: '>=8'}
473 |
474 | browserslist@4.22.2:
475 | resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==}
476 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
477 | hasBin: true
478 |
479 | camelcase-css@2.0.1:
480 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
481 | engines: {node: '>= 6'}
482 |
483 | caniuse-lite@1.0.30001566:
484 | resolution: {integrity: sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==}
485 |
486 | chalk@5.3.0:
487 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
488 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
489 |
490 | character-entities-legacy@1.1.4:
491 | resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
492 |
493 | character-entities@1.2.4:
494 | resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==}
495 |
496 | character-reference-invalid@1.1.4:
497 | resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
498 |
499 | chokidar@3.5.3:
500 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
501 | engines: {node: '>= 8.10.0'}
502 |
503 | cli-cursor@4.0.0:
504 | resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
505 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
506 |
507 | cli-truncate@4.0.0:
508 | resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
509 | engines: {node: '>=18'}
510 |
511 | colorette@2.0.20:
512 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
513 |
514 | comma-separated-tokens@1.0.8:
515 | resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==}
516 |
517 | commander@11.1.0:
518 | resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
519 | engines: {node: '>=16'}
520 |
521 | commander@4.1.1:
522 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
523 | engines: {node: '>= 6'}
524 |
525 | concat-map@0.0.1:
526 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
527 |
528 | core-util-is@1.0.3:
529 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
530 |
531 | cross-spawn@7.0.3:
532 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
533 | engines: {node: '>= 8'}
534 |
535 | cssesc@3.0.0:
536 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
537 | engines: {node: '>=4'}
538 | hasBin: true
539 |
540 | csstype@3.1.3:
541 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
542 |
543 | debug@4.3.4:
544 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
545 | engines: {node: '>=6.0'}
546 | peerDependencies:
547 | supports-color: '*'
548 | peerDependenciesMeta:
549 | supports-color:
550 | optional: true
551 |
552 | didyoumean@1.2.2:
553 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
554 |
555 | dlv@1.1.3:
556 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
557 |
558 | electron-to-chromium@1.4.608:
559 | resolution: {integrity: sha512-J2f/3iIIm3Mo0npneITZ2UPe4B1bg8fTNrFjD8715F/k1BvbviRuqYGkET1PgprrczXYTHFvotbBOmUp6KE0uA==}
560 |
561 | emoji-regex@10.3.0:
562 | resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==}
563 |
564 | esbuild@0.19.8:
565 | resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==}
566 | engines: {node: '>=12'}
567 | hasBin: true
568 |
569 | escalade@3.1.1:
570 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
571 | engines: {node: '>=6'}
572 |
573 | eventemitter3@5.0.1:
574 | resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
575 |
576 | execa@8.0.1:
577 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
578 | engines: {node: '>=16.17'}
579 |
580 | fast-glob@3.3.2:
581 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
582 | engines: {node: '>=8.6.0'}
583 |
584 | fastq@1.15.0:
585 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
586 |
587 | fault@1.0.4:
588 | resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==}
589 |
590 | fill-range@7.0.1:
591 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
592 | engines: {node: '>=8'}
593 |
594 | format@0.2.2:
595 | resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
596 | engines: {node: '>=0.4.x'}
597 |
598 | fraction.js@4.3.7:
599 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
600 |
601 | fs.realpath@1.0.0:
602 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
603 |
604 | fsevents@2.3.3:
605 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
606 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
607 | os: [darwin]
608 |
609 | function-bind@1.1.2:
610 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
611 |
612 | get-east-asian-width@1.2.0:
613 | resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
614 | engines: {node: '>=18'}
615 |
616 | get-stream@8.0.1:
617 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
618 | engines: {node: '>=16'}
619 |
620 | glob-parent@5.1.2:
621 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
622 | engines: {node: '>= 6'}
623 |
624 | glob-parent@6.0.2:
625 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
626 | engines: {node: '>=10.13.0'}
627 |
628 | glob@7.1.6:
629 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
630 |
631 | hasown@2.0.0:
632 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
633 | engines: {node: '>= 0.4'}
634 |
635 | hast-util-parse-selector@2.2.5:
636 | resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==}
637 |
638 | hastscript@6.0.0:
639 | resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==}
640 |
641 | highlight.js@10.7.3:
642 | resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==}
643 |
644 | human-signals@5.0.0:
645 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
646 | engines: {node: '>=16.17.0'}
647 |
648 | husky@8.0.3:
649 | resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==}
650 | engines: {node: '>=14'}
651 | hasBin: true
652 |
653 | immediate@3.0.6:
654 | resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
655 |
656 | inflight@1.0.6:
657 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
658 |
659 | inherits@2.0.4:
660 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
661 |
662 | is-alphabetical@1.0.4:
663 | resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
664 |
665 | is-alphanumerical@1.0.4:
666 | resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==}
667 |
668 | is-binary-path@2.1.0:
669 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
670 | engines: {node: '>=8'}
671 |
672 | is-core-module@2.13.1:
673 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
674 |
675 | is-decimal@1.0.4:
676 | resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
677 |
678 | is-extglob@2.1.1:
679 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
680 | engines: {node: '>=0.10.0'}
681 |
682 | is-fullwidth-code-point@4.0.0:
683 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
684 | engines: {node: '>=12'}
685 |
686 | is-fullwidth-code-point@5.0.0:
687 | resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
688 | engines: {node: '>=18'}
689 |
690 | is-glob@4.0.3:
691 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
692 | engines: {node: '>=0.10.0'}
693 |
694 | is-hexadecimal@1.0.4:
695 | resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
696 |
697 | is-number@7.0.0:
698 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
699 | engines: {node: '>=0.12.0'}
700 |
701 | is-stream@3.0.0:
702 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
703 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
704 |
705 | isarray@1.0.0:
706 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
707 |
708 | isexe@2.0.0:
709 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
710 |
711 | jiti@1.21.0:
712 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
713 | hasBin: true
714 |
715 | js-tokens@4.0.0:
716 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
717 |
718 | jszip@3.10.1:
719 | resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
720 |
721 | lie@3.3.0:
722 | resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
723 |
724 | lilconfig@2.1.0:
725 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
726 | engines: {node: '>=10'}
727 |
728 | lilconfig@3.0.0:
729 | resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==}
730 | engines: {node: '>=14'}
731 |
732 | lines-and-columns@1.2.4:
733 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
734 |
735 | lint-staged@15.2.0:
736 | resolution: {integrity: sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ==}
737 | engines: {node: '>=18.12.0'}
738 | hasBin: true
739 |
740 | listr2@8.0.0:
741 | resolution: {integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==}
742 | engines: {node: '>=18.0.0'}
743 |
744 | log-update@6.0.0:
745 | resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==}
746 | engines: {node: '>=18'}
747 |
748 | loose-envify@1.4.0:
749 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
750 | hasBin: true
751 |
752 | lowlight@1.20.0:
753 | resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==}
754 |
755 | merge-stream@2.0.0:
756 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
757 |
758 | merge2@1.4.1:
759 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
760 | engines: {node: '>= 8'}
761 |
762 | micromatch@4.0.5:
763 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
764 | engines: {node: '>=8.6'}
765 |
766 | mimic-fn@2.1.0:
767 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
768 | engines: {node: '>=6'}
769 |
770 | mimic-fn@4.0.0:
771 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
772 | engines: {node: '>=12'}
773 |
774 | mini-svg-data-uri@1.4.4:
775 | resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
776 | hasBin: true
777 |
778 | minimatch@3.1.2:
779 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
780 |
781 | ms@2.1.2:
782 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
783 |
784 | mz@2.7.0:
785 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
786 |
787 | nanoid@3.3.7:
788 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
789 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
790 | hasBin: true
791 |
792 | node-releases@2.0.14:
793 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
794 |
795 | normalize-path@3.0.0:
796 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
797 | engines: {node: '>=0.10.0'}
798 |
799 | normalize-range@0.1.2:
800 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
801 | engines: {node: '>=0.10.0'}
802 |
803 | npm-run-path@5.1.0:
804 | resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
805 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
806 |
807 | object-assign@4.1.1:
808 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
809 | engines: {node: '>=0.10.0'}
810 |
811 | object-hash@3.0.0:
812 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
813 | engines: {node: '>= 6'}
814 |
815 | once@1.4.0:
816 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
817 |
818 | onetime@5.1.2:
819 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
820 | engines: {node: '>=6'}
821 |
822 | onetime@6.0.0:
823 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
824 | engines: {node: '>=12'}
825 |
826 | pako@1.0.11:
827 | resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
828 |
829 | parse-entities@2.0.0:
830 | resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==}
831 |
832 | path-is-absolute@1.0.1:
833 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
834 | engines: {node: '>=0.10.0'}
835 |
836 | path-key@3.1.1:
837 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
838 | engines: {node: '>=8'}
839 |
840 | path-key@4.0.0:
841 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
842 | engines: {node: '>=12'}
843 |
844 | path-parse@1.0.7:
845 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
846 |
847 | picocolors@1.0.0:
848 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
849 |
850 | picomatch@2.3.1:
851 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
852 | engines: {node: '>=8.6'}
853 |
854 | pidtree@0.6.0:
855 | resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
856 | engines: {node: '>=0.10'}
857 | hasBin: true
858 |
859 | pify@2.3.0:
860 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
861 | engines: {node: '>=0.10.0'}
862 |
863 | pirates@4.0.6:
864 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
865 | engines: {node: '>= 6'}
866 |
867 | postcss-import@15.1.0:
868 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
869 | engines: {node: '>=14.0.0'}
870 | peerDependencies:
871 | postcss: ^8.0.0
872 |
873 | postcss-js@4.0.1:
874 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
875 | engines: {node: ^12 || ^14 || >= 16}
876 | peerDependencies:
877 | postcss: ^8.4.21
878 |
879 | postcss-load-config@4.0.2:
880 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
881 | engines: {node: '>= 14'}
882 | peerDependencies:
883 | postcss: '>=8.0.9'
884 | ts-node: '>=9.0.0'
885 | peerDependenciesMeta:
886 | postcss:
887 | optional: true
888 | ts-node:
889 | optional: true
890 |
891 | postcss-nested@6.0.1:
892 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
893 | engines: {node: '>=12.0'}
894 | peerDependencies:
895 | postcss: ^8.2.14
896 |
897 | postcss-selector-parser@6.0.13:
898 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
899 | engines: {node: '>=4'}
900 |
901 | postcss-value-parser@4.2.0:
902 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
903 |
904 | postcss@8.4.32:
905 | resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==}
906 | engines: {node: ^10 || ^12 || >=14}
907 |
908 | prettier@2.2.1:
909 | resolution: {integrity: sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==}
910 | engines: {node: '>=10.13.0'}
911 | hasBin: true
912 |
913 | prismjs@1.27.0:
914 | resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==}
915 | engines: {node: '>=6'}
916 |
917 | prismjs@1.29.0:
918 | resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
919 | engines: {node: '>=6'}
920 |
921 | process-nextick-args@2.0.1:
922 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
923 |
924 | property-information@5.6.0:
925 | resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==}
926 |
927 | queue-microtask@1.2.3:
928 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
929 |
930 | react-dom@18.2.0:
931 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
932 | peerDependencies:
933 | react: ^18.2.0
934 |
935 | react-syntax-highlighter@15.5.0:
936 | resolution: {integrity: sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==}
937 | peerDependencies:
938 | react: '>= 0.14.0'
939 |
940 | react@18.2.0:
941 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
942 | engines: {node: '>=0.10.0'}
943 |
944 | read-cache@1.0.0:
945 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
946 |
947 | readable-stream@2.3.8:
948 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
949 |
950 | readdirp@3.6.0:
951 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
952 | engines: {node: '>=8.10.0'}
953 |
954 | refractor@3.6.0:
955 | resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==}
956 |
957 | regenerator-runtime@0.14.1:
958 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
959 |
960 | resolve@1.22.8:
961 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
962 | hasBin: true
963 |
964 | restore-cursor@4.0.0:
965 | resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
966 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
967 |
968 | reusify@1.0.4:
969 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
970 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
971 |
972 | rfdc@1.3.0:
973 | resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==}
974 |
975 | rollup@4.7.0:
976 | resolution: {integrity: sha512-7Kw0dUP4BWH78zaZCqF1rPyQ8D5DSU6URG45v1dqS/faNsx9WXyess00uTOZxKr7oR/4TOjO1CPudT8L1UsEgw==}
977 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
978 | hasBin: true
979 |
980 | run-parallel@1.2.0:
981 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
982 |
983 | safe-buffer@5.1.2:
984 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
985 |
986 | scheduler@0.23.0:
987 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
988 |
989 | setimmediate@1.0.5:
990 | resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
991 |
992 | shebang-command@2.0.0:
993 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
994 | engines: {node: '>=8'}
995 |
996 | shebang-regex@3.0.0:
997 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
998 | engines: {node: '>=8'}
999 |
1000 | shell-quote@1.8.1:
1001 | resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
1002 |
1003 | signal-exit@3.0.7:
1004 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
1005 |
1006 | signal-exit@4.1.0:
1007 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
1008 | engines: {node: '>=14'}
1009 |
1010 | slice-ansi@5.0.0:
1011 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
1012 | engines: {node: '>=12'}
1013 |
1014 | slice-ansi@7.1.0:
1015 | resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
1016 | engines: {node: '>=18'}
1017 |
1018 | source-map-js@1.0.2:
1019 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1020 | engines: {node: '>=0.10.0'}
1021 |
1022 | space-separated-tokens@1.1.5:
1023 | resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==}
1024 |
1025 | string-argv@0.3.2:
1026 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
1027 | engines: {node: '>=0.6.19'}
1028 |
1029 | string-width@7.0.0:
1030 | resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==}
1031 | engines: {node: '>=18'}
1032 |
1033 | string_decoder@1.1.1:
1034 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
1035 |
1036 | strip-ansi@7.1.0:
1037 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1038 | engines: {node: '>=12'}
1039 |
1040 | strip-final-newline@3.0.0:
1041 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
1042 | engines: {node: '>=12'}
1043 |
1044 | sucrase@3.34.0:
1045 | resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==}
1046 | engines: {node: '>=8'}
1047 | hasBin: true
1048 |
1049 | supports-preserve-symlinks-flag@1.0.0:
1050 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1051 | engines: {node: '>= 0.4'}
1052 |
1053 | tailwindcss@3.3.6:
1054 | resolution: {integrity: sha512-AKjF7qbbLvLaPieoKeTjG1+FyNZT6KaJMJPFeQyLfIp7l82ggH1fbHJSsYIvnbTFQOlkh+gBYpyby5GT1LIdLw==}
1055 | engines: {node: '>=14.0.0'}
1056 | hasBin: true
1057 |
1058 | thenify-all@1.6.0:
1059 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
1060 | engines: {node: '>=0.8'}
1061 |
1062 | thenify@3.3.1:
1063 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1064 |
1065 | to-regex-range@5.0.1:
1066 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1067 | engines: {node: '>=8.0'}
1068 |
1069 | ts-interface-checker@0.1.13:
1070 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1071 |
1072 | type-fest@3.13.1:
1073 | resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==}
1074 | engines: {node: '>=14.16'}
1075 |
1076 | typescript@5.0.4:
1077 | resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==}
1078 | engines: {node: '>=12.20'}
1079 | hasBin: true
1080 |
1081 | undici-types@5.26.5:
1082 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
1083 |
1084 | update-browserslist-db@1.0.13:
1085 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
1086 | hasBin: true
1087 | peerDependencies:
1088 | browserslist: '>= 4.21.0'
1089 |
1090 | util-deprecate@1.0.2:
1091 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1092 |
1093 | vite@5.0.7:
1094 | resolution: {integrity: sha512-B4T4rJCDPihrQo2B+h1MbeGL/k/GMAHzhQ8S0LjQ142s6/+l3hHTT095ORvsshj4QCkoWu3Xtmob5mazvakaOw==}
1095 | engines: {node: ^18.0.0 || >=20.0.0}
1096 | hasBin: true
1097 | peerDependencies:
1098 | '@types/node': ^18.0.0 || >=20.0.0
1099 | less: '*'
1100 | lightningcss: ^1.21.0
1101 | sass: '*'
1102 | stylus: '*'
1103 | sugarss: '*'
1104 | terser: ^5.4.0
1105 | peerDependenciesMeta:
1106 | '@types/node':
1107 | optional: true
1108 | less:
1109 | optional: true
1110 | lightningcss:
1111 | optional: true
1112 | sass:
1113 | optional: true
1114 | stylus:
1115 | optional: true
1116 | sugarss:
1117 | optional: true
1118 | terser:
1119 | optional: true
1120 |
1121 | which@2.0.2:
1122 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1123 | engines: {node: '>= 8'}
1124 | hasBin: true
1125 |
1126 | wrap-ansi@9.0.0:
1127 | resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==}
1128 | engines: {node: '>=18'}
1129 |
1130 | wrappy@1.0.2:
1131 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1132 |
1133 | xtend@4.0.2:
1134 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
1135 | engines: {node: '>=0.4'}
1136 |
1137 | yaml@2.3.4:
1138 | resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
1139 | engines: {node: '>= 14'}
1140 |
1141 | snapshots:
1142 |
1143 | '@alloc/quick-lru@5.2.0': {}
1144 |
1145 | '@babel/runtime@7.24.7':
1146 | dependencies:
1147 | regenerator-runtime: 0.14.1
1148 |
1149 | '@esbuild/android-arm64@0.19.8':
1150 | optional: true
1151 |
1152 | '@esbuild/android-arm@0.19.8':
1153 | optional: true
1154 |
1155 | '@esbuild/android-x64@0.19.8':
1156 | optional: true
1157 |
1158 | '@esbuild/darwin-arm64@0.19.8':
1159 | optional: true
1160 |
1161 | '@esbuild/darwin-x64@0.19.8':
1162 | optional: true
1163 |
1164 | '@esbuild/freebsd-arm64@0.19.8':
1165 | optional: true
1166 |
1167 | '@esbuild/freebsd-x64@0.19.8':
1168 | optional: true
1169 |
1170 | '@esbuild/linux-arm64@0.19.8':
1171 | optional: true
1172 |
1173 | '@esbuild/linux-arm@0.19.8':
1174 | optional: true
1175 |
1176 | '@esbuild/linux-ia32@0.19.8':
1177 | optional: true
1178 |
1179 | '@esbuild/linux-loong64@0.19.8':
1180 | optional: true
1181 |
1182 | '@esbuild/linux-mips64el@0.19.8':
1183 | optional: true
1184 |
1185 | '@esbuild/linux-ppc64@0.19.8':
1186 | optional: true
1187 |
1188 | '@esbuild/linux-riscv64@0.19.8':
1189 | optional: true
1190 |
1191 | '@esbuild/linux-s390x@0.19.8':
1192 | optional: true
1193 |
1194 | '@esbuild/linux-x64@0.19.8':
1195 | optional: true
1196 |
1197 | '@esbuild/netbsd-x64@0.19.8':
1198 | optional: true
1199 |
1200 | '@esbuild/openbsd-x64@0.19.8':
1201 | optional: true
1202 |
1203 | '@esbuild/sunos-x64@0.19.8':
1204 | optional: true
1205 |
1206 | '@esbuild/win32-arm64@0.19.8':
1207 | optional: true
1208 |
1209 | '@esbuild/win32-ia32@0.19.8':
1210 | optional: true
1211 |
1212 | '@esbuild/win32-x64@0.19.8':
1213 | optional: true
1214 |
1215 | '@jridgewell/gen-mapping@0.3.3':
1216 | dependencies:
1217 | '@jridgewell/set-array': 1.1.2
1218 | '@jridgewell/sourcemap-codec': 1.4.15
1219 | '@jridgewell/trace-mapping': 0.3.20
1220 |
1221 | '@jridgewell/resolve-uri@3.1.1': {}
1222 |
1223 | '@jridgewell/set-array@1.1.2': {}
1224 |
1225 | '@jridgewell/sourcemap-codec@1.4.15': {}
1226 |
1227 | '@jridgewell/trace-mapping@0.3.20':
1228 | dependencies:
1229 | '@jridgewell/resolve-uri': 3.1.1
1230 | '@jridgewell/sourcemap-codec': 1.4.15
1231 |
1232 | '@nodelib/fs.scandir@2.1.5':
1233 | dependencies:
1234 | '@nodelib/fs.stat': 2.0.5
1235 | run-parallel: 1.2.0
1236 |
1237 | '@nodelib/fs.stat@2.0.5': {}
1238 |
1239 | '@nodelib/fs.walk@1.2.8':
1240 | dependencies:
1241 | '@nodelib/fs.scandir': 2.1.5
1242 | fastq: 1.15.0
1243 |
1244 | '@rollup/rollup-android-arm-eabi@4.7.0':
1245 | optional: true
1246 |
1247 | '@rollup/rollup-android-arm64@4.7.0':
1248 | optional: true
1249 |
1250 | '@rollup/rollup-darwin-arm64@4.7.0':
1251 | optional: true
1252 |
1253 | '@rollup/rollup-darwin-x64@4.7.0':
1254 | optional: true
1255 |
1256 | '@rollup/rollup-linux-arm-gnueabihf@4.7.0':
1257 | optional: true
1258 |
1259 | '@rollup/rollup-linux-arm64-gnu@4.7.0':
1260 | optional: true
1261 |
1262 | '@rollup/rollup-linux-arm64-musl@4.7.0':
1263 | optional: true
1264 |
1265 | '@rollup/rollup-linux-riscv64-gnu@4.7.0':
1266 | optional: true
1267 |
1268 | '@rollup/rollup-linux-x64-gnu@4.7.0':
1269 | optional: true
1270 |
1271 | '@rollup/rollup-linux-x64-musl@4.7.0':
1272 | optional: true
1273 |
1274 | '@rollup/rollup-win32-arm64-msvc@4.7.0':
1275 | optional: true
1276 |
1277 | '@rollup/rollup-win32-ia32-msvc@4.7.0':
1278 | optional: true
1279 |
1280 | '@rollup/rollup-win32-x64-msvc@4.7.0':
1281 | optional: true
1282 |
1283 | '@swc/core-darwin-arm64@1.3.100':
1284 | optional: true
1285 |
1286 | '@swc/core-darwin-x64@1.3.100':
1287 | optional: true
1288 |
1289 | '@swc/core-linux-arm64-gnu@1.3.100':
1290 | optional: true
1291 |
1292 | '@swc/core-linux-arm64-musl@1.3.100':
1293 | optional: true
1294 |
1295 | '@swc/core-linux-x64-gnu@1.3.100':
1296 | optional: true
1297 |
1298 | '@swc/core-linux-x64-musl@1.3.100':
1299 | optional: true
1300 |
1301 | '@swc/core-win32-arm64-msvc@1.3.100':
1302 | optional: true
1303 |
1304 | '@swc/core-win32-ia32-msvc@1.3.100':
1305 | optional: true
1306 |
1307 | '@swc/core-win32-x64-msvc@1.3.100':
1308 | optional: true
1309 |
1310 | '@swc/core@1.3.100':
1311 | dependencies:
1312 | '@swc/counter': 0.1.2
1313 | '@swc/types': 0.1.5
1314 | optionalDependencies:
1315 | '@swc/core-darwin-arm64': 1.3.100
1316 | '@swc/core-darwin-x64': 1.3.100
1317 | '@swc/core-linux-arm64-gnu': 1.3.100
1318 | '@swc/core-linux-arm64-musl': 1.3.100
1319 | '@swc/core-linux-x64-gnu': 1.3.100
1320 | '@swc/core-linux-x64-musl': 1.3.100
1321 | '@swc/core-win32-arm64-msvc': 1.3.100
1322 | '@swc/core-win32-ia32-msvc': 1.3.100
1323 | '@swc/core-win32-x64-msvc': 1.3.100
1324 |
1325 | '@swc/counter@0.1.2': {}
1326 |
1327 | '@swc/types@0.1.5': {}
1328 |
1329 | '@tailwindcss/forms@0.5.7(tailwindcss@3.3.6)':
1330 | dependencies:
1331 | mini-svg-data-uri: 1.4.4
1332 | tailwindcss: 3.3.6
1333 |
1334 | '@types/chrome@0.0.158':
1335 | dependencies:
1336 | '@types/filesystem': 0.0.35
1337 | '@types/har-format': 1.2.15
1338 |
1339 | '@types/filesystem@0.0.35':
1340 | dependencies:
1341 | '@types/filewriter': 0.0.32
1342 |
1343 | '@types/filewriter@0.0.32': {}
1344 |
1345 | '@types/har-format@1.2.15': {}
1346 |
1347 | '@types/hast@2.3.10':
1348 | dependencies:
1349 | '@types/unist': 2.0.10
1350 |
1351 | '@types/node@20.10.4':
1352 | dependencies:
1353 | undici-types: 5.26.5
1354 |
1355 | '@types/prop-types@15.7.11': {}
1356 |
1357 | '@types/react-dom@18.0.11':
1358 | dependencies:
1359 | '@types/react': 18.0.29
1360 |
1361 | '@types/react-syntax-highlighter@15.5.13':
1362 | dependencies:
1363 | '@types/react': 18.0.29
1364 |
1365 | '@types/react@18.0.29':
1366 | dependencies:
1367 | '@types/prop-types': 15.7.11
1368 | '@types/scheduler': 0.16.8
1369 | csstype: 3.1.3
1370 |
1371 | '@types/scheduler@0.16.8': {}
1372 |
1373 | '@types/unist@2.0.10': {}
1374 |
1375 | '@vitejs/plugin-react-swc@3.5.0(vite@5.0.7(@types/node@20.10.4))':
1376 | dependencies:
1377 | '@swc/core': 1.3.100
1378 | vite: 5.0.7(@types/node@20.10.4)
1379 | transitivePeerDependencies:
1380 | - '@swc/helpers'
1381 |
1382 | '@zeabur/zeabur-js@0.0.1-alpha2': {}
1383 |
1384 | ansi-escapes@6.2.0:
1385 | dependencies:
1386 | type-fest: 3.13.1
1387 |
1388 | ansi-regex@6.0.1: {}
1389 |
1390 | ansi-styles@6.2.1: {}
1391 |
1392 | any-promise@1.3.0: {}
1393 |
1394 | anymatch@3.1.3:
1395 | dependencies:
1396 | normalize-path: 3.0.0
1397 | picomatch: 2.3.1
1398 |
1399 | arg@5.0.2: {}
1400 |
1401 | autoprefixer@10.4.16(postcss@8.4.32):
1402 | dependencies:
1403 | browserslist: 4.22.2
1404 | caniuse-lite: 1.0.30001566
1405 | fraction.js: 4.3.7
1406 | normalize-range: 0.1.2
1407 | picocolors: 1.0.0
1408 | postcss: 8.4.32
1409 | postcss-value-parser: 4.2.0
1410 |
1411 | balanced-match@1.0.2: {}
1412 |
1413 | binary-extensions@2.2.0: {}
1414 |
1415 | brace-expansion@1.1.11:
1416 | dependencies:
1417 | balanced-match: 1.0.2
1418 | concat-map: 0.0.1
1419 |
1420 | braces@3.0.2:
1421 | dependencies:
1422 | fill-range: 7.0.1
1423 |
1424 | browserslist@4.22.2:
1425 | dependencies:
1426 | caniuse-lite: 1.0.30001566
1427 | electron-to-chromium: 1.4.608
1428 | node-releases: 2.0.14
1429 | update-browserslist-db: 1.0.13(browserslist@4.22.2)
1430 |
1431 | camelcase-css@2.0.1: {}
1432 |
1433 | caniuse-lite@1.0.30001566: {}
1434 |
1435 | chalk@5.3.0: {}
1436 |
1437 | character-entities-legacy@1.1.4: {}
1438 |
1439 | character-entities@1.2.4: {}
1440 |
1441 | character-reference-invalid@1.1.4: {}
1442 |
1443 | chokidar@3.5.3:
1444 | dependencies:
1445 | anymatch: 3.1.3
1446 | braces: 3.0.2
1447 | glob-parent: 5.1.2
1448 | is-binary-path: 2.1.0
1449 | is-glob: 4.0.3
1450 | normalize-path: 3.0.0
1451 | readdirp: 3.6.0
1452 | optionalDependencies:
1453 | fsevents: 2.3.3
1454 |
1455 | cli-cursor@4.0.0:
1456 | dependencies:
1457 | restore-cursor: 4.0.0
1458 |
1459 | cli-truncate@4.0.0:
1460 | dependencies:
1461 | slice-ansi: 5.0.0
1462 | string-width: 7.0.0
1463 |
1464 | colorette@2.0.20: {}
1465 |
1466 | comma-separated-tokens@1.0.8: {}
1467 |
1468 | commander@11.1.0: {}
1469 |
1470 | commander@4.1.1: {}
1471 |
1472 | concat-map@0.0.1: {}
1473 |
1474 | core-util-is@1.0.3: {}
1475 |
1476 | cross-spawn@7.0.3:
1477 | dependencies:
1478 | path-key: 3.1.1
1479 | shebang-command: 2.0.0
1480 | which: 2.0.2
1481 |
1482 | cssesc@3.0.0: {}
1483 |
1484 | csstype@3.1.3: {}
1485 |
1486 | debug@4.3.4:
1487 | dependencies:
1488 | ms: 2.1.2
1489 |
1490 | didyoumean@1.2.2: {}
1491 |
1492 | dlv@1.1.3: {}
1493 |
1494 | electron-to-chromium@1.4.608: {}
1495 |
1496 | emoji-regex@10.3.0: {}
1497 |
1498 | esbuild@0.19.8:
1499 | optionalDependencies:
1500 | '@esbuild/android-arm': 0.19.8
1501 | '@esbuild/android-arm64': 0.19.8
1502 | '@esbuild/android-x64': 0.19.8
1503 | '@esbuild/darwin-arm64': 0.19.8
1504 | '@esbuild/darwin-x64': 0.19.8
1505 | '@esbuild/freebsd-arm64': 0.19.8
1506 | '@esbuild/freebsd-x64': 0.19.8
1507 | '@esbuild/linux-arm': 0.19.8
1508 | '@esbuild/linux-arm64': 0.19.8
1509 | '@esbuild/linux-ia32': 0.19.8
1510 | '@esbuild/linux-loong64': 0.19.8
1511 | '@esbuild/linux-mips64el': 0.19.8
1512 | '@esbuild/linux-ppc64': 0.19.8
1513 | '@esbuild/linux-riscv64': 0.19.8
1514 | '@esbuild/linux-s390x': 0.19.8
1515 | '@esbuild/linux-x64': 0.19.8
1516 | '@esbuild/netbsd-x64': 0.19.8
1517 | '@esbuild/openbsd-x64': 0.19.8
1518 | '@esbuild/sunos-x64': 0.19.8
1519 | '@esbuild/win32-arm64': 0.19.8
1520 | '@esbuild/win32-ia32': 0.19.8
1521 | '@esbuild/win32-x64': 0.19.8
1522 |
1523 | escalade@3.1.1: {}
1524 |
1525 | eventemitter3@5.0.1: {}
1526 |
1527 | execa@8.0.1:
1528 | dependencies:
1529 | cross-spawn: 7.0.3
1530 | get-stream: 8.0.1
1531 | human-signals: 5.0.0
1532 | is-stream: 3.0.0
1533 | merge-stream: 2.0.0
1534 | npm-run-path: 5.1.0
1535 | onetime: 6.0.0
1536 | signal-exit: 4.1.0
1537 | strip-final-newline: 3.0.0
1538 |
1539 | fast-glob@3.3.2:
1540 | dependencies:
1541 | '@nodelib/fs.stat': 2.0.5
1542 | '@nodelib/fs.walk': 1.2.8
1543 | glob-parent: 5.1.2
1544 | merge2: 1.4.1
1545 | micromatch: 4.0.5
1546 |
1547 | fastq@1.15.0:
1548 | dependencies:
1549 | reusify: 1.0.4
1550 |
1551 | fault@1.0.4:
1552 | dependencies:
1553 | format: 0.2.2
1554 |
1555 | fill-range@7.0.1:
1556 | dependencies:
1557 | to-regex-range: 5.0.1
1558 |
1559 | format@0.2.2: {}
1560 |
1561 | fraction.js@4.3.7: {}
1562 |
1563 | fs.realpath@1.0.0: {}
1564 |
1565 | fsevents@2.3.3:
1566 | optional: true
1567 |
1568 | function-bind@1.1.2: {}
1569 |
1570 | get-east-asian-width@1.2.0: {}
1571 |
1572 | get-stream@8.0.1: {}
1573 |
1574 | glob-parent@5.1.2:
1575 | dependencies:
1576 | is-glob: 4.0.3
1577 |
1578 | glob-parent@6.0.2:
1579 | dependencies:
1580 | is-glob: 4.0.3
1581 |
1582 | glob@7.1.6:
1583 | dependencies:
1584 | fs.realpath: 1.0.0
1585 | inflight: 1.0.6
1586 | inherits: 2.0.4
1587 | minimatch: 3.1.2
1588 | once: 1.4.0
1589 | path-is-absolute: 1.0.1
1590 |
1591 | hasown@2.0.0:
1592 | dependencies:
1593 | function-bind: 1.1.2
1594 |
1595 | hast-util-parse-selector@2.2.5: {}
1596 |
1597 | hastscript@6.0.0:
1598 | dependencies:
1599 | '@types/hast': 2.3.10
1600 | comma-separated-tokens: 1.0.8
1601 | hast-util-parse-selector: 2.2.5
1602 | property-information: 5.6.0
1603 | space-separated-tokens: 1.1.5
1604 |
1605 | highlight.js@10.7.3: {}
1606 |
1607 | human-signals@5.0.0: {}
1608 |
1609 | husky@8.0.3: {}
1610 |
1611 | immediate@3.0.6: {}
1612 |
1613 | inflight@1.0.6:
1614 | dependencies:
1615 | once: 1.4.0
1616 | wrappy: 1.0.2
1617 |
1618 | inherits@2.0.4: {}
1619 |
1620 | is-alphabetical@1.0.4: {}
1621 |
1622 | is-alphanumerical@1.0.4:
1623 | dependencies:
1624 | is-alphabetical: 1.0.4
1625 | is-decimal: 1.0.4
1626 |
1627 | is-binary-path@2.1.0:
1628 | dependencies:
1629 | binary-extensions: 2.2.0
1630 |
1631 | is-core-module@2.13.1:
1632 | dependencies:
1633 | hasown: 2.0.0
1634 |
1635 | is-decimal@1.0.4: {}
1636 |
1637 | is-extglob@2.1.1: {}
1638 |
1639 | is-fullwidth-code-point@4.0.0: {}
1640 |
1641 | is-fullwidth-code-point@5.0.0:
1642 | dependencies:
1643 | get-east-asian-width: 1.2.0
1644 |
1645 | is-glob@4.0.3:
1646 | dependencies:
1647 | is-extglob: 2.1.1
1648 |
1649 | is-hexadecimal@1.0.4: {}
1650 |
1651 | is-number@7.0.0: {}
1652 |
1653 | is-stream@3.0.0: {}
1654 |
1655 | isarray@1.0.0: {}
1656 |
1657 | isexe@2.0.0: {}
1658 |
1659 | jiti@1.21.0: {}
1660 |
1661 | js-tokens@4.0.0: {}
1662 |
1663 | jszip@3.10.1:
1664 | dependencies:
1665 | lie: 3.3.0
1666 | pako: 1.0.11
1667 | readable-stream: 2.3.8
1668 | setimmediate: 1.0.5
1669 |
1670 | lie@3.3.0:
1671 | dependencies:
1672 | immediate: 3.0.6
1673 |
1674 | lilconfig@2.1.0: {}
1675 |
1676 | lilconfig@3.0.0: {}
1677 |
1678 | lines-and-columns@1.2.4: {}
1679 |
1680 | lint-staged@15.2.0:
1681 | dependencies:
1682 | chalk: 5.3.0
1683 | commander: 11.1.0
1684 | debug: 4.3.4
1685 | execa: 8.0.1
1686 | lilconfig: 3.0.0
1687 | listr2: 8.0.0
1688 | micromatch: 4.0.5
1689 | pidtree: 0.6.0
1690 | string-argv: 0.3.2
1691 | yaml: 2.3.4
1692 | transitivePeerDependencies:
1693 | - supports-color
1694 |
1695 | listr2@8.0.0:
1696 | dependencies:
1697 | cli-truncate: 4.0.0
1698 | colorette: 2.0.20
1699 | eventemitter3: 5.0.1
1700 | log-update: 6.0.0
1701 | rfdc: 1.3.0
1702 | wrap-ansi: 9.0.0
1703 |
1704 | log-update@6.0.0:
1705 | dependencies:
1706 | ansi-escapes: 6.2.0
1707 | cli-cursor: 4.0.0
1708 | slice-ansi: 7.1.0
1709 | strip-ansi: 7.1.0
1710 | wrap-ansi: 9.0.0
1711 |
1712 | loose-envify@1.4.0:
1713 | dependencies:
1714 | js-tokens: 4.0.0
1715 |
1716 | lowlight@1.20.0:
1717 | dependencies:
1718 | fault: 1.0.4
1719 | highlight.js: 10.7.3
1720 |
1721 | merge-stream@2.0.0: {}
1722 |
1723 | merge2@1.4.1: {}
1724 |
1725 | micromatch@4.0.5:
1726 | dependencies:
1727 | braces: 3.0.2
1728 | picomatch: 2.3.1
1729 |
1730 | mimic-fn@2.1.0: {}
1731 |
1732 | mimic-fn@4.0.0: {}
1733 |
1734 | mini-svg-data-uri@1.4.4: {}
1735 |
1736 | minimatch@3.1.2:
1737 | dependencies:
1738 | brace-expansion: 1.1.11
1739 |
1740 | ms@2.1.2: {}
1741 |
1742 | mz@2.7.0:
1743 | dependencies:
1744 | any-promise: 1.3.0
1745 | object-assign: 4.1.1
1746 | thenify-all: 1.6.0
1747 |
1748 | nanoid@3.3.7: {}
1749 |
1750 | node-releases@2.0.14: {}
1751 |
1752 | normalize-path@3.0.0: {}
1753 |
1754 | normalize-range@0.1.2: {}
1755 |
1756 | npm-run-path@5.1.0:
1757 | dependencies:
1758 | path-key: 4.0.0
1759 |
1760 | object-assign@4.1.1: {}
1761 |
1762 | object-hash@3.0.0: {}
1763 |
1764 | once@1.4.0:
1765 | dependencies:
1766 | wrappy: 1.0.2
1767 |
1768 | onetime@5.1.2:
1769 | dependencies:
1770 | mimic-fn: 2.1.0
1771 |
1772 | onetime@6.0.0:
1773 | dependencies:
1774 | mimic-fn: 4.0.0
1775 |
1776 | pako@1.0.11: {}
1777 |
1778 | parse-entities@2.0.0:
1779 | dependencies:
1780 | character-entities: 1.2.4
1781 | character-entities-legacy: 1.1.4
1782 | character-reference-invalid: 1.1.4
1783 | is-alphanumerical: 1.0.4
1784 | is-decimal: 1.0.4
1785 | is-hexadecimal: 1.0.4
1786 |
1787 | path-is-absolute@1.0.1: {}
1788 |
1789 | path-key@3.1.1: {}
1790 |
1791 | path-key@4.0.0: {}
1792 |
1793 | path-parse@1.0.7: {}
1794 |
1795 | picocolors@1.0.0: {}
1796 |
1797 | picomatch@2.3.1: {}
1798 |
1799 | pidtree@0.6.0: {}
1800 |
1801 | pify@2.3.0: {}
1802 |
1803 | pirates@4.0.6: {}
1804 |
1805 | postcss-import@15.1.0(postcss@8.4.32):
1806 | dependencies:
1807 | postcss: 8.4.32
1808 | postcss-value-parser: 4.2.0
1809 | read-cache: 1.0.0
1810 | resolve: 1.22.8
1811 |
1812 | postcss-js@4.0.1(postcss@8.4.32):
1813 | dependencies:
1814 | camelcase-css: 2.0.1
1815 | postcss: 8.4.32
1816 |
1817 | postcss-load-config@4.0.2(postcss@8.4.32):
1818 | dependencies:
1819 | lilconfig: 3.0.0
1820 | yaml: 2.3.4
1821 | optionalDependencies:
1822 | postcss: 8.4.32
1823 |
1824 | postcss-nested@6.0.1(postcss@8.4.32):
1825 | dependencies:
1826 | postcss: 8.4.32
1827 | postcss-selector-parser: 6.0.13
1828 |
1829 | postcss-selector-parser@6.0.13:
1830 | dependencies:
1831 | cssesc: 3.0.0
1832 | util-deprecate: 1.0.2
1833 |
1834 | postcss-value-parser@4.2.0: {}
1835 |
1836 | postcss@8.4.32:
1837 | dependencies:
1838 | nanoid: 3.3.7
1839 | picocolors: 1.0.0
1840 | source-map-js: 1.0.2
1841 |
1842 | prettier@2.2.1: {}
1843 |
1844 | prismjs@1.27.0: {}
1845 |
1846 | prismjs@1.29.0: {}
1847 |
1848 | process-nextick-args@2.0.1: {}
1849 |
1850 | property-information@5.6.0:
1851 | dependencies:
1852 | xtend: 4.0.2
1853 |
1854 | queue-microtask@1.2.3: {}
1855 |
1856 | react-dom@18.2.0(react@18.2.0):
1857 | dependencies:
1858 | loose-envify: 1.4.0
1859 | react: 18.2.0
1860 | scheduler: 0.23.0
1861 |
1862 | react-syntax-highlighter@15.5.0(react@18.2.0):
1863 | dependencies:
1864 | '@babel/runtime': 7.24.7
1865 | highlight.js: 10.7.3
1866 | lowlight: 1.20.0
1867 | prismjs: 1.29.0
1868 | react: 18.2.0
1869 | refractor: 3.6.0
1870 |
1871 | react@18.2.0:
1872 | dependencies:
1873 | loose-envify: 1.4.0
1874 |
1875 | read-cache@1.0.0:
1876 | dependencies:
1877 | pify: 2.3.0
1878 |
1879 | readable-stream@2.3.8:
1880 | dependencies:
1881 | core-util-is: 1.0.3
1882 | inherits: 2.0.4
1883 | isarray: 1.0.0
1884 | process-nextick-args: 2.0.1
1885 | safe-buffer: 5.1.2
1886 | string_decoder: 1.1.1
1887 | util-deprecate: 1.0.2
1888 |
1889 | readdirp@3.6.0:
1890 | dependencies:
1891 | picomatch: 2.3.1
1892 |
1893 | refractor@3.6.0:
1894 | dependencies:
1895 | hastscript: 6.0.0
1896 | parse-entities: 2.0.0
1897 | prismjs: 1.27.0
1898 |
1899 | regenerator-runtime@0.14.1: {}
1900 |
1901 | resolve@1.22.8:
1902 | dependencies:
1903 | is-core-module: 2.13.1
1904 | path-parse: 1.0.7
1905 | supports-preserve-symlinks-flag: 1.0.0
1906 |
1907 | restore-cursor@4.0.0:
1908 | dependencies:
1909 | onetime: 5.1.2
1910 | signal-exit: 3.0.7
1911 |
1912 | reusify@1.0.4: {}
1913 |
1914 | rfdc@1.3.0: {}
1915 |
1916 | rollup@4.7.0:
1917 | optionalDependencies:
1918 | '@rollup/rollup-android-arm-eabi': 4.7.0
1919 | '@rollup/rollup-android-arm64': 4.7.0
1920 | '@rollup/rollup-darwin-arm64': 4.7.0
1921 | '@rollup/rollup-darwin-x64': 4.7.0
1922 | '@rollup/rollup-linux-arm-gnueabihf': 4.7.0
1923 | '@rollup/rollup-linux-arm64-gnu': 4.7.0
1924 | '@rollup/rollup-linux-arm64-musl': 4.7.0
1925 | '@rollup/rollup-linux-riscv64-gnu': 4.7.0
1926 | '@rollup/rollup-linux-x64-gnu': 4.7.0
1927 | '@rollup/rollup-linux-x64-musl': 4.7.0
1928 | '@rollup/rollup-win32-arm64-msvc': 4.7.0
1929 | '@rollup/rollup-win32-ia32-msvc': 4.7.0
1930 | '@rollup/rollup-win32-x64-msvc': 4.7.0
1931 | fsevents: 2.3.3
1932 |
1933 | run-parallel@1.2.0:
1934 | dependencies:
1935 | queue-microtask: 1.2.3
1936 |
1937 | safe-buffer@5.1.2: {}
1938 |
1939 | scheduler@0.23.0:
1940 | dependencies:
1941 | loose-envify: 1.4.0
1942 |
1943 | setimmediate@1.0.5: {}
1944 |
1945 | shebang-command@2.0.0:
1946 | dependencies:
1947 | shebang-regex: 3.0.0
1948 |
1949 | shebang-regex@3.0.0: {}
1950 |
1951 | shell-quote@1.8.1: {}
1952 |
1953 | signal-exit@3.0.7: {}
1954 |
1955 | signal-exit@4.1.0: {}
1956 |
1957 | slice-ansi@5.0.0:
1958 | dependencies:
1959 | ansi-styles: 6.2.1
1960 | is-fullwidth-code-point: 4.0.0
1961 |
1962 | slice-ansi@7.1.0:
1963 | dependencies:
1964 | ansi-styles: 6.2.1
1965 | is-fullwidth-code-point: 5.0.0
1966 |
1967 | source-map-js@1.0.2: {}
1968 |
1969 | space-separated-tokens@1.1.5: {}
1970 |
1971 | string-argv@0.3.2: {}
1972 |
1973 | string-width@7.0.0:
1974 | dependencies:
1975 | emoji-regex: 10.3.0
1976 | get-east-asian-width: 1.2.0
1977 | strip-ansi: 7.1.0
1978 |
1979 | string_decoder@1.1.1:
1980 | dependencies:
1981 | safe-buffer: 5.1.2
1982 |
1983 | strip-ansi@7.1.0:
1984 | dependencies:
1985 | ansi-regex: 6.0.1
1986 |
1987 | strip-final-newline@3.0.0: {}
1988 |
1989 | sucrase@3.34.0:
1990 | dependencies:
1991 | '@jridgewell/gen-mapping': 0.3.3
1992 | commander: 4.1.1
1993 | glob: 7.1.6
1994 | lines-and-columns: 1.2.4
1995 | mz: 2.7.0
1996 | pirates: 4.0.6
1997 | ts-interface-checker: 0.1.13
1998 |
1999 | supports-preserve-symlinks-flag@1.0.0: {}
2000 |
2001 | tailwindcss@3.3.6:
2002 | dependencies:
2003 | '@alloc/quick-lru': 5.2.0
2004 | arg: 5.0.2
2005 | chokidar: 3.5.3
2006 | didyoumean: 1.2.2
2007 | dlv: 1.1.3
2008 | fast-glob: 3.3.2
2009 | glob-parent: 6.0.2
2010 | is-glob: 4.0.3
2011 | jiti: 1.21.0
2012 | lilconfig: 2.1.0
2013 | micromatch: 4.0.5
2014 | normalize-path: 3.0.0
2015 | object-hash: 3.0.0
2016 | picocolors: 1.0.0
2017 | postcss: 8.4.32
2018 | postcss-import: 15.1.0(postcss@8.4.32)
2019 | postcss-js: 4.0.1(postcss@8.4.32)
2020 | postcss-load-config: 4.0.2(postcss@8.4.32)
2021 | postcss-nested: 6.0.1(postcss@8.4.32)
2022 | postcss-selector-parser: 6.0.13
2023 | resolve: 1.22.8
2024 | sucrase: 3.34.0
2025 | transitivePeerDependencies:
2026 | - ts-node
2027 |
2028 | thenify-all@1.6.0:
2029 | dependencies:
2030 | thenify: 3.3.1
2031 |
2032 | thenify@3.3.1:
2033 | dependencies:
2034 | any-promise: 1.3.0
2035 |
2036 | to-regex-range@5.0.1:
2037 | dependencies:
2038 | is-number: 7.0.0
2039 |
2040 | ts-interface-checker@0.1.13: {}
2041 |
2042 | type-fest@3.13.1: {}
2043 |
2044 | typescript@5.0.4: {}
2045 |
2046 | undici-types@5.26.5: {}
2047 |
2048 | update-browserslist-db@1.0.13(browserslist@4.22.2):
2049 | dependencies:
2050 | browserslist: 4.22.2
2051 | escalade: 3.1.1
2052 | picocolors: 1.0.0
2053 |
2054 | util-deprecate@1.0.2: {}
2055 |
2056 | vite@5.0.7(@types/node@20.10.4):
2057 | dependencies:
2058 | esbuild: 0.19.8
2059 | postcss: 8.4.32
2060 | rollup: 4.7.0
2061 | optionalDependencies:
2062 | '@types/node': 20.10.4
2063 | fsevents: 2.3.3
2064 |
2065 | which@2.0.2:
2066 | dependencies:
2067 | isexe: 2.0.0
2068 |
2069 | wrap-ansi@9.0.0:
2070 | dependencies:
2071 | ansi-styles: 6.2.1
2072 | string-width: 7.0.0
2073 | strip-ansi: 7.1.0
2074 |
2075 | wrappy@1.0.2: {}
2076 |
2077 | xtend@4.0.2: {}
2078 |
2079 | yaml@2.3.4: {}
2080 |
--------------------------------------------------------------------------------
/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/public/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MichaelYuhe/Artifacts-for-ChatGPT/2ade76cd55306bfc462a44f123e6222767923990/public/cover.png
--------------------------------------------------------------------------------
/public/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MichaelYuhe/Artifacts-for-ChatGPT/2ade76cd55306bfc462a44f123e6222767923990/public/icon.png
--------------------------------------------------------------------------------
/public/icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MichaelYuhe/Artifacts-for-ChatGPT/2ade76cd55306bfc462a44f123e6222767923990/public/icon128.png
--------------------------------------------------------------------------------
/public/icon16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MichaelYuhe/Artifacts-for-ChatGPT/2ade76cd55306bfc462a44f123e6222767923990/public/icon16.png
--------------------------------------------------------------------------------
/public/icon32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MichaelYuhe/Artifacts-for-ChatGPT/2ade76cd55306bfc462a44f123e6222767923990/public/icon32.png
--------------------------------------------------------------------------------
/public/icon48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MichaelYuhe/Artifacts-for-ChatGPT/2ade76cd55306bfc462a44f123e6222767923990/public/icon48.png
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "manifest_version": 3,
3 | "name": "Artifacts for ChatGPT",
4 | "description": "Instantly preview and deploy artifacts crafted by ChatGPT.",
5 | "version": "1.0",
6 | "options_ui": {
7 | "page": "options.html",
8 | "open_in_tab": true
9 | },
10 | "side_panel": {
11 | "default_path": "sidepanel.html"
12 | },
13 | "action": {
14 | "default_icon": "icon.png"
15 | },
16 | "content_scripts": [
17 | {
18 | "matches": [""],
19 | "js": ["content_script.js"]
20 | }
21 | ],
22 | "background": {
23 | "type": "module",
24 | "service_worker": "service_worker.js"
25 | },
26 | "permissions": ["sidePanel", "storage"],
27 | "host_permissions": [""]
28 | }
29 |
--------------------------------------------------------------------------------
/sidePanel.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Starter
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/background.ts:
--------------------------------------------------------------------------------
1 | // @ts-ignore
2 | chrome.sidePanel
3 | .setPanelBehavior({ openPanelOnActionClick: true })
4 | .catch((error: any) => console.error(error));
5 |
6 | chrome.storage.onChanged.addListener((changes, area) => {
7 | if (area === "local") {
8 | for (let [key, { oldValue, newValue }] of Object.entries(changes)) {
9 | chrome.runtime.sendMessage({ key, newValue });
10 | }
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/src/content-script.ts:
--------------------------------------------------------------------------------
1 | export interface Code {
2 | title: string;
3 | language: string;
4 | content: string;
5 | }
6 |
7 | const getCodes = () => {
8 | const pres = document.querySelectorAll("pre");
9 | if (!pres) return;
10 |
11 | const codes: Code[] = [];
12 |
13 | pres.forEach((pre) => {
14 | const header = pre.children[0].children[0];
15 | if (!header) return;
16 |
17 | const language = header.children[0];
18 | if (!language) return;
19 |
20 | const content = pre.children[0].children[1].children[0];
21 | if (!content) return;
22 |
23 | const title = language.textContent || "";
24 | let newTitle = title;
25 |
26 | let i = 1;
27 | while (codes.some((code) => code.title === newTitle)) {
28 | newTitle = `${title}-${i}`;
29 | i++;
30 | }
31 |
32 | codes.push({
33 | title: newTitle || "",
34 | language: language.textContent || "",
35 | content: content.textContent || "",
36 | });
37 | });
38 |
39 | chrome.storage.local.set({ codes: codes });
40 | };
41 |
42 | const observer = new MutationObserver((mutations) => {
43 | mutations.forEach((mutation) => {
44 | if (mutation.type === "childList") {
45 | getCodes();
46 | }
47 | });
48 | });
49 |
50 | observer.observe(document.body, { childList: true, subtree: true });
51 |
--------------------------------------------------------------------------------
/src/deploy.ts:
--------------------------------------------------------------------------------
1 | import JSZip from "jszip";
2 |
3 | const API_URL = "https://gateway.zeabur.com/graphql";
4 |
5 | async function deployToZeabur(codes: string, name: string, language: string) {
6 | const convertedName = convertTitle(name);
7 | const file = new File([codes], `index.${language}`, {
8 | type: "text/plain",
9 | });
10 |
11 | const zip = new JSZip();
12 |
13 | zip.file(file.name, file);
14 |
15 | const content = await zip.generateAsync({ type: "blob" });
16 | const domain = await deploy(content, convertedName);
17 |
18 | return domain;
19 | }
20 |
21 | async function createTemporaryProject(): Promise {
22 | try {
23 | const res = await fetch(API_URL, {
24 | method: "POST",
25 | headers: {
26 | "Content-Type": "application/json",
27 | },
28 | body: JSON.stringify({
29 | query: `mutation CreateTemporaryProject() {
30 | createTemporaryProject() {
31 | _id
32 | }
33 | }`,
34 | }),
35 | });
36 |
37 | const { data } = await res.json();
38 |
39 | return data.createTemporaryProject._id;
40 | } catch (error) {
41 | console.error(error);
42 | throw error;
43 | }
44 | }
45 |
46 | async function createService(
47 | projectID: string,
48 | serviceName: string
49 | ): Promise {
50 | try {
51 | const res = await fetch(API_URL, {
52 | method: "POST",
53 | headers: {
54 | "Content-Type": "application/json",
55 | },
56 | body: JSON.stringify({
57 | query: `mutation CreateService($projectID: ObjectID!, $template: ServiceTemplate!, $name: String!) {
58 | createService(projectID: $projectID, template: $template, name: $name) {
59 | _id
60 | }
61 | }`,
62 | variables: {
63 | projectID,
64 | template: "GIT",
65 | name: serviceName,
66 | },
67 | }),
68 | });
69 |
70 | const { data } = await res.json();
71 |
72 | return data.createService._id;
73 | } catch (error) {
74 | console.error(error);
75 | throw error;
76 | }
77 | }
78 |
79 | async function getEnvironment(projectID: string): Promise {
80 | try {
81 | const res = await fetch(API_URL, {
82 | method: "POST",
83 | headers: {
84 | "Content-Type": "application/json",
85 | },
86 | body: JSON.stringify({
87 | query: `query GetEnvironment($projectID: ObjectID!) {
88 | environments(projectID: $projectID) {
89 | _id
90 | }
91 | }`,
92 | variables: {
93 | projectID,
94 | },
95 | }),
96 | });
97 |
98 | const { data } = await res.json();
99 |
100 | return data.environments[0]._id;
101 | } catch (error) {
102 | console.error(error);
103 | throw error;
104 | }
105 | }
106 |
107 | async function createDomain(
108 | serviceID: string,
109 | environmentID: string,
110 | serviceName: string,
111 | domainName?: string
112 | ): Promise {
113 | try {
114 | const res = await fetch(API_URL, {
115 | method: "POST",
116 | headers: {
117 | "Content-Type": "application/json",
118 | },
119 | body: JSON.stringify({
120 | query: `mutation CreateDomain($serviceID: ObjectID!, $environmentID: ObjectID!, $domain: String!, $isGenerated: Boolean!) {
121 | addDomain(serviceID: $serviceID, environmentID: $environmentID, domain: $domain, isGenerated: $isGenerated) {
122 | domain
123 | }
124 | }`,
125 | variables: {
126 | serviceID,
127 | environmentID,
128 | domain: domainName ?? `${serviceName + generateRandomString()}`,
129 | isGenerated: true,
130 | },
131 | }),
132 | });
133 |
134 | const { data } = await res.json();
135 | return data.addDomain.domain;
136 | } catch (error) {
137 | console.error(error);
138 | throw error;
139 | }
140 | }
141 |
142 | async function deploy(code: Blob, serviceName: string) {
143 | try {
144 | if (!code) throw new Error("Code is required");
145 |
146 | const projectID = await createTemporaryProject();
147 | const environmentID = await getEnvironment(projectID);
148 | const serviceID = await createService(projectID, serviceName);
149 |
150 | const formData = new FormData();
151 | formData.append("environment", environmentID);
152 | formData.append("code", code, "code.zip");
153 |
154 | await fetch(
155 | `https://gateway.zeabur.com/projects/${projectID}/services/${serviceID}/deploy`,
156 | {
157 | method: "POST",
158 | body: formData,
159 | }
160 | );
161 |
162 | const domain = await createDomain(serviceID, environmentID, serviceName);
163 |
164 | return {
165 | projectID,
166 | domain,
167 | };
168 | } catch (error) {
169 | console.error(error);
170 | throw error;
171 | }
172 | }
173 |
174 | function convertTitle(title: string) {
175 | return title.replace(/[^a-zA-Z0-9]/g, "-").toLowerCase();
176 | }
177 |
178 | function generateRandomString() {
179 | let result = "";
180 | const characters = "abcdefghijklmnopqrstuvwxyz";
181 | const charactersLength = characters.length;
182 | for (let i = 0; i < 6; i++) {
183 | result += characters.charAt(Math.floor(Math.random() * charactersLength));
184 | }
185 | return result;
186 | }
187 |
188 | export { deployToZeabur };
189 |
--------------------------------------------------------------------------------
/src/options.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
--------------------------------------------------------------------------------
/src/options.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { createRoot } from "react-dom/client";
3 | import "./options.css";
4 |
5 | const Options = () => {
6 | return (
7 |
8 |
9 |
10 | Options Page
11 |
12 |
13 |
14 | );
15 | };
16 |
17 | const root = createRoot(document.getElementById("root")!);
18 |
19 | root.render(
20 |
21 |
22 |
23 | );
24 |
--------------------------------------------------------------------------------
/src/sidePanel.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
--------------------------------------------------------------------------------
/src/sidePanel.tsx:
--------------------------------------------------------------------------------
1 | import { createRoot } from "react-dom/client";
2 | import SyntaxHighlighter from "react-syntax-highlighter";
3 | import { docco } from "react-syntax-highlighter/dist/esm/styles/hljs";
4 | import "./sidePanel.css";
5 | import React, { useEffect, useMemo, useRef, useState } from "react";
6 | import { Code } from "./content-script";
7 | import { deployToZeabur } from "./deploy";
8 |
9 | const SidePanel = () => {
10 | const iframeRef = useRef(null);
11 |
12 | const [codes, setCodes] = useState([]);
13 | const [selectedCode, setSelectedCode] = useState(null);
14 | const [mode, setMode] = useState<"codes" | "preview">("codes");
15 | const [domain, setDomain] = useState(null);
16 | const [isDeploying, setIsDeploying] = useState(false);
17 | const [currentUrl, setCurrentUrl] = useState("");
18 | const [projectID, setProjectID] = useState("");
19 |
20 | const chatID =
21 | useMemo(() => {
22 | const splited = currentUrl.split("/");
23 | if (splited.length < 5) return "";
24 |
25 | return splited[4];
26 | }, [currentUrl]) || "";
27 |
28 | const dashURL =
29 | useMemo(() => {
30 | return "https://dash.zeabur.com/projects/" + projectID;
31 | }, [projectID]) || "";
32 |
33 | // listen for messages from the background script
34 | useEffect(() => {
35 | chrome.runtime.onMessage.addListener((message) => {
36 | if (!message) return;
37 |
38 | console.log("Message received in SidePanel:", message);
39 | const { key, newValue } = message;
40 |
41 | if (key === "codes") {
42 | setCodes(newValue);
43 | }
44 | });
45 | }, []);
46 |
47 | // get the current tab URL
48 | useEffect(() => {
49 | const getCurrentUrl = () => {
50 | chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
51 | setCurrentUrl(tabs[0].url || "");
52 | });
53 | };
54 |
55 | getCurrentUrl();
56 |
57 | // Optional: Set up a listener for tab updates
58 | const tabUpdateListener = (tabId: any, changeInfo: any, tab: any) => {
59 | if (changeInfo.status === "complete") {
60 | getCurrentUrl();
61 | }
62 | };
63 |
64 | chrome.tabs.onUpdated.addListener(tabUpdateListener);
65 |
66 | return () => {
67 | chrome.tabs.onUpdated.removeListener(tabUpdateListener);
68 | };
69 | }, []);
70 |
71 | useEffect(() => {
72 | setMode("codes");
73 | }, [selectedCode]);
74 |
75 | function getAllSavedArtifacts() {
76 | chrome.storage.local.get(["chatID", "codes"], (result) => {
77 | console.log(result);
78 | });
79 | }
80 |
81 | function saveArtifactsToProject() {
82 | chrome.storage.local.set({
83 | chatID,
84 | codes,
85 | });
86 | }
87 |
88 | return (
89 |
90 | {/*
*/}
96 |
97 |
122 |
123 |
124 | {codes.map((code, index) => (
125 | - setSelectedCode(code)}
134 | key={index}
135 | >
136 | {code.title}
137 |
138 | ))}
139 |
140 |
141 | {selectedCode && (
142 |
143 |
144 |
154 |
155 | {selectedCode.language === "html" && (
156 |
166 | )}
167 |
168 | {selectedCode.language === "html" && (
169 |
198 | )}
199 |
200 |
206 |
207 |
208 | {mode === "preview" && selectedCode.language === "html" && (
209 |
218 | )}
219 |
220 | {mode === "codes" && (
221 |
222 | {selectedCode.content}
223 |
224 | )}
225 |
226 | )}
227 |
228 | );
229 | };
230 |
231 | const root = createRoot(document.getElementById("root")!);
232 |
233 | root.render(
234 |
235 |
236 |
237 | );
238 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | export default {
3 | content: ["./src/**/*.{js,jsx,ts,tsx}"],
4 | theme: {
5 | extend: {},
6 | },
7 | plugins: [require("@tailwindcss/forms")],
8 | };
9 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2020",
4 | "useDefineForClassFields": true,
5 | "lib": ["ES2020", "DOM", "DOM.Iterable"],
6 | "module": "ESNext",
7 | "skipLibCheck": true,
8 |
9 | /* Bundler mode */
10 | "moduleResolution": "bundler",
11 | "allowImportingTsExtensions": true,
12 | "resolveJsonModule": true,
13 | "isolatedModules": true,
14 | "noEmit": true,
15 | "jsx": "react-jsx",
16 |
17 | /* Linting */
18 | "strict": true,
19 | "noUnusedLocals": true,
20 | "noUnusedParameters": true,
21 | "noFallthroughCasesInSwitch": true
22 | },
23 | "include": ["src"]
24 | }
25 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import { resolve } from "path";
3 | import react from "@vitejs/plugin-react-swc";
4 |
5 | // https://vitejs.dev/config/
6 | export default defineConfig({
7 | plugins: [react()],
8 | build: {
9 | rollupOptions: {
10 | input: {
11 | sidePanel: resolve(__dirname, "sidePanel.html"),
12 | options: resolve(__dirname, "options.html"),
13 | service_worker: resolve(__dirname, "src/background.ts"),
14 | content_script: resolve(__dirname, "src/content-script.ts"),
15 | },
16 | output: {
17 | chunkFileNames: "[name].[hash].js",
18 | assetFileNames: "[name].[hash].[ext]",
19 | entryFileNames: "[name].js",
20 | dir: "dist",
21 | },
22 | },
23 | },
24 | });
25 |
--------------------------------------------------------------------------------