chriswu25 commited on
Commit
4def16e
·
1 Parent(s): 39128c1

Feat: Use 'serve' to host static files instead of vite preview

Browse files
Files changed (3) hide show
  1. Dockerfile +12 -8
  2. package-lock.json +767 -29
  3. package.json +2 -1
Dockerfile CHANGED
@@ -5,31 +5,35 @@ FROM node:18-alpine AS builder
5
  WORKDIR /app
6
 
7
  # 步骤 3: 复制 package.json 和 package-lock.json
 
8
  COPY package*.json ./
9
 
10
- # 步骤 4: 安装 *所有* 依赖 (包括 devDependencies,这样 vite 才会被安装)
11
- # 注意:去掉了 --omit=dev
12
  RUN npm ci
13
 
14
  # 步骤 5: 复制项目的所有代码到工作目录
15
  COPY . .
16
 
17
- # 步骤 6: 构建项目 (现在 vite 应该能找到了)
18
  RUN npm run build
19
 
20
  # 步骤 7: (优化) 移除开发依赖,减小最终镜像体积
21
- # prune 命令会根据 package.json 移除 devDependencies
22
  RUN npm prune --omit=dev
23
 
24
  # -------- 运行阶段 --------
25
- # (如果你不需要多阶段构建,下面的内容保持不变)
26
 
27
  # 步骤 8: 暴露端口
 
28
  EXPOSE 4173
29
 
30
  # 步骤 9: 定义容器启动时运行的命令
31
- CMD ["npm", "run", "preview", "--", "--host"]
 
 
 
 
32
 
33
- # --- 如果你想强制用 7860 端口 ---
34
  # EXPOSE 7860
35
- # CMD ["npm", "run", "preview", "--", "--host", "--port", "7860"]
 
5
  WORKDIR /app
6
 
7
  # 步骤 3: 复制 package.json 和 package-lock.json
8
+ # 确保这里复制的 package.json 包含了 "serve" 作为生产依赖
9
  COPY package*.json ./
10
 
11
+ # 步骤 4: 安装 *所有* 依赖 (包括 devDependencies 用于构建)
 
12
  RUN npm ci
13
 
14
  # 步骤 5: 复制项目的所有代码到工作目录
15
  COPY . .
16
 
17
+ # 步骤 6: 构建项目 (生成静态文件到 dist 目录)
18
  RUN npm run build
19
 
20
  # 步骤 7: (优化) 移除开发依赖,减小最终镜像体积
21
+ # 因为 'serve' 是生产依赖,所以不会被 prune 命令移除
22
  RUN npm prune --omit=dev
23
 
24
  # -------- 运行阶段 --------
 
25
 
26
  # 步骤 8: 暴露端口
27
+ # 我们将让 'serve' 监听 4173 端口
28
  EXPOSE 4173
29
 
30
  # 步骤 9: 定义容器启动时运行的命令
31
+ # 改用 'npx serve' 来托管 'dist' 目录下的静态文件
32
+ # -s: 表示单页应用 (SPA) 模式,处理路由回退
33
+ # dist: squish 项目构建后输出的目录名 (vite 默认是 dist)
34
+ # -l 4173: 指定监听端口,必须和 EXPOSE 及 README.md 中的 app_port 一致
35
+ CMD ["npx", "serve", "-s", "dist", "-l", "4173"]
36
 
37
+ # --- 关于 7860 端口的注释保持不变,如果你需要改端口,记得同步修改 EXPOSE, CMD, 和 README.md ---
38
  # EXPOSE 7860
39
+ # CMD ["npx", "serve", "-s", "dist", "-l", "7860"]
package-lock.json CHANGED
@@ -16,6 +16,7 @@
16
  "lucide-react": "^0.344.0",
17
  "react": "^18.3.1",
18
  "react-dom": "^18.3.1",
 
19
  "vite": "^5.4.2"
20
  },
21
  "devDependencies": {
@@ -1529,6 +1530,25 @@
1529
  "vite": "^4.2.0 || ^5.0.0"
1530
  }
1531
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1532
  "node_modules/acorn": {
1533
  "version": "8.12.1",
1534
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
@@ -1566,11 +1586,60 @@
1566
  "url": "https://github.com/sponsors/epoberezkin"
1567
  }
1568
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1569
  "node_modules/ansi-regex": {
1570
  "version": "6.1.0",
1571
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
1572
  "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
1573
- "dev": true,
1574
  "engines": {
1575
  "node": ">=12"
1576
  },
@@ -1609,11 +1678,30 @@
1609
  "node": ">= 8"
1610
  }
1611
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1612
  "node_modules/arg": {
1613
  "version": "5.0.2",
1614
  "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
1615
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
1616
- "dev": true
1617
  },
1618
  "node_modules/argparse": {
1619
  "version": "2.0.1",
@@ -1661,8 +1749,7 @@
1661
  "node_modules/balanced-match": {
1662
  "version": "1.0.2",
1663
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1664
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1665
- "dev": true
1666
  },
1667
  "node_modules/binary-extensions": {
1668
  "version": "2.3.0",
@@ -1676,11 +1763,44 @@
1676
  "url": "https://github.com/sponsors/sindresorhus"
1677
  }
1678
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1679
  "node_modules/brace-expansion": {
1680
  "version": "1.1.11",
1681
  "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1682
  "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1683
- "dev": true,
1684
  "dependencies": {
1685
  "balanced-match": "^1.0.0",
1686
  "concat-map": "0.0.1"
@@ -1730,6 +1850,15 @@
1730
  "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
1731
  }
1732
  },
 
 
 
 
 
 
 
 
 
1733
  "node_modules/callsites": {
1734
  "version": "3.1.0",
1735
  "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -1739,6 +1868,18 @@
1739
  "node": ">=6"
1740
  }
1741
  },
 
 
 
 
 
 
 
 
 
 
 
 
1742
  "node_modules/camelcase-css": {
1743
  "version": "2.0.1",
1744
  "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
@@ -1782,6 +1923,91 @@
1782
  "node": ">=4"
1783
  }
1784
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1785
  "node_modules/chokidar": {
1786
  "version": "3.6.0",
1787
  "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
@@ -1818,6 +2044,35 @@
1818
  "node": ">= 6"
1819
  }
