src
layouts
pages
configurator
core
engine
orchestrator
storage
themes
scripts
styles
tasks
···
1
1
import { defineConfig } from "astro/config";
2
2
import scope from "astro-scope";
3
3
4
4
+
import purgecss from "astro-purgecss";
5
5
+
4
6
export default defineConfig({
5
5
-
integrations: [scope()],
7
7
+
integrations: [scope(), purgecss()],
8
8
+
build: {
9
9
+
inlineStylesheets: "never",
10
10
+
},
6
11
});
···
11
11
},
12
12
"copy-types": "deno run --allow-read --allow-write tasks/copy-types.ts",
13
13
"dev": "astro dev"
14
14
-
},
15
15
-
"compilerOptions": {
16
16
-
"lib": ["dom", "dom.iterable", "dom.asynciterable", "deno.ns"]
17
14
}
18
15
}
···
1
1
{
2
2
-
"version": "4",
2
2
+
"version": "5",
3
3
"specifiers": {
4
4
"jsr:@std/fs@1": "1.0.16",
5
5
"jsr:@std/path@^1.0.8": "1.0.8"
···
22
22
"packageJson": {
23
23
"dependencies": [
24
24
"npm:@picocss/pico@^2.1.1",
25
25
+
"npm:astro-purgecss@^5.2.2",
25
26
"npm:astro-scope@^3.0.1",
26
27
"npm:astro@^5.7.4",
27
28
"npm:iconoir@^7.11.0",
28
29
"npm:idb-keyval@^6.2.1",
29
30
"npm:native-file-system-adapter@^3.0.1",
31
31
+
"npm:purgecss@^7.0.2",
30
32
"npm:sass@^1.87.0",
31
33
"npm:throttle-debounce@^5.0.2",
32
34
"npm:xxh32@^2.0.5"
···
10
10
"iconoir": "^7.11.0",
11
11
"idb-keyval": "^6.2.1",
12
12
"native-file-system-adapter": "^3.0.1",
13
13
-
"sass": "^1.87.0",
14
13
"spellcaster": "gordonbrander/spellcaster#1613e5e3b7f202cfe57f37ea7c637ec83588a297",
15
14
"throttle-debounce": "^5.0.2",
16
15
"xxh32": "^2.0.5"
17
16
},
18
17
"devDependencies": {
19
18
"astro": "^5.7.4",
20
20
-
"astro-scope": "^3.0.1"
19
19
+
"astro-purgecss": "^5.2.2",
20
20
+
"astro-scope": "^3.0.1",
21
21
+
"purgecss": "^7.0.2",
22
22
+
"sass": "^1.87.0"
21
23
}
22
24
},
23
25
"../../unternet-co/web-applets/sdk": {
···
930
932
"url": "https://opencollective.com/libvips"
931
933
}
932
934
},
935
935
+
"node_modules/@isaacs/cliui": {
936
936
+
"version": "8.0.2",
937
937
+
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
938
938
+
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
939
939
+
"dev": true,
940
940
+
"dependencies": {
941
941
+
"string-width": "^5.1.2",
942
942
+
"string-width-cjs": "npm:string-width@^4.2.0",
943
943
+
"strip-ansi": "^7.0.1",
944
944
+
"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
945
945
+
"wrap-ansi": "^8.1.0",
946
946
+
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
947
947
+
},
948
948
+
"engines": {
949
949
+
"node": ">=12"
950
950
+
}
951
951
+
},
952
952
+
"node_modules/@isaacs/cliui/node_modules/emoji-regex": {
953
953
+
"version": "9.2.2",
954
954
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
955
955
+
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
956
956
+
"dev": true
957
957
+
},
958
958
+
"node_modules/@isaacs/cliui/node_modules/string-width": {
959
959
+
"version": "5.1.2",
960
960
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
961
961
+
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
962
962
+
"dev": true,
963
963
+
"dependencies": {
964
964
+
"eastasianwidth": "^0.2.0",
965
965
+
"emoji-regex": "^9.2.2",
966
966
+
"strip-ansi": "^7.0.1"
967
967
+
},
968
968
+
"engines": {
969
969
+
"node": ">=12"
970
970
+
},
971
971
+
"funding": {
972
972
+
"url": "https://github.com/sponsors/sindresorhus"
973
973
+
}
974
974
+
},
975
975
+
"node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
976
976
+
"version": "8.1.0",
977
977
+
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
978
978
+
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
979
979
+
"dev": true,
980
980
+
"dependencies": {
981
981
+
"ansi-styles": "^6.1.0",
982
982
+
"string-width": "^5.0.1",
983
983
+
"strip-ansi": "^7.0.1"
984
984
+
},
985
985
+
"engines": {
986
986
+
"node": ">=12"
987
987
+
},
988
988
+
"funding": {
989
989
+
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
990
990
+
}
991
991
+
},
933
992
"node_modules/@jridgewell/sourcemap-codec": {
934
993
"version": "1.5.0",
935
994
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
···
946
1005
"version": "2.5.1",
947
1006
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
948
1007
"integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
1008
1008
+
"dev": true,
949
1009
"hasInstallScript": true,
950
1010
"optional": true,
951
1011
"dependencies": {
···
984
1044
"cpu": [
985
1045
"arm64"
986
1046
],
1047
1047
+
"dev": true,
987
1048
"optional": true,
988
1049
"os": [
989
1050
"android"
···
1003
1064
"cpu": [
1004
1065
"arm64"
1005
1066
],
1067
1067
+
"dev": true,
1006
1068
"optional": true,
1007
1069
"os": [
1008
1070
"darwin"
···
1022
1084
"cpu": [
1023
1085
"x64"
1024
1086
],
1087
1087
+
"dev": true,
1025
1088
"optional": true,
1026
1089
"os": [
1027
1090
"darwin"
···
1041
1104
"cpu": [
1042
1105
"x64"
1043
1106
],
1107
1107
+
"dev": true,
1044
1108
"optional": true,
1045
1109
"os": [
1046
1110
"freebsd"
···
1060
1124
"cpu": [
1061
1125
"arm"
1062
1126
],
1127
1127
+
"dev": true,
1063
1128
"optional": true,
1064
1129
"os": [
1065
1130
"linux"
···
1079
1144
"cpu": [
1080
1145
"arm"
1081
1146
],
1147
1147
+
"dev": true,
1082
1148
"optional": true,
1083
1149
"os": [
1084
1150
"linux"
···
1098
1164
"cpu": [
1099
1165
"arm64"
1100
1166
],
1167
1167
+
"dev": true,
1101
1168
"optional": true,
1102
1169
"os": [
1103
1170
"linux"
···
1117
1184
"cpu": [
1118
1185
"arm64"
1119
1186
],
1187
1187
+
"dev": true,
1120
1188
"optional": true,
1121
1189
"os": [
1122
1190
"linux"
···
1136
1204
"cpu": [
1137
1205
"x64"
1138
1206
],
1207
1207
+
"dev": true,
1139
1208
"optional": true,
1140
1209
"os": [
1141
1210
"linux"
···
1155
1224
"cpu": [
1156
1225
"x64"
1157
1226
],
1227
1227
+
"dev": true,
1158
1228
"optional": true,
1159
1229
"os": [
1160
1230
"linux"
···
1174
1244
"cpu": [
1175
1245
"arm64"
1176
1246
],
1247
1247
+
"dev": true,
1177
1248
"optional": true,
1178
1249
"os": [
1179
1250
"win32"
···
1193
1264
"cpu": [
1194
1265
"ia32"
1195
1266
],
1267
1267
+
"dev": true,
1196
1268
"optional": true,
1197
1269
"os": [
1198
1270
"win32"
···
1212
1284
"cpu": [
1213
1285
"x64"
1214
1286
],
1287
1287
+
"dev": true,
1215
1288
"optional": true,
1216
1289
"os": [
1217
1290
"win32"
···
1228
1301
"version": "1.0.3",
1229
1302
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
1230
1303
"integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
1304
1304
+
"dev": true,
1231
1305
"optional": true,
1232
1306
"bin": {
1233
1307
"detect-libc": "bin/detect-libc.js"
···
1887
1961
"sharp": "^0.33.3"
1888
1962
}
1889
1963
},
1964
1964
+
"node_modules/astro-purgecss": {
1965
1965
+
"version": "5.2.2",
1966
1966
+
"resolved": "https://registry.npmjs.org/astro-purgecss/-/astro-purgecss-5.2.2.tgz",
1967
1967
+
"integrity": "sha512-lL4JqBlIyRTj6CQPJrGRWJYX6OzyGBEGjLwxmgSHALn0xKsU0zf9X4Lnd+L+SM0wa+o7UbD9wXMhmK42sjXl8g==",
1968
1968
+
"dev": true,
1969
1969
+
"peerDependencies": {
1970
1970
+
"astro": "^5.0.0",
1971
1971
+
"purgecss": "^7.0.0"
1972
1972
+
}
1973
1973
+
},
1890
1974
"node_modules/astro-scope": {
1891
1975
"version": "3.0.1",
1892
1976
"resolved": "https://registry.npmjs.org/astro-scope/-/astro-scope-3.0.1.tgz",
···
1915
1999
"url": "https://github.com/sponsors/wooorm"
1916
2000
}
1917
2001
},
2002
2002
+
"node_modules/balanced-match": {
2003
2003
+
"version": "1.0.2",
2004
2004
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
2005
2005
+
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
2006
2006
+
"dev": true
2007
2007
+
},
1918
2008
"node_modules/base-64": {
1919
2009
"version": "1.0.0",
1920
2010
"resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz",
···
1983
2073
"url": "https://github.com/sponsors/sindresorhus"
1984
2074
}
1985
2075
},
2076
2076
+
"node_modules/brace-expansion": {
2077
2077
+
"version": "2.0.1",
2078
2078
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
2079
2079
+
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
2080
2080
+
"dev": true,
2081
2081
+
"dependencies": {
2082
2082
+
"balanced-match": "^1.0.0"
2083
2083
+
}
2084
2084
+
},
1986
2085
"node_modules/braces": {
1987
2086
"version": "3.0.3",
1988
2087
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
1989
2088
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
2089
2089
+
"dev": true,
1990
2090
"optional": true,
1991
2091
"dependencies": {
1992
2092
"fill-range": "^7.1.1"
···
2072
2172
"version": "4.0.3",
2073
2173
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
2074
2174
"integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
2175
2175
+
"dev": true,
2075
2176
"dependencies": {
2076
2177
"readdirp": "^4.0.1"
2077
2178
},
···
2146
2247
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2147
2248
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2148
2249
"dev": true,
2149
2149
-
"optional": true,
2150
2250
"dependencies": {
2151
2251
"color-name": "~1.1.4"
2152
2252
},
···
2158
2258
"version": "1.1.4",
2159
2259
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2160
2260
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2161
2161
-
"dev": true,
2162
2162
-
"optional": true
2261
2261
+
"dev": true
2163
2262
},
2164
2263
"node_modules/color-string": {
2165
2264
"version": "1.9.1",
···
2182
2281
"url": "https://github.com/sponsors/wooorm"
2183
2282
}
2184
2283
},
2284
2284
+
"node_modules/commander": {
2285
2285
+
"version": "12.1.0",
2286
2286
+
"resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
2287
2287
+
"integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
2288
2288
+
"dev": true,
2289
2289
+
"engines": {
2290
2290
+
"node": ">=18"
2291
2291
+
}
2292
2292
+
},
2185
2293
"node_modules/common-ancestor-path": {
2186
2294
"version": "1.0.1",
2187
2295
"resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz",
···
2212
2320
"node-fetch": "^2.7.0"
2213
2321
}
2214
2322
},
2323
2323
+
"node_modules/cross-spawn": {
2324
2324
+
"version": "7.0.6",
2325
2325
+
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
2326
2326
+
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
2327
2327
+
"dev": true,
2328
2328
+
"dependencies": {
2329
2329
+
"path-key": "^3.1.0",
2330
2330
+
"shebang-command": "^2.0.0",
2331
2331
+
"which": "^2.0.1"
2332
2332
+
},
2333
2333
+
"engines": {
2334
2334
+
"node": ">= 8"
2335
2335
+
}
2336
2336
+
},
2215
2337
"node_modules/crossws": {
2216
2338
"version": "0.3.4",
2217
2339
"resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.4.tgz",
···
2368
2490
"node": ">=4"
2369
2491
}
2370
2492
},
2493
2493
+
"node_modules/eastasianwidth": {
2494
2494
+
"version": "0.2.0",
2495
2495
+
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
2496
2496
+
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
2497
2497
+
"dev": true
2498
2498
+
},
2371
2499
"node_modules/emoji-regex": {
2372
2500
"version": "10.4.0",
2373
2501
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
···
2518
2646
"version": "7.1.1",
2519
2647
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
2520
2648
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
2649
2649
+
"dev": true,
2521
2650
"optional": true,
2522
2651
"dependencies": {
2523
2652
"to-regex-range": "^5.0.1"
···
2550
2679
"tiny-inflate": "^1.0.3",
2551
2680
"unicode-properties": "^1.4.0",
2552
2681
"unicode-trie": "^2.0.0"
2682
2682
+
}
2683
2683
+
},
2684
2684
+
"node_modules/foreground-child": {
2685
2685
+
"version": "3.3.1",
2686
2686
+
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
2687
2687
+
"integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
2688
2688
+
"dev": true,
2689
2689
+
"dependencies": {
2690
2690
+
"cross-spawn": "^7.0.6",
2691
2691
+
"signal-exit": "^4.0.1"
2692
2692
+
},
2693
2693
+
"engines": {
2694
2694
+
"node": ">=14"
2695
2695
+
},
2696
2696
+
"funding": {
2697
2697
+
"url": "https://github.com/sponsors/isaacs"
2553
2698
}
2554
2699
},
2555
2700
"node_modules/fsevents": {
···
2584
2729
"integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==",
2585
2730
"dev": true
2586
2731
},
2732
2732
+
"node_modules/glob": {
2733
2733
+
"version": "11.0.2",
2734
2734
+
"resolved": "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz",
2735
2735
+
"integrity": "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==",
2736
2736
+
"dev": true,
2737
2737
+
"dependencies": {
2738
2738
+
"foreground-child": "^3.1.0",
2739
2739
+
"jackspeak": "^4.0.1",
2740
2740
+
"minimatch": "^10.0.0",
2741
2741
+
"minipass": "^7.1.2",
2742
2742
+
"package-json-from-dist": "^1.0.0",
2743
2743
+
"path-scurry": "^2.0.0"
2744
2744
+
},
2745
2745
+
"bin": {
2746
2746
+
"glob": "dist/esm/bin.mjs"
2747
2747
+
},
2748
2748
+
"engines": {
2749
2749
+
"node": "20 || >=22"
2750
2750
+
},
2751
2751
+
"funding": {
2752
2752
+
"url": "https://github.com/sponsors/isaacs"
2753
2753
+
}
2754
2754
+
},
2587
2755
"node_modules/h3": {
2588
2756
"version": "1.15.1",
2589
2757
"resolved": "https://registry.npmjs.org/h3/-/h3-1.15.1.tgz",
···
2827
2995
"node_modules/immutable": {
2828
2996
"version": "5.1.1",
2829
2997
"resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz",
2830
2830
-
"integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg=="
2998
2998
+
"integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==",
2999
2999
+
"dev": true
2831
3000
},
2832
3001
"node_modules/import-meta-resolve": {
2833
3002
"version": "4.1.0",
···
2874
3043
"version": "2.1.1",
2875
3044
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2876
3045
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
3046
3046
+
"dev": true,
2877
3047
"optional": true,
2878
3048
"engines": {
2879
3049
"node": ">=0.10.0"
···
2892
3062
"version": "4.0.3",
2893
3063
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
2894
3064
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
3065
3065
+
"dev": true,
2895
3066
"optional": true,
2896
3067
"dependencies": {
2897
3068
"is-extglob": "^2.1.1"
···
2922
3093
"version": "7.0.0",
2923
3094
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2924
3095
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
3096
3096
+
"dev": true,
2925
3097
"optional": true,
2926
3098
"engines": {
2927
3099
"node": ">=0.12.0"
···
2954
3126
"url": "https://github.com/sponsors/sindresorhus"
2955
3127
}
2956
3128
},
3129
3129
+
"node_modules/isexe": {
3130
3130
+
"version": "2.0.0",
3131
3131
+
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
3132
3132
+
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
3133
3133
+
"dev": true
3134
3134
+
},
3135
3135
+
"node_modules/jackspeak": {
3136
3136
+
"version": "4.1.0",
3137
3137
+
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz",
3138
3138
+
"integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==",
3139
3139
+
"dev": true,
3140
3140
+
"dependencies": {
3141
3141
+
"@isaacs/cliui": "^8.0.2"
3142
3142
+
},
3143
3143
+
"engines": {
3144
3144
+
"node": "20 || >=22"
3145
3145
+
},
3146
3146
+
"funding": {
3147
3147
+
"url": "https://github.com/sponsors/isaacs"
3148
3148
+
}
3149
3149
+
},
2957
3150
"node_modules/js-yaml": {
2958
3151
"version": "4.1.0",
2959
3152
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
···
3819
4012
"version": "4.0.8",
3820
4013
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
3821
4014
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
4015
4015
+
"dev": true,
3822
4016
"optional": true,
3823
4017
"dependencies": {
3824
4018
"braces": "^3.0.3",
···
3832
4026
"version": "2.3.1",
3833
4027
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
3834
4028
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
4029
4029
+
"dev": true,
3835
4030
"optional": true,
3836
4031
"engines": {
3837
4032
"node": ">=8.6"
···
3840
4035
"url": "https://github.com/sponsors/jonschlinkert"
3841
4036
}
3842
4037
},
4038
4038
+
"node_modules/minimatch": {
4039
4039
+
"version": "10.0.1",
4040
4040
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
4041
4041
+
"integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
4042
4042
+
"dev": true,
4043
4043
+
"dependencies": {
4044
4044
+
"brace-expansion": "^2.0.1"
4045
4045
+
},
4046
4046
+
"engines": {
4047
4047
+
"node": "20 || >=22"
4048
4048
+
},
4049
4049
+
"funding": {
4050
4050
+
"url": "https://github.com/sponsors/isaacs"
4051
4051
+
}
4052
4052
+
},
4053
4053
+
"node_modules/minipass": {
4054
4054
+
"version": "7.1.2",
4055
4055
+
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
4056
4056
+
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
4057
4057
+
"dev": true,
4058
4058
+
"engines": {
4059
4059
+
"node": ">=16 || 14 >=14.17"
4060
4060
+
}
4061
4061
+
},
3843
4062
"node_modules/mrmime": {
3844
4063
"version": "2.0.1",
3845
4064
"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
···
3920
4139
"version": "7.1.1",
3921
4140
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
3922
4141
"integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
4142
4142
+
"dev": true,
3923
4143
"optional": true
3924
4144
},
3925
4145
"node_modules/node-domexception": {
···
4060
4280
"funding": {
4061
4281
"url": "https://github.com/sponsors/sindresorhus"
4062
4282
}
4283
4283
+
},
4284
4284
+
"node_modules/package-json-from-dist": {
4285
4285
+
"version": "1.0.1",
4286
4286
+
"resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
4287
4287
+
"integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
4288
4288
+
"dev": true
4063
4289
},
4064
4290
"node_modules/package-manager-detector": {
4065
4291
"version": "1.2.0",
···
4103
4329
"url": "https://github.com/inikulin/parse5?sponsor=1"
4104
4330
}
4105
4331
},
4332
4332
+
"node_modules/path-key": {
4333
4333
+
"version": "3.1.1",
4334
4334
+
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
4335
4335
+
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
4336
4336
+
"dev": true,
4337
4337
+
"engines": {
4338
4338
+
"node": ">=8"
4339
4339
+
}
4340
4340
+
},
4341
4341
+
"node_modules/path-scurry": {
4342
4342
+
"version": "2.0.0",
4343
4343
+
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz",
4344
4344
+
"integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
4345
4345
+
"dev": true,
4346
4346
+
"dependencies": {
4347
4347
+
"lru-cache": "^11.0.0",
4348
4348
+
"minipass": "^7.1.2"
4349
4349
+
},
4350
4350
+
"engines": {
4351
4351
+
"node": "20 || >=22"
4352
4352
+
},
4353
4353
+
"funding": {
4354
4354
+
"url": "https://github.com/sponsors/isaacs"
4355
4355
+
}
4356
4356
+
},
4357
4357
+
"node_modules/path-scurry/node_modules/lru-cache": {
4358
4358
+
"version": "11.1.0",
4359
4359
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz",
4360
4360
+
"integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==",
4361
4361
+
"dev": true,
4362
4362
+
"engines": {
4363
4363
+
"node": "20 || >=22"
4364
4364
+
}
4365
4365
+
},
4106
4366
"node_modules/picocolors": {
4107
4367
"version": "1.1.1",
4108
4368
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
···
4149
4409
"node": "^10 || ^12 || >=14"
4150
4410
}
4151
4411
},
4412
4412
+
"node_modules/postcss-selector-parser": {
4413
4413
+
"version": "6.1.2",
4414
4414
+
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
4415
4415
+
"integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
4416
4416
+
"dev": true,
4417
4417
+
"dependencies": {
4418
4418
+
"cssesc": "^3.0.0",
4419
4419
+
"util-deprecate": "^1.0.2"
4420
4420
+
},
4421
4421
+
"engines": {
4422
4422
+
"node": ">=4"
4423
4423
+
}
4424
4424
+
},
4152
4425
"node_modules/prismjs": {
4153
4426
"version": "1.30.0",
4154
4427
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz",
···
4190
4463
"url": "https://github.com/sponsors/wooorm"
4191
4464
}
4192
4465
},
4466
4466
+
"node_modules/purgecss": {
4467
4467
+
"version": "7.0.2",
4468
4468
+
"resolved": "https://registry.npmjs.org/purgecss/-/purgecss-7.0.2.tgz",
4469
4469
+
"integrity": "sha512-4Ku8KoxNhOWi9X1XJ73XY5fv+I+hhTRedKpGs/2gaBKU8ijUiIKF/uyyIyh7Wo713bELSICF5/NswjcuOqYouQ==",
4470
4470
+
"dev": true,
4471
4471
+
"dependencies": {
4472
4472
+
"commander": "^12.1.0",
4473
4473
+
"glob": "^11.0.0",
4474
4474
+
"postcss": "^8.4.47",
4475
4475
+
"postcss-selector-parser": "^6.1.2"
4476
4476
+
},
4477
4477
+
"bin": {
4478
4478
+
"purgecss": "bin/purgecss.js"
4479
4479
+
}
4480
4480
+
},
4193
4481
"node_modules/radix3": {
4194
4482
"version": "1.1.2",
4195
4483
"resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz",
···
4200
4488
"version": "4.1.2",
4201
4489
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
4202
4490
"integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
4491
4491
+
"dev": true,
4203
4492
"engines": {
4204
4493
"node": ">= 14.18.0"
4205
4494
},
···
4484
4773
"version": "1.87.0",
4485
4774
"resolved": "https://registry.npmjs.org/sass/-/sass-1.87.0.tgz",
4486
4775
"integrity": "sha512-d0NoFH4v6SjEK7BoX810Jsrhj7IQSYHAHLi/iSpgqKc7LaIDshFRlSg5LOymf9FqQhxEHs2W5ZQXlvy0KD45Uw==",
4776
4776
+
"dev": true,
4487
4777
"dependencies": {
4488
4778
"chokidar": "^4.0.0",
4489
4779
"immutable": "^5.0.2",
···
4551
4841
"@img/sharp-win32-x64": "0.33.5"
4552
4842
}
4553
4843
},
4844
4844
+
"node_modules/shebang-command": {
4845
4845
+
"version": "2.0.0",
4846
4846
+
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
4847
4847
+
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
4848
4848
+
"dev": true,
4849
4849
+
"dependencies": {
4850
4850
+
"shebang-regex": "^3.0.0"
4851
4851
+
},
4852
4852
+
"engines": {
4853
4853
+
"node": ">=8"
4854
4854
+
}
4855
4855
+
},
4856
4856
+
"node_modules/shebang-regex": {
4857
4857
+
"version": "3.0.0",
4858
4858
+
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
4859
4859
+
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
4860
4860
+
"dev": true,
4861
4861
+
"engines": {
4862
4862
+
"node": ">=8"
4863
4863
+
}
4864
4864
+
},
4554
4865
"node_modules/shiki": {
4555
4866
"version": "3.2.2",
4556
4867
"resolved": "https://registry.npmjs.org/shiki/-/shiki-3.2.2.tgz",
···
4567
4878
"@types/hast": "^3.0.4"
4568
4879
}
4569
4880
},
4881
4881
+
"node_modules/signal-exit": {
4882
4882
+
"version": "4.1.0",
4883
4883
+
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
4884
4884
+
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
4885
4885
+
"dev": true,
4886
4886
+
"engines": {
4887
4887
+
"node": ">=14"
4888
4888
+
},
4889
4889
+
"funding": {
4890
4890
+
"url": "https://github.com/sponsors/isaacs"
4891
4891
+
}
4892
4892
+
},
4570
4893
"node_modules/signal-polyfill": {
4571
4894
"version": "0.2.2",
4572
4895
"resolved": "https://registry.npmjs.org/signal-polyfill/-/signal-polyfill-0.2.2.tgz",
···
4604
4927
"version": "1.2.1",
4605
4928
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
4606
4929
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
4930
4930
+
"dev": true,
4607
4931
"engines": {
4608
4932
"node": ">=0.10.0"
4609
4933
}
···
4643
4967
"url": "https://github.com/sponsors/sindresorhus"
4644
4968
}
4645
4969
},
4970
4970
+
"node_modules/string-width-cjs": {
4971
4971
+
"name": "string-width",
4972
4972
+
"version": "4.2.3",
4973
4973
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
4974
4974
+
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
4975
4975
+
"dev": true,
4976
4976
+
"dependencies": {
4977
4977
+
"emoji-regex": "^8.0.0",
4978
4978
+
"is-fullwidth-code-point": "^3.0.0",
4979
4979
+
"strip-ansi": "^6.0.1"
4980
4980
+
},
4981
4981
+
"engines": {
4982
4982
+
"node": ">=8"
4983
4983
+
}
4984
4984
+
},
4985
4985
+
"node_modules/string-width-cjs/node_modules/ansi-regex": {
4986
4986
+
"version": "5.0.1",
4987
4987
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
4988
4988
+
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
4989
4989
+
"dev": true,
4990
4990
+
"engines": {
4991
4991
+
"node": ">=8"
4992
4992
+
}
4993
4993
+
},
4994
4994
+
"node_modules/string-width-cjs/node_modules/emoji-regex": {
4995
4995
+
"version": "8.0.0",
4996
4996
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
4997
4997
+
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
4998
4998
+
"dev": true
4999
4999
+
},
5000
5000
+
"node_modules/string-width-cjs/node_modules/strip-ansi": {
5001
5001
+
"version": "6.0.1",
5002
5002
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
5003
5003
+
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
5004
5004
+
"dev": true,
5005
5005
+
"dependencies": {
5006
5006
+
"ansi-regex": "^5.0.1"
5007
5007
+
},
5008
5008
+
"engines": {
5009
5009
+
"node": ">=8"
5010
5010
+
}
5011
5011
+
},
4646
5012
"node_modules/stringify-entities": {
4647
5013
"version": "4.0.4",
4648
5014
"resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
···
4672
5038
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
4673
5039
}
4674
5040
},
5041
5041
+
"node_modules/strip-ansi-cjs": {
5042
5042
+
"name": "strip-ansi",
5043
5043
+
"version": "6.0.1",
5044
5044
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
5045
5045
+
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
5046
5046
+
"dev": true,
5047
5047
+
"dependencies": {
5048
5048
+
"ansi-regex": "^5.0.1"
5049
5049
+
},
5050
5050
+
"engines": {
5051
5051
+
"node": ">=8"
5052
5052
+
}
5053
5053
+
},
5054
5054
+
"node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
5055
5055
+
"version": "5.0.1",
5056
5056
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
5057
5057
+
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
5058
5058
+
"dev": true,
5059
5059
+
"engines": {
5060
5060
+
"node": ">=8"
5061
5061
+
}
5062
5062
+
},
4675
5063
"node_modules/throttle-debounce": {
4676
5064
"version": "5.0.2",
4677
5065
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz",
···
4712
5100
"version": "5.0.1",
4713
5101
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
4714
5102
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
5103
5103
+
"dev": true,
4715
5104
"optional": true,
4716
5105
"dependencies": {
4717
5106
"is-number": "^7.0.0"
···
5080
5469
}
5081
5470
}
5082
5471
},
5472
5472
+
"node_modules/util-deprecate": {
5473
5473
+
"version": "1.0.2",
5474
5474
+
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
5475
5475
+
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
5476
5476
+
"dev": true
5477
5477
+
},
5083
5478
"node_modules/vfile": {
5084
5479
"version": "6.0.3",
5085
5480
"resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
···
5249
5644
"webidl-conversions": "^3.0.0"
5250
5645
}
5251
5646
},
5647
5647
+
"node_modules/which": {
5648
5648
+
"version": "2.0.2",
5649
5649
+
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
5650
5650
+
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
5651
5651
+
"dev": true,
5652
5652
+
"dependencies": {
5653
5653
+
"isexe": "^2.0.0"
5654
5654
+
},
5655
5655
+
"bin": {
5656
5656
+
"node-which": "bin/node-which"
5657
5657
+
},
5658
5658
+
"engines": {
5659
5659
+
"node": ">= 8"
5660
5660
+
}
5661
5661
+
},
5252
5662
"node_modules/which-pm-runs": {
5253
5663
"version": "1.1.0",
5254
5664
"resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz",
···
5288
5698
},
5289
5699
"funding": {
5290
5700
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
5701
5701
+
}
5702
5702
+
},
5703
5703
+
"node_modules/wrap-ansi-cjs": {
5704
5704
+
"name": "wrap-ansi",
5705
5705
+
"version": "7.0.0",
5706
5706
+
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
5707
5707
+
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
5708
5708
+
"dev": true,
5709
5709
+
"dependencies": {
5710
5710
+
"ansi-styles": "^4.0.0",
5711
5711
+
"string-width": "^4.1.0",
5712
5712
+
"strip-ansi": "^6.0.0"
5713
5713
+
},
5714
5714
+
"engines": {
5715
5715
+
"node": ">=10"
5716
5716
+
},
5717
5717
+
"funding": {
5718
5718
+
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
5719
5719
+
}
5720
5720
+
},
5721
5721
+
"node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
5722
5722
+
"version": "5.0.1",
5723
5723
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
5724
5724
+
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
5725
5725
+
"dev": true,
5726
5726
+
"engines": {
5727
5727
+
"node": ">=8"
5728
5728
+
}
5729
5729
+
},
5730
5730
+
"node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
5731
5731
+
"version": "4.3.0",
5732
5732
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
5733
5733
+
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
5734
5734
+
"dev": true,
5735
5735
+
"dependencies": {
5736
5736
+
"color-convert": "^2.0.1"
5737
5737
+
},
5738
5738
+
"engines": {
5739
5739
+
"node": ">=8"
5740
5740
+
},
5741
5741
+
"funding": {
5742
5742
+
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
5743
5743
+
}
5744
5744
+
},
5745
5745
+
"node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
5746
5746
+
"version": "8.0.0",
5747
5747
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
5748
5748
+
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
5749
5749
+
"dev": true
5750
5750
+
},
5751
5751
+
"node_modules/wrap-ansi-cjs/node_modules/string-width": {
5752
5752
+
"version": "4.2.3",
5753
5753
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
5754
5754
+
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
5755
5755
+
"dev": true,
5756
5756
+
"dependencies": {
5757
5757
+
"emoji-regex": "^8.0.0",
5758
5758
+
"is-fullwidth-code-point": "^3.0.0",
5759
5759
+
"strip-ansi": "^6.0.1"
5760
5760
+
},
5761
5761
+
"engines": {
5762
5762
+
"node": ">=8"
5763
5763
+
}
5764
5764
+
},
5765
5765
+
"node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
5766
5766
+
"version": "6.0.1",
5767
5767
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
5768
5768
+
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
5769
5769
+
"dev": true,
5770
5770
+
"dependencies": {
5771
5771
+
"ansi-regex": "^5.0.1"
5772
5772
+
},
5773
5773
+
"engines": {
5774
5774
+
"node": ">=8"
5291
5775
}
5292
5776
},
5293
5777
"node_modules/xxh32": {
···
5
5
"iconoir": "^7.11.0",
6
6
"idb-keyval": "^6.2.1",
7
7
"native-file-system-adapter": "^3.0.1",
8
8
-
"sass": "^1.87.0",
9
8
"spellcaster": "gordonbrander/spellcaster#1613e5e3b7f202cfe57f37ea7c637ec83588a297",
10
9
"throttle-debounce": "^5.0.2",
11
10
"xxh32": "^2.0.5"
12
11
},
13
12
"devDependencies": {
14
13
"astro": "^5.7.4",
15
15
-
"astro-scope": "^3.0.1"
14
14
+
"astro-purgecss": "^5.2.2",
15
15
+
"astro-scope": "^3.0.1",
16
16
+
"purgecss": "^7.0.2",
17
17
+
"sass": "^1.87.0"
16
18
}
17
19
}
···
26
26
</mark>
27
27
</small>
28
28
</p>
29
29
-
<div id="iframes"></div>
30
29
</main>
31
30
32
32
-
<style lang="scss">
33
33
-
@use "@picocss/pico/scss/pico" with (
34
34
-
$enable-responsive-spacings: true,
35
35
-
$enable-responsive-typography: true
36
36
-
);
37
37
-
38
38
-
@use "@picocss/pico/scss/colors/utilities";
39
39
-
</style>
40
40
-
41
31
<style>
42
42
-
@import "../../../../styles/configurator.css";
43
43
-
44
32
#iframes {
45
33
display: none;
46
34
}
···
50
38
display: inline-flex;
51
39
gap: 0.75em;
52
40
}
53
53
-
54
54
-
[data-storage] {
55
55
-
cursor: pointer;
56
56
-
}
57
41
</style>
58
42
59
43
<script>
···
63
47
import { type ElementConfigurator, repeat, text } from "spellcaster/hyperscript.js";
64
48
import { applets } from "@web-applets/sdk";
65
49
66
66
-
import { applet, hs } from "../../../../scripts/theme";
67
67
-
import { OutputGetter, OutputSetter } from "../../../core/types";
50
50
+
import { applet, hs } from "@src/scripts/theme";
51
51
+
import type { OutputGetter, OutputSetter } from "@applets/core/types.d.ts";
68
52
69
53
const METHODS = ["browser", "custom", "device"] as const;
70
54
···
87
71
////////////////////////////////////////////
88
72
const context = applets.register();
89
73
90
90
-
const container = document.getElementById("iframes");
91
91
-
if (!container) throw new Error("Missing iframe container");
74
74
+
const container = document.createElement("div");
75
75
+
container.id = "iframes";
76
76
+
document.body.appendChild(container);
92
77
93
78
// TODO: Use https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API
94
79
// so that the other instances of this applet can be notified
···
327
312
let missingAction;
328
313
329
314
["get", "put", "mount", "unmount"].forEach((method) => {
330
330
-
if (!apl.manifest.actions[method]) missingAction = method;
315
315
+
if (!apl.manifest.actions?.[method]) missingAction = method;
331
316
});
332
317
333
318
if (missingAction) {
···
1
1
-
<div id="container"></div>
2
2
-
3
1
<script>
4
2
import { applets } from "@web-applets/sdk";
5
3
import { State, Track, TrackState } from "./types";
···
14
12
// SETUP
15
13
////////////////////////////////////////////
16
14
const context = applets.register<State>();
17
17
-
const container = document.querySelector("#container");
15
15
+
const container = document.createElement("div");
16
16
+
17
17
+
container.id = "container";
18
18
+
document.body.appendChild(container);
18
19
19
20
// Initial state
20
21
context.data = {
···
123
124
////////////////////////////////////////////
124
125
async function render(tracks: Array<Track>) {
125
126
const ids = tracks.map((e) => e.id);
126
126
-
const existingNodes = {};
127
127
+
const existingNodes: Record<string, HTMLAudioElement> = {};
127
128
128
129
// Manage existing nodes
129
130
Array.from(container.querySelectorAll("audio")).map((node: HTMLAudioElement) => {
···
1
1
<script>
2
2
import { applets } from "@web-applets/sdk";
3
3
4
4
-
import type { Track, Output } from "../../core/types.d.ts";
5
5
-
import { applet, comparable, reactive } from "../../../scripts/theme";
4
4
+
import type { Track, Output } from "@applets/core/types.d.ts";
5
5
+
import { applet, comparable, reactive } from "@scripts/theme";
6
6
7
7
////////////////////////////////////////////
8
8
// SETUP
9
9
////////////////////////////////////////////
10
10
-
import type * as AudioEngine from "../../engine/audio/types.d.ts";
11
11
-
import type * as QueueEngine from "../../engine/queue/types.d.ts";
10
10
+
import type * as AudioEngine from "@applets/engine/audio/types.d.ts";
11
11
+
import type * as QueueEngine from "@applets/engine/queue/types.d.ts";
12
12
13
13
// Register applet
14
14
const context = applets.register<unknown>();
···
108
108
},
109
109
);
110
110
</script>
111
111
-
112
112
-
<style>
113
113
-
iframe {
114
114
-
display: none;
115
115
-
}
116
116
-
</style>
···
2
2
<script>
3
3
import { applets } from "@web-applets/sdk";
4
4
5
5
-
import type { Output, Source, Track } from "../../core/types.d.ts";
6
6
-
import { applet } from "../../../scripts/theme";
5
5
+
import type { Output, Source, Track } from "@applets/core/types.d.ts";
6
6
+
import { applet } from "@scripts/theme";
7
7
8
8
////////////////////////////////////////////
9
9
// SETUP
···
122
122
return new TextEncoder().encode(JSON.stringify(data));
123
123
}
124
124
</script>
125
125
-
126
126
-
<style>
127
127
-
iframe {
128
128
-
display: none;
129
129
-
}
130
130
-
</style>
···
2
2
import * as IDB from "idb-keyval";
3
3
import { applets } from "@web-applets/sdk";
4
4
5
5
-
import type { OutputGetter, OutputSetter } from "../../../core/types.d.ts";
5
5
+
import type { OutputGetter, OutputSetter } from "@applets/core/types.d.ts";
6
6
7
7
////////////////////////////////////////////
8
8
// SETUP
···
3
3
import { applets } from "@web-applets/sdk";
4
4
import { type FileSystemDirectoryHandle, showDirectoryPicker } from "native-file-system-adapter";
5
5
6
6
-
import type { OutputGetter, OutputSetter } from "../../../core/types.d.ts";
6
6
+
import type { OutputGetter, OutputSetter } from "@applets/core/types.d.ts";
7
7
8
8
////////////////////////////////////////////
9
9
// SETUP
···
1
1
+
---
2
2
+
import "@styles/reset.css";
3
3
+
import "@styles/variables.css";
4
4
+
import "@styles/fonts.css";
5
5
+
import "@styles/icons.css";
6
6
+
import "@styles/themes/pilot/variables.css";
7
7
+
---
8
8
+
1
9
<main>
2
10
<div class="queue-entry"></div>
3
11
<div class="playback-info">
···
14
22
</main>
15
23
16
24
<style>
17
17
-
@import "../../../../../styles/themes/pilot/variables.css";
18
18
-
@import "../../../../../styles/icons.css";
19
19
-
20
25
main {
21
26
align-items: center;
22
27
background: var(--made-in-the-shade);
···
111
116
112
117
context.setActionHandler("modifyProgress", (progress: number) => {
113
118
const p = isNaN(progress) || !isFinite(progress) ? 0 : Math.min(Math.max(progress, 0), 1);
114
114
-
document.body.querySelector("progress").value = p * 100;
119
119
+
const el = document.body.querySelector("progress");
120
120
+
if (el) el.value = p * 100;
115
121
});
116
122
117
123
////////////////////////////////////////////
118
124
// DOM
119
125
////////////////////////////////////////////
120
120
-
document.body.querySelector(".controls__playpause").addEventListener("click", () => {
126
126
+
document.body.querySelector(".controls__playpause")?.addEventListener("click", () => {
121
127
context.data = { ...context.data, isPlaying: !(context.data?.isPlaying ?? false) };
122
128
});
123
129
124
124
-
document.body.querySelector(".time").addEventListener("click", (event: Event) => {
130
130
+
document.body.querySelector(".time")?.addEventListener("click", (event: Event) => {
125
131
const mouseEvent = event as MouseEvent;
126
132
const seekPosition = mouseEvent.offsetX / (event.target as HTMLProgressElement).clientWidth;
127
133
context.data = { ...context.data, seekPosition };
128
134
});
129
135
130
136
function render() {
131
131
-
document.body.querySelector("button").innerHTML = context.data.isPlaying
132
132
-
? `<i class="iconoir-pause-solid" data-astro-cid-${scope}></i>`
133
133
-
: `<i class="iconoir-play-solid" data-astro-cid-${scope}></i>`;
137
137
+
const button = document.body.querySelector("button");
138
138
+
139
139
+
if (button)
140
140
+
button.innerHTML = context.data.isPlaying
141
141
+
? `<i class="iconoir-pause-solid" data-astro-cid-${scope}></i>`
142
142
+
: `<i class="iconoir-play-solid" data-astro-cid-${scope}></i>`;
134
143
}
135
144
</script>
···
1
1
{
2
2
-
"name": "diffuse/ui/audio",
2
2
+
"name": "diffuse/themes/pilot/ui/audio",
3
3
+
"title": "",
3
4
"entrypoint": "index.html",
4
5
"actions": {
5
6
"modifyIsPlaying": {
···
1
1
import { defineCollection } from "astro:content";
2
2
import { glob } from "astro/loaders";
3
3
4
4
-
const applets = defineCollection({
5
5
-
loader: glob({ pattern: "**/*.json", base: "./src/applets" }),
4
4
+
const manifests = defineCollection({
5
5
+
loader: glob({ pattern: "**/_manifest.json", base: "./src/pages" }),
6
6
});
7
7
8
8
-
export const collections = { applets };
8
8
+
export const collections = { manifests };
···
1
1
+
---
2
2
+
import "@styles/reset.css";
3
3
+
import "@styles/variables.css";
4
4
+
import "@styles/fonts.css";
5
5
+
import "@styles/icons.css";
6
6
+
import "@styles/pico.scss";
7
7
+
8
8
+
const { title } = Astro.props;
9
9
+
---
10
10
+
11
11
+
<html lang="en">
12
12
+
<head>
13
13
+
<meta charset="UTF-8" />
14
14
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
15
15
+
<meta name="color-scheme" content="light dark" />
16
16
+
<link rel="manifest" href="manifest.json" />
17
17
+
18
18
+
<title>{title}</title>
19
19
+
</head>
20
20
+
<body>
21
21
+
<slot />
22
22
+
</body>
23
23
+
</html>
···
10
10
<link rel="manifest" href="manifest.json" />
11
11
12
12
<title>{title}</title>
13
13
-
14
14
-
<style is:global>
15
15
-
@import "../styles/reset.css";
16
16
-
@import "../styles/fonts.css";
17
17
-
@import "../styles/variables.css";
18
18
-
</style>
19
13
</head>
20
14
<body>
21
15
<slot />
···
9
9
10
10
<title>{title}</title>
11
11
12
12
-
<style is:global>
12
12
+
<style>
13
13
@import "../styles/reset.css";
14
14
@import "../styles/fonts.css";
15
15
@import "../styles/variables.css";
···
1
1
-
---
2
2
-
import { getCollection } from "astro:content";
3
3
-
import AppletLayout from "../layouts/applet.astro";
4
4
-
5
5
-
// Generate static paths
6
6
-
export async function getStaticPaths() {
7
7
-
async function gen(path: string[]): Promise<{
8
8
-
applet: string;
9
9
-
title: string;
10
10
-
Component: (_props: Record<string, any>) => any;
11
11
-
}> {
12
12
-
let Applet;
13
13
-
let manifest;
14
14
-
15
15
-
if (path.length === 2) {
16
16
-
Applet = await import(`../applets/${path[0]}/${path[1]}/applet.astro`);
17
17
-
manifest = await import(`../applets/${path[0]}/${path[1]}/manifest.json`);
18
18
-
}
19
19
-
20
20
-
if (path.length === 3) {
21
21
-
Applet = await import(`../applets/${path[0]}/${path[1]}/${path[2]}/applet.astro`);
22
22
-
manifest = await import(`../applets/${path[0]}/${path[1]}/${path[2]}/manifest.json`);
23
23
-
}
24
24
-
25
25
-
if (path.length === 4) {
26
26
-
Applet = await import(`../applets/${path[0]}/${path[1]}/${path[2]}/${path[3]}/applet.astro`);
27
27
-
manifest = await import(
28
28
-
`../applets/${path[0]}/${path[1]}/${path[2]}/${path[3]}/manifest.json`
29
29
-
);
30
30
-
}
31
31
-
32
32
-
if (Applet === undefined || manifest === undefined) {
33
33
-
throw new Error("Unsupported path length");
34
34
-
}
35
35
-
36
36
-
return {
37
37
-
applet: path.join("/"),
38
38
-
title: manifest.default.title || manifest.default.name,
39
39
-
Component: Applet.default,
40
40
-
};
41
41
-
}
42
42
-
43
43
-
const applets = await getCollection("applets");
44
44
-
const pages = await Promise.all(
45
45
-
applets.map((applet) => {
46
46
-
return gen(applet.id.split("/").slice(0, -1));
47
47
-
}),
48
48
-
);
49
49
-
50
50
-
return pages.map(({ applet, Component, title }) => {
51
51
-
return {
52
52
-
params: { applet },
53
53
-
props: { Component, title },
54
54
-
};
55
55
-
});
56
56
-
}
57
57
-
58
58
-
// Render props
59
59
-
const { Component, title } = Astro.props;
60
60
-
---
61
61
-
62
62
-
<AppletLayout title={title}>
63
63
-
<Component />
64
64
-
</AppletLayout>
···
3
3
4
4
// API Route
5
5
export const GET: APIRoute = ({ params, props, request }) => {
6
6
-
return new Response(
7
7
-
JSON.stringify(props.manifest),
8
8
-
);
6
6
+
return new Response(JSON.stringify(props.manifest));
9
7
};
10
8
11
9
// Generate static paths
12
10
export async function getStaticPaths() {
13
13
-
const applets = await getCollection("applets");
11
11
+
const manifests = await getCollection("manifests");
14
12
15
15
-
return applets.map((applet) => {
13
13
+
return manifests.map((manifest) => {
16
14
return {
17
17
-
params: { manifest: applet.id },
18
18
-
props: { manifest: applet.data },
15
15
+
params: { manifest: manifest.id.replace("/_manifest", "/manifest") },
16
16
+
props: { manifest: manifest.data },
19
17
};
20
18
});
21
19
}
···
1
1
+
---
2
2
+
import Layout from "@layouts/applet-pico-ui.astro";
3
3
+
import Applet from "./_applet.astro";
4
4
+
import { title } from "./_manifest.json";
5
5
+
---
6
6
+
7
7
+
<Layout title={title}>
8
8
+
<Applet />
9
9
+
</Layout>
···
1
1
+
---
2
2
+
import Layout from "@layouts/applet.astro";
3
3
+
import Applet from "./_applet.astro";
4
4
+
import { title } from "./_manifest.json";
5
5
+
---
6
6
+
7
7
+
<Layout title={title}>
8
8
+
<Applet />
9
9
+
</Layout>
···
1
1
+
---
2
2
+
import Layout from "@layouts/applet.astro";
3
3
+
import Applet from "./_applet.astro";
4
4
+
import { title } from "./_manifest.json";
5
5
+
---
6
6
+
7
7
+
<Layout title={title}>
8
8
+
<Applet />
9
9
+
</Layout>
···
1
1
+
---
2
2
+
import Layout from "@layouts/applet.astro";
3
3
+
import Applet from "./_applet.astro";
4
4
+
import { title } from "./_manifest.json";
5
5
+
---
6
6
+
7
7
+
<Layout title={title}>
8
8
+
<Applet />
9
9
+
</Layout>
···
1
1
+
---
2
2
+
import Layout from "@layouts/applet.astro";
3
3
+
import Applet from "./_applet.astro";
4
4
+
import { title } from "./_manifest.json";
5
5
+
---
6
6
+
7
7
+
<Layout title={title}>
8
8
+
<Applet />
9
9
+
</Layout>
···
1
1
+
---
2
2
+
import Layout from "@layouts/applet.astro";
3
3
+
import Applet from "./_applet.astro";
4
4
+
import { title } from "./_manifest.json";
5
5
+
---
6
6
+
7
7
+
<Layout title={title}>
8
8
+
<Applet />
9
9
+
</Layout>
···
1
1
+
---
2
2
+
import Layout from "@layouts/applet.astro";
3
3
+
import Applet from "./_applet.astro";
4
4
+
import { title } from "./_manifest.json";
5
5
+
---
6
6
+
7
7
+
<Layout title={title}>
8
8
+
<Applet />
9
9
+
</Layout>
···
1
1
+
---
2
2
+
import Layout from "@layouts/applet.astro";
3
3
+
import Applet from "./_applet.astro";
4
4
+
import { title } from "./_manifest.json";
5
5
+
---
6
6
+
7
7
+
<Layout title={title}>
8
8
+
<Applet />
9
9
+
</Layout>
···
2
2
3
3
import { applets } from "@web-applets/sdk";
4
4
import { type ElementConfigurator, h } from "spellcaster/hyperscript.js";
5
5
-
import { effect, isSignal, sample, Signal, signal } from "spellcaster/spellcaster.js";
5
5
+
import { effect, isSignal, Signal, signal } from "spellcaster/spellcaster.js";
6
6
import { xxh32 } from "xxh32";
7
7
8
8
////////////////////////////////////////////
···
50
50
throw new Error("iframe does not have a contentWindow");
51
51
}
52
52
53
53
-
const applet = await applets.connect<D>(frame.contentWindow, { context: opts.context });
53
53
+
const applet = await applets.connect<D>(frame.contentWindow, {
54
54
+
context: opts.context,
55
55
+
});
54
56
55
57
if (opts.setHeight) {
56
58
applet.onresize = () => {
···
80
82
) {
81
83
const [getter, setter] = signal(dataFn(applet.data));
82
84
83
83
-
effect(() => effectFn(getter()));
85
85
+
effect(() => {
86
86
+
effectFn(getter());
87
87
+
return undefined;
88
88
+
});
84
89
85
90
applet.addEventListener("data", (event: AppletEvent) => {
86
91
setter(dataFn(event.data));
···
90
95
////////////////////////////////////////////
91
96
// 🛠️
92
97
////////////////////////////////////////////
93
93
-
export function addScope<O extends Object>(astroScope: string, object: O): O {
98
98
+
export function addScope<O extends object>(astroScope: string, object: O): O {
94
99
return {
95
100
...object,
96
96
-
attrs: { ...((object as any).attrs || {}), [`data-astro-cid-${astroScope}`]: "" },
101
101
+
attrs: {
102
102
+
...((object as any).attrs || {}),
103
103
+
[`data-astro-cid-${astroScope}`]: "",
104
104
+
},
97
105
};
98
106
}
99
107
···
1
1
-
import type { Output } from "../../../applets/core/types.d.ts";
2
2
-
import { applet, comparable, reactive } from "../../theme.ts";
1
1
+
import type { Output } from "@applets/core/types.d.ts";
2
2
+
import { applet, reactive } from "../../theme.ts";
3
3
4
4
////////////////////////////////////////////
5
5
// 🎨 Styles
6
6
////////////////////////////////////////////
7
7
-
import "../../../styles/themes/pilot/index.css";
7
7
+
import "@styles/themes/pilot/index.css";
8
8
9
9
////////////////////////////////////////////
10
10
// 🗂️ Applets
11
11
////////////////////////////////////////////
12
12
-
import type * as AudioEngine from "../../../applets/engine/audio/types.d.ts";
13
13
-
import type * as QueueEngine from "../../../applets/engine/queue/types.d.ts";
12
12
+
import type * as AudioEngine from "@applets/engine/audio/types.d.ts";
13
13
+
import type * as QueueEngine from "@applets/engine/queue/types.d.ts";
14
14
15
15
-
import type * as AudioUI from "../../../applets/themes/pilot/ui/audio/types.ts";
15
15
+
import type * as AudioUI from "@applets/themes/pilot/ui/audio/types.d.ts";
16
16
17
17
-
const configurator = {
17
17
+
const _configurator = {
18
18
storage: {
19
19
output: await applet("../../configurator/storage/output"),
20
20
},
···
25
25
queue: await applet<QueueEngine.State>("../../engine/queue"),
26
26
};
27
27
28
28
-
const orchestrator = {
28
28
+
const _orchestrator = {
29
29
queue: await applet("../../orchestrator/queue"),
30
30
storage: await applet<Output>("../../orchestrator/storage"),
31
31
};
···
53
53
54
54
reactive(
55
55
engine.audio,
56
56
-
(data) => data.items[engine.queue.data.now?.id ?? Infinity]?.isPlaying ?? false,
56
56
+
(data) =>
57
57
+
data.items[engine.queue.data.now?.id ?? Infinity]?.isPlaying ?? false,
57
58
(isPlaying) => ui.audio.sendAction("modifyIsPlaying", isPlaying),
58
59
);
59
60
···
1
1
+
@import "./reset.css";
2
2
+
@import "./variables.css";
3
3
+
@import "./fonts.css";
4
4
+
@import "./icons.css";
5
5
+
@import "./pico.scss";
···
1
1
-
@import "./icons.css";
···
1
1
+
@use "@picocss/pico/scss/pico" with (
2
2
+
$enable-responsive-spacings: true,
3
3
+
$enable-responsive-typography: true
4
4
+
);
5
5
+
6
6
+
@use "@picocss/pico/scss/colors/utilities";
···
1
1
import { walk } from "jsr:@std/fs@^1.0";
2
2
3
3
// Copy .d.ts files to dist dir
4
4
-
const it = walk("./src/applets/", { exts: [".d.ts"] });
4
4
+
const it = walk("./src/pages/", { exts: [".d.ts"] });
5
5
6
6
for await (const item of it) {
7
7
const target = `dist/${item.path.replace("src/applets/", "")}`;
···
1
1
+
{
2
2
+
"compilerOptions": {
3
3
+
"allowImportingTsExtensions": true,
4
4
+
"allowJs": true,
5
5
+
"esModuleInterop": true,
6
6
+
"experimentalDecorators": false,
7
7
+
"isolatedModules": true,
8
8
+
"module": "esnext",
9
9
+
"moduleResolution": "bundler",
10
10
+
"moduleDetection": "force",
11
11
+
"noEmit": true,
12
12
+
"noImplicitOverride": true,
13
13
+
"strict": true,
14
14
+
"target": "esnext",
15
15
+
"useDefineForClassFields": true,
16
16
+
"baseUrl": ".",
17
17
+
"paths": {
18
18
+
"@applets/*": ["src/pages/*"],
19
19
+
"@layouts/*": ["src/layouts/*"],
20
20
+
"@pages/*": ["src/pages/*"],
21
21
+
"@scripts/*": ["src/scripts/*"],
22
22
+
"@styles/*": ["src/styles/*"],
23
23
+
"@src/*": ["src/*"]
24
24
+
}
25
25
+
}
26
26
+
}