bunkit-cli 0.3.1 → 0.4.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/README.md +60 -0
- package/dist/index.js +1847 -209
- package/package.json +10 -8
package/dist/index.js
CHANGED
|
@@ -2249,6 +2249,224 @@ var require_picocolors = __commonJS((exports, module) => {
|
|
|
2249
2249
|
module.exports.createColors = createColors;
|
|
2250
2250
|
});
|
|
2251
2251
|
|
|
2252
|
+
// ../../node_modules/.bun/cli-boxes@3.0.0/node_modules/cli-boxes/boxes.json
|
|
2253
|
+
var require_boxes = __commonJS((exports, module) => {
|
|
2254
|
+
module.exports = {
|
|
2255
|
+
single: {
|
|
2256
|
+
topLeft: "\u250C",
|
|
2257
|
+
top: "\u2500",
|
|
2258
|
+
topRight: "\u2510",
|
|
2259
|
+
right: "\u2502",
|
|
2260
|
+
bottomRight: "\u2518",
|
|
2261
|
+
bottom: "\u2500",
|
|
2262
|
+
bottomLeft: "\u2514",
|
|
2263
|
+
left: "\u2502"
|
|
2264
|
+
},
|
|
2265
|
+
double: {
|
|
2266
|
+
topLeft: "\u2554",
|
|
2267
|
+
top: "\u2550",
|
|
2268
|
+
topRight: "\u2557",
|
|
2269
|
+
right: "\u2551",
|
|
2270
|
+
bottomRight: "\u255D",
|
|
2271
|
+
bottom: "\u2550",
|
|
2272
|
+
bottomLeft: "\u255A",
|
|
2273
|
+
left: "\u2551"
|
|
2274
|
+
},
|
|
2275
|
+
round: {
|
|
2276
|
+
topLeft: "\u256D",
|
|
2277
|
+
top: "\u2500",
|
|
2278
|
+
topRight: "\u256E",
|
|
2279
|
+
right: "\u2502",
|
|
2280
|
+
bottomRight: "\u256F",
|
|
2281
|
+
bottom: "\u2500",
|
|
2282
|
+
bottomLeft: "\u2570",
|
|
2283
|
+
left: "\u2502"
|
|
2284
|
+
},
|
|
2285
|
+
bold: {
|
|
2286
|
+
topLeft: "\u250F",
|
|
2287
|
+
top: "\u2501",
|
|
2288
|
+
topRight: "\u2513",
|
|
2289
|
+
right: "\u2503",
|
|
2290
|
+
bottomRight: "\u251B",
|
|
2291
|
+
bottom: "\u2501",
|
|
2292
|
+
bottomLeft: "\u2517",
|
|
2293
|
+
left: "\u2503"
|
|
2294
|
+
},
|
|
2295
|
+
singleDouble: {
|
|
2296
|
+
topLeft: "\u2553",
|
|
2297
|
+
top: "\u2500",
|
|
2298
|
+
topRight: "\u2556",
|
|
2299
|
+
right: "\u2551",
|
|
2300
|
+
bottomRight: "\u255C",
|
|
2301
|
+
bottom: "\u2500",
|
|
2302
|
+
bottomLeft: "\u2559",
|
|
2303
|
+
left: "\u2551"
|
|
2304
|
+
},
|
|
2305
|
+
doubleSingle: {
|
|
2306
|
+
topLeft: "\u2552",
|
|
2307
|
+
top: "\u2550",
|
|
2308
|
+
topRight: "\u2555",
|
|
2309
|
+
right: "\u2502",
|
|
2310
|
+
bottomRight: "\u255B",
|
|
2311
|
+
bottom: "\u2550",
|
|
2312
|
+
bottomLeft: "\u2558",
|
|
2313
|
+
left: "\u2502"
|
|
2314
|
+
},
|
|
2315
|
+
classic: {
|
|
2316
|
+
topLeft: "+",
|
|
2317
|
+
top: "-",
|
|
2318
|
+
topRight: "+",
|
|
2319
|
+
right: "|",
|
|
2320
|
+
bottomRight: "+",
|
|
2321
|
+
bottom: "-",
|
|
2322
|
+
bottomLeft: "+",
|
|
2323
|
+
left: "|"
|
|
2324
|
+
},
|
|
2325
|
+
arrow: {
|
|
2326
|
+
topLeft: "\u2198",
|
|
2327
|
+
top: "\u2193",
|
|
2328
|
+
topRight: "\u2199",
|
|
2329
|
+
right: "\u2190",
|
|
2330
|
+
bottomRight: "\u2196",
|
|
2331
|
+
bottom: "\u2191",
|
|
2332
|
+
bottomLeft: "\u2197",
|
|
2333
|
+
left: "\u2192"
|
|
2334
|
+
}
|
|
2335
|
+
};
|
|
2336
|
+
});
|
|
2337
|
+
|
|
2338
|
+
// ../../node_modules/.bun/cli-boxes@3.0.0/node_modules/cli-boxes/index.js
|
|
2339
|
+
var require_cli_boxes = __commonJS((exports, module) => {
|
|
2340
|
+
var cliBoxes = require_boxes();
|
|
2341
|
+
module.exports = cliBoxes;
|
|
2342
|
+
module.exports.default = cliBoxes;
|
|
2343
|
+
});
|
|
2344
|
+
|
|
2345
|
+
// ../../node_modules/.bun/ansi-regex@5.0.1/node_modules/ansi-regex/index.js
|
|
2346
|
+
var require_ansi_regex = __commonJS((exports, module) => {
|
|
2347
|
+
module.exports = ({ onlyFirst = false } = {}) => {
|
|
2348
|
+
const pattern = [
|
|
2349
|
+
"[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
|
|
2350
|
+
"(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"
|
|
2351
|
+
].join("|");
|
|
2352
|
+
return new RegExp(pattern, onlyFirst ? undefined : "g");
|
|
2353
|
+
};
|
|
2354
|
+
});
|
|
2355
|
+
|
|
2356
|
+
// ../../node_modules/.bun/strip-ansi@6.0.1/node_modules/strip-ansi/index.js
|
|
2357
|
+
var require_strip_ansi = __commonJS((exports, module) => {
|
|
2358
|
+
var ansiRegex2 = require_ansi_regex();
|
|
2359
|
+
module.exports = (string) => typeof string === "string" ? string.replace(ansiRegex2(), "") : string;
|
|
2360
|
+
});
|
|
2361
|
+
|
|
2362
|
+
// ../../node_modules/.bun/is-fullwidth-code-point@3.0.0/node_modules/is-fullwidth-code-point/index.js
|
|
2363
|
+
var require_is_fullwidth_code_point = __commonJS((exports, module) => {
|
|
2364
|
+
var isFullwidthCodePoint = (codePoint) => {
|
|
2365
|
+
if (Number.isNaN(codePoint)) {
|
|
2366
|
+
return false;
|
|
2367
|
+
}
|
|
2368
|
+
if (codePoint >= 4352 && (codePoint <= 4447 || codePoint === 9001 || codePoint === 9002 || 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || 12880 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65131 || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 262141)) {
|
|
2369
|
+
return true;
|
|
2370
|
+
}
|
|
2371
|
+
return false;
|
|
2372
|
+
};
|
|
2373
|
+
module.exports = isFullwidthCodePoint;
|
|
2374
|
+
module.exports.default = isFullwidthCodePoint;
|
|
2375
|
+
});
|
|
2376
|
+
|
|
2377
|
+
// ../../node_modules/.bun/emoji-regex@8.0.0/node_modules/emoji-regex/index.js
|
|
2378
|
+
var require_emoji_regex = __commonJS((exports, module) => {
|
|
2379
|
+
module.exports = function() {
|
|
2380
|
+
return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
|
|
2381
|
+
};
|
|
2382
|
+
});
|
|
2383
|
+
|
|
2384
|
+
// ../../node_modules/.bun/string-width@4.2.3/node_modules/string-width/index.js
|
|
2385
|
+
var require_string_width = __commonJS((exports, module) => {
|
|
2386
|
+
var stripAnsi2 = require_strip_ansi();
|
|
2387
|
+
var isFullwidthCodePoint = require_is_fullwidth_code_point();
|
|
2388
|
+
var emojiRegex = require_emoji_regex();
|
|
2389
|
+
var stringWidth2 = (string) => {
|
|
2390
|
+
if (typeof string !== "string" || string.length === 0) {
|
|
2391
|
+
return 0;
|
|
2392
|
+
}
|
|
2393
|
+
string = stripAnsi2(string);
|
|
2394
|
+
if (string.length === 0) {
|
|
2395
|
+
return 0;
|
|
2396
|
+
}
|
|
2397
|
+
string = string.replace(emojiRegex(), " ");
|
|
2398
|
+
let width = 0;
|
|
2399
|
+
for (let i = 0;i < string.length; i++) {
|
|
2400
|
+
const code = string.codePointAt(i);
|
|
2401
|
+
if (code <= 31 || code >= 127 && code <= 159) {
|
|
2402
|
+
continue;
|
|
2403
|
+
}
|
|
2404
|
+
if (code >= 768 && code <= 879) {
|
|
2405
|
+
continue;
|
|
2406
|
+
}
|
|
2407
|
+
if (code > 65535) {
|
|
2408
|
+
i++;
|
|
2409
|
+
}
|
|
2410
|
+
width += isFullwidthCodePoint(code) ? 2 : 1;
|
|
2411
|
+
}
|
|
2412
|
+
return width;
|
|
2413
|
+
};
|
|
2414
|
+
module.exports = stringWidth2;
|
|
2415
|
+
module.exports.default = stringWidth2;
|
|
2416
|
+
});
|
|
2417
|
+
|
|
2418
|
+
// ../../node_modules/.bun/ansi-align@3.0.1/node_modules/ansi-align/index.js
|
|
2419
|
+
var require_ansi_align = __commonJS((exports, module) => {
|
|
2420
|
+
var stringWidth2 = require_string_width();
|
|
2421
|
+
function ansiAlign(text, opts) {
|
|
2422
|
+
if (!text)
|
|
2423
|
+
return text;
|
|
2424
|
+
opts = opts || {};
|
|
2425
|
+
const align = opts.align || "center";
|
|
2426
|
+
if (align === "left")
|
|
2427
|
+
return text;
|
|
2428
|
+
const split = opts.split || `
|
|
2429
|
+
`;
|
|
2430
|
+
const pad = opts.pad || " ";
|
|
2431
|
+
const widthDiffFn = align !== "right" ? halfDiff : fullDiff;
|
|
2432
|
+
let returnString = false;
|
|
2433
|
+
if (!Array.isArray(text)) {
|
|
2434
|
+
returnString = true;
|
|
2435
|
+
text = String(text).split(split);
|
|
2436
|
+
}
|
|
2437
|
+
let width;
|
|
2438
|
+
let maxWidth = 0;
|
|
2439
|
+
text = text.map(function(str) {
|
|
2440
|
+
str = String(str);
|
|
2441
|
+
width = stringWidth2(str);
|
|
2442
|
+
maxWidth = Math.max(width, maxWidth);
|
|
2443
|
+
return {
|
|
2444
|
+
str,
|
|
2445
|
+
width
|
|
2446
|
+
};
|
|
2447
|
+
}).map(function(obj) {
|
|
2448
|
+
return new Array(widthDiffFn(maxWidth, obj.width) + 1).join(pad) + obj.str;
|
|
2449
|
+
});
|
|
2450
|
+
return returnString ? text.join(split) : text;
|
|
2451
|
+
}
|
|
2452
|
+
ansiAlign.left = function left(text) {
|
|
2453
|
+
return ansiAlign(text, { align: "left" });
|
|
2454
|
+
};
|
|
2455
|
+
ansiAlign.center = function center(text) {
|
|
2456
|
+
return ansiAlign(text, { align: "center" });
|
|
2457
|
+
};
|
|
2458
|
+
ansiAlign.right = function right(text) {
|
|
2459
|
+
return ansiAlign(text, { align: "right" });
|
|
2460
|
+
};
|
|
2461
|
+
module.exports = ansiAlign;
|
|
2462
|
+
function halfDiff(maxWidth, curWidth) {
|
|
2463
|
+
return Math.floor((maxWidth - curWidth) / 2);
|
|
2464
|
+
}
|
|
2465
|
+
function fullDiff(maxWidth, curWidth) {
|
|
2466
|
+
return maxWidth - curWidth;
|
|
2467
|
+
}
|
|
2468
|
+
});
|
|
2469
|
+
|
|
2252
2470
|
// ../../node_modules/.bun/universalify@2.0.1/node_modules/universalify/index.js
|
|
2253
2471
|
var require_universalify = __commonJS((exports) => {
|
|
2254
2472
|
exports.fromCallback = function(fn) {
|
|
@@ -4396,9 +4614,9 @@ var require_fs2 = __commonJS((exports) => {
|
|
|
4396
4614
|
var require_path = __commonJS((exports) => {
|
|
4397
4615
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4398
4616
|
exports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = undefined;
|
|
4399
|
-
var
|
|
4617
|
+
var os2 = __require("os");
|
|
4400
4618
|
var path = __require("path");
|
|
4401
|
-
var IS_WINDOWS_PLATFORM =
|
|
4619
|
+
var IS_WINDOWS_PLATFORM = os2.platform() === "win32";
|
|
4402
4620
|
var LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2;
|
|
4403
4621
|
var POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g;
|
|
4404
4622
|
var WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()[\]{}]|^!|[!+@](?=\())/g;
|
|
@@ -6985,17 +7203,17 @@ var require_picomatch = __commonJS((exports, module) => {
|
|
|
6985
7203
|
}
|
|
6986
7204
|
const opts = options || {};
|
|
6987
7205
|
const posix = utils.isWindows(options);
|
|
6988
|
-
const
|
|
6989
|
-
const state =
|
|
6990
|
-
delete
|
|
7206
|
+
const regex2 = isState ? picomatch.compileRe(glob, options) : picomatch.makeRe(glob, options, false, true);
|
|
7207
|
+
const state = regex2.state;
|
|
7208
|
+
delete regex2.state;
|
|
6991
7209
|
let isIgnored = () => false;
|
|
6992
7210
|
if (opts.ignore) {
|
|
6993
7211
|
const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };
|
|
6994
7212
|
isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);
|
|
6995
7213
|
}
|
|
6996
7214
|
const matcher = (input, returnObject = false) => {
|
|
6997
|
-
const { isMatch, match, output } = picomatch.test(input,
|
|
6998
|
-
const result = { glob, state, regex, posix, input, output, match, isMatch };
|
|
7215
|
+
const { isMatch, match, output } = picomatch.test(input, regex2, options, { glob, posix });
|
|
7216
|
+
const result = { glob, state, regex: regex2, posix, input, output, match, isMatch };
|
|
6999
7217
|
if (typeof opts.onResult === "function") {
|
|
7000
7218
|
opts.onResult(result);
|
|
7001
7219
|
}
|
|
@@ -7020,7 +7238,7 @@ var require_picomatch = __commonJS((exports, module) => {
|
|
|
7020
7238
|
}
|
|
7021
7239
|
return matcher;
|
|
7022
7240
|
};
|
|
7023
|
-
picomatch.test = (input,
|
|
7241
|
+
picomatch.test = (input, regex2, options, { glob, posix } = {}) => {
|
|
7024
7242
|
if (typeof input !== "string") {
|
|
7025
7243
|
throw new TypeError("Expected input to be a string");
|
|
7026
7244
|
}
|
|
@@ -7037,16 +7255,16 @@ var require_picomatch = __commonJS((exports, module) => {
|
|
|
7037
7255
|
}
|
|
7038
7256
|
if (match === false || opts.capture === true) {
|
|
7039
7257
|
if (opts.matchBase === true || opts.basename === true) {
|
|
7040
|
-
match = picomatch.matchBase(input,
|
|
7258
|
+
match = picomatch.matchBase(input, regex2, options, posix);
|
|
7041
7259
|
} else {
|
|
7042
|
-
match =
|
|
7260
|
+
match = regex2.exec(output);
|
|
7043
7261
|
}
|
|
7044
7262
|
}
|
|
7045
7263
|
return { isMatch: Boolean(match), match, output };
|
|
7046
7264
|
};
|
|
7047
7265
|
picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {
|
|
7048
|
-
const
|
|
7049
|
-
return
|
|
7266
|
+
const regex2 = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);
|
|
7267
|
+
return regex2.test(path.basename(input));
|
|
7050
7268
|
};
|
|
7051
7269
|
picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
|
|
7052
7270
|
picomatch.parse = (pattern, options) => {
|
|
@@ -7066,11 +7284,11 @@ var require_picomatch = __commonJS((exports, module) => {
|
|
|
7066
7284
|
if (state && state.negated === true) {
|
|
7067
7285
|
source = `^(?!${source}).*$`;
|
|
7068
7286
|
}
|
|
7069
|
-
const
|
|
7287
|
+
const regex2 = picomatch.toRegex(source, options);
|
|
7070
7288
|
if (returnState === true) {
|
|
7071
|
-
|
|
7289
|
+
regex2.state = state;
|
|
7072
7290
|
}
|
|
7073
|
-
return
|
|
7291
|
+
return regex2;
|
|
7074
7292
|
};
|
|
7075
7293
|
picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {
|
|
7076
7294
|
if (!input || typeof input !== "string") {
|
|
@@ -7229,8 +7447,8 @@ var require_micromatch = __commonJS((exports, module) => {
|
|
|
7229
7447
|
};
|
|
7230
7448
|
micromatch.capture = (glob, input, options) => {
|
|
7231
7449
|
let posix = utils.isWindows(options);
|
|
7232
|
-
let
|
|
7233
|
-
let match =
|
|
7450
|
+
let regex2 = picomatch.makeRe(String(glob), { ...options, capture: true });
|
|
7451
|
+
let match = regex2.exec(posix ? utils.toPosixSlashes(input) : input);
|
|
7234
7452
|
if (match) {
|
|
7235
7453
|
return match.slice(1).map((v2) => v2 === undefined ? "" : v2);
|
|
7236
7454
|
}
|
|
@@ -9428,8 +9646,8 @@ var require_settings4 = __commonJS((exports) => {
|
|
|
9428
9646
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9429
9647
|
exports.DEFAULT_FILE_SYSTEM_ADAPTER = undefined;
|
|
9430
9648
|
var fs = __require("fs");
|
|
9431
|
-
var
|
|
9432
|
-
var CPU_COUNT = Math.max(
|
|
9649
|
+
var os2 = __require("os");
|
|
9650
|
+
var CPU_COUNT = Math.max(os2.cpus().length, 1);
|
|
9433
9651
|
exports.DEFAULT_FILE_SYSTEM_ADAPTER = {
|
|
9434
9652
|
lstat: fs.lstat,
|
|
9435
9653
|
lstatSync: fs.lstatSync,
|
|
@@ -9812,7 +10030,7 @@ var require_resolveCommand = __commonJS((exports, module) => {
|
|
|
9812
10030
|
var which = require_which();
|
|
9813
10031
|
var getPathKey = require_path_key();
|
|
9814
10032
|
function resolveCommandAttempt(parsed, withoutPathExt) {
|
|
9815
|
-
const
|
|
10033
|
+
const env2 = parsed.options.env || process.env;
|
|
9816
10034
|
const cwd = process.cwd();
|
|
9817
10035
|
const hasCustomCwd = parsed.options.cwd != null;
|
|
9818
10036
|
const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;
|
|
@@ -9824,7 +10042,7 @@ var require_resolveCommand = __commonJS((exports, module) => {
|
|
|
9824
10042
|
let resolved;
|
|
9825
10043
|
try {
|
|
9826
10044
|
resolved = which.sync(parsed.command, {
|
|
9827
|
-
path:
|
|
10045
|
+
path: env2[getPathKey({ env: env2 })],
|
|
9828
10046
|
pathExt: withoutPathExt ? path2.delimiter : undefined
|
|
9829
10047
|
});
|
|
9830
10048
|
} catch (e2) {} finally {
|
|
@@ -10809,9 +11027,6 @@ var {
|
|
|
10809
11027
|
Help
|
|
10810
11028
|
} = import__.default;
|
|
10811
11029
|
|
|
10812
|
-
// ../../node_modules/.bun/@clack+prompts@0.11.0/node_modules/@clack/prompts/dist/index.mjs
|
|
10813
|
-
import { stripVTControlCharacters as S2 } from "util";
|
|
10814
|
-
|
|
10815
11030
|
// ../../node_modules/.bun/@clack+core@0.5.0/node_modules/@clack/core/dist/index.mjs
|
|
10816
11031
|
var import_sisteransi = __toESM(require_src(), 1);
|
|
10817
11032
|
var import_picocolors = __toESM(require_picocolors(), 1);
|
|
@@ -11360,21 +11575,6 @@ ${import_picocolors2.default.cyan(d2)}
|
|
|
11360
11575
|
}
|
|
11361
11576
|
} }).prompt();
|
|
11362
11577
|
};
|
|
11363
|
-
var Me = (t = "", n = "") => {
|
|
11364
|
-
const r2 = `
|
|
11365
|
-
${t}
|
|
11366
|
-
`.split(`
|
|
11367
|
-
`), i = S2(n).length, s = Math.max(r2.reduce((a, l2) => {
|
|
11368
|
-
const $2 = S2(l2);
|
|
11369
|
-
return $2.length > a ? $2.length : a;
|
|
11370
|
-
}, 0), i) + 2, c = r2.map((a) => `${import_picocolors2.default.gray(o)} ${import_picocolors2.default.dim(a)}${" ".repeat(s - S2(a).length)}${import_picocolors2.default.gray(o)}`).join(`
|
|
11371
|
-
`);
|
|
11372
|
-
process.stdout.write(`${import_picocolors2.default.gray(o)}
|
|
11373
|
-
${import_picocolors2.default.green(C)} ${import_picocolors2.default.reset(n)} ${import_picocolors2.default.gray(_2.repeat(Math.max(s - i - 1, 1)) + me)}
|
|
11374
|
-
${c}
|
|
11375
|
-
${import_picocolors2.default.gray(de + _2.repeat(s + 2) + pe)}
|
|
11376
|
-
`);
|
|
11377
|
-
};
|
|
11378
11578
|
var xe = (t = "") => {
|
|
11379
11579
|
process.stdout.write(`${import_picocolors2.default.gray(d2)} ${import_picocolors2.default.red(t)}
|
|
11380
11580
|
|
|
@@ -11463,39 +11663,1350 @@ var Y2 = ({ indicator: t = "dots" } = {}) => {
|
|
|
11463
11663
|
};
|
|
11464
11664
|
|
|
11465
11665
|
// src/index.ts
|
|
11466
|
-
var
|
|
11666
|
+
var import_picocolors5 = __toESM(require_picocolors(), 1);
|
|
11667
|
+
|
|
11668
|
+
// ../../node_modules/.bun/boxen@8.0.1/node_modules/boxen/index.js
|
|
11669
|
+
import process3 from "process";
|
|
11670
|
+
|
|
11671
|
+
// ../../node_modules/.bun/ansi-regex@6.2.2/node_modules/ansi-regex/index.js
|
|
11672
|
+
function ansiRegex({ onlyFirst = false } = {}) {
|
|
11673
|
+
const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
|
|
11674
|
+
const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
|
|
11675
|
+
const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
|
|
11676
|
+
const pattern = `${osc}|${csi}`;
|
|
11677
|
+
return new RegExp(pattern, onlyFirst ? undefined : "g");
|
|
11678
|
+
}
|
|
11679
|
+
|
|
11680
|
+
// ../../node_modules/.bun/strip-ansi@7.1.2/node_modules/strip-ansi/index.js
|
|
11681
|
+
var regex = ansiRegex();
|
|
11682
|
+
function stripAnsi(string) {
|
|
11683
|
+
if (typeof string !== "string") {
|
|
11684
|
+
throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
|
|
11685
|
+
}
|
|
11686
|
+
return string.replace(regex, "");
|
|
11687
|
+
}
|
|
11688
|
+
|
|
11689
|
+
// ../../node_modules/.bun/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/lookup.js
|
|
11690
|
+
function isAmbiguous(x2) {
|
|
11691
|
+
return x2 === 161 || x2 === 164 || x2 === 167 || x2 === 168 || x2 === 170 || x2 === 173 || x2 === 174 || x2 >= 176 && x2 <= 180 || x2 >= 182 && x2 <= 186 || x2 >= 188 && x2 <= 191 || x2 === 198 || x2 === 208 || x2 === 215 || x2 === 216 || x2 >= 222 && x2 <= 225 || x2 === 230 || x2 >= 232 && x2 <= 234 || x2 === 236 || x2 === 237 || x2 === 240 || x2 === 242 || x2 === 243 || x2 >= 247 && x2 <= 250 || x2 === 252 || x2 === 254 || x2 === 257 || x2 === 273 || x2 === 275 || x2 === 283 || x2 === 294 || x2 === 295 || x2 === 299 || x2 >= 305 && x2 <= 307 || x2 === 312 || x2 >= 319 && x2 <= 322 || x2 === 324 || x2 >= 328 && x2 <= 331 || x2 === 333 || x2 === 338 || x2 === 339 || x2 === 358 || x2 === 359 || x2 === 363 || x2 === 462 || x2 === 464 || x2 === 466 || x2 === 468 || x2 === 470 || x2 === 472 || x2 === 474 || x2 === 476 || x2 === 593 || x2 === 609 || x2 === 708 || x2 === 711 || x2 >= 713 && x2 <= 715 || x2 === 717 || x2 === 720 || x2 >= 728 && x2 <= 731 || x2 === 733 || x2 === 735 || x2 >= 768 && x2 <= 879 || x2 >= 913 && x2 <= 929 || x2 >= 931 && x2 <= 937 || x2 >= 945 && x2 <= 961 || x2 >= 963 && x2 <= 969 || x2 === 1025 || x2 >= 1040 && x2 <= 1103 || x2 === 1105 || x2 === 8208 || x2 >= 8211 && x2 <= 8214 || x2 === 8216 || x2 === 8217 || x2 === 8220 || x2 === 8221 || x2 >= 8224 && x2 <= 8226 || x2 >= 8228 && x2 <= 8231 || x2 === 8240 || x2 === 8242 || x2 === 8243 || x2 === 8245 || x2 === 8251 || x2 === 8254 || x2 === 8308 || x2 === 8319 || x2 >= 8321 && x2 <= 8324 || x2 === 8364 || x2 === 8451 || x2 === 8453 || x2 === 8457 || x2 === 8467 || x2 === 8470 || x2 === 8481 || x2 === 8482 || x2 === 8486 || x2 === 8491 || x2 === 8531 || x2 === 8532 || x2 >= 8539 && x2 <= 8542 || x2 >= 8544 && x2 <= 8555 || x2 >= 8560 && x2 <= 8569 || x2 === 8585 || x2 >= 8592 && x2 <= 8601 || x2 === 8632 || x2 === 8633 || x2 === 8658 || x2 === 8660 || x2 === 8679 || x2 === 8704 || x2 === 8706 || x2 === 8707 || x2 === 8711 || x2 === 8712 || x2 === 8715 || x2 === 8719 || x2 === 8721 || x2 === 8725 || x2 === 8730 || x2 >= 8733 && x2 <= 8736 || x2 === 8739 || x2 === 8741 || x2 >= 8743 && x2 <= 8748 || x2 === 8750 || x2 >= 8756 && x2 <= 8759 || x2 === 8764 || x2 === 8765 || x2 === 8776 || x2 === 8780 || x2 === 8786 || x2 === 8800 || x2 === 8801 || x2 >= 8804 && x2 <= 8807 || x2 === 8810 || x2 === 8811 || x2 === 8814 || x2 === 8815 || x2 === 8834 || x2 === 8835 || x2 === 8838 || x2 === 8839 || x2 === 8853 || x2 === 8857 || x2 === 8869 || x2 === 8895 || x2 === 8978 || x2 >= 9312 && x2 <= 9449 || x2 >= 9451 && x2 <= 9547 || x2 >= 9552 && x2 <= 9587 || x2 >= 9600 && x2 <= 9615 || x2 >= 9618 && x2 <= 9621 || x2 === 9632 || x2 === 9633 || x2 >= 9635 && x2 <= 9641 || x2 === 9650 || x2 === 9651 || x2 === 9654 || x2 === 9655 || x2 === 9660 || x2 === 9661 || x2 === 9664 || x2 === 9665 || x2 >= 9670 && x2 <= 9672 || x2 === 9675 || x2 >= 9678 && x2 <= 9681 || x2 >= 9698 && x2 <= 9701 || x2 === 9711 || x2 === 9733 || x2 === 9734 || x2 === 9737 || x2 === 9742 || x2 === 9743 || x2 === 9756 || x2 === 9758 || x2 === 9792 || x2 === 9794 || x2 === 9824 || x2 === 9825 || x2 >= 9827 && x2 <= 9829 || x2 >= 9831 && x2 <= 9834 || x2 === 9836 || x2 === 9837 || x2 === 9839 || x2 === 9886 || x2 === 9887 || x2 === 9919 || x2 >= 9926 && x2 <= 9933 || x2 >= 9935 && x2 <= 9939 || x2 >= 9941 && x2 <= 9953 || x2 === 9955 || x2 === 9960 || x2 === 9961 || x2 >= 9963 && x2 <= 9969 || x2 === 9972 || x2 >= 9974 && x2 <= 9977 || x2 === 9979 || x2 === 9980 || x2 === 9982 || x2 === 9983 || x2 === 10045 || x2 >= 10102 && x2 <= 10111 || x2 >= 11094 && x2 <= 11097 || x2 >= 12872 && x2 <= 12879 || x2 >= 57344 && x2 <= 63743 || x2 >= 65024 && x2 <= 65039 || x2 === 65533 || x2 >= 127232 && x2 <= 127242 || x2 >= 127248 && x2 <= 127277 || x2 >= 127280 && x2 <= 127337 || x2 >= 127344 && x2 <= 127373 || x2 === 127375 || x2 === 127376 || x2 >= 127387 && x2 <= 127404 || x2 >= 917760 && x2 <= 917999 || x2 >= 983040 && x2 <= 1048573 || x2 >= 1048576 && x2 <= 1114109;
|
|
11692
|
+
}
|
|
11693
|
+
function isFullWidth(x2) {
|
|
11694
|
+
return x2 === 12288 || x2 >= 65281 && x2 <= 65376 || x2 >= 65504 && x2 <= 65510;
|
|
11695
|
+
}
|
|
11696
|
+
function isWide(x2) {
|
|
11697
|
+
return x2 >= 4352 && x2 <= 4447 || x2 === 8986 || x2 === 8987 || x2 === 9001 || x2 === 9002 || x2 >= 9193 && x2 <= 9196 || x2 === 9200 || x2 === 9203 || x2 === 9725 || x2 === 9726 || x2 === 9748 || x2 === 9749 || x2 >= 9776 && x2 <= 9783 || x2 >= 9800 && x2 <= 9811 || x2 === 9855 || x2 >= 9866 && x2 <= 9871 || x2 === 9875 || x2 === 9889 || x2 === 9898 || x2 === 9899 || x2 === 9917 || x2 === 9918 || x2 === 9924 || x2 === 9925 || x2 === 9934 || x2 === 9940 || x2 === 9962 || x2 === 9970 || x2 === 9971 || x2 === 9973 || x2 === 9978 || x2 === 9981 || x2 === 9989 || x2 === 9994 || x2 === 9995 || x2 === 10024 || x2 === 10060 || x2 === 10062 || x2 >= 10067 && x2 <= 10069 || x2 === 10071 || x2 >= 10133 && x2 <= 10135 || x2 === 10160 || x2 === 10175 || x2 === 11035 || x2 === 11036 || x2 === 11088 || x2 === 11093 || x2 >= 11904 && x2 <= 11929 || x2 >= 11931 && x2 <= 12019 || x2 >= 12032 && x2 <= 12245 || x2 >= 12272 && x2 <= 12287 || x2 >= 12289 && x2 <= 12350 || x2 >= 12353 && x2 <= 12438 || x2 >= 12441 && x2 <= 12543 || x2 >= 12549 && x2 <= 12591 || x2 >= 12593 && x2 <= 12686 || x2 >= 12688 && x2 <= 12773 || x2 >= 12783 && x2 <= 12830 || x2 >= 12832 && x2 <= 12871 || x2 >= 12880 && x2 <= 42124 || x2 >= 42128 && x2 <= 42182 || x2 >= 43360 && x2 <= 43388 || x2 >= 44032 && x2 <= 55203 || x2 >= 63744 && x2 <= 64255 || x2 >= 65040 && x2 <= 65049 || x2 >= 65072 && x2 <= 65106 || x2 >= 65108 && x2 <= 65126 || x2 >= 65128 && x2 <= 65131 || x2 >= 94176 && x2 <= 94180 || x2 >= 94192 && x2 <= 94198 || x2 >= 94208 && x2 <= 101589 || x2 >= 101631 && x2 <= 101662 || x2 >= 101760 && x2 <= 101874 || x2 >= 110576 && x2 <= 110579 || x2 >= 110581 && x2 <= 110587 || x2 === 110589 || x2 === 110590 || x2 >= 110592 && x2 <= 110882 || x2 === 110898 || x2 >= 110928 && x2 <= 110930 || x2 === 110933 || x2 >= 110948 && x2 <= 110951 || x2 >= 110960 && x2 <= 111355 || x2 >= 119552 && x2 <= 119638 || x2 >= 119648 && x2 <= 119670 || x2 === 126980 || x2 === 127183 || x2 === 127374 || x2 >= 127377 && x2 <= 127386 || x2 >= 127488 && x2 <= 127490 || x2 >= 127504 && x2 <= 127547 || x2 >= 127552 && x2 <= 127560 || x2 === 127568 || x2 === 127569 || x2 >= 127584 && x2 <= 127589 || x2 >= 127744 && x2 <= 127776 || x2 >= 127789 && x2 <= 127797 || x2 >= 127799 && x2 <= 127868 || x2 >= 127870 && x2 <= 127891 || x2 >= 127904 && x2 <= 127946 || x2 >= 127951 && x2 <= 127955 || x2 >= 127968 && x2 <= 127984 || x2 === 127988 || x2 >= 127992 && x2 <= 128062 || x2 === 128064 || x2 >= 128066 && x2 <= 128252 || x2 >= 128255 && x2 <= 128317 || x2 >= 128331 && x2 <= 128334 || x2 >= 128336 && x2 <= 128359 || x2 === 128378 || x2 === 128405 || x2 === 128406 || x2 === 128420 || x2 >= 128507 && x2 <= 128591 || x2 >= 128640 && x2 <= 128709 || x2 === 128716 || x2 >= 128720 && x2 <= 128722 || x2 >= 128725 && x2 <= 128728 || x2 >= 128732 && x2 <= 128735 || x2 === 128747 || x2 === 128748 || x2 >= 128756 && x2 <= 128764 || x2 >= 128992 && x2 <= 129003 || x2 === 129008 || x2 >= 129292 && x2 <= 129338 || x2 >= 129340 && x2 <= 129349 || x2 >= 129351 && x2 <= 129535 || x2 >= 129648 && x2 <= 129660 || x2 >= 129664 && x2 <= 129674 || x2 >= 129678 && x2 <= 129734 || x2 === 129736 || x2 >= 129741 && x2 <= 129756 || x2 >= 129759 && x2 <= 129770 || x2 >= 129775 && x2 <= 129784 || x2 >= 131072 && x2 <= 196605 || x2 >= 196608 && x2 <= 262141;
|
|
11698
|
+
}
|
|
11699
|
+
|
|
11700
|
+
// ../../node_modules/.bun/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/index.js
|
|
11701
|
+
function validate(codePoint) {
|
|
11702
|
+
if (!Number.isSafeInteger(codePoint)) {
|
|
11703
|
+
throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
|
|
11704
|
+
}
|
|
11705
|
+
}
|
|
11706
|
+
function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
|
|
11707
|
+
validate(codePoint);
|
|
11708
|
+
if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
|
|
11709
|
+
return 2;
|
|
11710
|
+
}
|
|
11711
|
+
return 1;
|
|
11712
|
+
}
|
|
11713
|
+
|
|
11714
|
+
// ../../node_modules/.bun/emoji-regex@10.6.0/node_modules/emoji-regex/index.mjs
|
|
11715
|
+
var emoji_regex_default = () => {
|
|
11716
|
+
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
11717
|
+
};
|
|
11718
|
+
|
|
11719
|
+
// ../../node_modules/.bun/string-width@7.2.0/node_modules/string-width/index.js
|
|
11720
|
+
var segmenter = new Intl.Segmenter;
|
|
11721
|
+
var defaultIgnorableCodePointRegex = /^\p{Default_Ignorable_Code_Point}$/u;
|
|
11722
|
+
function stringWidth(string, options = {}) {
|
|
11723
|
+
if (typeof string !== "string" || string.length === 0) {
|
|
11724
|
+
return 0;
|
|
11725
|
+
}
|
|
11726
|
+
const {
|
|
11727
|
+
ambiguousIsNarrow = true,
|
|
11728
|
+
countAnsiEscapeCodes = false
|
|
11729
|
+
} = options;
|
|
11730
|
+
if (!countAnsiEscapeCodes) {
|
|
11731
|
+
string = stripAnsi(string);
|
|
11732
|
+
}
|
|
11733
|
+
if (string.length === 0) {
|
|
11734
|
+
return 0;
|
|
11735
|
+
}
|
|
11736
|
+
let width = 0;
|
|
11737
|
+
const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
|
|
11738
|
+
for (const { segment: character } of segmenter.segment(string)) {
|
|
11739
|
+
const codePoint = character.codePointAt(0);
|
|
11740
|
+
if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
|
|
11741
|
+
continue;
|
|
11742
|
+
}
|
|
11743
|
+
if (codePoint >= 8203 && codePoint <= 8207 || codePoint === 65279) {
|
|
11744
|
+
continue;
|
|
11745
|
+
}
|
|
11746
|
+
if (codePoint >= 768 && codePoint <= 879 || codePoint >= 6832 && codePoint <= 6911 || codePoint >= 7616 && codePoint <= 7679 || codePoint >= 8400 && codePoint <= 8447 || codePoint >= 65056 && codePoint <= 65071) {
|
|
11747
|
+
continue;
|
|
11748
|
+
}
|
|
11749
|
+
if (codePoint >= 55296 && codePoint <= 57343) {
|
|
11750
|
+
continue;
|
|
11751
|
+
}
|
|
11752
|
+
if (codePoint >= 65024 && codePoint <= 65039) {
|
|
11753
|
+
continue;
|
|
11754
|
+
}
|
|
11755
|
+
if (defaultIgnorableCodePointRegex.test(character)) {
|
|
11756
|
+
continue;
|
|
11757
|
+
}
|
|
11758
|
+
if (emoji_regex_default().test(character)) {
|
|
11759
|
+
width += 2;
|
|
11760
|
+
continue;
|
|
11761
|
+
}
|
|
11762
|
+
width += eastAsianWidth(codePoint, eastAsianWidthOptions);
|
|
11763
|
+
}
|
|
11764
|
+
return width;
|
|
11765
|
+
}
|
|
11766
|
+
|
|
11767
|
+
// ../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js
|
|
11768
|
+
var ANSI_BACKGROUND_OFFSET = 10;
|
|
11769
|
+
var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
|
|
11770
|
+
var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
|
|
11771
|
+
var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
|
|
11772
|
+
var styles = {
|
|
11773
|
+
modifier: {
|
|
11774
|
+
reset: [0, 0],
|
|
11775
|
+
bold: [1, 22],
|
|
11776
|
+
dim: [2, 22],
|
|
11777
|
+
italic: [3, 23],
|
|
11778
|
+
underline: [4, 24],
|
|
11779
|
+
overline: [53, 55],
|
|
11780
|
+
inverse: [7, 27],
|
|
11781
|
+
hidden: [8, 28],
|
|
11782
|
+
strikethrough: [9, 29]
|
|
11783
|
+
},
|
|
11784
|
+
color: {
|
|
11785
|
+
black: [30, 39],
|
|
11786
|
+
red: [31, 39],
|
|
11787
|
+
green: [32, 39],
|
|
11788
|
+
yellow: [33, 39],
|
|
11789
|
+
blue: [34, 39],
|
|
11790
|
+
magenta: [35, 39],
|
|
11791
|
+
cyan: [36, 39],
|
|
11792
|
+
white: [37, 39],
|
|
11793
|
+
blackBright: [90, 39],
|
|
11794
|
+
gray: [90, 39],
|
|
11795
|
+
grey: [90, 39],
|
|
11796
|
+
redBright: [91, 39],
|
|
11797
|
+
greenBright: [92, 39],
|
|
11798
|
+
yellowBright: [93, 39],
|
|
11799
|
+
blueBright: [94, 39],
|
|
11800
|
+
magentaBright: [95, 39],
|
|
11801
|
+
cyanBright: [96, 39],
|
|
11802
|
+
whiteBright: [97, 39]
|
|
11803
|
+
},
|
|
11804
|
+
bgColor: {
|
|
11805
|
+
bgBlack: [40, 49],
|
|
11806
|
+
bgRed: [41, 49],
|
|
11807
|
+
bgGreen: [42, 49],
|
|
11808
|
+
bgYellow: [43, 49],
|
|
11809
|
+
bgBlue: [44, 49],
|
|
11810
|
+
bgMagenta: [45, 49],
|
|
11811
|
+
bgCyan: [46, 49],
|
|
11812
|
+
bgWhite: [47, 49],
|
|
11813
|
+
bgBlackBright: [100, 49],
|
|
11814
|
+
bgGray: [100, 49],
|
|
11815
|
+
bgGrey: [100, 49],
|
|
11816
|
+
bgRedBright: [101, 49],
|
|
11817
|
+
bgGreenBright: [102, 49],
|
|
11818
|
+
bgYellowBright: [103, 49],
|
|
11819
|
+
bgBlueBright: [104, 49],
|
|
11820
|
+
bgMagentaBright: [105, 49],
|
|
11821
|
+
bgCyanBright: [106, 49],
|
|
11822
|
+
bgWhiteBright: [107, 49]
|
|
11823
|
+
}
|
|
11824
|
+
};
|
|
11825
|
+
var modifierNames = Object.keys(styles.modifier);
|
|
11826
|
+
var foregroundColorNames = Object.keys(styles.color);
|
|
11827
|
+
var backgroundColorNames = Object.keys(styles.bgColor);
|
|
11828
|
+
var colorNames = [...foregroundColorNames, ...backgroundColorNames];
|
|
11829
|
+
function assembleStyles() {
|
|
11830
|
+
const codes = new Map;
|
|
11831
|
+
for (const [groupName, group] of Object.entries(styles)) {
|
|
11832
|
+
for (const [styleName, style] of Object.entries(group)) {
|
|
11833
|
+
styles[styleName] = {
|
|
11834
|
+
open: `\x1B[${style[0]}m`,
|
|
11835
|
+
close: `\x1B[${style[1]}m`
|
|
11836
|
+
};
|
|
11837
|
+
group[styleName] = styles[styleName];
|
|
11838
|
+
codes.set(style[0], style[1]);
|
|
11839
|
+
}
|
|
11840
|
+
Object.defineProperty(styles, groupName, {
|
|
11841
|
+
value: group,
|
|
11842
|
+
enumerable: false
|
|
11843
|
+
});
|
|
11844
|
+
}
|
|
11845
|
+
Object.defineProperty(styles, "codes", {
|
|
11846
|
+
value: codes,
|
|
11847
|
+
enumerable: false
|
|
11848
|
+
});
|
|
11849
|
+
styles.color.close = "\x1B[39m";
|
|
11850
|
+
styles.bgColor.close = "\x1B[49m";
|
|
11851
|
+
styles.color.ansi = wrapAnsi16();
|
|
11852
|
+
styles.color.ansi256 = wrapAnsi256();
|
|
11853
|
+
styles.color.ansi16m = wrapAnsi16m();
|
|
11854
|
+
styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
|
|
11855
|
+
styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
|
|
11856
|
+
styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
|
|
11857
|
+
Object.defineProperties(styles, {
|
|
11858
|
+
rgbToAnsi256: {
|
|
11859
|
+
value(red, green, blue) {
|
|
11860
|
+
if (red === green && green === blue) {
|
|
11861
|
+
if (red < 8) {
|
|
11862
|
+
return 16;
|
|
11863
|
+
}
|
|
11864
|
+
if (red > 248) {
|
|
11865
|
+
return 231;
|
|
11866
|
+
}
|
|
11867
|
+
return Math.round((red - 8) / 247 * 24) + 232;
|
|
11868
|
+
}
|
|
11869
|
+
return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
|
|
11870
|
+
},
|
|
11871
|
+
enumerable: false
|
|
11872
|
+
},
|
|
11873
|
+
hexToRgb: {
|
|
11874
|
+
value(hex) {
|
|
11875
|
+
const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
|
|
11876
|
+
if (!matches) {
|
|
11877
|
+
return [0, 0, 0];
|
|
11878
|
+
}
|
|
11879
|
+
let [colorString] = matches;
|
|
11880
|
+
if (colorString.length === 3) {
|
|
11881
|
+
colorString = [...colorString].map((character) => character + character).join("");
|
|
11882
|
+
}
|
|
11883
|
+
const integer = Number.parseInt(colorString, 16);
|
|
11884
|
+
return [
|
|
11885
|
+
integer >> 16 & 255,
|
|
11886
|
+
integer >> 8 & 255,
|
|
11887
|
+
integer & 255
|
|
11888
|
+
];
|
|
11889
|
+
},
|
|
11890
|
+
enumerable: false
|
|
11891
|
+
},
|
|
11892
|
+
hexToAnsi256: {
|
|
11893
|
+
value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
|
|
11894
|
+
enumerable: false
|
|
11895
|
+
},
|
|
11896
|
+
ansi256ToAnsi: {
|
|
11897
|
+
value(code) {
|
|
11898
|
+
if (code < 8) {
|
|
11899
|
+
return 30 + code;
|
|
11900
|
+
}
|
|
11901
|
+
if (code < 16) {
|
|
11902
|
+
return 90 + (code - 8);
|
|
11903
|
+
}
|
|
11904
|
+
let red;
|
|
11905
|
+
let green;
|
|
11906
|
+
let blue;
|
|
11907
|
+
if (code >= 232) {
|
|
11908
|
+
red = ((code - 232) * 10 + 8) / 255;
|
|
11909
|
+
green = red;
|
|
11910
|
+
blue = red;
|
|
11911
|
+
} else {
|
|
11912
|
+
code -= 16;
|
|
11913
|
+
const remainder = code % 36;
|
|
11914
|
+
red = Math.floor(code / 36) / 5;
|
|
11915
|
+
green = Math.floor(remainder / 6) / 5;
|
|
11916
|
+
blue = remainder % 6 / 5;
|
|
11917
|
+
}
|
|
11918
|
+
const value = Math.max(red, green, blue) * 2;
|
|
11919
|
+
if (value === 0) {
|
|
11920
|
+
return 30;
|
|
11921
|
+
}
|
|
11922
|
+
let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
|
|
11923
|
+
if (value === 2) {
|
|
11924
|
+
result += 60;
|
|
11925
|
+
}
|
|
11926
|
+
return result;
|
|
11927
|
+
},
|
|
11928
|
+
enumerable: false
|
|
11929
|
+
},
|
|
11930
|
+
rgbToAnsi: {
|
|
11931
|
+
value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
|
|
11932
|
+
enumerable: false
|
|
11933
|
+
},
|
|
11934
|
+
hexToAnsi: {
|
|
11935
|
+
value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
|
|
11936
|
+
enumerable: false
|
|
11937
|
+
}
|
|
11938
|
+
});
|
|
11939
|
+
return styles;
|
|
11940
|
+
}
|
|
11941
|
+
var ansiStyles = assembleStyles();
|
|
11942
|
+
var ansi_styles_default = ansiStyles;
|
|
11943
|
+
|
|
11944
|
+
// ../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js
|
|
11945
|
+
import process2 from "process";
|
|
11946
|
+
import os from "os";
|
|
11947
|
+
import tty from "tty";
|
|
11948
|
+
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) {
|
|
11949
|
+
const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
|
|
11950
|
+
const position = argv.indexOf(prefix + flag);
|
|
11951
|
+
const terminatorPosition = argv.indexOf("--");
|
|
11952
|
+
return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
|
|
11953
|
+
}
|
|
11954
|
+
var { env } = process2;
|
|
11955
|
+
var flagForceColor;
|
|
11956
|
+
if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
|
|
11957
|
+
flagForceColor = 0;
|
|
11958
|
+
} else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
|
|
11959
|
+
flagForceColor = 1;
|
|
11960
|
+
}
|
|
11961
|
+
function envForceColor() {
|
|
11962
|
+
if ("FORCE_COLOR" in env) {
|
|
11963
|
+
if (env.FORCE_COLOR === "true") {
|
|
11964
|
+
return 1;
|
|
11965
|
+
}
|
|
11966
|
+
if (env.FORCE_COLOR === "false") {
|
|
11967
|
+
return 0;
|
|
11968
|
+
}
|
|
11969
|
+
return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
|
|
11970
|
+
}
|
|
11971
|
+
}
|
|
11972
|
+
function translateLevel(level) {
|
|
11973
|
+
if (level === 0) {
|
|
11974
|
+
return false;
|
|
11975
|
+
}
|
|
11976
|
+
return {
|
|
11977
|
+
level,
|
|
11978
|
+
hasBasic: true,
|
|
11979
|
+
has256: level >= 2,
|
|
11980
|
+
has16m: level >= 3
|
|
11981
|
+
};
|
|
11982
|
+
}
|
|
11983
|
+
function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
|
|
11984
|
+
const noFlagForceColor = envForceColor();
|
|
11985
|
+
if (noFlagForceColor !== undefined) {
|
|
11986
|
+
flagForceColor = noFlagForceColor;
|
|
11987
|
+
}
|
|
11988
|
+
const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
|
|
11989
|
+
if (forceColor === 0) {
|
|
11990
|
+
return 0;
|
|
11991
|
+
}
|
|
11992
|
+
if (sniffFlags) {
|
|
11993
|
+
if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
|
|
11994
|
+
return 3;
|
|
11995
|
+
}
|
|
11996
|
+
if (hasFlag("color=256")) {
|
|
11997
|
+
return 2;
|
|
11998
|
+
}
|
|
11999
|
+
}
|
|
12000
|
+
if ("TF_BUILD" in env && "AGENT_NAME" in env) {
|
|
12001
|
+
return 1;
|
|
12002
|
+
}
|
|
12003
|
+
if (haveStream && !streamIsTTY && forceColor === undefined) {
|
|
12004
|
+
return 0;
|
|
12005
|
+
}
|
|
12006
|
+
const min = forceColor || 0;
|
|
12007
|
+
if (env.TERM === "dumb") {
|
|
12008
|
+
return min;
|
|
12009
|
+
}
|
|
12010
|
+
if (process2.platform === "win32") {
|
|
12011
|
+
const osRelease = os.release().split(".");
|
|
12012
|
+
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
|
|
12013
|
+
return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
12014
|
+
}
|
|
12015
|
+
return 1;
|
|
12016
|
+
}
|
|
12017
|
+
if ("CI" in env) {
|
|
12018
|
+
if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => (key in env))) {
|
|
12019
|
+
return 3;
|
|
12020
|
+
}
|
|
12021
|
+
if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
|
|
12022
|
+
return 1;
|
|
12023
|
+
}
|
|
12024
|
+
return min;
|
|
12025
|
+
}
|
|
12026
|
+
if ("TEAMCITY_VERSION" in env) {
|
|
12027
|
+
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
|
|
12028
|
+
}
|
|
12029
|
+
if (env.COLORTERM === "truecolor") {
|
|
12030
|
+
return 3;
|
|
12031
|
+
}
|
|
12032
|
+
if (env.TERM === "xterm-kitty") {
|
|
12033
|
+
return 3;
|
|
12034
|
+
}
|
|
12035
|
+
if (env.TERM === "xterm-ghostty") {
|
|
12036
|
+
return 3;
|
|
12037
|
+
}
|
|
12038
|
+
if (env.TERM === "wezterm") {
|
|
12039
|
+
return 3;
|
|
12040
|
+
}
|
|
12041
|
+
if ("TERM_PROGRAM" in env) {
|
|
12042
|
+
const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
|
|
12043
|
+
switch (env.TERM_PROGRAM) {
|
|
12044
|
+
case "iTerm.app": {
|
|
12045
|
+
return version >= 3 ? 3 : 2;
|
|
12046
|
+
}
|
|
12047
|
+
case "Apple_Terminal": {
|
|
12048
|
+
return 2;
|
|
12049
|
+
}
|
|
12050
|
+
}
|
|
12051
|
+
}
|
|
12052
|
+
if (/-256(color)?$/i.test(env.TERM)) {
|
|
12053
|
+
return 2;
|
|
12054
|
+
}
|
|
12055
|
+
if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
|
|
12056
|
+
return 1;
|
|
12057
|
+
}
|
|
12058
|
+
if ("COLORTERM" in env) {
|
|
12059
|
+
return 1;
|
|
12060
|
+
}
|
|
12061
|
+
return min;
|
|
12062
|
+
}
|
|
12063
|
+
function createSupportsColor(stream, options = {}) {
|
|
12064
|
+
const level = _supportsColor(stream, {
|
|
12065
|
+
streamIsTTY: stream && stream.isTTY,
|
|
12066
|
+
...options
|
|
12067
|
+
});
|
|
12068
|
+
return translateLevel(level);
|
|
12069
|
+
}
|
|
12070
|
+
var supportsColor = {
|
|
12071
|
+
stdout: createSupportsColor({ isTTY: tty.isatty(1) }),
|
|
12072
|
+
stderr: createSupportsColor({ isTTY: tty.isatty(2) })
|
|
12073
|
+
};
|
|
12074
|
+
var supports_color_default = supportsColor;
|
|
12075
|
+
|
|
12076
|
+
// ../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/utilities.js
|
|
12077
|
+
function stringReplaceAll(string, substring, replacer) {
|
|
12078
|
+
let index = string.indexOf(substring);
|
|
12079
|
+
if (index === -1) {
|
|
12080
|
+
return string;
|
|
12081
|
+
}
|
|
12082
|
+
const substringLength = substring.length;
|
|
12083
|
+
let endIndex = 0;
|
|
12084
|
+
let returnValue = "";
|
|
12085
|
+
do {
|
|
12086
|
+
returnValue += string.slice(endIndex, index) + substring + replacer;
|
|
12087
|
+
endIndex = index + substringLength;
|
|
12088
|
+
index = string.indexOf(substring, endIndex);
|
|
12089
|
+
} while (index !== -1);
|
|
12090
|
+
returnValue += string.slice(endIndex);
|
|
12091
|
+
return returnValue;
|
|
12092
|
+
}
|
|
12093
|
+
function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
|
|
12094
|
+
let endIndex = 0;
|
|
12095
|
+
let returnValue = "";
|
|
12096
|
+
do {
|
|
12097
|
+
const gotCR = string[index - 1] === "\r";
|
|
12098
|
+
returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? `\r
|
|
12099
|
+
` : `
|
|
12100
|
+
`) + postfix;
|
|
12101
|
+
endIndex = index + 1;
|
|
12102
|
+
index = string.indexOf(`
|
|
12103
|
+
`, endIndex);
|
|
12104
|
+
} while (index !== -1);
|
|
12105
|
+
returnValue += string.slice(endIndex);
|
|
12106
|
+
return returnValue;
|
|
12107
|
+
}
|
|
12108
|
+
|
|
12109
|
+
// ../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/index.js
|
|
12110
|
+
var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
|
|
12111
|
+
var GENERATOR = Symbol("GENERATOR");
|
|
12112
|
+
var STYLER = Symbol("STYLER");
|
|
12113
|
+
var IS_EMPTY = Symbol("IS_EMPTY");
|
|
12114
|
+
var levelMapping = [
|
|
12115
|
+
"ansi",
|
|
12116
|
+
"ansi",
|
|
12117
|
+
"ansi256",
|
|
12118
|
+
"ansi16m"
|
|
12119
|
+
];
|
|
12120
|
+
var styles2 = Object.create(null);
|
|
12121
|
+
var applyOptions = (object, options = {}) => {
|
|
12122
|
+
if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
|
|
12123
|
+
throw new Error("The `level` option should be an integer from 0 to 3");
|
|
12124
|
+
}
|
|
12125
|
+
const colorLevel = stdoutColor ? stdoutColor.level : 0;
|
|
12126
|
+
object.level = options.level === undefined ? colorLevel : options.level;
|
|
12127
|
+
};
|
|
12128
|
+
var chalkFactory = (options) => {
|
|
12129
|
+
const chalk = (...strings) => strings.join(" ");
|
|
12130
|
+
applyOptions(chalk, options);
|
|
12131
|
+
Object.setPrototypeOf(chalk, createChalk.prototype);
|
|
12132
|
+
return chalk;
|
|
12133
|
+
};
|
|
12134
|
+
function createChalk(options) {
|
|
12135
|
+
return chalkFactory(options);
|
|
12136
|
+
}
|
|
12137
|
+
Object.setPrototypeOf(createChalk.prototype, Function.prototype);
|
|
12138
|
+
for (const [styleName, style] of Object.entries(ansi_styles_default)) {
|
|
12139
|
+
styles2[styleName] = {
|
|
12140
|
+
get() {
|
|
12141
|
+
const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
|
|
12142
|
+
Object.defineProperty(this, styleName, { value: builder });
|
|
12143
|
+
return builder;
|
|
12144
|
+
}
|
|
12145
|
+
};
|
|
12146
|
+
}
|
|
12147
|
+
styles2.visible = {
|
|
12148
|
+
get() {
|
|
12149
|
+
const builder = createBuilder(this, this[STYLER], true);
|
|
12150
|
+
Object.defineProperty(this, "visible", { value: builder });
|
|
12151
|
+
return builder;
|
|
12152
|
+
}
|
|
12153
|
+
};
|
|
12154
|
+
var getModelAnsi = (model, level, type, ...arguments_) => {
|
|
12155
|
+
if (model === "rgb") {
|
|
12156
|
+
if (level === "ansi16m") {
|
|
12157
|
+
return ansi_styles_default[type].ansi16m(...arguments_);
|
|
12158
|
+
}
|
|
12159
|
+
if (level === "ansi256") {
|
|
12160
|
+
return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
|
|
12161
|
+
}
|
|
12162
|
+
return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
|
|
12163
|
+
}
|
|
12164
|
+
if (model === "hex") {
|
|
12165
|
+
return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
|
|
12166
|
+
}
|
|
12167
|
+
return ansi_styles_default[type][model](...arguments_);
|
|
12168
|
+
};
|
|
12169
|
+
var usedModels = ["rgb", "hex", "ansi256"];
|
|
12170
|
+
for (const model of usedModels) {
|
|
12171
|
+
styles2[model] = {
|
|
12172
|
+
get() {
|
|
12173
|
+
const { level } = this;
|
|
12174
|
+
return function(...arguments_) {
|
|
12175
|
+
const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
|
|
12176
|
+
return createBuilder(this, styler, this[IS_EMPTY]);
|
|
12177
|
+
};
|
|
12178
|
+
}
|
|
12179
|
+
};
|
|
12180
|
+
const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
|
|
12181
|
+
styles2[bgModel] = {
|
|
12182
|
+
get() {
|
|
12183
|
+
const { level } = this;
|
|
12184
|
+
return function(...arguments_) {
|
|
12185
|
+
const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
|
|
12186
|
+
return createBuilder(this, styler, this[IS_EMPTY]);
|
|
12187
|
+
};
|
|
12188
|
+
}
|
|
12189
|
+
};
|
|
12190
|
+
}
|
|
12191
|
+
var proto = Object.defineProperties(() => {}, {
|
|
12192
|
+
...styles2,
|
|
12193
|
+
level: {
|
|
12194
|
+
enumerable: true,
|
|
12195
|
+
get() {
|
|
12196
|
+
return this[GENERATOR].level;
|
|
12197
|
+
},
|
|
12198
|
+
set(level) {
|
|
12199
|
+
this[GENERATOR].level = level;
|
|
12200
|
+
}
|
|
12201
|
+
}
|
|
12202
|
+
});
|
|
12203
|
+
var createStyler = (open, close, parent) => {
|
|
12204
|
+
let openAll;
|
|
12205
|
+
let closeAll;
|
|
12206
|
+
if (parent === undefined) {
|
|
12207
|
+
openAll = open;
|
|
12208
|
+
closeAll = close;
|
|
12209
|
+
} else {
|
|
12210
|
+
openAll = parent.openAll + open;
|
|
12211
|
+
closeAll = close + parent.closeAll;
|
|
12212
|
+
}
|
|
12213
|
+
return {
|
|
12214
|
+
open,
|
|
12215
|
+
close,
|
|
12216
|
+
openAll,
|
|
12217
|
+
closeAll,
|
|
12218
|
+
parent
|
|
12219
|
+
};
|
|
12220
|
+
};
|
|
12221
|
+
var createBuilder = (self, _styler, _isEmpty) => {
|
|
12222
|
+
const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
|
|
12223
|
+
Object.setPrototypeOf(builder, proto);
|
|
12224
|
+
builder[GENERATOR] = self;
|
|
12225
|
+
builder[STYLER] = _styler;
|
|
12226
|
+
builder[IS_EMPTY] = _isEmpty;
|
|
12227
|
+
return builder;
|
|
12228
|
+
};
|
|
12229
|
+
var applyStyle = (self, string) => {
|
|
12230
|
+
if (self.level <= 0 || !string) {
|
|
12231
|
+
return self[IS_EMPTY] ? "" : string;
|
|
12232
|
+
}
|
|
12233
|
+
let styler = self[STYLER];
|
|
12234
|
+
if (styler === undefined) {
|
|
12235
|
+
return string;
|
|
12236
|
+
}
|
|
12237
|
+
const { openAll, closeAll } = styler;
|
|
12238
|
+
if (string.includes("\x1B")) {
|
|
12239
|
+
while (styler !== undefined) {
|
|
12240
|
+
string = stringReplaceAll(string, styler.close, styler.open);
|
|
12241
|
+
styler = styler.parent;
|
|
12242
|
+
}
|
|
12243
|
+
}
|
|
12244
|
+
const lfIndex = string.indexOf(`
|
|
12245
|
+
`);
|
|
12246
|
+
if (lfIndex !== -1) {
|
|
12247
|
+
string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
|
|
12248
|
+
}
|
|
12249
|
+
return openAll + string + closeAll;
|
|
12250
|
+
};
|
|
12251
|
+
Object.defineProperties(createChalk.prototype, styles2);
|
|
12252
|
+
var chalk = createChalk();
|
|
12253
|
+
var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
|
|
12254
|
+
var source_default = chalk;
|
|
12255
|
+
|
|
12256
|
+
// ../../node_modules/.bun/widest-line@5.0.0/node_modules/widest-line/index.js
|
|
12257
|
+
function widestLine(string) {
|
|
12258
|
+
let lineWidth = 0;
|
|
12259
|
+
for (const line of string.split(`
|
|
12260
|
+
`)) {
|
|
12261
|
+
lineWidth = Math.max(lineWidth, stringWidth(line));
|
|
12262
|
+
}
|
|
12263
|
+
return lineWidth;
|
|
12264
|
+
}
|
|
12265
|
+
|
|
12266
|
+
// ../../node_modules/.bun/boxen@8.0.1/node_modules/boxen/index.js
|
|
12267
|
+
var import_cli_boxes = __toESM(require_cli_boxes(), 1);
|
|
12268
|
+
|
|
12269
|
+
// ../../node_modules/.bun/camelcase@8.0.0/node_modules/camelcase/index.js
|
|
12270
|
+
var UPPERCASE = /[\p{Lu}]/u;
|
|
12271
|
+
var LOWERCASE = /[\p{Ll}]/u;
|
|
12272
|
+
var LEADING_CAPITAL = /^[\p{Lu}](?![\p{Lu}])/gu;
|
|
12273
|
+
var IDENTIFIER = /([\p{Alpha}\p{N}_]|$)/u;
|
|
12274
|
+
var SEPARATORS = /[_.\- ]+/;
|
|
12275
|
+
var LEADING_SEPARATORS = new RegExp("^" + SEPARATORS.source);
|
|
12276
|
+
var SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, "gu");
|
|
12277
|
+
var NUMBERS_AND_IDENTIFIER = new RegExp("\\d+" + IDENTIFIER.source, "gu");
|
|
12278
|
+
var preserveCamelCase = (string, toLowerCase, toUpperCase, preserveConsecutiveUppercase) => {
|
|
12279
|
+
let isLastCharLower = false;
|
|
12280
|
+
let isLastCharUpper = false;
|
|
12281
|
+
let isLastLastCharUpper = false;
|
|
12282
|
+
let isLastLastCharPreserved = false;
|
|
12283
|
+
for (let index = 0;index < string.length; index++) {
|
|
12284
|
+
const character = string[index];
|
|
12285
|
+
isLastLastCharPreserved = index > 2 ? string[index - 3] === "-" : true;
|
|
12286
|
+
if (isLastCharLower && UPPERCASE.test(character)) {
|
|
12287
|
+
string = string.slice(0, index) + "-" + string.slice(index);
|
|
12288
|
+
isLastCharLower = false;
|
|
12289
|
+
isLastLastCharUpper = isLastCharUpper;
|
|
12290
|
+
isLastCharUpper = true;
|
|
12291
|
+
index++;
|
|
12292
|
+
} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character) && (!isLastLastCharPreserved || preserveConsecutiveUppercase)) {
|
|
12293
|
+
string = string.slice(0, index - 1) + "-" + string.slice(index - 1);
|
|
12294
|
+
isLastLastCharUpper = isLastCharUpper;
|
|
12295
|
+
isLastCharUpper = false;
|
|
12296
|
+
isLastCharLower = true;
|
|
12297
|
+
} else {
|
|
12298
|
+
isLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;
|
|
12299
|
+
isLastLastCharUpper = isLastCharUpper;
|
|
12300
|
+
isLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;
|
|
12301
|
+
}
|
|
12302
|
+
}
|
|
12303
|
+
return string;
|
|
12304
|
+
};
|
|
12305
|
+
var preserveConsecutiveUppercase = (input, toLowerCase) => {
|
|
12306
|
+
LEADING_CAPITAL.lastIndex = 0;
|
|
12307
|
+
return input.replaceAll(LEADING_CAPITAL, (match) => toLowerCase(match));
|
|
12308
|
+
};
|
|
12309
|
+
var postProcess = (input, toUpperCase) => {
|
|
12310
|
+
SEPARATORS_AND_IDENTIFIER.lastIndex = 0;
|
|
12311
|
+
NUMBERS_AND_IDENTIFIER.lastIndex = 0;
|
|
12312
|
+
return input.replaceAll(NUMBERS_AND_IDENTIFIER, (match, pattern, offset) => ["_", "-"].includes(input.charAt(offset + match.length)) ? match : toUpperCase(match)).replaceAll(SEPARATORS_AND_IDENTIFIER, (_3, identifier) => toUpperCase(identifier));
|
|
12313
|
+
};
|
|
12314
|
+
function camelCase(input, options) {
|
|
12315
|
+
if (!(typeof input === "string" || Array.isArray(input))) {
|
|
12316
|
+
throw new TypeError("Expected the input to be `string | string[]`");
|
|
12317
|
+
}
|
|
12318
|
+
options = {
|
|
12319
|
+
pascalCase: false,
|
|
12320
|
+
preserveConsecutiveUppercase: false,
|
|
12321
|
+
...options
|
|
12322
|
+
};
|
|
12323
|
+
if (Array.isArray(input)) {
|
|
12324
|
+
input = input.map((x2) => x2.trim()).filter((x2) => x2.length).join("-");
|
|
12325
|
+
} else {
|
|
12326
|
+
input = input.trim();
|
|
12327
|
+
}
|
|
12328
|
+
if (input.length === 0) {
|
|
12329
|
+
return "";
|
|
12330
|
+
}
|
|
12331
|
+
const toLowerCase = options.locale === false ? (string) => string.toLowerCase() : (string) => string.toLocaleLowerCase(options.locale);
|
|
12332
|
+
const toUpperCase = options.locale === false ? (string) => string.toUpperCase() : (string) => string.toLocaleUpperCase(options.locale);
|
|
12333
|
+
if (input.length === 1) {
|
|
12334
|
+
if (SEPARATORS.test(input)) {
|
|
12335
|
+
return "";
|
|
12336
|
+
}
|
|
12337
|
+
return options.pascalCase ? toUpperCase(input) : toLowerCase(input);
|
|
12338
|
+
}
|
|
12339
|
+
const hasUpperCase = input !== toLowerCase(input);
|
|
12340
|
+
if (hasUpperCase) {
|
|
12341
|
+
input = preserveCamelCase(input, toLowerCase, toUpperCase, options.preserveConsecutiveUppercase);
|
|
12342
|
+
}
|
|
12343
|
+
input = input.replace(LEADING_SEPARATORS, "");
|
|
12344
|
+
input = options.preserveConsecutiveUppercase ? preserveConsecutiveUppercase(input, toLowerCase) : toLowerCase(input);
|
|
12345
|
+
if (options.pascalCase) {
|
|
12346
|
+
input = toUpperCase(input.charAt(0)) + input.slice(1);
|
|
12347
|
+
}
|
|
12348
|
+
return postProcess(input, toUpperCase);
|
|
12349
|
+
}
|
|
12350
|
+
|
|
12351
|
+
// ../../node_modules/.bun/boxen@8.0.1/node_modules/boxen/index.js
|
|
12352
|
+
var import_ansi_align = __toESM(require_ansi_align(), 1);
|
|
12353
|
+
|
|
12354
|
+
// ../../node_modules/.bun/ansi-styles@6.2.3/node_modules/ansi-styles/index.js
|
|
12355
|
+
var ANSI_BACKGROUND_OFFSET2 = 10;
|
|
12356
|
+
var wrapAnsi162 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
|
|
12357
|
+
var wrapAnsi2562 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
|
|
12358
|
+
var wrapAnsi16m2 = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
|
|
12359
|
+
var styles3 = {
|
|
12360
|
+
modifier: {
|
|
12361
|
+
reset: [0, 0],
|
|
12362
|
+
bold: [1, 22],
|
|
12363
|
+
dim: [2, 22],
|
|
12364
|
+
italic: [3, 23],
|
|
12365
|
+
underline: [4, 24],
|
|
12366
|
+
overline: [53, 55],
|
|
12367
|
+
inverse: [7, 27],
|
|
12368
|
+
hidden: [8, 28],
|
|
12369
|
+
strikethrough: [9, 29]
|
|
12370
|
+
},
|
|
12371
|
+
color: {
|
|
12372
|
+
black: [30, 39],
|
|
12373
|
+
red: [31, 39],
|
|
12374
|
+
green: [32, 39],
|
|
12375
|
+
yellow: [33, 39],
|
|
12376
|
+
blue: [34, 39],
|
|
12377
|
+
magenta: [35, 39],
|
|
12378
|
+
cyan: [36, 39],
|
|
12379
|
+
white: [37, 39],
|
|
12380
|
+
blackBright: [90, 39],
|
|
12381
|
+
gray: [90, 39],
|
|
12382
|
+
grey: [90, 39],
|
|
12383
|
+
redBright: [91, 39],
|
|
12384
|
+
greenBright: [92, 39],
|
|
12385
|
+
yellowBright: [93, 39],
|
|
12386
|
+
blueBright: [94, 39],
|
|
12387
|
+
magentaBright: [95, 39],
|
|
12388
|
+
cyanBright: [96, 39],
|
|
12389
|
+
whiteBright: [97, 39]
|
|
12390
|
+
},
|
|
12391
|
+
bgColor: {
|
|
12392
|
+
bgBlack: [40, 49],
|
|
12393
|
+
bgRed: [41, 49],
|
|
12394
|
+
bgGreen: [42, 49],
|
|
12395
|
+
bgYellow: [43, 49],
|
|
12396
|
+
bgBlue: [44, 49],
|
|
12397
|
+
bgMagenta: [45, 49],
|
|
12398
|
+
bgCyan: [46, 49],
|
|
12399
|
+
bgWhite: [47, 49],
|
|
12400
|
+
bgBlackBright: [100, 49],
|
|
12401
|
+
bgGray: [100, 49],
|
|
12402
|
+
bgGrey: [100, 49],
|
|
12403
|
+
bgRedBright: [101, 49],
|
|
12404
|
+
bgGreenBright: [102, 49],
|
|
12405
|
+
bgYellowBright: [103, 49],
|
|
12406
|
+
bgBlueBright: [104, 49],
|
|
12407
|
+
bgMagentaBright: [105, 49],
|
|
12408
|
+
bgCyanBright: [106, 49],
|
|
12409
|
+
bgWhiteBright: [107, 49]
|
|
12410
|
+
}
|
|
12411
|
+
};
|
|
12412
|
+
var modifierNames2 = Object.keys(styles3.modifier);
|
|
12413
|
+
var foregroundColorNames2 = Object.keys(styles3.color);
|
|
12414
|
+
var backgroundColorNames2 = Object.keys(styles3.bgColor);
|
|
12415
|
+
var colorNames2 = [...foregroundColorNames2, ...backgroundColorNames2];
|
|
12416
|
+
function assembleStyles2() {
|
|
12417
|
+
const codes = new Map;
|
|
12418
|
+
for (const [groupName, group] of Object.entries(styles3)) {
|
|
12419
|
+
for (const [styleName, style] of Object.entries(group)) {
|
|
12420
|
+
styles3[styleName] = {
|
|
12421
|
+
open: `\x1B[${style[0]}m`,
|
|
12422
|
+
close: `\x1B[${style[1]}m`
|
|
12423
|
+
};
|
|
12424
|
+
group[styleName] = styles3[styleName];
|
|
12425
|
+
codes.set(style[0], style[1]);
|
|
12426
|
+
}
|
|
12427
|
+
Object.defineProperty(styles3, groupName, {
|
|
12428
|
+
value: group,
|
|
12429
|
+
enumerable: false
|
|
12430
|
+
});
|
|
12431
|
+
}
|
|
12432
|
+
Object.defineProperty(styles3, "codes", {
|
|
12433
|
+
value: codes,
|
|
12434
|
+
enumerable: false
|
|
12435
|
+
});
|
|
12436
|
+
styles3.color.close = "\x1B[39m";
|
|
12437
|
+
styles3.bgColor.close = "\x1B[49m";
|
|
12438
|
+
styles3.color.ansi = wrapAnsi162();
|
|
12439
|
+
styles3.color.ansi256 = wrapAnsi2562();
|
|
12440
|
+
styles3.color.ansi16m = wrapAnsi16m2();
|
|
12441
|
+
styles3.bgColor.ansi = wrapAnsi162(ANSI_BACKGROUND_OFFSET2);
|
|
12442
|
+
styles3.bgColor.ansi256 = wrapAnsi2562(ANSI_BACKGROUND_OFFSET2);
|
|
12443
|
+
styles3.bgColor.ansi16m = wrapAnsi16m2(ANSI_BACKGROUND_OFFSET2);
|
|
12444
|
+
Object.defineProperties(styles3, {
|
|
12445
|
+
rgbToAnsi256: {
|
|
12446
|
+
value(red, green, blue) {
|
|
12447
|
+
if (red === green && green === blue) {
|
|
12448
|
+
if (red < 8) {
|
|
12449
|
+
return 16;
|
|
12450
|
+
}
|
|
12451
|
+
if (red > 248) {
|
|
12452
|
+
return 231;
|
|
12453
|
+
}
|
|
12454
|
+
return Math.round((red - 8) / 247 * 24) + 232;
|
|
12455
|
+
}
|
|
12456
|
+
return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
|
|
12457
|
+
},
|
|
12458
|
+
enumerable: false
|
|
12459
|
+
},
|
|
12460
|
+
hexToRgb: {
|
|
12461
|
+
value(hex) {
|
|
12462
|
+
const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
|
|
12463
|
+
if (!matches) {
|
|
12464
|
+
return [0, 0, 0];
|
|
12465
|
+
}
|
|
12466
|
+
let [colorString] = matches;
|
|
12467
|
+
if (colorString.length === 3) {
|
|
12468
|
+
colorString = [...colorString].map((character) => character + character).join("");
|
|
12469
|
+
}
|
|
12470
|
+
const integer = Number.parseInt(colorString, 16);
|
|
12471
|
+
return [
|
|
12472
|
+
integer >> 16 & 255,
|
|
12473
|
+
integer >> 8 & 255,
|
|
12474
|
+
integer & 255
|
|
12475
|
+
];
|
|
12476
|
+
},
|
|
12477
|
+
enumerable: false
|
|
12478
|
+
},
|
|
12479
|
+
hexToAnsi256: {
|
|
12480
|
+
value: (hex) => styles3.rgbToAnsi256(...styles3.hexToRgb(hex)),
|
|
12481
|
+
enumerable: false
|
|
12482
|
+
},
|
|
12483
|
+
ansi256ToAnsi: {
|
|
12484
|
+
value(code) {
|
|
12485
|
+
if (code < 8) {
|
|
12486
|
+
return 30 + code;
|
|
12487
|
+
}
|
|
12488
|
+
if (code < 16) {
|
|
12489
|
+
return 90 + (code - 8);
|
|
12490
|
+
}
|
|
12491
|
+
let red;
|
|
12492
|
+
let green;
|
|
12493
|
+
let blue;
|
|
12494
|
+
if (code >= 232) {
|
|
12495
|
+
red = ((code - 232) * 10 + 8) / 255;
|
|
12496
|
+
green = red;
|
|
12497
|
+
blue = red;
|
|
12498
|
+
} else {
|
|
12499
|
+
code -= 16;
|
|
12500
|
+
const remainder = code % 36;
|
|
12501
|
+
red = Math.floor(code / 36) / 5;
|
|
12502
|
+
green = Math.floor(remainder / 6) / 5;
|
|
12503
|
+
blue = remainder % 6 / 5;
|
|
12504
|
+
}
|
|
12505
|
+
const value = Math.max(red, green, blue) * 2;
|
|
12506
|
+
if (value === 0) {
|
|
12507
|
+
return 30;
|
|
12508
|
+
}
|
|
12509
|
+
let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
|
|
12510
|
+
if (value === 2) {
|
|
12511
|
+
result += 60;
|
|
12512
|
+
}
|
|
12513
|
+
return result;
|
|
12514
|
+
},
|
|
12515
|
+
enumerable: false
|
|
12516
|
+
},
|
|
12517
|
+
rgbToAnsi: {
|
|
12518
|
+
value: (red, green, blue) => styles3.ansi256ToAnsi(styles3.rgbToAnsi256(red, green, blue)),
|
|
12519
|
+
enumerable: false
|
|
12520
|
+
},
|
|
12521
|
+
hexToAnsi: {
|
|
12522
|
+
value: (hex) => styles3.ansi256ToAnsi(styles3.hexToAnsi256(hex)),
|
|
12523
|
+
enumerable: false
|
|
12524
|
+
}
|
|
12525
|
+
});
|
|
12526
|
+
return styles3;
|
|
12527
|
+
}
|
|
12528
|
+
var ansiStyles2 = assembleStyles2();
|
|
12529
|
+
var ansi_styles_default2 = ansiStyles2;
|
|
12530
|
+
|
|
12531
|
+
// ../../node_modules/.bun/wrap-ansi@9.0.2/node_modules/wrap-ansi/index.js
|
|
12532
|
+
var ESCAPES = new Set([
|
|
12533
|
+
"\x1B",
|
|
12534
|
+
"\x9B"
|
|
12535
|
+
]);
|
|
12536
|
+
var END_CODE = 39;
|
|
12537
|
+
var ANSI_ESCAPE_BELL = "\x07";
|
|
12538
|
+
var ANSI_CSI = "[";
|
|
12539
|
+
var ANSI_OSC = "]";
|
|
12540
|
+
var ANSI_SGR_TERMINATOR = "m";
|
|
12541
|
+
var ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;
|
|
12542
|
+
var wrapAnsiCode = (code) => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;
|
|
12543
|
+
var wrapAnsiHyperlink = (url) => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`;
|
|
12544
|
+
var wordLengths = (string) => string.split(" ").map((character) => stringWidth(character));
|
|
12545
|
+
var wrapWord = (rows, word, columns) => {
|
|
12546
|
+
const characters = [...word];
|
|
12547
|
+
let isInsideEscape = false;
|
|
12548
|
+
let isInsideLinkEscape = false;
|
|
12549
|
+
let visible = stringWidth(stripAnsi(rows.at(-1)));
|
|
12550
|
+
for (const [index, character] of characters.entries()) {
|
|
12551
|
+
const characterLength = stringWidth(character);
|
|
12552
|
+
if (visible + characterLength <= columns) {
|
|
12553
|
+
rows[rows.length - 1] += character;
|
|
12554
|
+
} else {
|
|
12555
|
+
rows.push(character);
|
|
12556
|
+
visible = 0;
|
|
12557
|
+
}
|
|
12558
|
+
if (ESCAPES.has(character)) {
|
|
12559
|
+
isInsideEscape = true;
|
|
12560
|
+
const ansiEscapeLinkCandidate = characters.slice(index + 1, index + 1 + ANSI_ESCAPE_LINK.length).join("");
|
|
12561
|
+
isInsideLinkEscape = ansiEscapeLinkCandidate === ANSI_ESCAPE_LINK;
|
|
12562
|
+
}
|
|
12563
|
+
if (isInsideEscape) {
|
|
12564
|
+
if (isInsideLinkEscape) {
|
|
12565
|
+
if (character === ANSI_ESCAPE_BELL) {
|
|
12566
|
+
isInsideEscape = false;
|
|
12567
|
+
isInsideLinkEscape = false;
|
|
12568
|
+
}
|
|
12569
|
+
} else if (character === ANSI_SGR_TERMINATOR) {
|
|
12570
|
+
isInsideEscape = false;
|
|
12571
|
+
}
|
|
12572
|
+
continue;
|
|
12573
|
+
}
|
|
12574
|
+
visible += characterLength;
|
|
12575
|
+
if (visible === columns && index < characters.length - 1) {
|
|
12576
|
+
rows.push("");
|
|
12577
|
+
visible = 0;
|
|
12578
|
+
}
|
|
12579
|
+
}
|
|
12580
|
+
if (!visible && rows.at(-1).length > 0 && rows.length > 1) {
|
|
12581
|
+
rows[rows.length - 2] += rows.pop();
|
|
12582
|
+
}
|
|
12583
|
+
};
|
|
12584
|
+
var stringVisibleTrimSpacesRight = (string) => {
|
|
12585
|
+
const words = string.split(" ");
|
|
12586
|
+
let last = words.length;
|
|
12587
|
+
while (last > 0) {
|
|
12588
|
+
if (stringWidth(words[last - 1]) > 0) {
|
|
12589
|
+
break;
|
|
12590
|
+
}
|
|
12591
|
+
last--;
|
|
12592
|
+
}
|
|
12593
|
+
if (last === words.length) {
|
|
12594
|
+
return string;
|
|
12595
|
+
}
|
|
12596
|
+
return words.slice(0, last).join(" ") + words.slice(last).join("");
|
|
12597
|
+
};
|
|
12598
|
+
var exec = (string, columns, options = {}) => {
|
|
12599
|
+
if (options.trim !== false && string.trim() === "") {
|
|
12600
|
+
return "";
|
|
12601
|
+
}
|
|
12602
|
+
let returnValue = "";
|
|
12603
|
+
let escapeCode;
|
|
12604
|
+
let escapeUrl;
|
|
12605
|
+
const lengths = wordLengths(string);
|
|
12606
|
+
let rows = [""];
|
|
12607
|
+
for (const [index, word] of string.split(" ").entries()) {
|
|
12608
|
+
if (options.trim !== false) {
|
|
12609
|
+
rows[rows.length - 1] = rows.at(-1).trimStart();
|
|
12610
|
+
}
|
|
12611
|
+
let rowLength = stringWidth(rows.at(-1));
|
|
12612
|
+
if (index !== 0) {
|
|
12613
|
+
if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {
|
|
12614
|
+
rows.push("");
|
|
12615
|
+
rowLength = 0;
|
|
12616
|
+
}
|
|
12617
|
+
if (rowLength > 0 || options.trim === false) {
|
|
12618
|
+
rows[rows.length - 1] += " ";
|
|
12619
|
+
rowLength++;
|
|
12620
|
+
}
|
|
12621
|
+
}
|
|
12622
|
+
if (options.hard && lengths[index] > columns) {
|
|
12623
|
+
const remainingColumns = columns - rowLength;
|
|
12624
|
+
const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);
|
|
12625
|
+
const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);
|
|
12626
|
+
if (breaksStartingNextLine < breaksStartingThisLine) {
|
|
12627
|
+
rows.push("");
|
|
12628
|
+
}
|
|
12629
|
+
wrapWord(rows, word, columns);
|
|
12630
|
+
continue;
|
|
12631
|
+
}
|
|
12632
|
+
if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {
|
|
12633
|
+
if (options.wordWrap === false && rowLength < columns) {
|
|
12634
|
+
wrapWord(rows, word, columns);
|
|
12635
|
+
continue;
|
|
12636
|
+
}
|
|
12637
|
+
rows.push("");
|
|
12638
|
+
}
|
|
12639
|
+
if (rowLength + lengths[index] > columns && options.wordWrap === false) {
|
|
12640
|
+
wrapWord(rows, word, columns);
|
|
12641
|
+
continue;
|
|
12642
|
+
}
|
|
12643
|
+
rows[rows.length - 1] += word;
|
|
12644
|
+
}
|
|
12645
|
+
if (options.trim !== false) {
|
|
12646
|
+
rows = rows.map((row) => stringVisibleTrimSpacesRight(row));
|
|
12647
|
+
}
|
|
12648
|
+
const preString = rows.join(`
|
|
12649
|
+
`);
|
|
12650
|
+
const pre = [...preString];
|
|
12651
|
+
let preStringIndex = 0;
|
|
12652
|
+
for (const [index, character] of pre.entries()) {
|
|
12653
|
+
returnValue += character;
|
|
12654
|
+
if (ESCAPES.has(character)) {
|
|
12655
|
+
const { groups } = new RegExp(`(?:\\${ANSI_CSI}(?<code>\\d+)m|\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(preString.slice(preStringIndex)) || { groups: {} };
|
|
12656
|
+
if (groups.code !== undefined) {
|
|
12657
|
+
const code2 = Number.parseFloat(groups.code);
|
|
12658
|
+
escapeCode = code2 === END_CODE ? undefined : code2;
|
|
12659
|
+
} else if (groups.uri !== undefined) {
|
|
12660
|
+
escapeUrl = groups.uri.length === 0 ? undefined : groups.uri;
|
|
12661
|
+
}
|
|
12662
|
+
}
|
|
12663
|
+
const code = ansi_styles_default2.codes.get(Number(escapeCode));
|
|
12664
|
+
if (pre[index + 1] === `
|
|
12665
|
+
`) {
|
|
12666
|
+
if (escapeUrl) {
|
|
12667
|
+
returnValue += wrapAnsiHyperlink("");
|
|
12668
|
+
}
|
|
12669
|
+
if (escapeCode && code) {
|
|
12670
|
+
returnValue += wrapAnsiCode(code);
|
|
12671
|
+
}
|
|
12672
|
+
} else if (character === `
|
|
12673
|
+
`) {
|
|
12674
|
+
if (escapeCode && code) {
|
|
12675
|
+
returnValue += wrapAnsiCode(escapeCode);
|
|
12676
|
+
}
|
|
12677
|
+
if (escapeUrl) {
|
|
12678
|
+
returnValue += wrapAnsiHyperlink(escapeUrl);
|
|
12679
|
+
}
|
|
12680
|
+
}
|
|
12681
|
+
preStringIndex += character.length;
|
|
12682
|
+
}
|
|
12683
|
+
return returnValue;
|
|
12684
|
+
};
|
|
12685
|
+
function wrapAnsi(string, columns, options) {
|
|
12686
|
+
return String(string).normalize().replaceAll(`\r
|
|
12687
|
+
`, `
|
|
12688
|
+
`).split(`
|
|
12689
|
+
`).map((line) => exec(line, columns, options)).join(`
|
|
12690
|
+
`);
|
|
12691
|
+
}
|
|
12692
|
+
|
|
12693
|
+
// ../../node_modules/.bun/boxen@8.0.1/node_modules/boxen/index.js
|
|
12694
|
+
var import_cli_boxes2 = __toESM(require_cli_boxes(), 1);
|
|
12695
|
+
var NEWLINE = `
|
|
12696
|
+
`;
|
|
12697
|
+
var PAD = " ";
|
|
12698
|
+
var NONE = "none";
|
|
12699
|
+
var terminalColumns = () => {
|
|
12700
|
+
const { env: env2, stdout, stderr } = process3;
|
|
12701
|
+
if (stdout?.columns) {
|
|
12702
|
+
return stdout.columns;
|
|
12703
|
+
}
|
|
12704
|
+
if (stderr?.columns) {
|
|
12705
|
+
return stderr.columns;
|
|
12706
|
+
}
|
|
12707
|
+
if (env2.COLUMNS) {
|
|
12708
|
+
return Number.parseInt(env2.COLUMNS, 10);
|
|
12709
|
+
}
|
|
12710
|
+
return 80;
|
|
12711
|
+
};
|
|
12712
|
+
var getObject = (detail) => typeof detail === "number" ? {
|
|
12713
|
+
top: detail,
|
|
12714
|
+
right: detail * 3,
|
|
12715
|
+
bottom: detail,
|
|
12716
|
+
left: detail * 3
|
|
12717
|
+
} : {
|
|
12718
|
+
top: 0,
|
|
12719
|
+
right: 0,
|
|
12720
|
+
bottom: 0,
|
|
12721
|
+
left: 0,
|
|
12722
|
+
...detail
|
|
12723
|
+
};
|
|
12724
|
+
var getBorderWidth = (borderStyle) => borderStyle === NONE ? 0 : 2;
|
|
12725
|
+
var getBorderChars = (borderStyle) => {
|
|
12726
|
+
const sides = [
|
|
12727
|
+
"topLeft",
|
|
12728
|
+
"topRight",
|
|
12729
|
+
"bottomRight",
|
|
12730
|
+
"bottomLeft",
|
|
12731
|
+
"left",
|
|
12732
|
+
"right",
|
|
12733
|
+
"top",
|
|
12734
|
+
"bottom"
|
|
12735
|
+
];
|
|
12736
|
+
let characters;
|
|
12737
|
+
if (borderStyle === NONE) {
|
|
12738
|
+
borderStyle = {};
|
|
12739
|
+
for (const side of sides) {
|
|
12740
|
+
borderStyle[side] = "";
|
|
12741
|
+
}
|
|
12742
|
+
}
|
|
12743
|
+
if (typeof borderStyle === "string") {
|
|
12744
|
+
characters = import_cli_boxes.default[borderStyle];
|
|
12745
|
+
if (!characters) {
|
|
12746
|
+
throw new TypeError(`Invalid border style: ${borderStyle}`);
|
|
12747
|
+
}
|
|
12748
|
+
} else {
|
|
12749
|
+
if (typeof borderStyle?.vertical === "string") {
|
|
12750
|
+
borderStyle.left = borderStyle.vertical;
|
|
12751
|
+
borderStyle.right = borderStyle.vertical;
|
|
12752
|
+
}
|
|
12753
|
+
if (typeof borderStyle?.horizontal === "string") {
|
|
12754
|
+
borderStyle.top = borderStyle.horizontal;
|
|
12755
|
+
borderStyle.bottom = borderStyle.horizontal;
|
|
12756
|
+
}
|
|
12757
|
+
for (const side of sides) {
|
|
12758
|
+
if (borderStyle[side] === null || typeof borderStyle[side] !== "string") {
|
|
12759
|
+
throw new TypeError(`Invalid border style: ${side}`);
|
|
12760
|
+
}
|
|
12761
|
+
}
|
|
12762
|
+
characters = borderStyle;
|
|
12763
|
+
}
|
|
12764
|
+
return characters;
|
|
12765
|
+
};
|
|
12766
|
+
var makeTitle = (text, horizontal, alignment) => {
|
|
12767
|
+
let title = "";
|
|
12768
|
+
const textWidth = stringWidth(text);
|
|
12769
|
+
switch (alignment) {
|
|
12770
|
+
case "left": {
|
|
12771
|
+
title = text + horizontal.slice(textWidth);
|
|
12772
|
+
break;
|
|
12773
|
+
}
|
|
12774
|
+
case "right": {
|
|
12775
|
+
title = horizontal.slice(textWidth) + text;
|
|
12776
|
+
break;
|
|
12777
|
+
}
|
|
12778
|
+
default: {
|
|
12779
|
+
horizontal = horizontal.slice(textWidth);
|
|
12780
|
+
if (horizontal.length % 2 === 1) {
|
|
12781
|
+
horizontal = horizontal.slice(Math.floor(horizontal.length / 2));
|
|
12782
|
+
title = horizontal.slice(1) + text + horizontal;
|
|
12783
|
+
} else {
|
|
12784
|
+
horizontal = horizontal.slice(horizontal.length / 2);
|
|
12785
|
+
title = horizontal + text + horizontal;
|
|
12786
|
+
}
|
|
12787
|
+
break;
|
|
12788
|
+
}
|
|
12789
|
+
}
|
|
12790
|
+
return title;
|
|
12791
|
+
};
|
|
12792
|
+
var makeContentText = (text, { padding, width, textAlignment, height }) => {
|
|
12793
|
+
text = import_ansi_align.default(text, { align: textAlignment });
|
|
12794
|
+
let lines = text.split(NEWLINE);
|
|
12795
|
+
const textWidth = widestLine(text);
|
|
12796
|
+
const max = width - padding.left - padding.right;
|
|
12797
|
+
if (textWidth > max) {
|
|
12798
|
+
const newLines = [];
|
|
12799
|
+
for (const line of lines) {
|
|
12800
|
+
const createdLines = wrapAnsi(line, max, { hard: true });
|
|
12801
|
+
const alignedLines = import_ansi_align.default(createdLines, { align: textAlignment });
|
|
12802
|
+
const alignedLinesArray = alignedLines.split(`
|
|
12803
|
+
`);
|
|
12804
|
+
const longestLength = Math.max(...alignedLinesArray.map((s) => stringWidth(s)));
|
|
12805
|
+
for (const alignedLine of alignedLinesArray) {
|
|
12806
|
+
let paddedLine;
|
|
12807
|
+
switch (textAlignment) {
|
|
12808
|
+
case "center": {
|
|
12809
|
+
paddedLine = PAD.repeat((max - longestLength) / 2) + alignedLine;
|
|
12810
|
+
break;
|
|
12811
|
+
}
|
|
12812
|
+
case "right": {
|
|
12813
|
+
paddedLine = PAD.repeat(max - longestLength) + alignedLine;
|
|
12814
|
+
break;
|
|
12815
|
+
}
|
|
12816
|
+
default: {
|
|
12817
|
+
paddedLine = alignedLine;
|
|
12818
|
+
break;
|
|
12819
|
+
}
|
|
12820
|
+
}
|
|
12821
|
+
newLines.push(paddedLine);
|
|
12822
|
+
}
|
|
12823
|
+
}
|
|
12824
|
+
lines = newLines;
|
|
12825
|
+
}
|
|
12826
|
+
if (textAlignment === "center" && textWidth < max) {
|
|
12827
|
+
lines = lines.map((line) => PAD.repeat((max - textWidth) / 2) + line);
|
|
12828
|
+
} else if (textAlignment === "right" && textWidth < max) {
|
|
12829
|
+
lines = lines.map((line) => PAD.repeat(max - textWidth) + line);
|
|
12830
|
+
}
|
|
12831
|
+
const paddingLeft = PAD.repeat(padding.left);
|
|
12832
|
+
const paddingRight = PAD.repeat(padding.right);
|
|
12833
|
+
lines = lines.map((line) => {
|
|
12834
|
+
const newLine = paddingLeft + line + paddingRight;
|
|
12835
|
+
return newLine + PAD.repeat(width - stringWidth(newLine));
|
|
12836
|
+
});
|
|
12837
|
+
if (padding.top > 0) {
|
|
12838
|
+
lines = [...Array.from({ length: padding.top }).fill(PAD.repeat(width)), ...lines];
|
|
12839
|
+
}
|
|
12840
|
+
if (padding.bottom > 0) {
|
|
12841
|
+
lines = [...lines, ...Array.from({ length: padding.bottom }).fill(PAD.repeat(width))];
|
|
12842
|
+
}
|
|
12843
|
+
if (height && lines.length > height) {
|
|
12844
|
+
lines = lines.slice(0, height);
|
|
12845
|
+
} else if (height && lines.length < height) {
|
|
12846
|
+
lines = [...lines, ...Array.from({ length: height - lines.length }).fill(PAD.repeat(width))];
|
|
12847
|
+
}
|
|
12848
|
+
return lines.join(NEWLINE);
|
|
12849
|
+
};
|
|
12850
|
+
var boxContent = (content, contentWidth, options) => {
|
|
12851
|
+
const colorizeBorder = (border) => {
|
|
12852
|
+
const newBorder = options.borderColor ? getColorFunction(options.borderColor)(border) : border;
|
|
12853
|
+
return options.dimBorder ? source_default.dim(newBorder) : newBorder;
|
|
12854
|
+
};
|
|
12855
|
+
const colorizeContent = (content2) => options.backgroundColor ? getBGColorFunction(options.backgroundColor)(content2) : content2;
|
|
12856
|
+
const chars = getBorderChars(options.borderStyle);
|
|
12857
|
+
const columns = terminalColumns();
|
|
12858
|
+
let marginLeft = PAD.repeat(options.margin.left);
|
|
12859
|
+
if (options.float === "center") {
|
|
12860
|
+
const marginWidth = Math.max((columns - contentWidth - getBorderWidth(options.borderStyle)) / 2, 0);
|
|
12861
|
+
marginLeft = PAD.repeat(marginWidth);
|
|
12862
|
+
} else if (options.float === "right") {
|
|
12863
|
+
const marginWidth = Math.max(columns - contentWidth - options.margin.right - getBorderWidth(options.borderStyle), 0);
|
|
12864
|
+
marginLeft = PAD.repeat(marginWidth);
|
|
12865
|
+
}
|
|
12866
|
+
let result = "";
|
|
12867
|
+
if (options.margin.top) {
|
|
12868
|
+
result += NEWLINE.repeat(options.margin.top);
|
|
12869
|
+
}
|
|
12870
|
+
if (options.borderStyle !== NONE || options.title) {
|
|
12871
|
+
result += colorizeBorder(marginLeft + chars.topLeft + (options.title ? makeTitle(options.title, chars.top.repeat(contentWidth), options.titleAlignment) : chars.top.repeat(contentWidth)) + chars.topRight) + NEWLINE;
|
|
12872
|
+
}
|
|
12873
|
+
const lines = content.split(NEWLINE);
|
|
12874
|
+
result += lines.map((line) => marginLeft + colorizeBorder(chars.left) + colorizeContent(line) + colorizeBorder(chars.right)).join(NEWLINE);
|
|
12875
|
+
if (options.borderStyle !== NONE) {
|
|
12876
|
+
result += NEWLINE + colorizeBorder(marginLeft + chars.bottomLeft + chars.bottom.repeat(contentWidth) + chars.bottomRight);
|
|
12877
|
+
}
|
|
12878
|
+
if (options.margin.bottom) {
|
|
12879
|
+
result += NEWLINE.repeat(options.margin.bottom);
|
|
12880
|
+
}
|
|
12881
|
+
return result;
|
|
12882
|
+
};
|
|
12883
|
+
var sanitizeOptions = (options) => {
|
|
12884
|
+
if (options.fullscreen && process3?.stdout) {
|
|
12885
|
+
let newDimensions = [process3.stdout.columns, process3.stdout.rows];
|
|
12886
|
+
if (typeof options.fullscreen === "function") {
|
|
12887
|
+
newDimensions = options.fullscreen(...newDimensions);
|
|
12888
|
+
}
|
|
12889
|
+
options.width ||= newDimensions[0];
|
|
12890
|
+
options.height ||= newDimensions[1];
|
|
12891
|
+
}
|
|
12892
|
+
options.width &&= Math.max(1, options.width - getBorderWidth(options.borderStyle));
|
|
12893
|
+
options.height &&= Math.max(1, options.height - getBorderWidth(options.borderStyle));
|
|
12894
|
+
return options;
|
|
12895
|
+
};
|
|
12896
|
+
var formatTitle = (title, borderStyle) => borderStyle === NONE ? title : ` ${title} `;
|
|
12897
|
+
var determineDimensions = (text, options) => {
|
|
12898
|
+
options = sanitizeOptions(options);
|
|
12899
|
+
const widthOverride = options.width !== undefined;
|
|
12900
|
+
const columns = terminalColumns();
|
|
12901
|
+
const borderWidth = getBorderWidth(options.borderStyle);
|
|
12902
|
+
const maxWidth = columns - options.margin.left - options.margin.right - borderWidth;
|
|
12903
|
+
const widest = widestLine(wrapAnsi(text, columns - borderWidth, { hard: true, trim: false })) + options.padding.left + options.padding.right;
|
|
12904
|
+
if (options.title && widthOverride) {
|
|
12905
|
+
options.title = options.title.slice(0, Math.max(0, options.width - 2));
|
|
12906
|
+
options.title &&= formatTitle(options.title, options.borderStyle);
|
|
12907
|
+
} else if (options.title) {
|
|
12908
|
+
options.title = options.title.slice(0, Math.max(0, maxWidth - 2));
|
|
12909
|
+
if (options.title) {
|
|
12910
|
+
options.title = formatTitle(options.title, options.borderStyle);
|
|
12911
|
+
if (stringWidth(options.title) > widest) {
|
|
12912
|
+
options.width = stringWidth(options.title);
|
|
12913
|
+
}
|
|
12914
|
+
}
|
|
12915
|
+
}
|
|
12916
|
+
options.width ||= widest;
|
|
12917
|
+
if (!widthOverride) {
|
|
12918
|
+
if (options.margin.left && options.margin.right && options.width > maxWidth) {
|
|
12919
|
+
const spaceForMargins = columns - options.width - borderWidth;
|
|
12920
|
+
const multiplier = spaceForMargins / (options.margin.left + options.margin.right);
|
|
12921
|
+
options.margin.left = Math.max(0, Math.floor(options.margin.left * multiplier));
|
|
12922
|
+
options.margin.right = Math.max(0, Math.floor(options.margin.right * multiplier));
|
|
12923
|
+
}
|
|
12924
|
+
options.width = Math.min(options.width, columns - borderWidth - options.margin.left - options.margin.right);
|
|
12925
|
+
}
|
|
12926
|
+
if (options.width - (options.padding.left + options.padding.right) <= 0) {
|
|
12927
|
+
options.padding.left = 0;
|
|
12928
|
+
options.padding.right = 0;
|
|
12929
|
+
}
|
|
12930
|
+
if (options.height && options.height - (options.padding.top + options.padding.bottom) <= 0) {
|
|
12931
|
+
options.padding.top = 0;
|
|
12932
|
+
options.padding.bottom = 0;
|
|
12933
|
+
}
|
|
12934
|
+
return options;
|
|
12935
|
+
};
|
|
12936
|
+
var isHex = (color) => color.match(/^#(?:[0-f]{3}){1,2}$/i);
|
|
12937
|
+
var isColorValid = (color) => typeof color === "string" && (source_default[color] ?? isHex(color));
|
|
12938
|
+
var getColorFunction = (color) => isHex(color) ? source_default.hex(color) : source_default[color];
|
|
12939
|
+
var getBGColorFunction = (color) => isHex(color) ? source_default.bgHex(color) : source_default[camelCase(["bg", color])];
|
|
12940
|
+
function boxen(text, options) {
|
|
12941
|
+
options = {
|
|
12942
|
+
padding: 0,
|
|
12943
|
+
borderStyle: "single",
|
|
12944
|
+
dimBorder: false,
|
|
12945
|
+
textAlignment: "left",
|
|
12946
|
+
float: "left",
|
|
12947
|
+
titleAlignment: "left",
|
|
12948
|
+
...options
|
|
12949
|
+
};
|
|
12950
|
+
if (options.align) {
|
|
12951
|
+
options.textAlignment = options.align;
|
|
12952
|
+
}
|
|
12953
|
+
if (options.borderColor && !isColorValid(options.borderColor)) {
|
|
12954
|
+
throw new Error(`${options.borderColor} is not a valid borderColor`);
|
|
12955
|
+
}
|
|
12956
|
+
if (options.backgroundColor && !isColorValid(options.backgroundColor)) {
|
|
12957
|
+
throw new Error(`${options.backgroundColor} is not a valid backgroundColor`);
|
|
12958
|
+
}
|
|
12959
|
+
options.padding = getObject(options.padding);
|
|
12960
|
+
options.margin = getObject(options.margin);
|
|
12961
|
+
options = determineDimensions(text, options);
|
|
12962
|
+
text = makeContentText(text, options);
|
|
12963
|
+
return boxContent(text, options.width, options);
|
|
12964
|
+
}
|
|
11467
12965
|
|
|
11468
12966
|
// ../core/src/banner.ts
|
|
11469
|
-
var import_picocolors3 = __toESM(require_picocolors(), 1);
|
|
11470
12967
|
var quotes = [
|
|
11471
12968
|
"Don't Panic - your app is being baked",
|
|
11472
12969
|
"From scratch to production in seconds",
|
|
11473
|
-
"
|
|
11474
|
-
"
|
|
11475
|
-
"
|
|
11476
|
-
"
|
|
11477
|
-
"
|
|
11478
|
-
"
|
|
11479
|
-
"
|
|
11480
|
-
"
|
|
12970
|
+
"Modern tools for modern builders",
|
|
12971
|
+
"Ship faster, build smarter",
|
|
12972
|
+
"Type-safe, blazingly fast, production-ready",
|
|
12973
|
+
"Bake once, deploy everywhere",
|
|
12974
|
+
"The future of full-stack development",
|
|
12975
|
+
"Where speed meets elegance",
|
|
12976
|
+
"Built for indie hackers, loved by teams",
|
|
12977
|
+
"Your shortcut to production excellence"
|
|
11481
12978
|
];
|
|
11482
12979
|
var getRandomQuote = () => {
|
|
11483
12980
|
return quotes[Math.floor(Math.random() * quotes.length)];
|
|
11484
12981
|
};
|
|
11485
|
-
var
|
|
11486
|
-
|
|
11487
|
-
|
|
11488
|
-
|
|
11489
|
-
|
|
11490
|
-
|
|
11491
|
-
|
|
11492
|
-
${import_picocolors3.default.dim("\u2551")} ${import_picocolors3.default.yellow("\u2517\u251B\u2022\u2517\u2501\u251B\u251B\u2517\u251B\u2517\u253B \u253B")} ${import_picocolors3.default.dim("\u2551")}
|
|
11493
|
-
${import_picocolors3.default.dim("\u2551")} ${import_picocolors3.default.dim("\u2551")}
|
|
11494
|
-
${import_picocolors3.default.dim("\u2551")} ${import_picocolors3.default.cyan(quote.padEnd(46))} ${import_picocolors3.default.dim("\u2551")}
|
|
11495
|
-
${import_picocolors3.default.dim("\u2551")} ${import_picocolors3.default.dim("\u2551")}
|
|
11496
|
-
${import_picocolors3.default.dim("\u2551")} ${import_picocolors3.default.dim(`v${version}`)}${" ".repeat(43 - version.length)}\uD83C\uDF5E ${import_picocolors3.default.dim("\u2551")}
|
|
11497
|
-
${import_picocolors3.default.dim("\u255A" + "\u2550".repeat(50) + "\u255D")}
|
|
12982
|
+
var logo = `
|
|
12983
|
+
____ _ _ _
|
|
12984
|
+
| _ \\ | | (_) |
|
|
12985
|
+
| |_) |_ _ _ __ | | ___| |_
|
|
12986
|
+
| _ <| | | | '_ \\| |/ / | __|
|
|
12987
|
+
| |_) | |_| | | | | <| | |_
|
|
12988
|
+
|____/ \\__,_|_| |_|_|\\_\\_|\\__|
|
|
11498
12989
|
`;
|
|
12990
|
+
var createBanner = (version = "0.3.1") => {
|
|
12991
|
+
const quote = getRandomQuote();
|
|
12992
|
+
const content = [
|
|
12993
|
+
source_default.yellow(logo.trim()),
|
|
12994
|
+
"",
|
|
12995
|
+
source_default.cyan("\uD83C\uDF5E Bake production-ready apps in seconds"),
|
|
12996
|
+
source_default.dim("Modern \u2022 Fast \u2022 Opinionated"),
|
|
12997
|
+
"",
|
|
12998
|
+
source_default.cyan(quote),
|
|
12999
|
+
"",
|
|
13000
|
+
source_default.dim(`v${version}`)
|
|
13001
|
+
].join(`
|
|
13002
|
+
`);
|
|
13003
|
+
return boxen(content, {
|
|
13004
|
+
padding: 1,
|
|
13005
|
+
margin: { top: 1, bottom: 1 },
|
|
13006
|
+
borderColor: "gray",
|
|
13007
|
+
borderStyle: "round",
|
|
13008
|
+
dimBorder: true
|
|
13009
|
+
});
|
|
11499
13010
|
};
|
|
11500
13011
|
var showBanner = (version) => {
|
|
11501
13012
|
console.log(createBanner(version));
|
|
@@ -11872,9 +13383,9 @@ import { spawnSync } from "child_process";
|
|
|
11872
13383
|
import { debuglog } from "util";
|
|
11873
13384
|
|
|
11874
13385
|
// ../../node_modules/.bun/execa@9.6.0/node_modules/execa/lib/utils/standard-stream.js
|
|
11875
|
-
import
|
|
13386
|
+
import process4 from "process";
|
|
11876
13387
|
var isStandardStream = (stream) => STANDARD_STREAMS.includes(stream);
|
|
11877
|
-
var STANDARD_STREAMS = [
|
|
13388
|
+
var STANDARD_STREAMS = [process4.stdin, process4.stdout, process4.stderr];
|
|
11878
13389
|
var STANDARD_STREAMS_ALIASES = ["stdin", "stdout", "stderr"];
|
|
11879
13390
|
var getStreamName = (fdNumber) => STANDARD_STREAMS_ALIASES[fdNumber] ?? `stdio[${fdNumber}]`;
|
|
11880
13391
|
|
|
@@ -12011,14 +13522,14 @@ var quoteString = (escapedArgument) => {
|
|
|
12011
13522
|
var NO_ESCAPE_REGEXP = /^[\w./-]+$/;
|
|
12012
13523
|
|
|
12013
13524
|
// ../../node_modules/.bun/is-unicode-supported@2.1.0/node_modules/is-unicode-supported/index.js
|
|
12014
|
-
import
|
|
13525
|
+
import process5 from "process";
|
|
12015
13526
|
function isUnicodeSupported() {
|
|
12016
|
-
const { env } =
|
|
12017
|
-
const { TERM, TERM_PROGRAM } =
|
|
12018
|
-
if (
|
|
13527
|
+
const { env: env2 } = process5;
|
|
13528
|
+
const { TERM, TERM_PROGRAM } = env2;
|
|
13529
|
+
if (process5.platform !== "win32") {
|
|
12019
13530
|
return TERM !== "linux";
|
|
12020
13531
|
}
|
|
12021
|
-
return Boolean(
|
|
13532
|
+
return Boolean(env2.WT_SESSION) || Boolean(env2.TERMINUS_SUBLIME) || env2.ConEmuTask === "{cmd::Cmder}" || TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env2.TERMINAL_EMULATOR === "JetBrains-JediTerm";
|
|
12022
13533
|
}
|
|
12023
13534
|
|
|
12024
13535
|
// ../../node_modules/.bun/figures@6.1.0/node_modules/figures/index.js
|
|
@@ -12298,8 +13809,8 @@ var figures_default = figures;
|
|
|
12298
13809
|
var replacements = Object.entries(specialMainSymbols);
|
|
12299
13810
|
|
|
12300
13811
|
// ../../node_modules/.bun/yoctocolors@2.1.2/node_modules/yoctocolors/base.js
|
|
12301
|
-
import
|
|
12302
|
-
var hasColors =
|
|
13812
|
+
import tty2 from "tty";
|
|
13813
|
+
var hasColors = tty2?.WriteStream?.prototype?.hasColors?.() ?? false;
|
|
12303
13814
|
var format2 = (open, close) => {
|
|
12304
13815
|
if (!hasColors) {
|
|
12305
13816
|
return (input) => input;
|
|
@@ -12522,22 +14033,22 @@ var handleCommand = (filePath, rawArguments, rawOptions) => {
|
|
|
12522
14033
|
// ../../node_modules/.bun/execa@9.6.0/node_modules/execa/lib/arguments/options.js
|
|
12523
14034
|
var import_cross_spawn = __toESM(require_cross_spawn(), 1);
|
|
12524
14035
|
import path6 from "path";
|
|
12525
|
-
import
|
|
14036
|
+
import process8 from "process";
|
|
12526
14037
|
|
|
12527
14038
|
// ../../node_modules/.bun/npm-run-path@6.0.0/node_modules/npm-run-path/index.js
|
|
12528
|
-
import
|
|
14039
|
+
import process6 from "process";
|
|
12529
14040
|
import path3 from "path";
|
|
12530
14041
|
|
|
12531
14042
|
// ../../node_modules/.bun/path-key@4.0.0/node_modules/path-key/index.js
|
|
12532
14043
|
function pathKey(options = {}) {
|
|
12533
14044
|
const {
|
|
12534
|
-
env = process.env,
|
|
14045
|
+
env: env2 = process.env,
|
|
12535
14046
|
platform: platform2 = process.platform
|
|
12536
14047
|
} = options;
|
|
12537
14048
|
if (platform2 !== "win32") {
|
|
12538
14049
|
return "PATH";
|
|
12539
14050
|
}
|
|
12540
|
-
return Object.keys(
|
|
14051
|
+
return Object.keys(env2).reverse().find((key) => key.toUpperCase() === "PATH") || "Path";
|
|
12541
14052
|
}
|
|
12542
14053
|
|
|
12543
14054
|
// ../../node_modules/.bun/unicorn-magic@0.3.0/node_modules/unicorn-magic/node.js
|
|
@@ -12566,10 +14077,10 @@ var TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;
|
|
|
12566
14077
|
|
|
12567
14078
|
// ../../node_modules/.bun/npm-run-path@6.0.0/node_modules/npm-run-path/index.js
|
|
12568
14079
|
var npmRunPath = ({
|
|
12569
|
-
cwd =
|
|
12570
|
-
path: pathOption =
|
|
14080
|
+
cwd = process6.cwd(),
|
|
14081
|
+
path: pathOption = process6.env[pathKey()],
|
|
12571
14082
|
preferLocal = true,
|
|
12572
|
-
execPath =
|
|
14083
|
+
execPath = process6.execPath,
|
|
12573
14084
|
addExecPath = true
|
|
12574
14085
|
} = {}) => {
|
|
12575
14086
|
const cwdPath = path3.resolve(toPath(cwd));
|
|
@@ -12597,12 +14108,12 @@ var applyExecPath = (result, pathParts, execPath, cwdPath) => {
|
|
|
12597
14108
|
result.push(pathPart);
|
|
12598
14109
|
}
|
|
12599
14110
|
};
|
|
12600
|
-
var npmRunPathEnv = ({ env =
|
|
12601
|
-
|
|
12602
|
-
const pathName = pathKey({ env });
|
|
12603
|
-
options.path =
|
|
12604
|
-
|
|
12605
|
-
return
|
|
14111
|
+
var npmRunPathEnv = ({ env: env2 = process6.env, ...options } = {}) => {
|
|
14112
|
+
env2 = { ...env2 };
|
|
14113
|
+
const pathName = pathKey({ env: env2 });
|
|
14114
|
+
options.path = env2[pathName];
|
|
14115
|
+
env2[pathName] = npmRunPath(options);
|
|
14116
|
+
return env2;
|
|
12606
14117
|
};
|
|
12607
14118
|
|
|
12608
14119
|
// ../../node_modules/.bun/execa@9.6.0/node_modules/execa/lib/terminate/kill.js
|
|
@@ -13860,14 +15371,14 @@ var serializeEncoding = (encoding) => typeof encoding === "string" ? `"${encodin
|
|
|
13860
15371
|
// ../../node_modules/.bun/execa@9.6.0/node_modules/execa/lib/arguments/cwd.js
|
|
13861
15372
|
import { statSync } from "fs";
|
|
13862
15373
|
import path5 from "path";
|
|
13863
|
-
import
|
|
15374
|
+
import process7 from "process";
|
|
13864
15375
|
var normalizeCwd = (cwd = getDefaultCwd()) => {
|
|
13865
15376
|
const cwdString = safeNormalizeFileUrl(cwd, 'The "cwd" option');
|
|
13866
15377
|
return path5.resolve(cwdString);
|
|
13867
15378
|
};
|
|
13868
15379
|
var getDefaultCwd = () => {
|
|
13869
15380
|
try {
|
|
13870
|
-
return
|
|
15381
|
+
return process7.cwd();
|
|
13871
15382
|
} catch (error) {
|
|
13872
15383
|
error.message = `The current directory does not exist.
|
|
13873
15384
|
${error.message}`;
|
|
@@ -13910,7 +15421,7 @@ var normalizeOptions = (filePath, rawArguments, rawOptions) => {
|
|
|
13910
15421
|
options.killSignal = normalizeKillSignal(options.killSignal);
|
|
13911
15422
|
options.forceKillAfterDelay = normalizeForceKillAfterDelay(options.forceKillAfterDelay);
|
|
13912
15423
|
options.lines = options.lines.map((lines, fdNumber) => lines && !BINARY_ENCODINGS.has(options.encoding) && options.buffer[fdNumber]);
|
|
13913
|
-
if (
|
|
15424
|
+
if (process8.platform === "win32" && path6.basename(file, ".exe") === "cmd") {
|
|
13914
15425
|
commandArguments.unshift("/q");
|
|
13915
15426
|
}
|
|
13916
15427
|
return { file, commandArguments, options };
|
|
@@ -13951,17 +15462,17 @@ var addDefaultOptions = ({
|
|
|
13951
15462
|
serialization
|
|
13952
15463
|
});
|
|
13953
15464
|
var getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath }) => {
|
|
13954
|
-
const
|
|
15465
|
+
const env2 = extendEnv ? { ...process8.env, ...envOption } : envOption;
|
|
13955
15466
|
if (preferLocal || node) {
|
|
13956
15467
|
return npmRunPathEnv({
|
|
13957
|
-
env,
|
|
15468
|
+
env: env2,
|
|
13958
15469
|
cwd: localDirectory,
|
|
13959
15470
|
execPath: nodePath,
|
|
13960
15471
|
preferLocal,
|
|
13961
15472
|
addExecPath: node
|
|
13962
15473
|
});
|
|
13963
15474
|
}
|
|
13964
|
-
return
|
|
15475
|
+
return env2;
|
|
13965
15476
|
};
|
|
13966
15477
|
|
|
13967
15478
|
// ../../node_modules/.bun/execa@9.6.0/node_modules/execa/lib/arguments/shell.js
|
|
@@ -15120,7 +16631,7 @@ var normalizeGenerator = ({ stdioItem, stdioItem: { value }, index, newTransform
|
|
|
15120
16631
|
var sortTransforms = (newTransforms, direction) => direction === "input" ? newTransforms.reverse() : newTransforms;
|
|
15121
16632
|
|
|
15122
16633
|
// ../../node_modules/.bun/execa@9.6.0/node_modules/execa/lib/stdio/direction.js
|
|
15123
|
-
import
|
|
16634
|
+
import process9 from "process";
|
|
15124
16635
|
var getStreamDirection = (stdioItems, fdNumber, optionName) => {
|
|
15125
16636
|
const directions = stdioItems.map((stdioItem) => getStdioItemDirection(stdioItem, fdNumber));
|
|
15126
16637
|
if (directions.includes("input") && directions.includes("output")) {
|
|
@@ -15162,10 +16673,10 @@ var guessStreamDirection = {
|
|
|
15162
16673
|
}
|
|
15163
16674
|
};
|
|
15164
16675
|
var getStandardStreamDirection = (value) => {
|
|
15165
|
-
if ([0,
|
|
16676
|
+
if ([0, process9.stdin].includes(value)) {
|
|
15166
16677
|
return "input";
|
|
15167
16678
|
}
|
|
15168
|
-
if ([1, 2,
|
|
16679
|
+
if ([1, 2, process9.stdout, process9.stderr].includes(value)) {
|
|
15169
16680
|
return "output";
|
|
15170
16681
|
}
|
|
15171
16682
|
};
|
|
@@ -15210,7 +16721,7 @@ var isOutputPipeOnly = (stdioOption) => stdioOption === "pipe" || Array.isArray(
|
|
|
15210
16721
|
|
|
15211
16722
|
// ../../node_modules/.bun/execa@9.6.0/node_modules/execa/lib/stdio/native.js
|
|
15212
16723
|
import { readFileSync } from "fs";
|
|
15213
|
-
import
|
|
16724
|
+
import tty3 from "tty";
|
|
15214
16725
|
var handleNativeStream = ({ stdioItem, stdioItem: { type }, isStdioArray, fdNumber, direction, isSync }) => {
|
|
15215
16726
|
if (!isStdioArray || type !== "native") {
|
|
15216
16727
|
return stdioItem;
|
|
@@ -15240,7 +16751,7 @@ var getTargetFd = ({ value, optionName, fdNumber, direction }) => {
|
|
|
15240
16751
|
if (direction === "output") {
|
|
15241
16752
|
return { type: "fileNumber", value: targetFdNumber, optionName };
|
|
15242
16753
|
}
|
|
15243
|
-
if (
|
|
16754
|
+
if (tty3.isatty(targetFdNumber)) {
|
|
15244
16755
|
throw new TypeError(`The \`${optionName}: ${serializeOptionValue(value)}\` option is invalid: it cannot be a TTY with synchronous methods.`);
|
|
15245
16756
|
}
|
|
15246
16757
|
return { type: "uint8Array", value: bufferToUint8Array(readFileSync(targetFdNumber)), optionName };
|
|
@@ -16272,7 +17783,7 @@ import { setMaxListeners } from "events";
|
|
|
16272
17783
|
import { spawn } from "child_process";
|
|
16273
17784
|
|
|
16274
17785
|
// ../../node_modules/.bun/execa@9.6.0/node_modules/execa/lib/ipc/methods.js
|
|
16275
|
-
import
|
|
17786
|
+
import process10 from "process";
|
|
16276
17787
|
|
|
16277
17788
|
// ../../node_modules/.bun/execa@9.6.0/node_modules/execa/lib/ipc/get-one.js
|
|
16278
17789
|
import { once as once5, on as on2 } from "events";
|
|
@@ -16411,9 +17922,9 @@ var addIpcMethods = (subprocess, { ipc }) => {
|
|
|
16411
17922
|
Object.assign(subprocess, getIpcMethods(subprocess, false, ipc));
|
|
16412
17923
|
};
|
|
16413
17924
|
var getIpcExport = () => {
|
|
16414
|
-
const anyProcess =
|
|
17925
|
+
const anyProcess = process10;
|
|
16415
17926
|
const isSubprocess = true;
|
|
16416
|
-
const ipc =
|
|
17927
|
+
const ipc = process10.channel !== undefined;
|
|
16417
17928
|
return {
|
|
16418
17929
|
...getIpcMethods(anyProcess, isSubprocess, ipc),
|
|
16419
17930
|
getCancelSignal: getCancelSignal.bind(undefined, {
|
|
@@ -16858,7 +18369,7 @@ if (process.platform === "linux") {
|
|
|
16858
18369
|
}
|
|
16859
18370
|
|
|
16860
18371
|
// ../../node_modules/.bun/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/index.js
|
|
16861
|
-
var processOk = (
|
|
18372
|
+
var processOk = (process11) => !!process11 && typeof process11 === "object" && typeof process11.removeListener === "function" && typeof process11.emit === "function" && typeof process11.reallyExit === "function" && typeof process11.listeners === "function" && typeof process11.kill === "function" && typeof process11.pid === "number" && typeof process11.on === "function";
|
|
16862
18373
|
var kExitEmitter = Symbol.for("signal-exit emitter");
|
|
16863
18374
|
var global2 = globalThis;
|
|
16864
18375
|
var ObjectDefineProperty = Object.defineProperty.bind(Object);
|
|
@@ -16941,22 +18452,22 @@ class SignalExitFallback extends SignalExitBase {
|
|
|
16941
18452
|
}
|
|
16942
18453
|
|
|
16943
18454
|
class SignalExit extends SignalExitBase {
|
|
16944
|
-
#hupSig =
|
|
18455
|
+
#hupSig = process11.platform === "win32" ? "SIGINT" : "SIGHUP";
|
|
16945
18456
|
#emitter = new Emitter;
|
|
16946
18457
|
#process;
|
|
16947
18458
|
#originalProcessEmit;
|
|
16948
18459
|
#originalProcessReallyExit;
|
|
16949
18460
|
#sigListeners = {};
|
|
16950
18461
|
#loaded = false;
|
|
16951
|
-
constructor(
|
|
18462
|
+
constructor(process11) {
|
|
16952
18463
|
super();
|
|
16953
|
-
this.#process =
|
|
18464
|
+
this.#process = process11;
|
|
16954
18465
|
this.#sigListeners = {};
|
|
16955
18466
|
for (const sig of signals) {
|
|
16956
18467
|
this.#sigListeners[sig] = () => {
|
|
16957
18468
|
const listeners = this.#process.listeners(sig);
|
|
16958
18469
|
let { count: count2 } = this.#emitter;
|
|
16959
|
-
const p2 =
|
|
18470
|
+
const p2 = process11;
|
|
16960
18471
|
if (typeof p2.__signal_exit_emitter__ === "object" && typeof p2.__signal_exit_emitter__.count === "number") {
|
|
16961
18472
|
count2 += p2.__signal_exit_emitter__.count;
|
|
16962
18473
|
}
|
|
@@ -16965,12 +18476,12 @@ class SignalExit extends SignalExitBase {
|
|
|
16965
18476
|
const ret = this.#emitter.emit("exit", null, sig);
|
|
16966
18477
|
const s = sig === "SIGHUP" ? this.#hupSig : sig;
|
|
16967
18478
|
if (!ret)
|
|
16968
|
-
|
|
18479
|
+
process11.kill(process11.pid, s);
|
|
16969
18480
|
}
|
|
16970
18481
|
};
|
|
16971
18482
|
}
|
|
16972
|
-
this.#originalProcessReallyExit =
|
|
16973
|
-
this.#originalProcessEmit =
|
|
18483
|
+
this.#originalProcessReallyExit = process11.reallyExit;
|
|
18484
|
+
this.#originalProcessEmit = process11.emit;
|
|
16974
18485
|
}
|
|
16975
18486
|
onExit(cb, opts) {
|
|
16976
18487
|
if (!processOk(this.#process)) {
|
|
@@ -17048,12 +18559,12 @@ class SignalExit extends SignalExitBase {
|
|
|
17048
18559
|
}
|
|
17049
18560
|
}
|
|
17050
18561
|
}
|
|
17051
|
-
var
|
|
18562
|
+
var process11 = globalThis.process;
|
|
17052
18563
|
var {
|
|
17053
18564
|
onExit,
|
|
17054
18565
|
load,
|
|
17055
18566
|
unload
|
|
17056
|
-
} = signalExitWrap(processOk(
|
|
18567
|
+
} = signalExitWrap(processOk(process11) ? new SignalExit(process11) : new SignalExitFallback);
|
|
17057
18568
|
|
|
17058
18569
|
// ../../node_modules/.bun/execa@9.6.0/node_modules/execa/lib/terminate/cleanup.js
|
|
17059
18570
|
var cleanupOnExit = (subprocess, { cleanup, detached }, { signal }) => {
|
|
@@ -18438,30 +19949,30 @@ function validateProjectName(name) {
|
|
|
18438
19949
|
return { valid: true };
|
|
18439
19950
|
}
|
|
18440
19951
|
// ../core/src/logger.ts
|
|
18441
|
-
var
|
|
19952
|
+
var import_picocolors3 = __toESM(require_picocolors(), 1);
|
|
18442
19953
|
var logger = {
|
|
18443
19954
|
info(message) {
|
|
18444
|
-
console.log(
|
|
19955
|
+
console.log(import_picocolors3.default.blue("\u2139"), message);
|
|
18445
19956
|
},
|
|
18446
19957
|
success(message) {
|
|
18447
|
-
console.log(
|
|
19958
|
+
console.log(import_picocolors3.default.green("\u2714"), message);
|
|
18448
19959
|
},
|
|
18449
19960
|
warn(message) {
|
|
18450
|
-
console.log(
|
|
19961
|
+
console.log(import_picocolors3.default.yellow("\u26A0"), message);
|
|
18451
19962
|
},
|
|
18452
19963
|
error(message) {
|
|
18453
|
-
console.error(
|
|
19964
|
+
console.error(import_picocolors3.default.red("\u2716"), message);
|
|
18454
19965
|
},
|
|
18455
19966
|
step(message) {
|
|
18456
|
-
console.log(
|
|
19967
|
+
console.log(import_picocolors3.default.cyan("\u2192"), message);
|
|
18457
19968
|
},
|
|
18458
19969
|
debug(message) {
|
|
18459
19970
|
if (process.env.DEBUG) {
|
|
18460
|
-
console.log(
|
|
19971
|
+
console.log(import_picocolors3.default.gray("[DEBUG]"), message);
|
|
18461
19972
|
}
|
|
18462
19973
|
},
|
|
18463
19974
|
dim(message) {
|
|
18464
|
-
console.log(
|
|
19975
|
+
console.log(import_picocolors3.default.dim(message));
|
|
18465
19976
|
},
|
|
18466
19977
|
br() {
|
|
18467
19978
|
console.log();
|
|
@@ -19431,13 +20942,13 @@ function timeRegex(args) {
|
|
|
19431
20942
|
return new RegExp(`^${timeRegexSource(args)}$`);
|
|
19432
20943
|
}
|
|
19433
20944
|
function datetimeRegex(args) {
|
|
19434
|
-
let
|
|
20945
|
+
let regex2 = `${dateRegexSource}T${timeRegexSource(args)}`;
|
|
19435
20946
|
const opts = [];
|
|
19436
20947
|
opts.push(args.local ? `Z?` : `Z`);
|
|
19437
20948
|
if (args.offset)
|
|
19438
20949
|
opts.push(`([+-]\\d{2}:?\\d{2})`);
|
|
19439
|
-
|
|
19440
|
-
return new RegExp(`^${
|
|
20950
|
+
regex2 = `${regex2}(${opts.join("|")})`;
|
|
20951
|
+
return new RegExp(`^${regex2}$`);
|
|
19441
20952
|
}
|
|
19442
20953
|
function isValidIP(ip, version) {
|
|
19443
20954
|
if ((version === "v4" || !version) && ipv4Regex.test(ip)) {
|
|
@@ -19684,8 +21195,8 @@ class ZodString extends ZodType {
|
|
|
19684
21195
|
status.dirty();
|
|
19685
21196
|
}
|
|
19686
21197
|
} else if (check.kind === "datetime") {
|
|
19687
|
-
const
|
|
19688
|
-
if (!
|
|
21198
|
+
const regex2 = datetimeRegex(check);
|
|
21199
|
+
if (!regex2.test(input.data)) {
|
|
19689
21200
|
ctx = this._getOrReturnCtx(input, ctx);
|
|
19690
21201
|
addIssueToContext(ctx, {
|
|
19691
21202
|
code: ZodIssueCode.invalid_string,
|
|
@@ -19695,8 +21206,8 @@ class ZodString extends ZodType {
|
|
|
19695
21206
|
status.dirty();
|
|
19696
21207
|
}
|
|
19697
21208
|
} else if (check.kind === "date") {
|
|
19698
|
-
const
|
|
19699
|
-
if (!
|
|
21209
|
+
const regex2 = dateRegex;
|
|
21210
|
+
if (!regex2.test(input.data)) {
|
|
19700
21211
|
ctx = this._getOrReturnCtx(input, ctx);
|
|
19701
21212
|
addIssueToContext(ctx, {
|
|
19702
21213
|
code: ZodIssueCode.invalid_string,
|
|
@@ -19706,8 +21217,8 @@ class ZodString extends ZodType {
|
|
|
19706
21217
|
status.dirty();
|
|
19707
21218
|
}
|
|
19708
21219
|
} else if (check.kind === "time") {
|
|
19709
|
-
const
|
|
19710
|
-
if (!
|
|
21220
|
+
const regex2 = timeRegex(check);
|
|
21221
|
+
if (!regex2.test(input.data)) {
|
|
19711
21222
|
ctx = this._getOrReturnCtx(input, ctx);
|
|
19712
21223
|
addIssueToContext(ctx, {
|
|
19713
21224
|
code: ZodIssueCode.invalid_string,
|
|
@@ -19782,8 +21293,8 @@ class ZodString extends ZodType {
|
|
|
19782
21293
|
}
|
|
19783
21294
|
return { status: status.value, value: input.data };
|
|
19784
21295
|
}
|
|
19785
|
-
_regex(
|
|
19786
|
-
return this.refinement((data) =>
|
|
21296
|
+
_regex(regex2, validation, message) {
|
|
21297
|
+
return this.refinement((data) => regex2.test(data), {
|
|
19787
21298
|
validation,
|
|
19788
21299
|
code: ZodIssueCode.invalid_string,
|
|
19789
21300
|
...errorUtil.errToObj(message)
|
|
@@ -19875,10 +21386,10 @@ class ZodString extends ZodType {
|
|
|
19875
21386
|
duration(message) {
|
|
19876
21387
|
return this._addCheck({ kind: "duration", ...errorUtil.errToObj(message) });
|
|
19877
21388
|
}
|
|
19878
|
-
regex(
|
|
21389
|
+
regex(regex2, message) {
|
|
19879
21390
|
return this._addCheck({
|
|
19880
21391
|
kind: "regex",
|
|
19881
|
-
regex,
|
|
21392
|
+
regex: regex2,
|
|
19882
21393
|
...errorUtil.errToObj(message)
|
|
19883
21394
|
});
|
|
19884
21395
|
}
|
|
@@ -22602,7 +24113,7 @@ async function installDependencies(cwd, packages) {
|
|
|
22602
24113
|
}
|
|
22603
24114
|
}
|
|
22604
24115
|
// src/commands/init.real.ts
|
|
22605
|
-
var
|
|
24116
|
+
var import_picocolors4 = __toESM(require_picocolors(), 1);
|
|
22606
24117
|
|
|
22607
24118
|
// ../templates/src/render.ts
|
|
22608
24119
|
var import_ejs = __toESM(require_ejs(), 1);
|
|
@@ -22872,6 +24383,7 @@ coverage = true
|
|
|
22872
24383
|
// ../templates/src/builders/full.ts
|
|
22873
24384
|
async function buildFullPreset(projectPath, context) {
|
|
22874
24385
|
await ensureDirectory(join(projectPath, "apps/web"));
|
|
24386
|
+
await ensureDirectory(join(projectPath, "apps/platform"));
|
|
22875
24387
|
await ensureDirectory(join(projectPath, "apps/api"));
|
|
22876
24388
|
await ensureDirectory(join(projectPath, "packages/types"));
|
|
22877
24389
|
await ensureDirectory(join(projectPath, "packages/utils"));
|
|
@@ -22895,7 +24407,7 @@ async function buildFullPreset(projectPath, context) {
|
|
|
22895
24407
|
catalog: {
|
|
22896
24408
|
react: "^19.1.0",
|
|
22897
24409
|
"react-dom": "^19.1.0",
|
|
22898
|
-
next: "^
|
|
24410
|
+
next: "^16.0.0",
|
|
22899
24411
|
hono: "^4.7.12"
|
|
22900
24412
|
}
|
|
22901
24413
|
};
|
|
@@ -22912,7 +24424,7 @@ coverage = true
|
|
|
22912
24424
|
version: "0.0.0",
|
|
22913
24425
|
private: true,
|
|
22914
24426
|
scripts: {
|
|
22915
|
-
dev: "next dev
|
|
24427
|
+
dev: "next dev",
|
|
22916
24428
|
build: "next build",
|
|
22917
24429
|
start: "next start"
|
|
22918
24430
|
},
|
|
@@ -22930,6 +24442,29 @@ coverage = true
|
|
|
22930
24442
|
}
|
|
22931
24443
|
};
|
|
22932
24444
|
await writeFile(join(projectPath, "apps/web/package.json"), JSON.stringify(webPackageJson, null, 2));
|
|
24445
|
+
const platformPackageJson = {
|
|
24446
|
+
name: `@${context.packageName}/platform`,
|
|
24447
|
+
version: "0.0.0",
|
|
24448
|
+
private: true,
|
|
24449
|
+
scripts: {
|
|
24450
|
+
dev: "next dev --port 3001",
|
|
24451
|
+
build: "next build",
|
|
24452
|
+
start: "next start --port 3001"
|
|
24453
|
+
},
|
|
24454
|
+
dependencies: {
|
|
24455
|
+
react: "catalog:",
|
|
24456
|
+
"react-dom": "catalog:",
|
|
24457
|
+
next: "catalog:",
|
|
24458
|
+
[`@${context.packageName}/types`]: "workspace:*"
|
|
24459
|
+
},
|
|
24460
|
+
devDependencies: {
|
|
24461
|
+
"@types/react": "^19.1.0",
|
|
24462
|
+
"@types/react-dom": "^19.1.0",
|
|
24463
|
+
"@types/node": "^22.10.6",
|
|
24464
|
+
typescript: "^5.7.2"
|
|
24465
|
+
}
|
|
24466
|
+
};
|
|
24467
|
+
await writeFile(join(projectPath, "apps/platform/package.json"), JSON.stringify(platformPackageJson, null, 2));
|
|
22933
24468
|
const apiPackageJson = {
|
|
22934
24469
|
name: `@${context.packageName}/api`,
|
|
22935
24470
|
version: "0.0.0",
|
|
@@ -22974,20 +24509,39 @@ export interface ApiResponse<T = unknown> {
|
|
|
22974
24509
|
await writeFile(join(projectPath, "packages/types/src/index.ts"), typesContent);
|
|
22975
24510
|
const readmeContent = `# ${context.projectName}
|
|
22976
24511
|
|
|
22977
|
-
|
|
24512
|
+
Enterprise-grade SaaS monorepo created with [bunkit](https://github.com/Arakiss/bunkit) \uD83C\uDF5E
|
|
22978
24513
|
|
|
22979
24514
|
## Structure
|
|
22980
24515
|
|
|
22981
24516
|
\`\`\`
|
|
22982
24517
|
${context.projectName}/
|
|
22983
24518
|
\u251C\u2500\u2500 apps/
|
|
22984
|
-
\u2502 \u251C\u2500\u2500 web/ #
|
|
22985
|
-
\u2502 \
|
|
24519
|
+
\u2502 \u251C\u2500\u2500 web/ # Customer-facing app (landing, marketing)
|
|
24520
|
+
\u2502 \u251C\u2500\u2500 platform/ # Dashboard/Admin panel (port 3001)
|
|
24521
|
+
\u2502 \u2514\u2500\u2500 api/ # Backend API (Hono)
|
|
22986
24522
|
\u2514\u2500\u2500 packages/
|
|
22987
|
-
\u251C\u2500\u2500 types/ # Shared types
|
|
24523
|
+
\u251C\u2500\u2500 types/ # Shared TypeScript types
|
|
22988
24524
|
\u2514\u2500\u2500 utils/ # Shared utilities
|
|
22989
24525
|
\`\`\`
|
|
22990
24526
|
|
|
24527
|
+
## The Enterprise SaaS Trifecta
|
|
24528
|
+
|
|
24529
|
+
This monorepo follows the proven enterprise pattern:
|
|
24530
|
+
|
|
24531
|
+
1. **web** (\`localhost:3000\`) - Public-facing customer app
|
|
24532
|
+
- Landing pages, marketing content, blog
|
|
24533
|
+
- Optimized for SEO and conversion
|
|
24534
|
+
|
|
24535
|
+
2. **platform** (\`localhost:3001\`) - Internal dashboard
|
|
24536
|
+
- Admin panel, user management
|
|
24537
|
+
- Analytics, settings, configuration
|
|
24538
|
+
- Authenticated access only
|
|
24539
|
+
|
|
24540
|
+
3. **api** (\`localhost:3001/api\`) - Backend services
|
|
24541
|
+
- REST API with Hono
|
|
24542
|
+
- Database operations, business logic
|
|
24543
|
+
- Shared across web and platform
|
|
24544
|
+
|
|
22991
24545
|
## Getting Started
|
|
22992
24546
|
|
|
22993
24547
|
\`\`\`bash
|
|
@@ -22999,8 +24553,16 @@ bun dev
|
|
|
22999
24553
|
|
|
23000
24554
|
- \`bun dev\` - Start all apps in development mode
|
|
23001
24555
|
- \`bun build\` - Build all apps for production
|
|
23002
|
-
- \`bun lint\` - Lint all code
|
|
23003
|
-
- \`bun format\` - Format all code
|
|
24556
|
+
- \`bun lint\` - Lint all code with Biome
|
|
24557
|
+
- \`bun format\` - Format all code with Biome
|
|
24558
|
+
|
|
24559
|
+
## Individual Apps
|
|
24560
|
+
|
|
24561
|
+
\`\`\`bash
|
|
24562
|
+
cd apps/web && bun dev # Start customer-facing app
|
|
24563
|
+
cd apps/platform && bun dev # Start admin dashboard
|
|
24564
|
+
cd apps/api && bun dev # Start backend API
|
|
24565
|
+
\`\`\`
|
|
23004
24566
|
|
|
23005
24567
|
---
|
|
23006
24568
|
|
|
@@ -23022,64 +24584,121 @@ Built with \u2764\uFE0F using Bun monorepo features
|
|
|
23022
24584
|
await writeFile(join(projectPath, "tsconfig.json"), JSON.stringify(tsconfigContent, null, 2));
|
|
23023
24585
|
}
|
|
23024
24586
|
// src/commands/init.real.ts
|
|
23025
|
-
|
|
23026
|
-
const
|
|
23027
|
-
|
|
23028
|
-
|
|
23029
|
-
|
|
23030
|
-
|
|
23031
|
-
|
|
23032
|
-
|
|
24587
|
+
function getOptionValue(envVar, option, defaultValue) {
|
|
24588
|
+
const envValue = process.env[envVar];
|
|
24589
|
+
if (envValue !== undefined) {
|
|
24590
|
+
if (envValue === "true")
|
|
24591
|
+
return true;
|
|
24592
|
+
if (envValue === "false")
|
|
24593
|
+
return false;
|
|
24594
|
+
return envValue;
|
|
24595
|
+
}
|
|
24596
|
+
return option ?? defaultValue;
|
|
24597
|
+
}
|
|
24598
|
+
async function initCommand(options = {}) {
|
|
24599
|
+
const isNonInteractive = process.env.BUNKIT_NON_INTERACTIVE === "true" || options.nonInteractive === true;
|
|
24600
|
+
let projectName = getOptionValue("BUNKIT_PROJECT_NAME", options.name);
|
|
24601
|
+
if (!projectName) {
|
|
24602
|
+
if (isNonInteractive) {
|
|
24603
|
+
throw new Error("Project name is required in non-interactive mode. " + "Provide it via BUNKIT_PROJECT_NAME env var or --name flag.");
|
|
24604
|
+
}
|
|
24605
|
+
projectName = await he({
|
|
24606
|
+
message: "\uD83D\uDCE6 What is your project named?",
|
|
24607
|
+
placeholder: "my-awesome-project",
|
|
24608
|
+
validate: (value) => {
|
|
24609
|
+
const result = validateProjectName(value);
|
|
24610
|
+
if (!result.valid)
|
|
24611
|
+
return result.error;
|
|
24612
|
+
}
|
|
24613
|
+
});
|
|
24614
|
+
if (pD(projectName)) {
|
|
24615
|
+
xe("Operation cancelled.");
|
|
24616
|
+
process.exit(0);
|
|
23033
24617
|
}
|
|
23034
|
-
}
|
|
23035
|
-
|
|
23036
|
-
|
|
23037
|
-
|
|
23038
|
-
|
|
23039
|
-
|
|
23040
|
-
|
|
23041
|
-
|
|
23042
|
-
|
|
23043
|
-
|
|
23044
|
-
|
|
23045
|
-
|
|
23046
|
-
|
|
23047
|
-
|
|
23048
|
-
|
|
23049
|
-
|
|
23050
|
-
|
|
23051
|
-
|
|
23052
|
-
|
|
23053
|
-
|
|
23054
|
-
|
|
23055
|
-
|
|
23056
|
-
|
|
23057
|
-
|
|
23058
|
-
|
|
23059
|
-
|
|
23060
|
-
|
|
24618
|
+
} else {
|
|
24619
|
+
const result = validateProjectName(projectName);
|
|
24620
|
+
if (!result.valid) {
|
|
24621
|
+
throw new Error(`Invalid project name: ${result.error}`);
|
|
24622
|
+
}
|
|
24623
|
+
}
|
|
24624
|
+
let preset = getOptionValue("BUNKIT_PRESET", options.preset);
|
|
24625
|
+
if (!preset) {
|
|
24626
|
+
if (isNonInteractive) {
|
|
24627
|
+
throw new Error("Preset is required in non-interactive mode. " + "Provide it via BUNKIT_PRESET env var or --preset flag. " + "Valid values: minimal, web, api, full");
|
|
24628
|
+
}
|
|
24629
|
+
preset = await ve({
|
|
24630
|
+
message: "\uD83C\uDFA8 Which preset would you like?",
|
|
24631
|
+
options: [
|
|
24632
|
+
{
|
|
24633
|
+
value: "minimal",
|
|
24634
|
+
label: "\u26A1 Minimal",
|
|
24635
|
+
hint: "Single repo, clean start"
|
|
24636
|
+
},
|
|
24637
|
+
{
|
|
24638
|
+
value: "web",
|
|
24639
|
+
label: "\uD83C\uDF10 Web",
|
|
24640
|
+
hint: "Next.js 16 + React 19"
|
|
24641
|
+
},
|
|
24642
|
+
{
|
|
24643
|
+
value: "api",
|
|
24644
|
+
label: "\uD83D\uDE80 API",
|
|
24645
|
+
hint: "Hono + Bun.serve()"
|
|
24646
|
+
},
|
|
24647
|
+
{
|
|
24648
|
+
value: "full",
|
|
24649
|
+
label: "\uD83D\uDCE6 Full-stack",
|
|
24650
|
+
hint: "Monorepo with everything"
|
|
24651
|
+
}
|
|
24652
|
+
]
|
|
24653
|
+
});
|
|
24654
|
+
if (pD(preset)) {
|
|
24655
|
+
xe("Operation cancelled.");
|
|
24656
|
+
process.exit(0);
|
|
24657
|
+
}
|
|
24658
|
+
} else {
|
|
24659
|
+
const validPresets = ["minimal", "web", "api", "full"];
|
|
24660
|
+
if (!validPresets.includes(preset)) {
|
|
24661
|
+
throw new Error(`Invalid preset: ${preset}. Valid values: ${validPresets.join(", ")}`);
|
|
24662
|
+
}
|
|
24663
|
+
}
|
|
24664
|
+
let shouldInstall = getOptionValue("BUNKIT_INSTALL", options.install, true);
|
|
24665
|
+
if (shouldInstall === undefined) {
|
|
24666
|
+
if (isNonInteractive) {
|
|
24667
|
+
shouldInstall = true;
|
|
24668
|
+
} else {
|
|
24669
|
+
shouldInstall = await ye({
|
|
24670
|
+
message: "\uD83D\uDCE5 Install dependencies?",
|
|
24671
|
+
initialValue: true
|
|
24672
|
+
});
|
|
24673
|
+
if (pD(shouldInstall)) {
|
|
24674
|
+
xe("Operation cancelled.");
|
|
24675
|
+
process.exit(0);
|
|
23061
24676
|
}
|
|
23062
|
-
|
|
23063
|
-
});
|
|
23064
|
-
if (pD(preset)) {
|
|
23065
|
-
xe("Operation cancelled.");
|
|
23066
|
-
process.exit(0);
|
|
24677
|
+
}
|
|
23067
24678
|
}
|
|
23068
|
-
|
|
23069
|
-
|
|
23070
|
-
|
|
23071
|
-
|
|
23072
|
-
|
|
23073
|
-
|
|
23074
|
-
|
|
24679
|
+
let shouldInitGit = getOptionValue("BUNKIT_GIT", options.git, true);
|
|
24680
|
+
if (shouldInitGit === undefined) {
|
|
24681
|
+
if (isNonInteractive) {
|
|
24682
|
+
shouldInitGit = true;
|
|
24683
|
+
} else {
|
|
24684
|
+
shouldInitGit = await ye({
|
|
24685
|
+
message: "\uD83D\uDD27 Initialize git repository?",
|
|
24686
|
+
initialValue: true
|
|
24687
|
+
});
|
|
24688
|
+
if (pD(shouldInitGit)) {
|
|
24689
|
+
xe("Operation cancelled.");
|
|
24690
|
+
process.exit(0);
|
|
24691
|
+
}
|
|
24692
|
+
}
|
|
23075
24693
|
}
|
|
23076
|
-
|
|
23077
|
-
|
|
23078
|
-
|
|
23079
|
-
});
|
|
23080
|
-
|
|
23081
|
-
|
|
23082
|
-
|
|
24694
|
+
if (isNonInteractive) {
|
|
24695
|
+
console.log(`
|
|
24696
|
+
\uD83D\uDCCB Configuration:`);
|
|
24697
|
+
console.log(` Project: ${import_picocolors4.default.cyan(projectName)}`);
|
|
24698
|
+
console.log(` Preset: ${import_picocolors4.default.cyan(preset)}`);
|
|
24699
|
+
console.log(` Install dependencies: ${import_picocolors4.default.cyan(shouldInstall ? "yes" : "no")}`);
|
|
24700
|
+
console.log(` Initialize git: ${import_picocolors4.default.cyan(shouldInitGit ? "yes" : "no")}`);
|
|
24701
|
+
console.log("");
|
|
23083
24702
|
}
|
|
23084
24703
|
const s = Y2();
|
|
23085
24704
|
s.start("\uD83D\uDD28 Creating project structure...");
|
|
@@ -23137,22 +24756,30 @@ async function initCommand() {
|
|
|
23137
24756
|
return "\uD83C\uDF5E";
|
|
23138
24757
|
}
|
|
23139
24758
|
};
|
|
23140
|
-
|
|
23141
|
-
`${
|
|
23142
|
-
shouldInstall ? "" : `${
|
|
23143
|
-
`${
|
|
24759
|
+
const nextSteps = [
|
|
24760
|
+
`${source_default.cyan("cd")} ${projectName}`,
|
|
24761
|
+
shouldInstall ? "" : `${source_default.cyan("bun install")}`,
|
|
24762
|
+
`${source_default.cyan(getDevCommand())} ${source_default.dim("# Start development")}`
|
|
23144
24763
|
].filter(Boolean).join(`
|
|
23145
|
-
`)
|
|
24764
|
+
`);
|
|
24765
|
+
console.log(`
|
|
24766
|
+
` + boxen(nextSteps, {
|
|
24767
|
+
padding: 1,
|
|
24768
|
+
title: `${getPresetEmoji()} Next steps`,
|
|
24769
|
+
titleAlignment: "left",
|
|
24770
|
+
borderColor: "cyan",
|
|
24771
|
+
borderStyle: "round"
|
|
24772
|
+
}));
|
|
23146
24773
|
} catch (error) {
|
|
23147
24774
|
s.stop("\u274C Failed to create project");
|
|
23148
|
-
xe(`${
|
|
24775
|
+
xe(`${import_picocolors4.default.red("Error:")} ${error.message}`);
|
|
23149
24776
|
process.exit(1);
|
|
23150
24777
|
}
|
|
23151
24778
|
}
|
|
23152
24779
|
function getDependenciesForPreset(preset) {
|
|
23153
24780
|
switch (preset) {
|
|
23154
24781
|
case "web":
|
|
23155
|
-
return ["react@19.1.0", "react-dom@19.1.0", "next@
|
|
24782
|
+
return ["react@19.1.0", "react-dom@19.1.0", "next@16.0.0", "tailwindcss@4.1.7"];
|
|
23156
24783
|
case "api":
|
|
23157
24784
|
return ["hono@4.7.12"];
|
|
23158
24785
|
case "full":
|
|
@@ -23168,8 +24795,19 @@ async function createCommand2(preset, name, options) {
|
|
|
23168
24795
|
s.start(`Creating ${preset} project: ${name}`);
|
|
23169
24796
|
await new Promise((resolve2) => setTimeout(resolve2, 1500));
|
|
23170
24797
|
s.stop(`Project ${name} created!`);
|
|
23171
|
-
|
|
23172
|
-
|
|
24798
|
+
const nextSteps = [
|
|
24799
|
+
`${source_default.cyan("cd")} ${name}`,
|
|
24800
|
+
source_default.cyan(preset === "web" ? "bun dev" : "bun run dev")
|
|
24801
|
+
].join(`
|
|
24802
|
+
`);
|
|
24803
|
+
console.log(`
|
|
24804
|
+
` + boxen(nextSteps, {
|
|
24805
|
+
padding: 1,
|
|
24806
|
+
title: "\uD83D\uDCCB Next steps",
|
|
24807
|
+
titleAlignment: "left",
|
|
24808
|
+
borderColor: "cyan",
|
|
24809
|
+
borderStyle: "round"
|
|
24810
|
+
}));
|
|
23173
24811
|
}
|
|
23174
24812
|
|
|
23175
24813
|
// src/commands/add.ts
|
|
@@ -23186,14 +24824,14 @@ var packageJson = await Bun.file(new URL("../package.json", import.meta.url)).js
|
|
|
23186
24824
|
var VERSION = packageJson.version;
|
|
23187
24825
|
var program2 = new Command;
|
|
23188
24826
|
program2.name("bunkit").description("Bake production-ready apps in seconds").version(VERSION);
|
|
23189
|
-
program2.command("init").description("Create a new project interactively").action(async () => {
|
|
24827
|
+
program2.command("init").description("Create a new project interactively").option("--name <name>", "Project name").option("--preset <preset>", "Preset type (minimal, web, api, full)").option("--no-git", "Skip git initialization").option("--no-install", "Skip dependency installation").option("--non-interactive", "Run without prompts (requires all options)").action(async (options) => {
|
|
23190
24828
|
showBanner(VERSION);
|
|
23191
24829
|
try {
|
|
23192
|
-
await initCommand();
|
|
23193
|
-
Se(
|
|
24830
|
+
await initCommand(options);
|
|
24831
|
+
Se(import_picocolors5.default.green("\u2728 Done! Your project is ready to bake! \uD83C\uDF5E"));
|
|
23194
24832
|
} catch (error) {
|
|
23195
24833
|
M2.error(error.message);
|
|
23196
|
-
Se(
|
|
24834
|
+
Se(import_picocolors5.default.red("\u274C Project creation failed"));
|
|
23197
24835
|
process.exit(1);
|
|
23198
24836
|
}
|
|
23199
24837
|
});
|
|
@@ -23201,10 +24839,10 @@ program2.command("create").argument("<preset>", "Preset type (minimal, web, api,
|
|
|
23201
24839
|
showBanner(VERSION);
|
|
23202
24840
|
try {
|
|
23203
24841
|
await createCommand2(preset, name, options);
|
|
23204
|
-
Se(
|
|
24842
|
+
Se(import_picocolors5.default.green("\u2728 Done! Your project is ready to bake! \uD83C\uDF5E"));
|
|
23205
24843
|
} catch (error) {
|
|
23206
24844
|
M2.error(error.message);
|
|
23207
|
-
Se(
|
|
24845
|
+
Se(import_picocolors5.default.red("\u274C Project creation failed"));
|
|
23208
24846
|
process.exit(1);
|
|
23209
24847
|
}
|
|
23210
24848
|
});
|
|
@@ -23212,10 +24850,10 @@ program2.command("add").argument("<feature>", "Feature to add (auth, database, u
|
|
|
23212
24850
|
showBanner(VERSION);
|
|
23213
24851
|
try {
|
|
23214
24852
|
await addCommand(feature, options);
|
|
23215
|
-
Se(
|
|
24853
|
+
Se(import_picocolors5.default.green("\u2728 Feature added successfully! \uD83C\uDF5E"));
|
|
23216
24854
|
} catch (error) {
|
|
23217
24855
|
M2.error(error.message);
|
|
23218
|
-
Se(
|
|
24856
|
+
Se(import_picocolors5.default.red("\u274C Feature installation failed"));
|
|
23219
24857
|
process.exit(1);
|
|
23220
24858
|
}
|
|
23221
24859
|
});
|