1820
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1821
  "node_modules/color-convert": {
1822
  "version": "1.9.3",
1823
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -1842,11 +2097,64 @@
1842
  "node": ">= 6"
1843
  }
1844
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1845
  "node_modules/concat-map": {
1846
  "version": "0.0.1",
1847
  "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1848
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
1849
- "dev": true
 
 
 
 
 
 
 
 
1850
  },
1851
  "node_modules/convert-source-map": {
1852
  "version": "2.0.0",
@@ -1858,7 +2166,6 @@
1858
  "version": "7.0.3",
1859
  "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
1860
  "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
1861
- "dev": true,
1862
  "dependencies": {
1863
  "path-key": "^3.1.0",
1864
  "shebang-command": "^2.0.0",
@@ -1903,6 +2210,15 @@
1903
  }
1904
  }
1905
  },
 
 
 
 
 
 
 
 
 
1906
  "node_modules/deep-is": {
1907
  "version": "0.1.4",
1908
  "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -1924,8 +2240,7 @@
1924
  "node_modules/eastasianwidth": {
1925
  "version": "0.2.0",
1926
  "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
1927
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
1928
- "dev": true
1929
  },
1930
  "node_modules/electron-to-chromium": {
1931
  "version": "1.5.33",
@@ -1936,8 +2251,7 @@
1936
  "node_modules/emoji-regex": {
1937
  "version": "9.2.2",
1938
  "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
1939
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
1940
- "dev": true
1941
  },
1942
  "node_modules/esbuild": {
1943
  "version": "0.21.5",
@@ -2244,11 +2558,39 @@
2244
  "node": ">=0.10.0"
2245
  }
2246
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2247
  "node_modules/fast-deep-equal": {
2248
  "version": "3.1.3",
2249
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
2250
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
2251
- "dev": true
2252
  },
2253
  "node_modules/fast-glob": {
2254
  "version": "3.3.2",
@@ -2418,6 +2760,18 @@
2418
  "node": ">=6.9.0"
2419
  }
2420
  },
 
 
 
 
 
 
 
 
 
 
 
 
2421
  "node_modules/glob": {
2422
  "version": "10.4.5",
2423
  "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
@@ -2513,6 +2867,15 @@
2513
  "node": ">= 0.4"
2514
  }
2515
  },
 
 
 
 
 
 
 
 
 
2516
  "node_modules/ignore": {
2517
  "version": "5.3.2",
2518
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -2547,6 +2910,12 @@
2547
  "node": ">=0.8.19"
2548
  }
2549
  },
 
 
 
 
 
 
2550
  "node_modules/is-binary-path": {
2551
  "version": "2.1.0",
2552
  "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -2574,6 +2943,21 @@
2574
  "url": "https://github.com/sponsors/ljharb"
2575
  }
2576
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2577
  "node_modules/is-extglob": {
2578
  "version": "2.1.1",
2579
  "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -2587,7 +2971,6 @@
2587
  "version": "3.0.0",
2588
  "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2589
  "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
2590
- "dev": true,
2591
  "engines": {
2592
  "node": ">=8"
2593
  }
@@ -2613,11 +2996,46 @@
2613
  "node": ">=0.12.0"
2614
  }
2615
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2616
  "node_modules/isexe": {
2617
  "version": "2.0.0",
2618
  "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2619
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
2620
- "dev": true
2621
  },
2622
  "node_modules/jackspeak": {
2623
  "version": "3.4.3",
@@ -2788,6 +3206,12 @@
2788
  "react": "^16.5.1 || ^17.0.0 || ^18.0.0"
2789
  }
2790
  },
 
 
 
 
 
 
2791
  "node_modules/merge2": {
2792
  "version": "1.4.1",
2793
  "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -2810,11 +3234,49 @@
2810
  "node": ">=8.6"
2811
  }
2812
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2813
  "node_modules/minimatch": {
2814
  "version": "3.1.2",
2815
  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2816
  "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2817
- "dev": true,
2818
  "dependencies": {
2819
  "brace-expansion": "^1.1.7"
2820
  },
@@ -2822,6 +3284,15 @@
2822
  "node": "*"
2823
  }
2824
  },
 
 
 
 
 
 
 
 
 
2825
  "node_modules/minipass": {
2826
  "version": "7.1.2",
2827
  "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
@@ -2871,6 +3342,15 @@
2871
  "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
2872
  "dev": true
2873
  },
 
 
 
 
 
 
 
 
 
2874
  "node_modules/node-releases": {
2875
  "version": "2.0.18",
2876
  "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
@@ -2895,6 +3375,18 @@
2895
  "node": ">=0.10.0"
2896
  }
2897
  },
 
 
 
 
 
 
 
 
 
 
 
 
2898
  "node_modules/object-assign": {
2899
  "version": "4.1.1",
2900
  "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -2913,6 +3405,30 @@
2913
  "node": ">= 6"
2914
  }
2915
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2916
  "node_modules/optionator": {
2917
  "version": "0.9.4",
2918
  "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
@@ -2987,11 +3503,16 @@
2987
  "node": ">=8"
2988
  }
2989
  },
 
 
 
 
 
 
2990
  "node_modules/path-key": {
2991
  "version": "3.1.1",
2992
  "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2993
  "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2994
- "dev": true,
2995
  "engines": {
2996
  "node": ">=8"
2997
  }
@@ -3024,6 +3545,12 @@
3024
  "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
3025
  "dev": true
3026
  },
 
 
 
 
 
 
3027
  "node_modules/picocolors": {
3028
  "version": "1.1.0",
3029
  "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
@@ -3226,7 +3753,6 @@
3226
  "version": "2.3.1",
3227
  "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
3228
  "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
3229
- "dev": true,
3230
  "engines": {
3231
  "node": ">=6"
3232
  }
@@ -3251,6 +3777,39 @@
3251
  }
3252
  ]
3253
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3254
  "node_modules/react": {
3255
  "version": "18.3.1",
3256
  "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
@@ -3304,6 +3863,37 @@
3304
  "node": ">=8.10.0"
3305
  }
3306
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3307
  "node_modules/resolve": {
3308
  "version": "1.22.8",
3309
  "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
@@ -3397,6 +3987,12 @@
3397
  "queue-microtask": "^1.2.2"
3398
  }
