@akonwi/kit 0.12.2 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/kit CHANGED
Binary file
@@ -3254,11 +3254,48 @@ import { mkdir as mkdir3 } from "fs/promises";
3254
3254
  import * as path2 from "path";
3255
3255
  import { mkdir, readFile, writeFile } from "fs/promises";
3256
3256
  import * as path from "path";
3257
- import { isMainThread } from "worker_threads";
3258
3257
  import { basename as basename2, join as join22 } from "path";
3258
+ import { existsSync } from "fs";
3259
3259
  import { mkdir as mkdir2, writeFile as writeFileNode } from "fs/promises";
3260
3260
  import { dirname as dirname2, isAbsolute, resolve } from "path";
3261
3261
  import { fileURLToPath } from "url";
3262
+ var __create2 = Object.create;
3263
+ var __getProtoOf2 = Object.getPrototypeOf;
3264
+ var __defProp3 = Object.defineProperty;
3265
+ var __getOwnPropNames2 = Object.getOwnPropertyNames;
3266
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
3267
+ function __accessProp2(key) {
3268
+ return this[key];
3269
+ }
3270
+ var __toESMCache_node2;
3271
+ var __toESMCache_esm2;
3272
+ var __toESM2 = (mod, isNodeMode, target) => {
3273
+ var canCache = mod != null && typeof mod === "object";
3274
+ if (canCache) {
3275
+ var cache = isNodeMode ? __toESMCache_node2 ??= new WeakMap : __toESMCache_esm2 ??= new WeakMap;
3276
+ var cached = cache.get(mod);
3277
+ if (cached)
3278
+ return cached;
3279
+ }
3280
+ target = mod != null ? __create2(__getProtoOf2(mod)) : {};
3281
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp3(target, "default", { value: mod, enumerable: true }) : target;
3282
+ for (let key of __getOwnPropNames2(mod))
3283
+ if (!__hasOwnProp2.call(to, key))
3284
+ __defProp3(to, key, {
3285
+ get: __accessProp2.bind(mod, key),
3286
+ enumerable: true
3287
+ });
3288
+ if (canCache)
3289
+ cache.set(mod, to);
3290
+ return to;
3291
+ };
3292
+ var __commonJS2 = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
3293
+ var require_emoji_regex = __commonJS2((exports, module2) => {
3294
+ module2.exports = () => {
3295
+ 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;
3296
+ };
3297
+ });
3298
+
3262
3299
  class DownloadUtils {
3263
3300
  static hashUrl(url) {
3264
3301
  let hash = 0;
@@ -3406,9 +3443,7 @@ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
3406
3443
  }
3407
3444
  return 1;
3408
3445
  }
3409
- var emoji_regex_default = () => {
3410
- 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;
3411
- };
3446
+ var import_emoji_regex = __toESM2(require_emoji_regex(), 1);
3412
3447
  var segmenter = new Intl.Segmenter;
3413
3448
  var defaultIgnorableCodePointRegex = /^\p{Default_Ignorable_Code_Point}$/u;
