@lark-apaas/coding-template-html 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Lark Technologies Pte. Ltd. and/or its affiliates
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted,provided that the above copyright notice and this permission notice appear in all copies.
6
+
7
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
8
+ IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
9
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
10
+ EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
11
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
12
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
13
+ ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # @lark-apaas/coding-template-html
2
+
3
+ > **Status:** placeholder (v0.1). Real content will be migrated in v0.3.
4
+
5
+ HTML Static template for [miaoda coding](https://code.byted.org/apaas/miaoda-coding).
6
+
7
+ This package is consumed by [miaoda-cli](https://code.byted.org/apaas/miaoda-cli) — not a runtime dependency. The CLI fetches the tarball and renders `template/` into a user project.
8
+
9
+ ## License
10
+
11
+ MIT — see [LICENSE](./LICENSE).
@@ -0,0 +1,3 @@
1
+ export default async function after_install(ctx) {
2
+ // no-op
3
+ }
@@ -0,0 +1,3 @@
1
+ export default async function after_render(ctx) {
2
+ // no-op
3
+ }
@@ -0,0 +1,3 @@
1
+ export default async function before_render(ctx) {
2
+ // no-op
3
+ }
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@lark-apaas/coding-template-html",
3
+ "version": "0.1.0",
4
+ "description": "Miaoda HTML template — single-file index.html powered by Vite",
5
+ "type": "module",
6
+ "files": ["template", "hooks"],
7
+ "scripts": {
8
+ "validate-manifest": "node ../../../scripts/validate-template.mjs .",
9
+ "smoke": "node ../../../scripts/smoke-template.mjs .",
10
+ "prepublishOnly": "pnpm validate-manifest && pnpm smoke"
11
+ },
12
+ "publishConfig": {
13
+ "access": "public",
14
+ "registry": "https://registry.npmjs.org/"
15
+ },
16
+ "keywords": ["miaoda", "coding-template", "html"],
17
+ "license": "MIT",
18
+ "miaodaTemplate": {
19
+ "schemaVersion": 1,
20
+ "archType": 2,
21
+ "hooks": {
22
+ "beforeRender": "hooks/before-render.mjs",
23
+ "afterRender": "hooks/after-render.mjs",
24
+ "afterInstall": "hooks/after-install.mjs"
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,34 @@
1
+ # Miaoda HTML App
2
+
3
+ Minimal single-file HTML app powered by [Vite](https://vitejs.dev).
4
+
5
+ ## Structure
6
+
7
+ ```
8
+ client/
9
+ index.html # 单文件:HTML + 内联 <style> + 内联 <script type="module">
10
+ scripts/
11
+ build.sh # 把 client/ 下所有内容拷到 dist/output/
12
+ vite.config.mjs # root: 'client',base 读 CLIENT_BASE_PATH,挂 /dev/health
13
+ package.json
14
+ ```
15
+
16
+ ## Scripts
17
+
18
+ ```bash
19
+ npm install # 安装 vite
20
+ npm run dev # 启动 vite dev server(默认 8001),HMR 自动重载页面
21
+ npm run build # 把 client/ 下所有内容拷到 dist/output/
22
+ ```
23
+
24
+ ## 环境变量
25
+
26
+ | 变量 | 默认 | 说明 |
27
+ |---|---|---|
28
+ | `CLIENT_DEV_PORT` | `8001` | dev server 监听端口 |
29
+ | `CLIENT_BASE_PATH` | `/` | dev server 的 base path,平台注入形如 `/app/<appid>`,访问入口变成 `http://localhost:8001/app/<appid>/` |
30
+
31
+ ## Dev server endpoints
32
+
33
+ - `<base>/` → `client/index.html`(HMR 已启用)
34
+ - `/dev/health` → `{ "ready": true }`(独立于 base 的探活接口)
@@ -0,0 +1,5 @@
1
+ node_modules
2
+ output
3
+ dist
4
+ *.log
5
+ .DS_Store
@@ -0,0 +1,66 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Miaoda HTML App</title>
7
+ <style>
8
+ :root {
9
+ color-scheme: light dark;
10
+ --bg: #0f172a;
11
+ --fg: #e2e8f0;
12
+ --accent: #38bdf8;
13
+ }
14
+ * { box-sizing: border-box; }
15
+ body {
16
+ margin: 0;
17
+ min-height: 100vh;
18
+ display: grid;
19
+ place-items: center;
20
+ font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
21
+ background: var(--bg);
22
+ color: var(--fg);
23
+ }
24
+ main {
25
+ text-align: center;
26
+ padding: 2rem;
27
+ }
28
+ h1 { margin: 0 0 0.5rem; font-size: clamp(1.5rem, 4vw, 2.5rem); }
29
+ p { margin: 0.25rem 0; opacity: 0.8; }
30
+ button {
31
+ margin-top: 1.25rem;
32
+ padding: 0.6rem 1.2rem;
33
+ font: inherit;
34
+ color: var(--bg);
35
+ background: var(--accent);
36
+ border: 0;
37
+ border-radius: 0.5rem;
38
+ cursor: pointer;
39
+ }
40
+ button:hover { filter: brightness(1.1); }
41
+ .count {
42
+ margin-top: 1rem;
43
+ font-variant-numeric: tabular-nums;
44
+ font-size: 1.25rem;
45
+ }
46
+ </style>
47
+ </head>
48
+ <body>
49
+ <main>
50
+ <h1>Miaoda HTML App</h1>
51
+ <p>Edit <code>client/index.html</code> and save — Vite will reload the page.</p>
52
+ <div class="count">count: <span id="count">0</span></div>
53
+ <button id="btn" type="button">+1</button>
54
+ </main>
55
+
56
+ <script type="module">
57
+ const countEl = document.getElementById('count');
58
+ const btn = document.getElementById('btn');
59
+ let n = 0;
60
+ btn.addEventListener('click', () => {
61
+ n += 1;
62
+ countEl.textContent = String(n);
63
+ });
64
+ </script>
65
+ </body>
66
+ </html>
@@ -0,0 +1,872 @@
1
+ {
2
+ "name": "miaoda-html-app",
3
+ "version": "0.1.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "miaoda-html-app",
9
+ "version": "0.1.0",
10
+ "devDependencies": {
11
+ "vite": "^8"
12
+ }
13
+ },
14
+ "node_modules/@emnapi/core": {
15
+ "version": "1.10.0",
16
+ "resolved": "https://registry.npmmirror.com/@emnapi/core/-/core-1.10.0.tgz",
17
+ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
18
+ "dev": true,
19
+ "license": "MIT",
20
+ "optional": true,
21
+ "dependencies": {
22
+ "@emnapi/wasi-threads": "1.2.1",
23
+ "tslib": "^2.4.0"
24
+ }
25
+ },
26
+ "node_modules/@emnapi/runtime": {
27
+ "version": "1.10.0",
28
+ "resolved": "https://registry.npmmirror.com/@emnapi/runtime/-/runtime-1.10.0.tgz",
29
+ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
30
+ "dev": true,
31
+ "license": "MIT",
32
+ "optional": true,
33
+ "dependencies": {
34
+ "tslib": "^2.4.0"
35
+ }
36
+ },
37
+ "node_modules/@emnapi/wasi-threads": {
38
+ "version": "1.2.1",
39
+ "resolved": "https://registry.npmmirror.com/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
40
+ "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
41
+ "dev": true,
42
+ "license": "MIT",
43
+ "optional": true,
44
+ "dependencies": {
45
+ "tslib": "^2.4.0"
46
+ }
47
+ },
48
+ "node_modules/@napi-rs/wasm-runtime": {
49
+ "version": "1.1.4",
50
+ "resolved": "https://registry.npmmirror.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz",
51
+ "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==",
52
+ "dev": true,
53
+ "license": "MIT",
54
+ "optional": true,
55
+ "dependencies": {
56
+ "@tybys/wasm-util": "^0.10.1"
57
+ },
58
+ "funding": {
59
+ "type": "github",
60
+ "url": "https://github.com/sponsors/Brooooooklyn"
61
+ },
62
+ "peerDependencies": {
63
+ "@emnapi/core": "^1.7.1",
64
+ "@emnapi/runtime": "^1.7.1"
65
+ }
66
+ },
67
+ "node_modules/@oxc-project/types": {
68
+ "version": "0.132.0",
69
+ "resolved": "https://registry.npmmirror.com/@oxc-project/types/-/types-0.132.0.tgz",
70
+ "integrity": "sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==",
71
+ "dev": true,
72
+ "license": "MIT",
73
+ "funding": {
74
+ "url": "https://github.com/sponsors/Boshen"
75
+ }
76
+ },
77
+ "node_modules/@rolldown/binding-android-arm64": {
78
+ "version": "1.0.2",
79
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz",
80
+ "integrity": "sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==",
81
+ "cpu": [
82
+ "arm64"
83
+ ],
84
+ "dev": true,
85
+ "license": "MIT",
86
+ "optional": true,
87
+ "os": [
88
+ "android"
89
+ ],
90
+ "engines": {
91
+ "node": "^20.19.0 || >=22.12.0"
92
+ }
93
+ },
94
+ "node_modules/@rolldown/binding-darwin-arm64": {
95
+ "version": "1.0.2",
96
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.2.tgz",
97
+ "integrity": "sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==",
98
+ "cpu": [
99
+ "arm64"
100
+ ],
101
+ "dev": true,
102
+ "license": "MIT",
103
+ "optional": true,
104
+ "os": [
105
+ "darwin"
106
+ ],
107
+ "engines": {
108
+ "node": "^20.19.0 || >=22.12.0"
109
+ }
110
+ },
111
+ "node_modules/@rolldown/binding-darwin-x64": {
112
+ "version": "1.0.2",
113
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.2.tgz",
114
+ "integrity": "sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==",
115
+ "cpu": [
116
+ "x64"
117
+ ],
118
+ "dev": true,
119
+ "license": "MIT",
120
+ "optional": true,
121
+ "os": [
122
+ "darwin"
123
+ ],
124
+ "engines": {
125
+ "node": "^20.19.0 || >=22.12.0"
126
+ }
127
+ },
128
+ "node_modules/@rolldown/binding-freebsd-x64": {
129
+ "version": "1.0.2",
130
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.2.tgz",
131
+ "integrity": "sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==",
132
+ "cpu": [
133
+ "x64"
134
+ ],
135
+ "dev": true,
136
+ "license": "MIT",
137
+ "optional": true,
138
+ "os": [
139
+ "freebsd"
140
+ ],
141
+ "engines": {
142
+ "node": "^20.19.0 || >=22.12.0"
143
+ }
144
+ },
145
+ "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
146
+ "version": "1.0.2",
147
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.2.tgz",
148
+ "integrity": "sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==",
149
+ "cpu": [
150
+ "arm"
151
+ ],
152
+ "dev": true,
153
+ "license": "MIT",
154
+ "optional": true,
155
+ "os": [
156
+ "linux"
157
+ ],
158
+ "engines": {
159
+ "node": "^20.19.0 || >=22.12.0"
160
+ }
161
+ },
162
+ "node_modules/@rolldown/binding-linux-arm64-gnu": {
163
+ "version": "1.0.2",
164
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.2.tgz",
165
+ "integrity": "sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==",
166
+ "cpu": [
167
+ "arm64"
168
+ ],
169
+ "dev": true,
170
+ "license": "MIT",
171
+ "optional": true,
172
+ "os": [
173
+ "linux"
174
+ ],
175
+ "engines": {
176
+ "node": "^20.19.0 || >=22.12.0"
177
+ }
178
+ },
179
+ "node_modules/@rolldown/binding-linux-arm64-musl": {
180
+ "version": "1.0.2",
181
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.2.tgz",
182
+ "integrity": "sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==",
183
+ "cpu": [
184
+ "arm64"
185
+ ],
186
+ "dev": true,
187
+ "license": "MIT",
188
+ "optional": true,
189
+ "os": [
190
+ "linux"
191
+ ],
192
+ "engines": {
193
+ "node": "^20.19.0 || >=22.12.0"
194
+ }
195
+ },
196
+ "node_modules/@rolldown/binding-linux-ppc64-gnu": {
197
+ "version": "1.0.2",
198
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.2.tgz",
199
+ "integrity": "sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==",
200
+ "cpu": [
201
+ "ppc64"
202
+ ],
203
+ "dev": true,
204
+ "license": "MIT",
205
+ "optional": true,
206
+ "os": [
207
+ "linux"
208
+ ],
209
+ "engines": {
210
+ "node": "^20.19.0 || >=22.12.0"
211
+ }
212
+ },
213
+ "node_modules/@rolldown/binding-linux-s390x-gnu": {
214
+ "version": "1.0.2",
215
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.2.tgz",
216
+ "integrity": "sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==",
217
+ "cpu": [
218
+ "s390x"
219
+ ],
220
+ "dev": true,
221
+ "license": "MIT",
222
+ "optional": true,
223
+ "os": [
224
+ "linux"
225
+ ],
226
+ "engines": {
227
+ "node": "^20.19.0 || >=22.12.0"
228
+ }
229
+ },
230
+ "node_modules/@rolldown/binding-linux-x64-gnu": {
231
+ "version": "1.0.2",
232
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.2.tgz",
233
+ "integrity": "sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==",
234
+ "cpu": [
235
+ "x64"
236
+ ],
237
+ "dev": true,
238
+ "license": "MIT",
239
+ "optional": true,
240
+ "os": [
241
+ "linux"
242
+ ],
243
+ "engines": {
244
+ "node": "^20.19.0 || >=22.12.0"
245
+ }
246
+ },
247
+ "node_modules/@rolldown/binding-linux-x64-musl": {
248
+ "version": "1.0.2",
249
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.2.tgz",
250
+ "integrity": "sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==",
251
+ "cpu": [
252
+ "x64"
253
+ ],
254
+ "dev": true,
255
+ "license": "MIT",
256
+ "optional": true,
257
+ "os": [
258
+ "linux"
259
+ ],
260
+ "engines": {
261
+ "node": "^20.19.0 || >=22.12.0"
262
+ }
263
+ },
264
+ "node_modules/@rolldown/binding-openharmony-arm64": {
265
+ "version": "1.0.2",
266
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.2.tgz",
267
+ "integrity": "sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==",
268
+ "cpu": [
269
+ "arm64"
270
+ ],
271
+ "dev": true,
272
+ "license": "MIT",
273
+ "optional": true,
274
+ "os": [
275
+ "openharmony"
276
+ ],
277
+ "engines": {
278
+ "node": "^20.19.0 || >=22.12.0"
279
+ }
280
+ },
281
+ "node_modules/@rolldown/binding-wasm32-wasi": {
282
+ "version": "1.0.2",
283
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.2.tgz",
284
+ "integrity": "sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==",
285
+ "cpu": [
286
+ "wasm32"
287
+ ],
288
+ "dev": true,
289
+ "license": "MIT",
290
+ "optional": true,
291
+ "dependencies": {
292
+ "@emnapi/core": "1.10.0",
293
+ "@emnapi/runtime": "1.10.0",
294
+ "@napi-rs/wasm-runtime": "^1.1.4"
295
+ },
296
+ "engines": {
297
+ "node": "^20.19.0 || >=22.12.0"
298
+ }
299
+ },
300
+ "node_modules/@rolldown/binding-win32-arm64-msvc": {
301
+ "version": "1.0.2",
302
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.2.tgz",
303
+ "integrity": "sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==",
304
+ "cpu": [
305
+ "arm64"
306
+ ],
307
+ "dev": true,
308
+ "license": "MIT",
309
+ "optional": true,
310
+ "os": [
311
+ "win32"
312
+ ],
313
+ "engines": {
314
+ "node": "^20.19.0 || >=22.12.0"
315
+ }
316
+ },
317
+ "node_modules/@rolldown/binding-win32-x64-msvc": {
318
+ "version": "1.0.2",
319
+ "resolved": "https://registry.npmmirror.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.2.tgz",
320
+ "integrity": "sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==",
321
+ "cpu": [
322
+ "x64"
323
+ ],
324
+ "dev": true,
325
+ "license": "MIT",
326
+ "optional": true,
327
+ "os": [
328
+ "win32"
329
+ ],
330
+ "engines": {
331
+ "node": "^20.19.0 || >=22.12.0"
332
+ }
333
+ },
334
+ "node_modules/@rolldown/pluginutils": {
335
+ "version": "1.0.1",
336
+ "resolved": "https://registry.npmmirror.com/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz",
337
+ "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==",
338
+ "dev": true,
339
+ "license": "MIT"
340
+ },
341
+ "node_modules/@tybys/wasm-util": {
342
+ "version": "0.10.2",
343
+ "resolved": "https://registry.npmmirror.com/@tybys/wasm-util/-/wasm-util-0.10.2.tgz",
344
+ "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==",
345
+ "dev": true,
346
+ "license": "MIT",
347
+ "optional": true,
348
+ "dependencies": {
349
+ "tslib": "^2.4.0"
350
+ }
351
+ },
352
+ "node_modules/detect-libc": {
353
+ "version": "2.1.2",
354
+ "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz",
355
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
356
+ "dev": true,
357
+ "license": "Apache-2.0",
358
+ "engines": {
359
+ "node": ">=8"
360
+ }
361
+ },
362
+ "node_modules/fdir": {
363
+ "version": "6.5.0",
364
+ "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz",
365
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
366
+ "dev": true,
367
+ "license": "MIT",
368
+ "engines": {
369
+ "node": ">=12.0.0"
370
+ },
371
+ "peerDependencies": {
372
+ "picomatch": "^3 || ^4"
373
+ },
374
+ "peerDependenciesMeta": {
375
+ "picomatch": {
376
+ "optional": true
377
+ }
378
+ }
379
+ },
380
+ "node_modules/fsevents": {
381
+ "version": "2.3.3",
382
+ "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
383
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
384
+ "dev": true,
385
+ "hasInstallScript": true,
386
+ "license": "MIT",
387
+ "optional": true,
388
+ "os": [
389
+ "darwin"
390
+ ],
391
+ "engines": {
392
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
393
+ }
394
+ },
395
+ "node_modules/lightningcss": {
396
+ "version": "1.32.0",
397
+ "resolved": "https://registry.npmmirror.com/lightningcss/-/lightningcss-1.32.0.tgz",
398
+ "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
399
+ "dev": true,
400
+ "license": "MPL-2.0",
401
+ "dependencies": {
402
+ "detect-libc": "^2.0.3"
403
+ },
404
+ "engines": {
405
+ "node": ">= 12.0.0"
406
+ },
407
+ "funding": {
408
+ "type": "opencollective",
409
+ "url": "https://opencollective.com/parcel"
410
+ },
411
+ "optionalDependencies": {
412
+ "lightningcss-android-arm64": "1.32.0",
413
+ "lightningcss-darwin-arm64": "1.32.0",
414
+ "lightningcss-darwin-x64": "1.32.0",
415
+ "lightningcss-freebsd-x64": "1.32.0",
416
+ "lightningcss-linux-arm-gnueabihf": "1.32.0",
417
+ "lightningcss-linux-arm64-gnu": "1.32.0",
418
+ "lightningcss-linux-arm64-musl": "1.32.0",
419
+ "lightningcss-linux-x64-gnu": "1.32.0",
420
+ "lightningcss-linux-x64-musl": "1.32.0",
421
+ "lightningcss-win32-arm64-msvc": "1.32.0",
422
+ "lightningcss-win32-x64-msvc": "1.32.0"
423
+ }
424
+ },
425
+ "node_modules/lightningcss-android-arm64": {
426
+ "version": "1.32.0",
427
+ "resolved": "https://registry.npmmirror.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
428
+ "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
429
+ "cpu": [
430
+ "arm64"
431
+ ],
432
+ "dev": true,
433
+ "license": "MPL-2.0",
434
+ "optional": true,
435
+ "os": [
436
+ "android"
437
+ ],
438
+ "engines": {
439
+ "node": ">= 12.0.0"
440
+ },
441
+ "funding": {
442
+ "type": "opencollective",
443
+ "url": "https://opencollective.com/parcel"
444
+ }
445
+ },
446
+ "node_modules/lightningcss-darwin-arm64": {
447
+ "version": "1.32.0",
448
+ "resolved": "https://registry.npmmirror.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
449
+ "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
450
+ "cpu": [
451
+ "arm64"
452
+ ],
453
+ "dev": true,
454
+ "license": "MPL-2.0",
455
+ "optional": true,
456
+ "os": [
457
+ "darwin"
458
+ ],
459
+ "engines": {
460
+ "node": ">= 12.0.0"
461
+ },
462
+ "funding": {
463
+ "type": "opencollective",
464
+ "url": "https://opencollective.com/parcel"
465
+ }
466
+ },
467
+ "node_modules/lightningcss-darwin-x64": {
468
+ "version": "1.32.0",
469
+ "resolved": "https://registry.npmmirror.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
470
+ "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
471
+ "cpu": [
472
+ "x64"
473
+ ],
474
+ "dev": true,
475
+ "license": "MPL-2.0",
476
+ "optional": true,
477
+ "os": [
478
+ "darwin"
479
+ ],
480
+ "engines": {
481
+ "node": ">= 12.0.0"
482
+ },
483
+ "funding": {
484
+ "type": "opencollective",
485
+ "url": "https://opencollective.com/parcel"
486
+ }
487
+ },
488
+ "node_modules/lightningcss-freebsd-x64": {
489
+ "version": "1.32.0",
490
+ "resolved": "https://registry.npmmirror.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
491
+ "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
492
+ "cpu": [
493
+ "x64"
494
+ ],
495
+ "dev": true,
496
+ "license": "MPL-2.0",
497
+ "optional": true,
498
+ "os": [
499
+ "freebsd"
500
+ ],
501
+ "engines": {
502
+ "node": ">= 12.0.0"
503
+ },
504
+ "funding": {
505
+ "type": "opencollective",
506
+ "url": "https://opencollective.com/parcel"
507
+ }
508
+ },
509
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
510
+ "version": "1.32.0",
511
+ "resolved": "https://registry.npmmirror.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
512
+ "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
513
+ "cpu": [
514
+ "arm"
515
+ ],
516
+ "dev": true,
517
+ "license": "MPL-2.0",
518
+ "optional": true,
519
+ "os": [
520
+ "linux"
521
+ ],
522
+ "engines": {
523
+ "node": ">= 12.0.0"
524
+ },
525
+ "funding": {
526
+ "type": "opencollective",
527
+ "url": "https://opencollective.com/parcel"
528
+ }
529
+ },
530
+ "node_modules/lightningcss-linux-arm64-gnu": {
531
+ "version": "1.32.0",
532
+ "resolved": "https://registry.npmmirror.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
533
+ "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
534
+ "cpu": [
535
+ "arm64"
536
+ ],
537
+ "dev": true,
538
+ "license": "MPL-2.0",
539
+ "optional": true,
540
+ "os": [
541
+ "linux"
542
+ ],
543
+ "engines": {
544
+ "node": ">= 12.0.0"
545
+ },
546
+ "funding": {
547
+ "type": "opencollective",
548
+ "url": "https://opencollective.com/parcel"
549
+ }
550
+ },
551
+ "node_modules/lightningcss-linux-arm64-musl": {
552
+ "version": "1.32.0",
553
+ "resolved": "https://registry.npmmirror.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
554
+ "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
555
+ "cpu": [
556
+ "arm64"
557
+ ],
558
+ "dev": true,
559
+ "license": "MPL-2.0",
560
+ "optional": true,
561
+ "os": [
562
+ "linux"
563
+ ],
564
+ "engines": {
565
+ "node": ">= 12.0.0"
566
+ },
567
+ "funding": {
568
+ "type": "opencollective",
569
+ "url": "https://opencollective.com/parcel"
570
+ }
571
+ },
572
+ "node_modules/lightningcss-linux-x64-gnu": {
573
+ "version": "1.32.0",
574
+ "resolved": "https://registry.npmmirror.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
575
+ "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
576
+ "cpu": [
577
+ "x64"
578
+ ],
579
+ "dev": true,
580
+ "license": "MPL-2.0",
581
+ "optional": true,
582
+ "os": [
583
+ "linux"
584
+ ],
585
+ "engines": {
586
+ "node": ">= 12.0.0"
587
+ },
588
+ "funding": {
589
+ "type": "opencollective",
590
+ "url": "https://opencollective.com/parcel"
591
+ }
592
+ },
593
+ "node_modules/lightningcss-linux-x64-musl": {
594
+ "version": "1.32.0",
595
+ "resolved": "https://registry.npmmirror.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
596
+ "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
597
+ "cpu": [
598
+ "x64"
599
+ ],
600
+ "dev": true,
601
+ "license": "MPL-2.0",
602
+ "optional": true,
603
+ "os": [
604
+ "linux"
605
+ ],
606
+ "engines": {
607
+ "node": ">= 12.0.0"
608
+ },
609
+ "funding": {
610
+ "type": "opencollective",
611
+ "url": "https://opencollective.com/parcel"
612
+ }
613
+ },
614
+ "node_modules/lightningcss-win32-arm64-msvc": {
615
+ "version": "1.32.0",
616
+ "resolved": "https://registry.npmmirror.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
617
+ "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
618
+ "cpu": [
619
+ "arm64"
620
+ ],
621
+ "dev": true,
622
+ "license": "MPL-2.0",
623
+ "optional": true,
624
+ "os": [
625
+ "win32"
626
+ ],
627
+ "engines": {
628
+ "node": ">= 12.0.0"
629
+ },
630
+ "funding": {
631
+ "type": "opencollective",
632
+ "url": "https://opencollective.com/parcel"
633
+ }
634
+ },
635
+ "node_modules/lightningcss-win32-x64-msvc": {
636
+ "version": "1.32.0",
637
+ "resolved": "https://registry.npmmirror.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
638
+ "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
639
+ "cpu": [
640
+ "x64"
641
+ ],
642
+ "dev": true,
643
+ "license": "MPL-2.0",
644
+ "optional": true,
645
+ "os": [
646
+ "win32"
647
+ ],
648
+ "engines": {
649
+ "node": ">= 12.0.0"
650
+ },
651
+ "funding": {
652
+ "type": "opencollective",
653
+ "url": "https://opencollective.com/parcel"
654
+ }
655
+ },
656
+ "node_modules/nanoid": {
657
+ "version": "3.3.12",
658
+ "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.12.tgz",
659
+ "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==",
660
+ "dev": true,
661
+ "funding": [
662
+ {
663
+ "type": "github",
664
+ "url": "https://github.com/sponsors/ai"
665
+ }
666
+ ],
667
+ "license": "MIT",
668
+ "bin": {
669
+ "nanoid": "bin/nanoid.cjs"
670
+ },
671
+ "engines": {
672
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
673
+ }
674
+ },
675
+ "node_modules/picocolors": {
676
+ "version": "1.1.1",
677
+ "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
678
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
679
+ "dev": true,
680
+ "license": "ISC"
681
+ },
682
+ "node_modules/picomatch": {
683
+ "version": "4.0.4",
684
+ "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.4.tgz",
685
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
686
+ "dev": true,
687
+ "license": "MIT",
688
+ "engines": {
689
+ "node": ">=12"
690
+ },
691
+ "funding": {
692
+ "url": "https://github.com/sponsors/jonschlinkert"
693
+ }
694
+ },
695
+ "node_modules/postcss": {
696
+ "version": "8.5.15",
697
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.15.tgz",
698
+ "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==",
699
+ "dev": true,
700
+ "funding": [
701
+ {
702
+ "type": "opencollective",
703
+ "url": "https://opencollective.com/postcss/"
704
+ },
705
+ {
706
+ "type": "tidelift",
707
+ "url": "https://tidelift.com/funding/github/npm/postcss"
708
+ },
709
+ {
710
+ "type": "github",
711
+ "url": "https://github.com/sponsors/ai"
712
+ }
713
+ ],
714
+ "license": "MIT",
715
+ "dependencies": {
716
+ "nanoid": "^3.3.12",
717
+ "picocolors": "^1.1.1",
718
+ "source-map-js": "^1.2.1"
719
+ },
720
+ "engines": {
721
+ "node": "^10 || ^12 || >=14"
722
+ }
723
+ },
724
+ "node_modules/rolldown": {
725
+ "version": "1.0.2",
726
+ "resolved": "https://registry.npmmirror.com/rolldown/-/rolldown-1.0.2.tgz",
727
+ "integrity": "sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==",
728
+ "dev": true,
729
+ "license": "MIT",
730
+ "dependencies": {
731
+ "@oxc-project/types": "=0.132.0",
732
+ "@rolldown/pluginutils": "^1.0.0"
733
+ },
734
+ "bin": {
735
+ "rolldown": "bin/cli.mjs"
736
+ },
737
+ "engines": {
738
+ "node": "^20.19.0 || >=22.12.0"
739
+ },
740
+ "optionalDependencies": {
741
+ "@rolldown/binding-android-arm64": "1.0.2",
742
+ "@rolldown/binding-darwin-arm64": "1.0.2",
743
+ "@rolldown/binding-darwin-x64": "1.0.2",
744
+ "@rolldown/binding-freebsd-x64": "1.0.2",
745
+ "@rolldown/binding-linux-arm-gnueabihf": "1.0.2",
746
+ "@rolldown/binding-linux-arm64-gnu": "1.0.2",
747
+ "@rolldown/binding-linux-arm64-musl": "1.0.2",
748
+ "@rolldown/binding-linux-ppc64-gnu": "1.0.2",
749
+ "@rolldown/binding-linux-s390x-gnu": "1.0.2",
750
+ "@rolldown/binding-linux-x64-gnu": "1.0.2",
751
+ "@rolldown/binding-linux-x64-musl": "1.0.2",
752
+ "@rolldown/binding-openharmony-arm64": "1.0.2",
753
+ "@rolldown/binding-wasm32-wasi": "1.0.2",
754
+ "@rolldown/binding-win32-arm64-msvc": "1.0.2",
755
+ "@rolldown/binding-win32-x64-msvc": "1.0.2"
756
+ }
757
+ },
758
+ "node_modules/source-map-js": {
759
+ "version": "1.2.1",
760
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
761
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
762
+ "dev": true,
763
+ "license": "BSD-3-Clause",
764
+ "engines": {
765
+ "node": ">=0.10.0"
766
+ }
767
+ },
768
+ "node_modules/tinyglobby": {
769
+ "version": "0.2.16",
770
+ "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.16.tgz",
771
+ "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
772
+ "dev": true,
773
+ "license": "MIT",
774
+ "dependencies": {
775
+ "fdir": "^6.5.0",
776
+ "picomatch": "^4.0.4"
777
+ },
778
+ "engines": {
779
+ "node": ">=12.0.0"
780
+ },
781
+ "funding": {
782
+ "url": "https://github.com/sponsors/SuperchupuDev"
783
+ }
784
+ },
785
+ "node_modules/tslib": {
786
+ "version": "2.8.1",
787
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
788
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
789
+ "dev": true,
790
+ "license": "0BSD",
791
+ "optional": true
792
+ },
793
+ "node_modules/vite": {
794
+ "version": "8.0.14",
795
+ "resolved": "https://registry.npmmirror.com/vite/-/vite-8.0.14.tgz",
796
+ "integrity": "sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==",
797
+ "dev": true,
798
+ "license": "MIT",
799
+ "dependencies": {
800
+ "lightningcss": "^1.32.0",
801
+ "picomatch": "^4.0.4",
802
+ "postcss": "^8.5.15",
803
+ "rolldown": "1.0.2",
804
+ "tinyglobby": "^0.2.16"
805
+ },
806
+ "bin": {
807
+ "vite": "bin/vite.js"
808
+ },
809
+ "engines": {
810
+ "node": "^20.19.0 || >=22.12.0"
811
+ },
812
+ "funding": {
813
+ "url": "https://github.com/vitejs/vite?sponsor=1"
814
+ },
815
+ "optionalDependencies": {
816
+ "fsevents": "~2.3.3"
817
+ },
818
+ "peerDependencies": {
819
+ "@types/node": "^20.19.0 || >=22.12.0",
820
+ "@vitejs/devtools": "^0.1.18",
821
+ "esbuild": "^0.27.0 || ^0.28.0",
822
+ "jiti": ">=1.21.0",
823
+ "less": "^4.0.0",
824
+ "sass": "^1.70.0",
825
+ "sass-embedded": "^1.70.0",
826
+ "stylus": ">=0.54.8",
827
+ "sugarss": "^5.0.0",
828
+ "terser": "^5.16.0",
829
+ "tsx": "^4.8.1",
830
+ "yaml": "^2.4.2"
831
+ },
832
+ "peerDependenciesMeta": {
833
+ "@types/node": {
834
+ "optional": true
835
+ },
836
+ "@vitejs/devtools": {
837
+ "optional": true
838
+ },
839
+ "esbuild": {
840
+ "optional": true
841
+ },
842
+ "jiti": {
843
+ "optional": true
844
+ },
845
+ "less": {
846
+ "optional": true
847
+ },
848
+ "sass": {
849
+ "optional": true
850
+ },
851
+ "sass-embedded": {
852
+ "optional": true
853
+ },
854
+ "stylus": {
855
+ "optional": true
856
+ },
857
+ "sugarss": {
858
+ "optional": true
859
+ },
860
+ "terser": {
861
+ "optional": true
862
+ },
863
+ "tsx": {
864
+ "optional": true
865
+ },
866
+ "yaml": {
867
+ "optional": true
868
+ }
869
+ }
870
+ }
871
+ }
872
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "miaoda-html-app",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "bash scripts/build.sh"
9
+ },
10
+ "devDependencies": {
11
+ "vite": "^8"
12
+ }
13
+ }
@@ -0,0 +1,15 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ ROOT="$(cd "$(dirname "$0")/.." && pwd)"
5
+ OUTPUT="$ROOT/dist/output"
6
+
7
+ # 清理
8
+ rm -rf "$ROOT/dist"
9
+ mkdir -p "$OUTPUT"
10
+
11
+ # 把 client/ 下所有内容拷到 dist/output/(含子目录、dotfile)
12
+ cp -R "$ROOT/client/." "$OUTPUT/"
13
+
14
+ echo "Build complete"
15
+ echo " HTML → dist/output/"
@@ -0,0 +1,28 @@
1
+ import { defineConfig } from 'vite';
2
+
3
+ // dev server 健康检查:dev server 起来后 GET /dev/health → { ready: true }
4
+ // 路径独立于 base,方便外部探活。
5
+ function devHealthCheckPlugin() {
6
+ return {
7
+ name: 'dev-health-check',
8
+ configureServer(server) {
9
+ server.middlewares.use('/dev/health', (_req, res) => {
10
+ res.statusCode = 200;
11
+ res.setHeader('Content-Type', 'application/json');
12
+ res.end(JSON.stringify({ ready: true }));
13
+ });
14
+ },
15
+ };
16
+ }
17
+
18
+ export default defineConfig({
19
+ root: 'client',
20
+ // 平台注入 CLIENT_BASE_PATH=/app/<appid>(参考 vite-react 模板 build.sh),
21
+ // 没注入时 fallback 到根路径,本地 npm run dev 直接 http://localhost:8001/ 即可。
22
+ base: process.env.CLIENT_BASE_PATH || '/',
23
+ server: {
24
+ host: '0.0.0.0',
25
+ port: Number(process.env.CLIENT_DEV_PORT) || 8001,
26
+ },
27
+ plugins: [devHealthCheckPlugin()],
28
+ });