3399
  },
 
 
 
 
 
 
3400
  "node_modules/scheduler": {
3401
  "version": "0.23.2",
3402
  "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
@@ -3414,11 +4010,105 @@
3414
  "semver": "bin/semver.js"
3415
  }
3416
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3417
  "node_modules/shebang-command": {
3418
  "version": "2.0.0",
3419
  "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3420
  "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3421
- "dev": true,
3422
  "dependencies": {
3423
  "shebang-regex": "^3.0.0"
3424
  },
@@ -3430,7 +4120,6 @@
3430
  "version": "3.0.0",
3431
  "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3432
  "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3433
- "dev": true,
3434
  "engines": {
3435
  "node": ">=8"
3436
  }
@@ -3459,7 +4148,6 @@
3459
  "version": "5.1.2",
3460
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
3461
  "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
3462
- "dev": true,
3463
  "dependencies": {
3464
  "eastasianwidth": "^0.2.0",
3465
  "emoji-regex": "^9.2.2",
@@ -3518,7 +4206,6 @@
3518
  "version": "7.1.0",
3519
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
3520
  "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
3521
- "dev": true,
3522
  "dependencies": {
3523
  "ansi-regex": "^6.0.1"
3524
  },
@@ -3551,6 +4238,15 @@
3551
  "node": ">=8"
3552
  }
3553
  },
 
 
 
 
 
 
 
 
 
3554
  "node_modules/strip-json-comments": {
3555
  "version": "3.1.1",
3556
  "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
@@ -3724,6 +4420,18 @@
3724
  "node": ">= 0.8.0"
3725
  }
3726
  },
 
 
 
 
 
 
 
 
 
 
 
 
3727
  "node_modules/typescript": {
3728
  "version": "5.6.3",
3729
  "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
@@ -3790,11 +4498,20 @@
3790
  "browserslist": ">= 4.21.0"
3791
  }
3792
  },
 
 
 
 
 
 
 
 
 
 
3793
  "node_modules/uri-js": {
3794
  "version": "4.4.1",
3795
  "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
3796
  "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
3797
- "dev": true,
3798
  "dependencies": {
3799
  "punycode": "^2.1.0"
3800
  }
@@ -3805,6 +4522,15 @@
3805
  "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
3806
  "dev": true
3807
  },
 
 
 
 
 
 
 
 
 
3808
  "node_modules/vite": {
3809
  "version": "5.4.8",
3810
  "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz",
@@ -3872,7 +4598,6 @@
3872
  "version": "2.0.2",
3873
  "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3874
  "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3875
- "dev": true,
3876
  "dependencies": {
3877
  "isexe": "^2.0.0"
3878
  },
@@ -3883,6 +4608,21 @@
3883
  "node": ">= 8"
3884
  }
3885
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3886
  "node_modules/word-wrap": {
3887
  "version": "1.2.5",
3888
  "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
@@ -3896,7 +4636,6 @@
3896
  "version": "8.1.0",
3897
  "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
3898
  "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
3899
- "dev": true,
3900
  "dependencies": {
3901
  "ansi-styles": "^6.1.0",
3902
  "string-width": "^5.0.1",
@@ -4005,7 +4744,6 @@
4005
  "version": "6.2.1",
4006
  "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
4007
  "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
4008
- "dev": true,
4009
  "engines": {
4010
  "node": ">=12"
4011
  },
 
16
  "lucide-react": "^0.344.0",
17
  "react": "^18.3.1",
18
  "react-dom": "^18.3.1",
19
+ "serve": "^14.2.4",
20
  "vite": "^5.4.2"
21
  },
22
  "devDependencies": {
 
1530
  "vite": "^4.2.0 || ^5.0.0"
1531
  }
1532
  },
1533
+ "node_modules/@zeit/schemas": {
1534
+ "version": "2.36.0",
1535
+ "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.36.0.tgz",
1536
+ "integrity": "sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==",
1537
+ "license": "MIT"
1538
+ },
1539
+ "node_modules/accepts": {
1540
+ "version": "1.3.8",
1541
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
1542
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
1543
+ "license": "MIT",
1544
+ "dependencies": {
1545
+ "mime-types": "~2.1.34",
1546
+ "negotiator": "0.6.3"
1547
+ },
1548
+ "engines": {
1549
+ "node": ">= 0.6"
1550
+ }
1551
+ },
1552
  "node_modules/acorn": {
1553
  "version": "8.12.1",
1554
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
 
1586
  "url": "https://github.com/sponsors/epoberezkin"
1587
  }
1588
  },
1589
+ "node_modules/ansi-align": {
1590
+ "version": "3.0.1",
1591
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
1592
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
1593
+ "license": "ISC",
1594
+ "dependencies": {
1595
+ "string-width": "^4.1.0"
1596
+ }
1597
+ },
1598
+ "node_modules/ansi-align/node_modules/ansi-regex": {
1599
+ "version": "5.0.1",
1600
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1601
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1602
+ "license": "MIT",
1603
+ "engines": {
1604
+ "node": ">=8"
1605
+ }
1606
+ },
1607
+ "node_modules/ansi-align/node_modules/emoji-regex": {
1608
+ "version": "8.0.0",
1609
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1610
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1611
+ "license": "MIT"
1612
+ },
1613
+ "node_modules/ansi-align/node_modules/string-width": {
1614
+ "version": "4.2.3",
1615
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1616
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1617
+ "license": "MIT",
1618
+ "dependencies": {
1619
+ "emoji-regex": "^8.0.0",
1620
+ "is-fullwidth-code-point": "^3.0.0",
1621
+ "strip-ansi": "^6.0.1"
1622
+ },
1623
+ "engines": {
1624
+ "node": ">=8"
1625
+ }
1626
+ },
1627
+ "node_modules/ansi-align/node_modules/strip-ansi": {
1628
+ "version": "6.0.1",
1629
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1630
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1631
+ "license": "MIT",
1632
+ "dependencies": {
1633
+ "ansi-regex": "^5.0.1"
1634
+ },
1635
+ "engines": {
1636
+ "node": ">=8"
1637
+ }
1638
+ },
1639
  "node_modules/ansi-regex": {
1640
  "version": "6.1.0",
1641
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
1642
  "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
 
1643
  "engines": {
1644
  "node": ">=12"
1645
  },
 
1678
  "node": ">= 8"
1679
  }