3414
3449
  function stringWidth(string, options = {}) {
@@ -3447,7 +3482,7 @@ function stringWidth(string, options = {}) {
3447
3482
  if (defaultIgnorableCodePointRegex.test(character)) {
3448
3483
  continue;
3449
3484
  }
3450
- if (emoji_regex_default().test(character)) {
3485
+ if (import_emoji_regex.default().test(character)) {
3451
3486
  width += 2;
3452
3487
  continue;
3453
3488
  }
@@ -3463,17 +3498,43 @@ var stripANSI = bun?.stripANSI ?? stripAnsi;
3463
3498
  var writeFile2 = bun?.write ?? writeFilePortable;
3464
3499
  async function resolveBundledFilePath(loadBundledFile, fallbackPath, metaUrl) {
3465
3500
  if (!bun) {
3466
- const path22 = typeof fallbackPath === "function" ? fallbackPath() : fallbackPath;
3467
- return fileURLToPath(path22 instanceof URL ? path22 : new URL(path22, metaUrl));
3501
+ const path22 = resolveFallbackFilePath(fallbackPath, metaUrl);
3502
+ if (existsSync(path22)) {
3503
+ return path22;
3504
+ }
3505
+ return await loadBundledFilePath(loadBundledFile, metaUrl) ?? path22;
3468
3506
  }
3469
- const loadedPath = (await loadBundledFile()).default;
3507
+ return normalizeLoadedFilePath((await loadBundledFile()).default, metaUrl);
3508
+ }
3509
+ function resolveFallbackFilePath(fallbackPath, metaUrl) {
3510
+ const path22 = typeof fallbackPath === "function" ? fallbackPath() : fallbackPath;
3511
+ return fileURLToPath(path22 instanceof URL ? path22 : new URL(path22, metaUrl));
3512
+ }
3513
+ function normalizeLoadedFilePath(loadedPath, baseUrl) {
3470
3514
  if (loadedPath.startsWith("file:")) {
3471
3515
  return fileURLToPath(loadedPath);
3472
3516
  }
3473
3517
  if (isAbsolute(loadedPath)) {
3474
3518
  return loadedPath;
3475
3519
  }
3476
- return resolve(dirname2(fileURLToPath(metaUrl)), loadedPath);
3520
+ return resolve(dirname2(fileURLToPath(baseUrl)), loadedPath);
3521
+ }
3522
+ async function loadBundledFilePath(loadBundledFile, metaUrl) {
3523
+ const specifier = extractBundledImportSpecifier(loadBundledFile);
3524
+ if (!specifier) {
3525
+ return;
3526
+ }
3527
+ try {
3528
+ const moduleUrl = new URL(specifier, metaUrl);
3529
+ const loaded = await import(moduleUrl.href);
3530
+ return normalizeLoadedFilePath(loaded.default, moduleUrl.href);
3531
+ } catch {
3532
+ return;
3533
+ }
3534
+ }
3535
+ function extractBundledImportSpecifier(loadBundledFile) {
3536
+ const match = String(loadBundledFile).match(/\bimport\(\s*(["'`])([^"'`]+)\1/);
3537
+ return match?.[2];
3477
3538
  }
3478
3539
  function standardSleep(msOrDate) {
3479
3540
  const ms = msOrDate instanceof Date ? msOrDate.getTime() - Date.now() : msOrDate;
@@ -3488,7 +3549,269 @@ async function writeFilePortable(destination, data, options) {
3488
3549
  await writeFileNode(destinationPath, bytes, { mode: options?.mode });
3489
3550
  return bytes.byteLength;
3490
3551
  }
3491
- var self2 = globalThis;
3552
+ var WORKER_UNAVAILABLE = "OpenTUI tree-sitter workers are not available for this runtime yet.";
3553
+ var globalWithWorker = globalThis;
3554
+ var nodeWorkerThreads = getBuiltinModule("node:worker_threads");
3555
+ var runtimeBridge = loadWorkerRuntime(nodeWorkerThreads);
3556
+
3557
+ class UnsupportedWorker {
3558
+ onmessage = null;
3559
+ onerror = null;
3560
+ constructor() {
3561
+ throw new Error(WORKER_UNAVAILABLE);
3562
+ }
3563
+ postMessage() {
3564
+ throw new Error(WORKER_UNAVAILABLE);
3565
+ }
3566
+ terminate() {
3567
+ throw new Error(WORKER_UNAVAILABLE);
3568
+ }
3569
+ addEventListener() {
3570
+ throw new Error(WORKER_UNAVAILABLE);
3571
+ }
3572
+ removeEventListener() {
3573
+ throw new Error(WORKER_UNAVAILABLE);
3574
+ }
3575
+ }
3576
+ var Worker = loadWorkerConstructor();
3577
+ var isWorkerRuntime = runtimeBridge !== undefined;
3578
+ function postWorkerMessage(value) {
3579
+ if (!runtimeBridge) {
3580
+ throw new Error(WORKER_UNAVAILABLE);
3581
+ }
3582
+ runtimeBridge.postMessage(value);
3583
+ }
3584
+ function setWorkerMessageHandler(handler) {
3585
+ if (!runtimeBridge) {
3586
+ throw new Error(WORKER_UNAVAILABLE);
3587
+ }
3588
+ return runtimeBridge.setMessageHandler(handler);
3589
+ }
3590
+ function getBuiltinModule(id) {
3591
+ if (typeof process === "undefined") {
3592
+ return;
3593
+ }
3594
+ const loader = process.getBuiltinModule;
3595
+ if (typeof loader !== "function") {
3596
+ return;
3597
+ }
3598
+ try {
3599
+ return loader(id);
3600
+ } catch {
3601
+ return;
3602
+ }
3603
+ }
3604
+ function loadWorkerConstructor() {
3605
+ if (typeof globalWithWorker.Worker === "function") {
3606
+ return globalWithWorker.Worker;
3607
+ }
3608
+ if (nodeWorkerThreads) {
3609
+ return createNodeWorkerConstructor(nodeWorkerThreads);
3610
+ }
3611
+ return UnsupportedWorker;
3612
+ }
3613
+ function createNodeWorkerConstructor(node) {
3614
+ return class NodeWorkerShim {
3615
+ onmessage = null;
3616
+ onerror = null;
3617
+ errorListeners = new Set;
3618
+ messageListeners = new Set;
3619
+ worker;
3620
+ terminationPromise;
3621
+ constructor(specifier, options = {}) {
3622
+ const resolvedSpecifier = resolveWorkerImportSpecifier(specifier);
3623
+ this.worker = new node.Worker(createWorkerBootstrapSource(resolvedSpecifier), {
3624
+ eval: true,
3625
+ type: "module",
3626
+ name: options.name
3627
+ });
3628
+ this.worker.on("message", this.handleMessage);
3629
+ this.worker.on("error", this.handleError);
3630
+ }
3631
+ postMessage(value) {
3632
+ this.worker.postMessage(value);
3633
+ }
3634
+ terminate() {
3635
+ if (this.terminationPromise) {
3636
+ return this.terminationPromise;
3637
+ }
3638
+ this.worker.off("message", this.handleMessage);
3639
+ this.worker.off("error", this.handleError);
3640
+ const termination = this.worker.terminate().catch((error) => {
3641
+ this.terminationPromise = undefined;
3642
+ this.worker.on("message", this.handleMessage);
3643
+ this.worker.on("error", this.handleError);
3644
+ throw error;
3645
+ });
3646
+ this.terminationPromise = termination;
3647
+ return termination;
3648
+ }
3649
+ addEventListener(type, listener) {
3650
+ if (type === "message") {
3651
+ this.messageListeners.add(listener);
3652
+ return;
3653
+ }
3654
+ this.errorListeners.add(listener);
3655
+ }
3656
+ removeEventListener(type, listener) {
3657
+ if (type === "message") {
3658
+ this.messageListeners.delete(listener);
3659
+ return;
3660
+ }
3661
+ this.errorListeners.delete(listener);
3662
+ }
3663
+ handleMessage = (data) => {
3664
+ const event = { data };
3665
+ this.onmessage?.(event);
3666
+ for (const listener of this.messageListeners) {
3667
+ listener(event);
3668
+ }
3669
+ };
3670
+ handleError = (error) => {
3671
+ const event = {
3672
+ error,
3673
+ message: error.message
3674
+ };
3675
+ this.onerror?.(event);
3676
+ for (const listener of this.errorListeners) {
3677
+ listener(event);
3678
+ }
3679
+ };
3680
+ };
3681
+ }
3682
+ function createWorkerBootstrapSource(specifier) {
3683
+ return `
3684
+ import { parentPort } from "node:worker_threads"
3685
+
3686
+ const pendingMessages = []
3687
+ let messageHandler = null
3688
+
3689
+ globalThis.self ??= globalThis
3690
+ globalThis.postMessage ??= (value) => parentPort?.postMessage(value)
3691
+ globalThis.__opentuiWorkerMessageBridge = true
3692
+ Object.defineProperty(globalThis, "onmessage", {
3693
+ configurable: true,
3694
+ get: () => messageHandler,
3695
+ set: (handler) => {
3696
+ messageHandler = typeof handler === "function" ? handler : null
3697
+ if (!messageHandler) return
3698
+
3699
+ const messages = pendingMessages.splice(0)
3700
+ for (const data of messages) {
3701
+ messageHandler({ data })
3702
+ }
3703
+ },
3704
+ })
3705
+ parentPort?.on("message", (data) => {
3706
+ if (messageHandler) {
3707
+ messageHandler({ data })
3708
+ } else {
3709
+ pendingMessages.push(data)
3710
+ }
3711
+ })
3712
+
3713
+ await import(${JSON.stringify(specifier)})
3714
+ `;
3715
+ }
3716
+ function resolveWorkerImportSpecifier(specifier) {
3717
+ if (specifier instanceof URL) {
3718
+ return specifier.href;
3719
+ }
3720
+ if (isRuntimeSpecifier(specifier)) {
3721
+ return specifier;
3722
+ }
3723
+ const nodePath2 = getBuiltinModule("node:path");
3724
+ const nodeUrl = getBuiltinModule("node:url");
3725
+ if (!nodePath2 || !nodeUrl) {
3726
+ throw new Error(WORKER_UNAVAILABLE);
3727
+ }
3728
+ const absolutePath = nodePath2.isAbsolute(specifier) ? specifier : nodePath2.resolve(specifier);
3729
+ return nodeUrl.pathToFileURL(absolutePath).href;
3730
+ }
3731
+ function isRuntimeSpecifier(specifier) {
3732
+ return specifier.startsWith("file:") || specifier.startsWith("data:") || specifier.startsWith("node:") || specifier.startsWith("http:") || specifier.startsWith("https:");
3733
+ }
3734
+ function loadWorkerRuntime(node) {
3735
+ if (node?.parentPort && node.isMainThread === false) {
3736
+ if (globalWithWorker.__opentuiWorkerMessageBridge) {
3737
+ return createGlobalWorkerRuntimeBridge();
3738
+ }
3739
+ return {
3740
+ postMessage(value) {
3741
+ node.parentPort?.postMessage(value);
3742
+ },
3743
+ setMessageHandler(handler) {
3744
+ const listener = (data) => {
3745
+ handler({ data });
3746
+ };
3747
+ node.parentPort?.on("message", listener);
3748
+ return () => {
3749
+ node.parentPort?.off("message", listener);
3750
+ };
3751
+ }
3752
+ };
3753
+ }
3754
+ if (!isGlobalWorkerRuntime()) {
3755
+ return;
3756
+ }
3757
+ return createGlobalWorkerRuntimeBridge();
3758
+ }
3759
+ function createGlobalWorkerRuntimeBridge() {
3760
+ let currentRegistration;
3761
+ return {
3762
+ postMessage(value) {
3763
+ globalWithWorker.postMessage?.(value);
3764
+ },
3765
+ setMessageHandler(handler) {
3766
+ const previousHandler = getGlobalWorkerMessageHandler();
3767
+ if (currentRegistration && previousHandler !== currentRegistration.listener) {
3768
+ currentRegistration = undefined;
3769
+ }
3770
+ const listener = (event) => {
3771
+ const normalizedEvent = normalizeWorkerMessageEvent(event);
3772
+ handler(normalizedEvent);
3773
+ };
3774
+ const registration = {
3775
+ active: true,
3776
+ fallbackHandler: currentRegistration ? currentRegistration.fallbackHandler : previousHandler,
3777
+ listener,
3778
+ previous: currentRegistration
3779
+ };
3780
+ currentRegistration = registration;
3781
+ setGlobalWorkerMessageHandler(listener);
3782
+ return () => {
3783
+ registration.active = false;
3784
+ if (currentRegistration !== registration || getGlobalWorkerMessageHandler() !== listener) {
3785
+ return;
3786
+ }
3787
+ let previous = registration.previous;
3788
+ while (previous && !previous.active) {
3789
+ previous = previous.previous;
3790
+ }
3791
+ currentRegistration = previous;
3792
+ setGlobalWorkerMessageHandler(previous?.listener ?? registration.fallbackHandler);
3793
+ };
3794
+ }
3795
+ };
3796
+ }
3797
+ function isGlobalWorkerRuntime() {
3798
+ if (typeof globalWithWorker.postMessage !== "function") {
3799
+ return false;
3800
+ }
3801
+ return typeof document === "undefined" && typeof globalWithWorker.close === "function" && "onmessage" in globalThis;
3802
+ }
3803
+ function normalizeWorkerMessageEvent(event) {
3804
+ if (event && typeof event === "object" && "data" in event) {
3805
+ return event;
3806
+ }
3807
+ return { data: event };
3808
+ }
3809
+ function getGlobalWorkerMessageHandler() {
3810
+ return globalThis.onmessage ?? null;
3811
+ }
3812
+ function setGlobalWorkerMessageHandler(handler) {
3813
+ globalThis.onmessage = handler;
3814
+ }
3492
3815
 
3493
3816
  class ParserWorker {
3494
3817
  bufferParsers = new Map;
@@ -3699,7 +4022,7 @@ class ParserWorker {
3699
4022
  async handleInitializeParser(bufferId, version, content, filetype, messageId) {
3700
4023
  const filetypeParser = await this.resolveFiletypeParser(filetype);
3701
4024
  if (!filetypeParser) {
3702
- self2.postMessage({
4025
+ postWorkerMessage({
3703
4026
  type: "PARSER_INIT_RESPONSE",
3704
4027
  bufferId,
3705
4028
  messageId,
@@ -3712,7 +4035,7 @@ class ParserWorker {
3712
4035
  parser.setLanguage(filetypeParser.language);
3713
4036
  const tree = parser.parse(content);
3714
4037
  if (!tree) {
3715
- self2.postMessage({
4038
+ postWorkerMessage({
3716
4039
  type: "PARSER_INIT_RESPONSE",
3717
4040
  bufferId,
3718
4041
  messageId,
@@ -3730,14 +4053,14 @@ class ParserWorker {
3730
4053
  injectionMapping: filetypeParser.injectionMapping
3731
4054
  };
3732
4055
  this.bufferParsers.set(bufferId, parserState);
3733
- self2.postMessage({
4056
+ postWorkerMessage({
3734
4057
  type: "PARSER_INIT_RESPONSE",
3735
4058
  bufferId,
3736
4059
  messageId,
3737
4060
  hasParser: true
3738
4061
  });
3739
4062
  const highlights = await this.initialQuery(parserState);
3740
- self2.postMessage({
4063
+ postWorkerMessage({
3741
4064
  type: "HIGHLIGHT_RESPONSE",
3742
4065
  bufferId,
3743
4066
  version,
@@ -4059,7 +4382,7 @@ class ParserWorker {
4059
4382
  async handleOneShotHighlight(content, filetype, messageId) {
4060
4383
  const reusableState = await this.getReusableParser(filetype);
4061
4384
  if (!reusableState) {
4062
- self2.postMessage({
4385
+ postWorkerMessage({
4063
4386
  type: "ONESHOT_HIGHLIGHT_RESPONSE",
4064
4387
  messageId,
4065
4388
  hasParser: false,
@@ -4071,7 +4394,7 @@ class ParserWorker {
4071
4394
  ` : content;
4072
4395
  const tree = reusableState.parser.parse(parseContent);
4073
4396
  if (!tree) {
4074
- self2.postMessage({
4397
+ postWorkerMessage({
4075
4398
  type: "ONESHOT_HIGHLIGHT_RESPONSE",
4076
4399
  messageId,
4077
4400
  hasParser: false,
@@ -4096,7 +4419,7 @@ class ParserWorker {
4096
4419
  injectionRanges = injectionResult.injectionRanges;
4097
4420
  }
4098
4421
  const highlights = this.getSimpleHighlights(matches, injectionRanges);
4099
- self2.postMessage({
4422
+ postWorkerMessage({
4100
4423
  type: "ONESHOT_HIGHLIGHT_RESPONSE",
4101
4424
  messageId,
4102
4425
  hasParser: true,
@@ -4135,81 +4458,132 @@ class ParserWorker {
4135
4458
  }
4136
4459
  }
4137
4460
  }
4138
- if (!isMainThread) {
4139
- let logMessage = function(type, ...args2) {
4140
- self2.postMessage({
4141
- type: "WORKER_LOG",
4142
- logType: type,
4143
- data: args2
4144
- });
4145
- };
4461
+ function logMessage(type, ...args2) {
4462
+ postWorkerMessage({
4463
+ type: "WORKER_LOG",
4464
+ logType: type,
4465
+ data: args2
4466
+ });
4467
+ }
4468
+ function postWorkerError(bufferId, error) {
4469
+ postWorkerMessage({
4470
+ type: "ERROR",
4471
+ bufferId,
4472
+ error: error instanceof Error ? error.stack || error.message : String(error)
4473
+ });
4474
+ }
4475
+ if (isWorkerRuntime) {
4146
4476
  const worker = new ParserWorker;
4147
4477
  console.log = (...args2) => logMessage("log", ...args2);
4148
4478
  console.error = (...args2) => logMessage("error", ...args2);
4149
4479
  console.warn = (...args2) => logMessage("warn", ...args2);
4150
- self2.onmessage = async (e) => {
4151
- const { type, bufferId, version, content, filetype, edits, filetypeParser, messageId, dataPath } = e.data;
4480
+ setWorkerMessageHandler(async (event) => {
4481
+ const message = event.data;
4482
+ const messageType = String(event.data.type ?? "unknown");
4152
4483
  try {
4153
- switch (type) {
4484
+ switch (message.type) {
4154
4485
  case "INIT":
4155
4486
  try {
4156
- await worker.initialize({ dataPath });
4157
- self2.postMessage({ type: "INIT_RESPONSE" });
4487
+ await worker.initialize({ dataPath: message.dataPath });
4488
+ postWorkerMessage({ type: "INIT_RESPONSE" });
4158
4489
  } catch (error) {
4159
- self2.postMessage({
4490
+ postWorkerMessage({
4160
4491
  type: "INIT_RESPONSE",
4161
4492
  error: error instanceof Error ? error.stack || error.message : String(error)
4162
4493
  });
4163
4494
  }
4164
4495
  break;
4165
4496
  case "ADD_FILETYPE_PARSER":
4166
- worker.addFiletypeParser(filetypeParser);
4497
+ worker.addFiletypeParser(message.filetypeParser);
4167
4498
  break;
4168
- case "PRELOAD_PARSER":
4169
- const maybeParser = await worker.preloadParser(filetype);
4170
- self2.postMessage({ type: "PRELOAD_PARSER_RESPONSE", messageId, hasParser: !!maybeParser });
4499
+ case "PRELOAD_PARSER": {
4500
+ const maybeParser = await worker.preloadParser(message.filetype);
4501
+ postWorkerMessage({
4502
+ type: "PRELOAD_PARSER_RESPONSE",
4503
+ messageId: message.messageId,
4504
+ hasParser: !!maybeParser
4505
+ });
4171
4506
  break;
4507
+ }
4172
4508
  case "INITIALIZE_PARSER":
4173
- await worker.handleInitializeParser(bufferId, version, content, filetype, messageId);
4509
+ await worker.handleInitializeParser(message.bufferId, message.version, message.content, message.filetype, message.messageId);
4174
4510
  break;
4175
- case "HANDLE_EDITS":
4176
- const response = await worker.handleEdits(bufferId, content, edits);
4511
+ case "HANDLE_EDITS": {
4512
+ const response = await worker.handleEdits(message.bufferId, message.content, message.edits);
4177
4513
  if (response.highlights && response.highlights.length > 0) {
4178
- self2.postMessage({ type: "HIGHLIGHT_RESPONSE", bufferId, version, ...response });
4514
+ postWorkerMessage({
4515
+ type: "HIGHLIGHT_RESPONSE",
4516
+ bufferId: message.bufferId,
4517
+ version: message.version,
4518
+ highlights: response.highlights
4519
+ });
4179
4520
  } else if (response.warning) {
4180
- self2.postMessage({ type: "WARNING", bufferId, warning: response.warning });
4521
+ postWorkerMessage({
4522
+ type: "WARNING",
4523
+ bufferId: message.bufferId,
4524
+ warning: response.warning
4525
+ });
4181
4526
  } else if (response.error) {
4182
- self2.postMessage({ type: "ERROR", bufferId, error: response.error });
4527
+ postWorkerMessage({
4528
+ type: "ERROR",
4529
+ bufferId: message.bufferId,
4530
+ error: response.error
4531
+ });
4183
4532
  }
4184
4533
  break;
4534
+ }
4185
4535
  case "GET_PERFORMANCE":
4186
- self2.postMessage({ type: "PERFORMANCE_RESPONSE", performance: worker.performance, messageId });
4536
+ postWorkerMessage({
4537
+ type: "PERFORMANCE_RESPONSE",
4538
+ performance: worker.performance,
4539
+ messageId: message.messageId
4540
+ });
4187
4541
  break;
4188
- case "RESET_BUFFER":
4189
- const resetResponse = await worker.handleResetBuffer(bufferId, version, content);
4542
+ case "RESET_BUFFER": {
4543
+ const resetResponse = await worker.handleResetBuffer(message.bufferId, message.version, message.content);
4190
4544
  if (resetResponse.highlights && resetResponse.highlights.length > 0) {
4191
- self2.postMessage({ type: "HIGHLIGHT_RESPONSE", bufferId, version, ...resetResponse });
4545
+ postWorkerMessage({
4546
+ type: "HIGHLIGHT_RESPONSE",
4547
+ bufferId: message.bufferId,
4548
+ version: message.version,
4549
+ highlights: resetResponse.highlights
4550
+ });
4192
4551
  } else if (resetResponse.warning) {
4193
- self2.postMessage({ type: "WARNING", bufferId, warning: resetResponse.warning });
4552
+ postWorkerMessage({
4553
+ type: "WARNING",
4554
+ bufferId: message.bufferId,
4555
+ warning: resetResponse.warning
4556
+ });
4194
4557
  } else if (resetResponse.error) {
4195
- self2.postMessage({ type: "ERROR", bufferId, error: resetResponse.error });
4558
+ postWorkerMessage({
4559
+ type: "ERROR",
4560
+ bufferId: message.bufferId,
4561
+ error: resetResponse.error
4562
+ });
4196
4563
  }
4197
4564
  break;
4565
+ }
4198
4566
  case "DISPOSE_BUFFER":
4199
- worker.disposeBuffer(bufferId);
4200
- self2.postMessage({ type: "BUFFER_DISPOSED", bufferId });
4567
+ worker.disposeBuffer(message.bufferId);
4568
+ postWorkerMessage({
4569
+ type: "BUFFER_DISPOSED",
4570
+ bufferId: message.bufferId
4571
+ });
4201
4572
  break;
4202
4573
  case "ONESHOT_HIGHLIGHT":
4203
- await worker.handleOneShotHighlight(content, filetype, messageId);
4574
+ await worker.handleOneShotHighlight(message.content, message.filetype, message.messageId);
4204
4575
  break;
4205
4576
  case "UPDATE_DATA_PATH":
4206
4577
  try {
4207
- await worker.updateDataPath(dataPath);
4208
- self2.postMessage({ type: "UPDATE_DATA_PATH_RESPONSE", messageId });
4578
+ await worker.updateDataPath(message.dataPath);
4579
+ postWorkerMessage({
4580
+ type: "UPDATE_DATA_PATH_RESPONSE",
4581
+ messageId: message.messageId
4582
+ });
4209
4583
  } catch (error) {
4210
- self2.postMessage({
4584
+ postWorkerMessage({
4211
4585
  type: "UPDATE_DATA_PATH_RESPONSE",
4212
- messageId,
4586
+ messageId: message.messageId,
4213
4587
  error: error instanceof Error ? error.message : String(error)
4214
4588
  });
4215
4589
  }
@@ -4217,28 +4591,30 @@ if (!isMainThread) {
4217
4591
  case "CLEAR_CACHE":
4218
4592
  try {
4219
4593
  await worker.clearCache();
4220
- self2.postMessage({ type: "CLEAR_CACHE_RESPONSE", messageId });
4594
+ postWorkerMessage({
4595
+ type: "CLEAR_CACHE_RESPONSE",
4596
+ messageId: message.messageId
4597
+ });
4221
4598
  } catch (error) {
4222
- self2.postMessage({
4599
+ postWorkerMessage({
4223
4600
  type: "CLEAR_CACHE_RESPONSE",
4224
- messageId,
4601
+ messageId: message.messageId,
4225
4602
  error: error instanceof Error ? error.message : String(error)
4226
4603
  });
4227
4604
  }
4228
4605
  break;
4229
4606
  default:
4230
- self2.postMessage({
4607
+ postWorkerMessage({
4231
4608
  type: "ERROR",
4232
- bufferId,
4233
- error: `Unknown message type: ${type}`
4609
+ error: `Unknown message type: ${messageType}`
4234
4610
  });
4235
4611
  }
4236
4612
  } catch (error) {
4237
- self2.postMessage({
4238
- type: "ERROR",
4239
- bufferId,
4240
- error: error instanceof Error ? error.stack || error.message : String(error)
4241
- });
4613
+ if ("bufferId" in message) {
4614
+ postWorkerError(message.bufferId, error);
4615
+ } else {
4616
+ postWorkerError(undefined, error);
4617
+ }
4242
4618
  }
4243
- };
4619
+ });
4244
4620
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akonwi/kit",
3
- "version": "0.12.2",
3
+ "version": "0.13.0",
4
4
  "author": "Akonwi Ngoh <akonwi@gmail.com>",
5
5
  "description": "A TUI coding agent",
6
6
  "license": "MIT",
@@ -50,12 +50,12 @@
50
50
  "typecheck": "tsc --noEmit"
51
51
  },
52
52
  "dependencies": {
53
- "@earendil-works/pi-agent-core": "^0.74.0",
54
- "@earendil-works/pi-ai": "^0.74.0",
53
+ "@earendil-works/pi-agent-core": "0.80.2",
54
+ "@earendil-works/pi-ai": "0.80.2",
55
55
  "@modelcontextprotocol/sdk": "^1.29.0",
56
- "@opentui/core": "0.2.15",
57
- "@opentui/keymap": "0.2.15",
58
- "@opentui/solid": "0.2.15",
56
+ "@opentui/core": "0.4.1",
57
+ "@opentui/keymap": "0.4.1",
58
+ "@opentui/solid": "0.4.1",
59
59
  "@pierre/diffs": "^1.1.16",
60
60
  "diff": "^9.0.0",
61
61
  "glob": "^13.0.6",