@happytoolin/alur 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/binary.js ADDED
@@ -0,0 +1,128 @@
1
+ const { Package } = require("./binary-install");
2
+ const os = require("os");
3
+ const cTable = require("console.table");
4
+ const libc = require("detect-libc");
5
+ const { configureProxy } = require("axios-proxy-builder");
6
+
7
+ const error = (msg) => {
8
+ console.error(msg);
9
+ process.exit(1);
10
+ };
11
+
12
+ const {
13
+ name,
14
+ artifactDownloadUrls,
15
+ supportedPlatforms,
16
+ glibcMinimum,
17
+ } = require("./package.json");
18
+
19
+ // FIXME: implement NPM installer handling of fallback download URLs
20
+ const artifactDownloadUrl = artifactDownloadUrls[0];
21
+ const builderGlibcMajorVersion = glibcMinimum.major;
22
+ const builderGlibcMinorVersion = glibcMinimum.series;
23
+
24
+ const getPlatform = () => {
25
+ const rawOsType = os.type();
26
+ const rawArchitecture = os.arch();
27
+
28
+ // We want to use rust-style target triples as the canonical key
29
+ // for a platform, so translate the "os" library's concepts into rust ones
30
+ let osType = "";
31
+ switch (rawOsType) {
32
+ case "Windows_NT":
33
+ osType = "pc-windows-msvc";
34
+ break;
35
+ case "Darwin":
36
+ osType = "apple-darwin";
37
+ break;
38
+ case "Linux":
39
+ osType = "unknown-linux-gnu";
40
+ break;
41
+ }
42
+
43
+ let arch = "";
44
+ switch (rawArchitecture) {
45
+ case "x64":
46
+ arch = "x86_64";
47
+ break;
48
+ case "arm64":
49
+ arch = "aarch64";
50
+ break;
51
+ }
52
+
53
+ if (rawOsType === "Linux") {
54
+ if (libc.familySync() == "musl") {
55
+ osType = "unknown-linux-musl-dynamic";
56
+ } else if (libc.isNonGlibcLinuxSync()) {
57
+ console.warn(
58
+ "Your libc is neither glibc nor musl; trying static musl binary instead",
59
+ );
60
+ osType = "unknown-linux-musl-static";
61
+ } else {
62
+ let libcVersion = libc.versionSync();
63
+ let splitLibcVersion = libcVersion.split(".");
64
+ let libcMajorVersion = splitLibcVersion[0];
65
+ let libcMinorVersion = splitLibcVersion[1];
66
+ if (
67
+ libcMajorVersion != builderGlibcMajorVersion ||
68
+ libcMinorVersion < builderGlibcMinorVersion
69
+ ) {
70
+ // We can't run the glibc binaries, but we can run the static musl ones
71
+ // if they exist
72
+ console.warn(
73
+ "Your glibc isn't compatible; trying static musl binary instead",
74
+ );
75
+ osType = "unknown-linux-musl-static";
76
+ }
77
+ }
78
+ }
79
+
80
+ // Assume the above succeeded and build a target triple to look things up with.
81
+ // If any of it failed, this lookup will fail and we'll handle it like normal.
82
+ let targetTriple = `${arch}-${osType}`;
83
+ let platform = supportedPlatforms[targetTriple];
84
+
85
+ if (!platform) {
86
+ error(
87
+ `Platform with type "${rawOsType}" and architecture "${rawArchitecture}" is not supported by ${name}.\nYour system must be one of the following:\n\n${Object.keys(
88
+ supportedPlatforms,
89
+ ).join(",")}`,
90
+ );
91
+ }
92
+
93
+ return platform;
94
+ };
95
+
96
+ const getPackage = () => {
97
+ const platform = getPlatform();
98
+ const url = `${artifactDownloadUrl}/${platform.artifactName}`;
99
+ let filename = platform.artifactName;
100
+ let ext = platform.zipExt;
101
+ let binary = new Package(platform, name, url, filename, ext, platform.bins);
102
+
103
+ return binary;
104
+ };
105
+
106
+ const install = (suppressLogs) => {
107
+ if (!artifactDownloadUrl || artifactDownloadUrl.length === 0) {
108
+ console.warn("in demo mode, not installing binaries");
109
+ return;
110
+ }
111
+ const package = getPackage();
112
+ const proxy = configureProxy(package.url);
113
+
114
+ return package.install(proxy, suppressLogs);
115
+ };
116
+
117
+ const run = (binaryName) => {
118
+ const package = getPackage();
119
+ const proxy = configureProxy(package.url);
120
+
121
+ package.run(binaryName, proxy);
122
+ };
123
+
124
+ module.exports = {
125
+ install,
126
+ run,
127
+ getPackage,
128
+ };
package/install.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { install } = require("./binary");
4
+ install(false);
@@ -0,0 +1,553 @@
1
+ {
2
+ "lockfileVersion": 3,
3
+ "name": "@happytoolin/alur",
4
+ "packages": {
5
+ "": {
6
+ "bin": {
7
+ "alur": "run-alur.js",
8
+ "nci": "run-alur.js",
9
+ "ni": "run-alur.js",
10
+ "nlx": "run-alur.js",
11
+ "np": "run-alur.js",
12
+ "nr": "run-alur.js",
13
+ "ns": "run-alur.js",
14
+ "nun": "run-alur.js"
15
+ },
16
+ "dependencies": {
17
+ "axios": "^1.13.5",
18
+ "axios-proxy-builder": "^0.1.2",
19
+ "console.table": "^0.10.0",
20
+ "detect-libc": "^2.1.2",
21
+ "rimraf": "^6.1.3"
22
+ },
23
+ "devDependencies": {
24
+ "prettier": "^3.8.1"
25
+ },
26
+ "engines": {
27
+ "node": ">=14",
28
+ "npm": ">=6"
29
+ },
30
+ "hasInstallScript": true,
31
+ "license": "GPL-3.0-only",
32
+ "name": "@happytoolin/alur",
33
+ "version": "0.0.1"
34
+ },
35
+ "node_modules/@isaacs/cliui": {
36
+ "engines": {
37
+ "node": ">=18"
38
+ },
39
+ "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==",
40
+ "license": "BlueOak-1.0.0",
41
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz",
42
+ "version": "9.0.0"
43
+ },
44
+ "node_modules/asynckit": {
45
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
46
+ "license": "MIT",
47
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
48
+ "version": "0.4.0"
49
+ },
50
+ "node_modules/axios": {
51
+ "dependencies": {
52
+ "follow-redirects": "^1.15.11",
53
+ "form-data": "^4.0.5",
54
+ "proxy-from-env": "^1.1.0"
55
+ },
56
+ "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==",
57
+ "license": "MIT",
58
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz",
59
+ "version": "1.13.5"
60
+ },
61
+ "node_modules/axios-proxy-builder": {
62
+ "dependencies": {
63
+ "tunnel": "^0.0.6"
64
+ },
65
+ "integrity": "sha512-6uBVsBZzkB3tCC8iyx59mCjQckhB8+GQrI9Cop8eC7ybIsvs/KtnNgEBfRMSEa7GqK2VBGUzgjNYMdPIfotyPA==",
66
+ "license": "MIT",
67
+ "resolved": "https://registry.npmjs.org/axios-proxy-builder/-/axios-proxy-builder-0.1.2.tgz",
68
+ "version": "0.1.2"
69
+ },
70
+ "node_modules/balanced-match": {
71
+ "dependencies": {
72
+ "jackspeak": "^4.2.3"
73
+ },
74
+ "engines": {
75
+ "node": "20 || >=22"
76
+ },
77
+ "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==",
78
+ "license": "MIT",
79
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz",
80
+ "version": "4.0.2"
81
+ },
82
+ "node_modules/brace-expansion": {
83
+ "dependencies": {
84
+ "balanced-match": "^4.0.2"
85
+ },
86
+ "engines": {
87
+ "node": "20 || >=22"
88
+ },
89
+ "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==",
90
+ "license": "MIT",
91
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz",
92
+ "version": "5.0.2"
93
+ },
94
+ "node_modules/call-bind-apply-helpers": {
95
+ "dependencies": {
96
+ "es-errors": "^1.3.0",
97
+ "function-bind": "^1.1.2"
98
+ },
99
+ "engines": {
100
+ "node": ">= 0.4"
101
+ },
102
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
103
+ "license": "MIT",
104
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
105
+ "version": "1.0.2"
106
+ },
107
+ "node_modules/clone": {
108
+ "engines": {
109
+ "node": ">=0.8"
110
+ },
111
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
112
+ "license": "MIT",
113
+ "optional": true,
114
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
115
+ "version": "1.0.4"
116
+ },
117
+ "node_modules/combined-stream": {
118
+ "dependencies": {
119
+ "delayed-stream": "~1.0.0"
120
+ },
121
+ "engines": {
122
+ "node": ">= 0.8"
123
+ },
124
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
125
+ "license": "MIT",
126
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
127
+ "version": "1.0.8"
128
+ },
129
+ "node_modules/console.table": {
130
+ "dependencies": {
131
+ "easy-table": "1.1.0"
132
+ },
133
+ "engines": {
134
+ "node": "> 0.10"
135
+ },
136
+ "integrity": "sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==",
137
+ "license": "MIT",
138
+ "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz",
139
+ "version": "0.10.0"
140
+ },
141
+ "node_modules/defaults": {
142
+ "dependencies": {
143
+ "clone": "^1.0.2"
144
+ },
145
+ "funding": {
146
+ "url": "https://github.com/sponsors/sindresorhus"
147
+ },
148
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
149
+ "license": "MIT",
150
+ "optional": true,
151
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
152
+ "version": "1.0.4"
153
+ },
154
+ "node_modules/delayed-stream": {
155
+ "engines": {
156
+ "node": ">=0.4.0"
157
+ },
158
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
159
+ "license": "MIT",
160
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
161
+ "version": "1.0.0"
162
+ },
163
+ "node_modules/detect-libc": {
164
+ "engines": {
165
+ "node": ">=8"
166
+ },
167
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
168
+ "license": "Apache-2.0",
169
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
170
+ "version": "2.1.2"
171
+ },
172
+ "node_modules/dunder-proto": {
173
+ "dependencies": {
174
+ "call-bind-apply-helpers": "^1.0.1",
175
+ "es-errors": "^1.3.0",
176
+ "gopd": "^1.2.0"
177
+ },
178
+ "engines": {
179
+ "node": ">= 0.4"
180
+ },
181
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
182
+ "license": "MIT",
183
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
184
+ "version": "1.0.1"
185
+ },
186
+ "node_modules/easy-table": {
187
+ "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==",
188
+ "license": "MIT",
189
+ "optionalDependencies": {
190
+ "wcwidth": ">=1.0.1"
191
+ },
192
+ "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz",
193
+ "version": "1.1.0"
194
+ },
195
+ "node_modules/es-define-property": {
196
+ "engines": {
197
+ "node": ">= 0.4"
198
+ },
199
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
200
+ "license": "MIT",
201
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
202
+ "version": "1.0.1"
203
+ },
204
+ "node_modules/es-errors": {
205
+ "engines": {
206
+ "node": ">= 0.4"
207
+ },
208
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
209
+ "license": "MIT",
210
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
211
+ "version": "1.3.0"
212
+ },
213
+ "node_modules/es-object-atoms": {
214
+ "dependencies": {
215
+ "es-errors": "^1.3.0"
216
+ },
217
+ "engines": {
218
+ "node": ">= 0.4"
219
+ },
220
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
221
+ "license": "MIT",
222
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
223
+ "version": "1.1.1"
224
+ },
225
+ "node_modules/es-set-tostringtag": {
226
+ "dependencies": {
227
+ "es-errors": "^1.3.0",
228
+ "get-intrinsic": "^1.2.6",
229
+ "has-tostringtag": "^1.0.2",
230
+ "hasown": "^2.0.2"
231
+ },
232
+ "engines": {
233
+ "node": ">= 0.4"
234
+ },
235
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
236
+ "license": "MIT",
237
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
238
+ "version": "2.1.0"
239
+ },
240
+ "node_modules/follow-redirects": {
241
+ "engines": {
242
+ "node": ">=4.0"
243
+ },
244
+ "funding": [
245
+ {
246
+ "type": "individual",
247
+ "url": "https://github.com/sponsors/RubenVerborgh"
248
+ }
249
+ ],
250
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
251
+ "license": "MIT",
252
+ "peerDependenciesMeta": {
253
+ "debug": {
254
+ "optional": true
255
+ }
256
+ },
257
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
258
+ "version": "1.15.11"
259
+ },
260
+ "node_modules/form-data": {
261
+ "dependencies": {
262
+ "asynckit": "^0.4.0",
263
+ "combined-stream": "^1.0.8",
264
+ "es-set-tostringtag": "^2.1.0",
265
+ "hasown": "^2.0.2",
266
+ "mime-types": "^2.1.12"
267
+ },
268
+ "engines": {
269
+ "node": ">= 6"
270
+ },
271
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
272
+ "license": "MIT",
273
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
274
+ "version": "4.0.5"
275
+ },
276
+ "node_modules/function-bind": {
277
+ "funding": {
278
+ "url": "https://github.com/sponsors/ljharb"
279
+ },
280
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
281
+ "license": "MIT",
282
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
283
+ "version": "1.1.2"
284
+ },
285
+ "node_modules/get-intrinsic": {
286
+ "dependencies": {
287
+ "call-bind-apply-helpers": "^1.0.2",
288
+ "es-define-property": "^1.0.1",
289
+ "es-errors": "^1.3.0",
290
+ "es-object-atoms": "^1.1.1",
291
+ "function-bind": "^1.1.2",
292
+ "get-proto": "^1.0.1",
293
+ "gopd": "^1.2.0",
294
+ "has-symbols": "^1.1.0",
295
+ "hasown": "^2.0.2",
296
+ "math-intrinsics": "^1.1.0"
297
+ },
298
+ "engines": {
299
+ "node": ">= 0.4"
300
+ },
301
+ "funding": {
302
+ "url": "https://github.com/sponsors/ljharb"
303
+ },
304
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
305
+ "license": "MIT",
306
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
307
+ "version": "1.3.0"
308
+ },
309
+ "node_modules/get-proto": {
310
+ "dependencies": {
311
+ "dunder-proto": "^1.0.1",
312
+ "es-object-atoms": "^1.0.0"
313
+ },
314
+ "engines": {
315
+ "node": ">= 0.4"
316
+ },
317
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
318
+ "license": "MIT",
319
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
320
+ "version": "1.0.1"
321
+ },
322
+ "node_modules/glob": {
323
+ "dependencies": {
324
+ "minimatch": "^10.2.0",
325
+ "minipass": "^7.1.2",
326
+ "path-scurry": "^2.0.0"
327
+ },
328
+ "engines": {
329
+ "node": "20 || >=22"
330
+ },
331
+ "funding": {
332
+ "url": "https://github.com/sponsors/isaacs"
333
+ },
334
+ "integrity": "sha512-/g3B0mC+4x724v1TgtBlBtt2hPi/EWptsIAmXUx9Z2rvBYleQcsrmaOzd5LyL50jf/Soi83ZDJmw2+XqvH/EeA==",
335
+ "license": "BlueOak-1.0.0",
336
+ "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.3.tgz",
337
+ "version": "13.0.3"
338
+ },
339
+ "node_modules/gopd": {
340
+ "engines": {
341
+ "node": ">= 0.4"
342
+ },
343
+ "funding": {
344
+ "url": "https://github.com/sponsors/ljharb"
345
+ },
346
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
347
+ "license": "MIT",
348
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
349
+ "version": "1.2.0"
350
+ },
351
+ "node_modules/has-symbols": {
352
+ "engines": {
353
+ "node": ">= 0.4"
354
+ },
355
+ "funding": {
356
+ "url": "https://github.com/sponsors/ljharb"
357
+ },
358
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
359
+ "license": "MIT",
360
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
361
+ "version": "1.1.0"
362
+ },
363
+ "node_modules/has-tostringtag": {
364
+ "dependencies": {
365
+ "has-symbols": "^1.0.3"
366
+ },
367
+ "engines": {
368
+ "node": ">= 0.4"
369
+ },
370
+ "funding": {
371
+ "url": "https://github.com/sponsors/ljharb"
372
+ },
373
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
374
+ "license": "MIT",
375
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
376
+ "version": "1.0.2"
377
+ },
378
+ "node_modules/hasown": {
379
+ "dependencies": {
380
+ "function-bind": "^1.1.2"
381
+ },
382
+ "engines": {
383
+ "node": ">= 0.4"
384
+ },
385
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
386
+ "license": "MIT",
387
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
388
+ "version": "2.0.2"
389
+ },
390
+ "node_modules/jackspeak": {
391
+ "dependencies": {
392
+ "@isaacs/cliui": "^9.0.0"
393
+ },
394
+ "engines": {
395
+ "node": "20 || >=22"
396
+ },
397
+ "funding": {
398
+ "url": "https://github.com/sponsors/isaacs"
399
+ },
400
+ "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==",
401
+ "license": "BlueOak-1.0.0",
402
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz",
403
+ "version": "4.2.3"
404
+ },
405
+ "node_modules/lru-cache": {
406
+ "engines": {
407
+ "node": "20 || >=22"
408
+ },
409
+ "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==",
410
+ "license": "BlueOak-1.0.0",
411
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz",
412
+ "version": "11.2.6"
413
+ },
414
+ "node_modules/math-intrinsics": {
415
+ "engines": {
416
+ "node": ">= 0.4"
417
+ },
418
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
419
+ "license": "MIT",
420
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
421
+ "version": "1.1.0"
422
+ },
423
+ "node_modules/mime-db": {
424
+ "engines": {
425
+ "node": ">= 0.6"
426
+ },
427
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
428
+ "license": "MIT",
429
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
430
+ "version": "1.52.0"
431
+ },
432
+ "node_modules/mime-types": {
433
+ "dependencies": {
434
+ "mime-db": "1.52.0"
435
+ },
436
+ "engines": {
437
+ "node": ">= 0.6"
438
+ },
439
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
440
+ "license": "MIT",
441
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
442
+ "version": "2.1.35"
443
+ },
444
+ "node_modules/minimatch": {
445
+ "dependencies": {
446
+ "brace-expansion": "^5.0.2"
447
+ },
448
+ "engines": {
449
+ "node": "20 || >=22"
450
+ },
451
+ "funding": {
452
+ "url": "https://github.com/sponsors/isaacs"
453
+ },
454
+ "integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==",
455
+ "license": "BlueOak-1.0.0",
456
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz",
457
+ "version": "10.2.0"
458
+ },
459
+ "node_modules/minipass": {
460
+ "engines": {
461
+ "node": ">=16 || 14 >=14.17"
462
+ },
463
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
464
+ "license": "ISC",
465
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
466
+ "version": "7.1.2"
467
+ },
468
+ "node_modules/package-json-from-dist": {
469
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
470
+ "license": "BlueOak-1.0.0",
471
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
472
+ "version": "1.0.1"
473
+ },
474
+ "node_modules/path-scurry": {
475
+ "dependencies": {
476
+ "lru-cache": "^11.0.0",
477
+ "minipass": "^7.1.2"
478
+ },
479
+ "engines": {
480
+ "node": "20 || >=22"
481
+ },
482
+ "funding": {
483
+ "url": "https://github.com/sponsors/isaacs"
484
+ },
485
+ "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
486
+ "license": "BlueOak-1.0.0",
487
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz",
488
+ "version": "2.0.1"
489
+ },
490
+ "node_modules/prettier": {
491
+ "bin": {
492
+ "prettier": "bin/prettier.cjs"
493
+ },
494
+ "dev": true,
495
+ "engines": {
496
+ "node": ">=14"
497
+ },
498
+ "funding": {
499
+ "url": "https://github.com/prettier/prettier?sponsor=1"
500
+ },
501
+ "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==",
502
+ "license": "MIT",
503
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz",
504
+ "version": "3.8.1"
505
+ },
506
+ "node_modules/proxy-from-env": {
507
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
508
+ "license": "MIT",
509
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
510
+ "version": "1.1.0"
511
+ },
512
+ "node_modules/rimraf": {
513
+ "bin": {
514
+ "rimraf": "dist/esm/bin.mjs"
515
+ },
516
+ "dependencies": {
517
+ "glob": "^13.0.3",
518
+ "package-json-from-dist": "^1.0.1"
519
+ },
520
+ "engines": {
521
+ "node": "20 || >=22"
522
+ },
523
+ "funding": {
524
+ "url": "https://github.com/sponsors/isaacs"
525
+ },
526
+ "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==",
527
+ "license": "BlueOak-1.0.0",
528
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz",
529
+ "version": "6.1.3"
530
+ },
531
+ "node_modules/tunnel": {
532
+ "engines": {
533
+ "node": ">=0.6.11 <=0.7.0 || >=0.7.3"
534
+ },
535
+ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
536
+ "license": "MIT",
537
+ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
538
+ "version": "0.0.6"
539
+ },
540
+ "node_modules/wcwidth": {
541
+ "dependencies": {
542
+ "defaults": "^1.0.3"
543
+ },
544
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
545
+ "license": "MIT",
546
+ "optional": true,
547
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
548
+ "version": "1.0.1"
549
+ }
550
+ },
551
+ "requires": true,
552
+ "version": "0.0.1"
553
+ }