1680
  },
1681
+ "node_modules/arch": {
1682
+ "version": "2.2.0",
1683
+ "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
1684
+ "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
1685
+ "funding": [
1686
+ {
1687
+ "type": "github",
1688
+ "url": "https://github.com/sponsors/feross"
1689
+ },
1690
+ {
1691
+ "type": "patreon",
1692
+ "url": "https://www.patreon.com/feross"
1693
+ },
1694
+ {
1695
+ "type": "consulting",
1696
+ "url": "https://feross.org/support"
1697
+ }
1698
+ ],
1699
+ "license": "MIT"
1700
+ },
1701
  "node_modules/arg": {
1702
  "version": "5.0.2",
1703
  "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
1704
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
 
1705
  },
1706
  "node_modules/argparse": {
1707
  "version": "2.0.1",
 
1749
  "node_modules/balanced-match": {
1750
  "version": "1.0.2",
1751
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1752
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
 
1753
  },
1754
  "node_modules/binary-extensions": {
1755
  "version": "2.3.0",
 
1763
  "url": "https://github.com/sponsors/sindresorhus"
1764
  }
1765
  },
1766
+ "node_modules/boxen": {
1767
+ "version": "7.0.0",
1768
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz",
1769
+ "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==",
1770
+ "license": "MIT",
1771
+ "dependencies": {
1772
+ "ansi-align": "^3.0.1",
1773
+ "camelcase": "^7.0.0",
1774
+ "chalk": "^5.0.1",
1775
+ "cli-boxes": "^3.0.0",
1776
+ "string-width": "^5.1.2",
1777
+ "type-fest": "^2.13.0",
1778
+ "widest-line": "^4.0.1",
1779
+ "wrap-ansi": "^8.0.1"
1780
+ },
1781
+ "engines": {
1782
+ "node": ">=14.16"
1783
+ },
1784
+ "funding": {
1785
+ "url": "https://github.com/sponsors/sindresorhus"
1786
+ }
1787
+ },
1788
+ "node_modules/boxen/node_modules/chalk": {
1789
+ "version": "5.4.1",
1790
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
1791
+ "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
1792
+ "license": "MIT",
1793
+ "engines": {
1794
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
1795
+ },
1796
+ "funding": {
1797
+ "url": "https://github.com/chalk/chalk?sponsor=1"
1798
+ }
1799
+ },
1800
  "node_modules/brace-expansion": {
1801
  "version": "1.1.11",
1802
  "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1803
  "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
 
1804
  "dependencies": {
1805
  "balanced-match": "^1.0.0",
1806
  "concat-map": "0.0.1"
 
1850
  "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
1851
  }
1852
  },
1853
+ "node_modules/bytes": {
1854
+ "version": "3.0.0",
1855
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
1856
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
1857
+ "license": "MIT",
1858
+ "engines": {
1859
+ "node": ">= 0.8"
1860
+ }
1861
+ },
1862
  "node_modules/callsites": {
1863
  "version": "3.1.0",
1864
  "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
 
1868
  "node": ">=6"
1869
  }
1870
  },
1871
+ "node_modules/camelcase": {
1872
+ "version": "7.0.1",
1873
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
1874
+ "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==",
1875
+ "license": "MIT",
1876
+ "engines": {
1877
+ "node": ">=14.16"
1878
+ },
1879
+ "funding": {
1880
+ "url": "https://github.com/sponsors/sindresorhus"
1881
+ }
1882
+ },
1883
  "node_modules/camelcase-css": {
1884
  "version": "2.0.1",
1885
  "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
 
1923
  "node": ">=4"
1924
  }
1925
  },
1926
+ "node_modules/chalk-template": {
1927
+ "version": "0.4.0",
1928
+ "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz",
1929
+ "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==",
1930
+ "license": "MIT",
1931
+ "dependencies": {
1932
+ "chalk": "^4.1.2"
1933
+ },
1934
+ "engines": {
1935
+ "node": ">=12"
1936
+ },
1937
+ "funding": {
1938
+ "url": "https://github.com/chalk/chalk-template?sponsor=1"
1939
+ }
1940
+ },
1941
+ "node_modules/chalk-template/node_modules/ansi-styles": {
1942
+ "version": "4.3.0",
1943
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1944
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1945
+ "license": "MIT",
1946
+ "dependencies": {
1947
+ "color-convert": "^2.0.1"
1948
+ },
1949
+ "engines": {
1950
+ "node": ">=8"
1951
+ },
1952
+ "funding": {
1953
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1954
+ }
1955
+ },
1956
+ "node_modules/chalk-template/node_modules/chalk": {
1957
+ "version": "4.1.2",
1958
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1959
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1960
+ "license": "MIT",
1961
+ "dependencies": {
1962
+ "ansi-styles": "^4.1.0",
1963
+ "supports-color": "^7.1.0"
1964
+ },
1965
+ "engines": {
1966
+ "node": ">=10"
1967
+ },
1968
+ "funding": {
1969
+ "url": "https://github.com/chalk/chalk?sponsor=1"
1970
+ }
1971
+ },
1972
+ "node_modules/chalk-template/node_modules/color-convert": {
1973
+ "version": "2.0.1",
1974
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1975
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1976
+ "license": "MIT",
1977
+ "dependencies": {
1978
+ "color-name": "~1.1.4"
1979
+ },
1980
+ "engines": {
1981
+ "node": ">=7.0.0"
1982
+ }
1983
+ },
1984
+ "node_modules/chalk-template/node_modules/color-name": {
1985
+ "version": "1.1.4",
1986
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1987
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1988
+ "license": "MIT"
1989
+ },
1990
+ "node_modules/chalk-template/node_modules/has-flag": {
1991
+ "version": "4.0.0",
1992
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1993
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1994
+ "license": "MIT",
1995
+ "engines": {
1996
+ "node": ">=8"
1997
+ }
1998
+ },
1999
+ "node_modules/chalk-template/node_modules/supports-color": {
2000
+ "version": "7.2.0",
2001
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2002
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2003
+ "license": "MIT",
2004
+ "dependencies": {
2005
+ "has-flag": "^4.0.0"
2006
+ },
2007
+ "engines": {
2008
+ "node": ">=8"
2009
+ }
2010
+ },
2011
  "node_modules/chokidar": {
2012
  "version": "3.6.0",
2013
  "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
 
2044
  "node": ">= 6"
2045
  }
2046
  },
2047
+ "node_modules/cli-boxes": {
2048
+ "version": "3.0.0",
2049
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
2050
+ "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
2051
+ "license": "MIT",
2052
+ "engines": {
2053
+ "node": ">=10"
2054
+ },
2055
+ "funding": {
2056
+ "url": "https://github.com/sponsors/sindresorhus"
2057
+ }
2058
+ },
2059
+ "node_modules/clipboardy": {
2060
+ "version": "3.0.0",
2061
+ "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz",
2062
+ "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==",
2063
+ "license": "MIT",
2064
+ "dependencies": {
2065
+ "arch": "^2.2.0",
2066
+ "execa": "^5.1.1",
2067
+ "is-wsl": "^2.2.0"
2068
+ },
2069
+ "engines": {
2070
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
2071
+ },
2072
+ "funding": {
2073
+ "url": "https://github.com/sponsors/sindresorhus"
2074
+ }
2075
+ },
2076
  "node_modules/color-convert": {
2077
  "version": "1.9.3",
2078
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
 
2097
  "node": ">= 6"
2098
  }
2099
  },
2100
+ "node_modules/compressible": {
2101
+ "version": "2.0.18",
2102
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
2103
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
2104
+ "license": "MIT",
2105
+ "dependencies": {
2106
+ "mime-db": ">= 1.43.0 < 2"
2107
+ },
2108
+ "engines": {
2109
+ "node": ">= 0.6"
2110
+ }
2111
+ },
2112
+ "node_modules/compression": {
2113
+ "version": "1.7.4",
2114
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
2115
+ "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
2116
+ "license": "MIT",
2117
+ "dependencies": {
2118
+ "accepts": "~1.3.5",
2119
+ "bytes": "3.0.0",
2120
+ "compressible": "~2.0.16",
2121
+ "debug": "2.6.9",
2122
+ "on-headers": "~1.0.2",
2123
+ "safe-buffer": "5.1.2",
2124
+ "vary": "~1.1.2"
2125
+ },
2126
+ "engines": {
2127
+ "node": ">= 0.8.0"
2128
+ }
2129
+ },
2130
+ "node_modules/compression/node_modules/debug": {
2131
+ "version": "2.6.9",
2132
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2133
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2134
+ "license": "MIT",
2135
+ "dependencies": {
2136
+ "ms": "2.0.0"
2137
+ }
2138
+ },
2139
+ "node_modules/compression/node_modules/ms": {
2140
+ "version": "2.0.0",
2141
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2142
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
2143
+ "license": "MIT"
2144
+ },
2145
  "node_modules/concat-map": {
2146
  "version": "0.0.1",
2147
  "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2148
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
2149
+ },
2150
+ "node_modules/content-disposition": {
2151
+ "version": "0.5.2",
2152
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
2153
+ "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==",
2154
+ "license": "MIT",
2155
+ "engines": {
2156
+ "node": ">= 0.6"
2157
+ }
2158
  },
2159
  "node_modules/convert-source-map": {
2160
  "version": "2.0.0",
 
2166
  "version": "7.0.3",
2167
  "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
2168
  "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
 
2169
  "dependencies": {
2170
  "path-key": "^3.1.0",
2171
  "shebang-command": "^2.0.0",
 
2210
  }
2211
  }
2212
  },
2213
+ "node_modules/deep-extend": {
2214
+ "version": "0.6.0",
2215
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
2216
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
2217
+ "license": "MIT",
2218
+ "engines": {
2219
+ "node": ">=4.0.0"
2220
+ }
2221
+ },
2222
  "node_modules/deep-is": {
2223
  "version": "0.1.4",
2224
  "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
 
2240
  "node_modules/eastasianwidth": {
2241
  "version": "0.2.0",
2242
  "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
2243
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
 
2244
  },
2245
  "node_modules/electron-to-chromium": {
2246
  "version": "1.5.33",
 
2251
  "node_modules/emoji-regex": {
2252
  "version": "9.2.2",
2253
  "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
2254
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
 
2255
  },
2256
  "node_modules/esbuild": {
2257
  "version": "0.21.5",
 
2558
  "node": ">=0.10.0"
2559
  }
2560
  },
2561
+ "node_modules/execa": {
2562
+ "version": "5.1.1",
2563
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
2564
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
2565
+ "license": "MIT",
2566
+ "dependencies": {
2567
+ "cross-spawn": "^7.0.3",
2568
+ "get-stream": "^6.0.0",
2569
+ "human-signals": "^2.1.0",
2570
+ "is-stream": "^2.0.0",
2571
+ "merge-stream": "^2.0.0",
2572
+ "npm-run-path": "^4.0.1",
2573
+ "onetime": "^5.1.2",
2574
+ "signal-exit": "^3.0.3",
2575
+ "strip-final-newline": "^2.0.0"
2576
+ },
2577
+ "engines": {
2578
+ "node": ">=10"
2579
+ },
2580
+ "funding": {
2581
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
2582
+ }
2583
+ },
2584
+ "node_modules/execa/node_modules/signal-exit": {
2585
+ "version": "3.0.7",
2586
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
2587
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
2588
+ "license": "ISC"
2589
+ },
2590
  "node_modules/fast-deep-equal": {
2591
  "version": "3.1.3",
2592
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
2593
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
 
2594
  },
2595
  "node_modules/fast-glob": {
2596
  "version": "3.3.2",
 
2760
  "node": ">=6.9.0"
2761
  }
2762
  },
2763
+ "node_modules/get-stream": {
2764
+ "version": "6.0.1",
2765
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
2766
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
2767
+ "license": "MIT",
2768
+ "engines": {
2769
+ "node": ">=10"
2770
+ },
2771
+ "funding": {
2772
+ "url": "https://github.com/sponsors/sindresorhus"
2773
+ }
2774
+ },
2775
  "node_modules/glob": {
2776
  "version": "10.4.5",
2777
  "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
 
2867
  "node": ">= 0.4"
2868
  }
2869
  },
2870
+ "node_modules/human-signals": {
2871
+ "version": "2.1.0",
2872
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
2873
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
2874
+ "license": "Apache-2.0",
2875
+ "engines": {
2876
+ "node": ">=10.17.0"
2877
+ }
2878
+ },
2879
  "node_modules/ignore": {
2880
  "version": "5.3.2",
2881
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
 
2910
  "node": ">=0.8.19"
2911
  }
2912
  },
2913
+ "node_modules/ini": {
2914
+ "version": "1.3.8",
2915
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
2916
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
2917
+ "license": "ISC"
2918
+ },
2919
  "node_modules/is-binary-path": {
2920
  "version": "2.1.0",
2921
  "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
 
2943
  "url": "https://github.com/sponsors/ljharb"
2944
  }
2945
  },
2946
+ "node_modules/is-docker": {
2947
+ "version": "2.2.1",
2948
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
2949
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
2950
+ "license": "MIT",
2951
+ "bin": {
2952
+ "is-docker": "cli.js"
2953
+ },
2954
+ "engines": {
2955
+ "node": ">=8"
2956
+ },
2957
+ "funding": {
2958
+ "url": "https://github.com/sponsors/sindresorhus"
2959
+ }
2960
+ },
2961
  "node_modules/is-extglob": {
2962
  "version": "2.1.1",
2963
  "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
 
2971
  "version": "3.0.0",
2972
  "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2973
  "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
 
2974
  "engines": {
2975
  "node": ">=8"
2976
  }
 
2996
  "node": ">=0.12.0"
2997
  }
2998
  },
2999
+ "node_modules/is-port-reachable": {
3000
+ "version": "4.0.0",
3001
+ "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz",
3002
+ "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==",
3003
+ "license": "MIT",
3004
+ "engines": {
3005
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
3006
+ },
3007
+ "funding": {
3008
+ "url": "https://github.com/sponsors/sindresorhus"
3009
+ }
3010
+ },
3011
+ "node_modules/is-stream": {
3012
+ "version": "2.0.1",
3013
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
3014
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
3015
+ "license": "MIT",
3016
+ "engines": {
3017
+ "node": ">=8"
3018
+ },
3019
+ "funding": {
3020
+ "url": "https://github.com/sponsors/sindresorhus"
3021
+ }
3022
+ },
3023
+ "node_modules/is-wsl": {
3024
+ "version": "2.2.0",
3025
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
3026
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
3027
+ "license": "MIT",
3028
+ "dependencies": {
3029
+ "is-docker": "^2.0.0"
3030
+ },
3031
+ "engines": {
3032
+ "node": ">=8"
3033
+ }
3034
+ },
3035
  "node_modules/isexe": {
3036
  "version": "2.0.0",
3037
  "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
3038
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
 
3039
  },
3040
  "node_modules/jackspeak": {
3041
  "version": "3.4.3",
 
3206
  "react": "^16.5.1 || ^17.0.0 || ^18.0.0"
3207
  }
3208
  },
3209
+ "node_modules/merge-stream": {
3210
+ "version": "2.0.0",
3211
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
3212
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
3213
+ "license": "MIT"
3214
+ },
3215
  "node_modules/merge2": {
3216
  "version": "1.4.1",
3217
  "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
 
3234
  "node": ">=8.6"
3235
  }
3236
  },
3237
+ "node_modules/mime-db": {
3238
+ "version": "1.54.0",
3239
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
3240
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
3241
+ "license": "MIT",
3242
+ "engines": {
3243
+ "node": ">= 0.6"
3244
+ }
3245
+ },
3246
+ "node_modules/mime-types": {
3247
+ "version": "2.1.35",
3248
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
3249
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
3250
+ "license": "MIT",
3251
+ "dependencies": {
3252
+ "mime-db": "1.52.0"
3253
+ },
3254
+ "engines": {
3255
+ "node": ">= 0.6"
3256
+ }
3257
+ },
3258
+ "node_modules/mime-types/node_modules/mime-db": {
3259
+ "version": "1.52.0",
3260
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
3261
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
3262
+ "license": "MIT",
3263
+ "engines": {
3264
+ "node": ">= 0.6"
3265
+ }
3266
+ },
3267
+ "node_modules/mimic-fn": {
3268
+ "version": "2.1.0",
3269
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
3270
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
3271
+ "license": "MIT",
3272
+ "engines": {
3273
+ "node": ">=6"
3274
+ }
3275
+ },
3276
  "node_modules/minimatch": {
3277
  "version": "3.1.2",
3278
  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
3279
  "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
 
3280
  "dependencies": {
3281
  "brace-expansion": "^1.1.7"
3282
  },
 
3284
  "node": "*"
3285
  }
3286
  },
3287
+ "node_modules/minimist": {
3288
+ "version": "1.2.8",
3289
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
3290
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
3291
+ "license": "MIT",
3292
+ "funding": {
3293
+ "url": "https://github.com/sponsors/ljharb"
3294
+ }
3295
+ },
3296
  "node_modules/minipass": {
3297
  "version": "7.1.2",
3298
  "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
 
3342
  "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
3343
  "dev": true
3344
  },
3345
+ "node_modules/negotiator": {
3346
+ "version": "0.6.3",
3347
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
3348
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
3349
+ "license": "MIT",
3350
+ "engines": {
3351
+ "node": ">= 0.6"
3352
+ }
3353
+ },
3354
  "node_modules/node-releases": {
3355
  "version": "2.0.18",
3356
  "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
 
3375
  "node": ">=0.10.0"
3376
  }
3377
  },
3378
+ "node_modules/npm-run-path": {
3379
+ "version": "4.0.1",
3380
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
3381
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
3382
+ "license": "MIT",
3383
+ "dependencies": {
3384
+ "path-key": "^3.0.0"
3385
+ },
3386
+ "engines": {
3387
+ "node": ">=8"
3388
+ }
3389
+ },
3390
  "node_modules/object-assign": {
3391
  "version": "4.1.1",
3392
  "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
 
3405
  "node": ">= 6"
3406
  }
3407
  },
3408
+ "node_modules/on-headers": {
3409
+ "version": "1.0.2",
3410
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
3411
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
3412
+ "license": "MIT",
3413
+ "engines": {
3414
+ "node": ">= 0.8"
3415
+ }
3416
+ },
3417
+ "node_modules/onetime": {
3418
+ "version": "5.1.2",
3419
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
3420
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
3421
+ "license": "MIT",
3422
+ "dependencies": {
3423
+ "mimic-fn": "^2.1.0"
3424
+ },
3425
+ "engines": {
3426
+ "node": ">=6"
3427
+ },
3428
+ "funding": {
3429
+ "url": "https://github.com/sponsors/sindresorhus"
3430
+ }
3431
+ },
3432
  "node_modules/optionator": {
3433
  "version": "0.9.4",
3434
  "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
 
3503
  "node": ">=8"
3504
  }
3505
  },
3506
+ "node_modules/path-is-inside": {
3507
+ "version": "1.0.2",
3508
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
3509
+ "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
3510
+ "license": "(WTFPL OR MIT)"
3511
+ },
3512
  "node_modules/path-key": {
3513
  "version": "3.1.1",
3514
  "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
3515
  "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
 
3516
  "engines": {
3517
  "node": ">=8"
3518
  }
 
3545
  "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
3546
  "dev": true
3547
  },
3548
+ "node_modules/path-to-regexp": {
3549
+ "version": "3.3.0",
3550
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz",
3551
+ "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==",
3552
+ "license": "MIT"
3553
+ },
3554
  "node_modules/picocolors": {
3555
  "version": "1.1.0",
3556
  "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
 
3753
  "version": "2.3.1",
3754
  "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
3755
  "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
 
3756
  "engines": {
3757
  "node": ">=6"
3758
  }
 
3777
  }
3778
  ]
3779
  },
3780
+ "node_modules/range-parser": {
3781
+ "version": "1.2.0",
3782
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
3783
+ "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==",
3784
+ "license": "MIT",
3785
+ "engines": {
3786
+ "node": ">= 0.6"
3787
+ }
3788
+ },
3789
+ "node_modules/rc": {
3790
+ "version": "1.2.8",
3791
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
3792
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
3793
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
3794
+ "dependencies": {
3795
+ "deep-extend": "^0.6.0",
3796
+ "ini": "~1.3.0",
3797
+ "minimist": "^1.2.0",
3798
+ "strip-json-comments": "~2.0.1"
3799
+ },
3800
+ "bin": {
3801
+ "rc": "cli.js"
3802
+ }
3803
+ },
3804
+ "node_modules/rc/node_modules/strip-json-comments": {
3805
+ "version": "2.0.1",
3806
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
3807
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
3808
+ "license": "MIT",
3809
+ "engines": {
3810
+ "node": ">=0.10.0"
3811
+ }
3812
+ },
3813
  "node_modules/react": {
3814
  "version": "18.3.1",
3815
  "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
 
3863
  "node": ">=8.10.0"
3864
  }
3865
  },
3866
+ "node_modules/registry-auth-token": {
3867
+ "version": "3.3.2",
3868
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
3869
+ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
3870
+ "license": "MIT",
3871
+ "dependencies": {
3872
+ "rc": "^1.1.6",
3873
+ "safe-buffer": "^5.0.1"
3874
+ }
3875
+ },
3876
+ "node_modules/registry-url": {
3877
+ "version": "3.1.0",
3878
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
3879
+ "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==",
3880
+ "license": "MIT",
3881
+ "dependencies": {
3882
+ "rc": "^1.0.1"
3883
+ },
3884
+ "engines": {
3885
+ "node": ">=0.10.0"
3886
+ }
3887
+ },
3888
+ "node_modules/require-from-string": {
3889
+ "version": "2.0.2",
3890
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
3891
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
3892
+ "license": "MIT",
3893
+ "engines": {
3894
+ "node": ">=0.10.0"
3895
+ }
3896
+ },
3897
  "node_modules/resolve": {
3898
  "version": "1.22.8",
3899
  "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
 
3987
  "queue-microtask": "^1.2.2"
3988
  }
3989
  },
3990
+ "node_modules/safe-buffer": {
3991
+ "version": "5.1.2",
3992
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3993
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
3994
+ "license": "MIT"
3995
+ },
3996
  "node_modules/scheduler": {
3997
  "version": "0.23.2",
3998
  "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
 
4010
  "semver": "bin/semver.js"
4011
  }
4012
  },
4013
+ "node_modules/serve": {
4014
+ "version": "14.2.4",
4015
+ "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.4.tgz",
4016
+ "integrity": "sha512-qy1S34PJ/fcY8gjVGszDB3EXiPSk5FKhUa7tQe0UPRddxRidc2V6cNHPNewbE1D7MAkgLuWEt3Vw56vYy73tzQ==",
4017
+ "license": "MIT",
4018
+ "dependencies": {
4019
+ "@zeit/schemas": "2.36.0",
4020
+ "ajv": "8.12.0",
4021
+ "arg": "5.0.2",
4022
+ "boxen": "7.0.0",
4023
+ "chalk": "5.0.1",
4024
+ "chalk-template": "0.4.0",
4025
+ "clipboardy": "3.0.0",
4026
+ "compression": "1.7.4",
4027
+ "is-port-reachable": "4.0.0",
4028
+ "serve-handler": "6.1.6",
4029
+ "update-check": "1.5.4"
4030
+ },
4031
+ "bin": {
4032
+ "serve": "build/main.js"
4033
+ },
4034
+ "engines": {
4035
+ "node": ">= 14"
4036
+ }
4037
+ },
4038
+ "node_modules/serve-handler": {
4039
+ "version": "6.1.6",
4040
+ "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz",
4041
+ "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==",
4042
+ "license": "MIT",
4043
+ "dependencies": {
4044
+ "bytes": "3.0.0",
4045
+ "content-disposition": "0.5.2",
4046
+ "mime-types": "2.1.18",
4047
+ "minimatch": "3.1.2",
4048
+ "path-is-inside": "1.0.2",
4049
+ "path-to-regexp": "3.3.0",
4050
+ "range-parser": "1.2.0"
4051
+ }
4052
+ },
4053
+ "node_modules/serve-handler/node_modules/mime-db": {
4054
+ "version": "1.33.0",
4055
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
4056
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
4057
+ "license": "MIT",
4058
+ "engines": {
4059
+ "node": ">= 0.6"
4060
+ }
4061
+ },
4062
+ "node_modules/serve-handler/node_modules/mime-types": {
4063
+ "version": "2.1.18",
4064
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
4065
+ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
4066
+ "license": "MIT",
4067
+ "dependencies": {
4068
+ "mime-db": "~1.33.0"
4069
+ },
4070
+ "engines": {
4071
+ "node": ">= 0.6"
4072
+ }
4073
+ },
4074
+ "node_modules/serve/node_modules/ajv": {
4075
+ "version": "8.12.0",
4076
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
4077
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
4078
+ "license": "MIT",
4079
+ "dependencies": {
4080
+ "fast-deep-equal": "^3.1.1",
4081
+ "json-schema-traverse": "^1.0.0",
4082
+ "require-from-string": "^2.0.2",
4083
+ "uri-js": "^4.2.2"
4084
+ },
4085
+ "funding": {
4086
+ "type": "github",
4087
+ "url": "https://github.com/sponsors/epoberezkin"
4088
+ }
4089
+ },
4090
+ "node_modules/serve/node_modules/chalk": {
4091
+ "version": "5.0.1",
4092
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz",
4093
+ "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==",
4094
+ "license": "MIT",
4095
+ "engines": {
4096
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
4097
+ },
4098
+ "funding": {
4099
+ "url": "https://github.com/chalk/chalk?sponsor=1"
4100
+ }
4101
+ },
4102
+ "node_modules/serve/node_modules/json-schema-traverse": {
4103
+ "version": "1.0.0",
4104
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
4105
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
4106
+ "license": "MIT"
4107
+ },
4108
  "node_modules/shebang-command": {
4109
  "version": "2.0.0",
4110
  "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
4111
  "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
 
4112
  "dependencies": {
4113
  "shebang-regex": "^3.0.0"
4114
  },
 
4120
  "version": "3.0.0",
4121
  "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
4122
  "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
 
4123
  "engines": {
4124
  "node": ">=8"
4125
  }
 
4148
  "version": "5.1.2",
4149
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
4150
  "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
 
4151
  "dependencies": {
4152
  "eastasianwidth": "^0.2.0",
4153
  "emoji-regex": "^9.2.2",
 
4206
  "version": "7.1.0",
4207
  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
4208
  "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
 
4209
  "dependencies": {
4210
  "ansi-regex": "^6.0.1"
4211
  },
 
4238
  "node": ">=8"
4239
  }
4240
  },
4241
+ "node_modules/strip-final-newline": {
4242
+ "version": "2.0.0",
4243
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
4244
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
4245
+ "license": "MIT",
4246
+ "engines": {
4247
+ "node": ">=6"
4248
+ }
4249
+ },
4250
  "node_modules/strip-json-comments": {
4251
  "version": "3.1.1",
4252
  "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
 
4420
  "node": ">= 0.8.0"
4421
  }
4422
  },
4423
+ "node_modules/type-fest": {
4424
+ "version": "2.19.0",
4425
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
4426
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
4427
+ "license": "(MIT OR CC0-1.0)",
4428
+ "engines": {
4429
+ "node": ">=12.20"
4430
+ },
4431
+ "funding": {
4432
+ "url": "https://github.com/sponsors/sindresorhus"
4433
+ }
4434
+ },
4435
  "node_modules/typescript": {
4436
  "version": "5.6.3",
4437
  "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
 
4498
  "browserslist": ">= 4.21.0"
4499
  }
4500
  },
4501
+ "node_modules/update-check": {
4502
+ "version": "1.5.4",
4503
+ "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz",
4504
+ "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==",
4505
+ "license": "MIT",
4506
+ "dependencies": {
4507
+ "registry-auth-token": "3.3.2",
4508
+ "registry-url": "3.1.0"
4509
+ }
4510
+ },
4511
  "node_modules/uri-js": {
4512
  "version": "4.4.1",
4513
  "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
4514
  "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
 
4515
  "dependencies": {
4516
  "punycode": "^2.1.0"
4517
  }
 
4522
  "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
4523
  "dev": true
4524
  },
4525
+ "node_modules/vary": {
4526
+ "version": "1.1.2",
4527
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
4528
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
4529
+ "license": "MIT",
4530
+ "engines": {
4531
+ "node": ">= 0.8"
4532
+ }
4533
+ },
4534
  "node_modules/vite": {
4535
  "version": "5.4.8",
4536
  "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz",
 
4598
  "version": "2.0.2",
4599
  "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
4600
  "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
 
4601
  "dependencies": {
4602
  "isexe": "^2.0.0"
4603
  },
 
4608
  "node": ">= 8"
4609
  }
4610
  },
4611
+ "node_modules/widest-line": {
4612
+ "version": "4.0.1",
4613
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz",
4614
+ "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
4615
+ "license": "MIT",
4616
+ "dependencies": {
4617
+ "string-width": "^5.0.1"
4618
+ },
4619
+ "engines": {
4620
+ "node": ">=12"
4621
+ },
4622
+ "funding": {
4623
+ "url": "https://github.com/sponsors/sindresorhus"
4624
+ }
4625
+ },
4626
  "node_modules/word-wrap": {
4627
  "version": "1.2.5",
4628
  "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
 
4636
  "version": "8.1.0",
4637
  "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
4638
  "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
 
4639
  "dependencies": {
4640
  "ansi-styles": "^6.1.0",
4641
  "string-width": "^5.0.1",
 
4744
  "version": "6.2.1",
4745
  "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
4746
  "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
 
4747
  "engines": {
4748
  "node": ">=12"
4749
  },
package.json CHANGED
@@ -18,6 +18,7 @@
18
  "lucide-react": "^0.344.0",
19
  "react": "^18.3.1",
20
  "react-dom": "^18.3.1",
 
21
  "vite": "^5.4.2"
22
  },
23
  "devDependencies": {
@@ -35,4 +36,4 @@
35
  "typescript": "^5.5.3",
36
  "typescript-eslint": "^8.3.0"
37
  }
38
- }
 
18
  "lucide-react": "^0.344.0",
19
  "react": "^18.3.1",
20
  "react-dom": "^18.3.1",
21
+ "serve": "^14.2.4",
22
  "vite": "^5.4.2"
23
  },
24
  "devDependencies": {
 
36
  "typescript": "^5.5.3",
37
  "typescript-eslint": "^8.3.0"
38
  }
39
+ }