reroute-js 1.0.0-alpha.3 → 1.0.0-alpha.5

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.
Files changed (204) hide show
  1. package/cli/bin.d.ts +1 -1
  2. package/cli/bin.js +740 -671
  3. package/cli/bin.js.map +11 -11
  4. package/cli/index.d.ts +1 -1
  5. package/cli/index.js +37 -25
  6. package/cli/index.js.map +3 -3
  7. package/cli/src/cli.d.ts +1 -1
  8. package/cli/src/commands/analyze.d.ts +1 -1
  9. package/cli/src/commands/build.d.ts +1 -1
  10. package/cli/src/commands/dev.d.ts +5 -6
  11. package/cli/src/commands/dev.d.ts.map +1 -1
  12. package/cli/src/commands/gen.d.ts +4 -1
  13. package/cli/src/commands/gen.d.ts.map +1 -1
  14. package/cli/src/commands/index.d.ts +1 -1
  15. package/cli/src/commands/init.d.ts +1 -1
  16. package/cli/src/commands/lib/assets.d.ts +1 -1
  17. package/cli/src/commands/lib/bundler.d.ts +7 -1
  18. package/cli/src/commands/lib/bundler.d.ts.map +1 -1
  19. package/cli/src/commands/lib/command.d.ts +1 -1
  20. package/cli/src/commands/lib/env.d.ts +1 -1
  21. package/cli/src/commands/lib/index.d.ts +1 -1
  22. package/cli/src/commands/lib/log.d.ts +1 -1
  23. package/cli/src/commands/lib/markdown/availability.d.ts +1 -1
  24. package/cli/src/commands/lib/markdown/index.d.ts +1 -1
  25. package/cli/src/commands/lib/markdown/processor.d.ts +1 -1
  26. package/cli/src/commands/lib/production.d.ts +1 -1
  27. package/cli/src/commands/lib/server.d.ts +2 -1
  28. package/cli/src/commands/lib/server.d.ts.map +1 -1
  29. package/cli/src/commands/lib/streaming/analyzer.d.ts +1 -1
  30. package/cli/src/commands/lib/streaming/suspense.d.ts +1 -1
  31. package/cli/src/commands/lib/terminal-ui.d.ts +1 -1
  32. package/cli/src/commands/lib/theme.d.ts +1 -1
  33. package/cli/src/commands/lib/version.d.ts +1 -1
  34. package/cli/src/commands/og.d.ts +1 -1
  35. package/cli/src/commands/start.d.ts +1 -1
  36. package/cli/src/index.d.ts +1 -1
  37. package/core/index.d.ts +1 -1
  38. package/core/index.js +201 -158
  39. package/core/index.js.map +5 -5
  40. package/core/src/bundler/hash.d.ts +1 -1
  41. package/core/src/bundler/index.d.ts +1 -1
  42. package/core/src/config.d.ts +1 -1
  43. package/core/src/content/discovery.d.ts +1 -1
  44. package/core/src/content/index.d.ts +1 -1
  45. package/core/src/content/metadata.d.ts +1 -1
  46. package/core/src/i18n/catalog.d.ts +1 -1
  47. package/core/src/i18n/discover.d.ts +1 -1
  48. package/core/src/i18n/index.d.ts +1 -1
  49. package/core/src/i18n/messages.d.ts +1 -1
  50. package/core/src/i18n/negotiate.d.ts +1 -1
  51. package/core/src/i18n/pathname.d.ts +1 -1
  52. package/core/src/i18n/resolve.d.ts +1 -1
  53. package/core/src/i18n/types.d.ts +1 -1
  54. package/core/src/index.d.ts +1 -1
  55. package/core/src/llms/extractor.d.ts +1 -1
  56. package/core/src/llms/formatter.d.ts +1 -1
  57. package/core/src/llms/full-generator.d.ts +1 -1
  58. package/core/src/llms/index-generator.d.ts +1 -1
  59. package/core/src/llms/index.d.ts +1 -1
  60. package/core/src/og/discovery.d.ts +1 -1
  61. package/core/src/og/index.d.ts +1 -1
  62. package/core/src/og/meta.d.ts +1 -1
  63. package/core/src/og/render.d.ts +1 -1
  64. package/core/src/og/types.d.ts +1 -1
  65. package/core/src/robots/discovery.d.ts +1 -1
  66. package/core/src/robots/generator.d.ts +1 -1
  67. package/core/src/robots/index.d.ts +1 -1
  68. package/core/src/robots/policies.d.ts +1 -1
  69. package/core/src/rss/discovery.d.ts +1 -1
  70. package/core/src/rss/generator.d.ts +1 -1
  71. package/core/src/rss/index.d.ts +1 -1
  72. package/core/src/sitemap/discovery.d.ts +1 -1
  73. package/core/src/sitemap/generator.d.ts +1 -1
  74. package/core/src/sitemap/index.d.ts +1 -1
  75. package/core/src/ssr/index.d.ts +1 -1
  76. package/core/src/ssr/lib/cache.d.ts +1 -1
  77. package/core/src/ssr/lib/cleanup.d.ts +1 -1
  78. package/core/src/ssr/lib/collections.d.ts +1 -1
  79. package/core/src/ssr/lib/compression.d.ts +1 -1
  80. package/core/src/ssr/lib/compute/content.d.ts +1 -1
  81. package/core/src/ssr/lib/compute/index.d.ts +1 -1
  82. package/core/src/ssr/lib/compute/layouts.d.ts +1 -1
  83. package/core/src/ssr/lib/compute/routes.d.ts +1 -1
  84. package/core/src/ssr/lib/content-path.d.ts +1 -1
  85. package/core/src/ssr/lib/data.d.ts +1 -1
  86. package/core/src/ssr/lib/html.d.ts +1 -1
  87. package/core/src/ssr/lib/imports.d.ts +8 -3
  88. package/core/src/ssr/lib/imports.d.ts.map +1 -1
  89. package/core/src/ssr/lib/index.d.ts +1 -1
  90. package/core/src/ssr/lib/layouts.d.ts +1 -1
  91. package/core/src/ssr/lib/metadata.d.ts +1 -1
  92. package/core/src/ssr/lib/mime.d.ts +1 -1
  93. package/core/src/ssr/lib/modules.d.ts +1 -1
  94. package/core/src/ssr/lib/path.d.ts +1 -1
  95. package/core/src/ssr/lib/preload.d.ts +1 -1
  96. package/core/src/ssr/lib/route-match.d.ts +1 -1
  97. package/core/src/ssr/lib/scripts/collections.d.ts +1 -1
  98. package/core/src/ssr/lib/scripts/data.d.ts +1 -1
  99. package/core/src/ssr/lib/scripts/escape.d.ts +1 -1
  100. package/core/src/ssr/lib/scripts/feeds.d.ts +1 -1
  101. package/core/src/ssr/lib/scripts/index.d.ts +1 -1
  102. package/core/src/ssr/lib/seed.d.ts +6 -1
  103. package/core/src/ssr/lib/seed.d.ts.map +1 -1
  104. package/core/src/ssr/lib/serialize.d.ts +1 -1
  105. package/core/src/ssr/lib/setup.d.ts +1 -1
  106. package/core/src/ssr/lib/styles.d.ts +1 -1
  107. package/core/src/ssr/lib/template.d.ts +1 -1
  108. package/core/src/ssr/lib/types.d.ts +1 -1
  109. package/core/src/ssr/render.d.ts +1 -1
  110. package/core/src/ssr/stream.d.ts +1 -1
  111. package/elysia/index.d.ts +1 -1
  112. package/elysia/index.js +278 -209
  113. package/elysia/index.js.map +11 -10
  114. package/elysia/src/index.d.ts +1 -1
  115. package/elysia/src/libs/assets.d.ts +1 -1
  116. package/elysia/src/libs/cache.d.ts +1 -1
  117. package/elysia/src/libs/caching.d.ts +1 -1
  118. package/elysia/src/libs/http.d.ts +1 -1
  119. package/elysia/src/libs/i18n.d.ts +1 -1
  120. package/elysia/src/libs/image.d.ts +1 -1
  121. package/elysia/src/libs/index.d.ts +1 -1
  122. package/elysia/src/libs/llms.d.ts +1 -1
  123. package/elysia/src/libs/response.d.ts +1 -1
  124. package/elysia/src/libs/serving.d.ts +1 -1
  125. package/elysia/src/plugin.d.ts +1 -1
  126. package/elysia/src/plugin.d.ts.map +1 -1
  127. package/elysia/src/routes/artifacts.d.ts +1 -1
  128. package/elysia/src/routes/content.d.ts +2 -2
  129. package/elysia/src/routes/content.d.ts.map +1 -1
  130. package/elysia/src/routes/image.d.ts +1 -1
  131. package/elysia/src/routes/index.d.ts +1 -1
  132. package/elysia/src/routes/internal.d.ts +1 -1
  133. package/elysia/src/routes/internal.d.ts.map +1 -1
  134. package/elysia/src/routes/llms.d.ts +1 -1
  135. package/elysia/src/routes/og.d.ts +1 -1
  136. package/elysia/src/routes/redirects.d.ts +1 -1
  137. package/elysia/src/routes/robots.d.ts +1 -1
  138. package/elysia/src/routes/rss.d.ts +1 -1
  139. package/elysia/src/routes/search.d.ts +1 -1
  140. package/elysia/src/routes/sitemap.d.ts +1 -1
  141. package/elysia/src/routes/ssr.d.ts +1 -1
  142. package/elysia/src/routes/static.d.ts +1 -1
  143. package/elysia/src/routes/themeCssRefresh.d.ts +17 -0
  144. package/elysia/src/routes/themeCssRefresh.d.ts.map +1 -0
  145. package/elysia/src/types.d.ts +1 -1
  146. package/package.json +1 -1
  147. package/react/index.d.ts +1 -1
  148. package/react/index.js +71 -71
  149. package/react/index.js.map +1 -1
  150. package/react/src/components/ClientOnly.d.ts +1 -1
  151. package/react/src/components/ContentRoute.d.ts +1 -1
  152. package/react/src/components/Image.d.ts +1 -1
  153. package/react/src/components/LazyRoute.d.ts +1 -1
  154. package/react/src/components/Link.d.ts +1 -1
  155. package/react/src/components/Markdown.d.ts +1 -1
  156. package/react/src/components/Outlet.d.ts +1 -1
  157. package/react/src/components/index.d.ts +1 -1
  158. package/react/src/hooks/index.d.ts +1 -1
  159. package/react/src/hooks/useContent.d.ts +1 -1
  160. package/react/src/hooks/useData.d.ts +1 -1
  161. package/react/src/hooks/useFeed.d.ts +1 -1
  162. package/react/src/hooks/useLayoutData.d.ts +1 -1
  163. package/react/src/hooks/useLlms.d.ts +1 -1
  164. package/react/src/hooks/useNavigate.d.ts +1 -1
  165. package/react/src/hooks/useParams.d.ts +1 -1
  166. package/react/src/hooks/useRouter.d.ts +1 -1
  167. package/react/src/hooks/useSearch.d.ts +1 -1
  168. package/react/src/hooks/useSearchParams.d.ts +1 -1
  169. package/react/src/hooks/useToc.d.ts +1 -1
  170. package/react/src/i18n/LocaleProvider.d.ts +1 -1
  171. package/react/src/i18n/helpers.d.ts +1 -1
  172. package/react/src/i18n/index.d.ts +1 -1
  173. package/react/src/index.d.ts +1 -1
  174. package/react/src/lib/collection.d.ts +1 -1
  175. package/react/src/lib/content.d.ts +1 -1
  176. package/react/src/lib/head.d.ts +1 -1
  177. package/react/src/lib/index.d.ts +1 -1
  178. package/react/src/lib/lazy-route.d.ts +1 -1
  179. package/react/src/lib/route-loader.d.ts +1 -1
  180. package/react/src/providers/ContentProvider.d.ts +1 -1
  181. package/react/src/providers/RerouteProvider.d.ts +1 -1
  182. package/react/src/providers/RouterProvider.d.ts +1 -1
  183. package/react/src/providers/index.d.ts +1 -1
  184. package/react/src/types/any.d.ts +1 -1
  185. package/react/src/types/index.d.ts +1 -1
  186. package/react/src/types/router.d.ts +1 -1
  187. package/telemetry/react.d.ts +1 -1
  188. package/telemetry/react.js +16 -16
  189. package/telemetry/react.js.map +2 -2
  190. package/telemetry/server.d.ts +1 -1
  191. package/telemetry/server.js +28 -220
  192. package/telemetry/server.js.map +5 -4
  193. package/telemetry/src/react/api.d.ts +1 -1
  194. package/telemetry/src/react/context.d.ts +1 -1
  195. package/telemetry/src/react/index.d.ts +1 -1
  196. package/telemetry/src/react/telemetry.d.ts +1 -1
  197. package/telemetry/src/server/context.d.ts +1 -1
  198. package/telemetry/src/server/headers/extractor.d.ts +1 -1
  199. package/telemetry/src/server/headers/index.d.ts +1 -1
  200. package/telemetry/src/server/headers/presets.d.ts +1 -1
  201. package/telemetry/src/server/index.d.ts +1 -1
  202. package/telemetry/src/server/instrumentation.d.ts +1 -1
  203. package/telemetry/src/server/plugin.d.ts +1 -1
  204. package/telemetry/src/server/sourcemap.d.ts +1 -1
package/cli/bin.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
3
  /**
4
- * reroute-js v1.0.0-alpha.3
4
+ * reroute-js v1.0.0-alpha.5
5
5
  *
6
6
  * @license MIT
7
7
  * @copyright 2026 stewones <hi@stewan.io>
@@ -30,12 +30,14 @@ var __toESM = (mod, isNodeMode, target) => {
30
30
  }
31
31
  target = mod != null ? __create(__getProtoOf(mod)) : {};
32
32
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
33
- for (let key of __getOwnPropNames(mod))
34
- if (!__hasOwnProp.call(to, key))
35
- __defProp(to, key, {
36
- get: __accessProp.bind(mod, key),
37
- enumerable: true
38
- });
33
+ if (mod && typeof mod === "object" || typeof mod === "function") {
34
+ for (let key of __getOwnPropNames(mod))
35
+ if (!__hasOwnProp.call(to, key))
36
+ __defProp(to, key, {
37
+ get: __accessProp.bind(mod, key),
38
+ enumerable: true
39
+ });
40
+ }
39
41
  if (canCache)
40
42
  cache.set(mod, to);
41
43
  return to;
@@ -66,7 +68,7 @@ async function getVersionString() {
66
68
  }
67
69
  async function getVersion() {
68
70
  if (true) {
69
- return "1.0.0-alpha.3";
71
+ return "1.0.0-alpha.5";
70
72
  }
71
73
  const possiblePaths = [
72
74
  path.join(import.meta.dir, "../../../../package.json"),
@@ -84,7 +86,7 @@ async function getVersion() {
84
86
  }
85
87
  async function getCommit() {
86
88
  if (true) {
87
- return "7cf20f6";
89
+ return "403cf32";
88
90
  }
89
91
  return "dev";
90
92
  }
@@ -726,14 +728,14 @@ var init_negotiate = () => {};
726
728
  // packages/core/src/i18n/pathname.ts
727
729
  var exports_pathname = {};
728
730
  __export(exports_pathname, {
729
- toOgLocale: () => toOgLocale,
730
- parseContentPath: () => parseContentPath,
731
- normalizePathname: () => normalizePathname,
732
- looksLikeLocale: () => looksLikeLocale,
733
- localizeHref: () => localizeHref,
734
- localizeContentHref: () => localizeContentHref,
731
+ contentKey: () => contentKey,
735
732
  hreflangTags: () => hreflangTags,
736
- contentKey: () => contentKey
733
+ localizeContentHref: () => localizeContentHref,
734
+ localizeHref: () => localizeHref,
735
+ looksLikeLocale: () => looksLikeLocale,
736
+ normalizePathname: () => normalizePathname,
737
+ parseContentPath: () => parseContentPath,
738
+ toOgLocale: () => toOgLocale
737
739
  });
738
740
  function looksLikeLocale(segment) {
739
741
  return /^[a-z]{2}(?:-[A-Za-z0-9]{2,8})*$/i.test(segment);
@@ -1385,11 +1387,39 @@ function cleanupPathScopedSSRData(pathname) {
1385
1387
  }
1386
1388
 
1387
1389
  // packages/core/src/ssr/lib/imports.ts
1390
+ import { copyFile, realpath, stat as stat3, unlink } from "node:fs/promises";
1391
+ import { basename as basename2, dirname, extname as extname2, join as join4 } from "node:path";
1388
1392
  import { pathToFileURL as pathToFileURL3 } from "node:url";
1393
+ function clearWatchImportCache() {
1394
+ watchImportCache.clear();
1395
+ }
1396
+ function bustCopyPath(absolutePath) {
1397
+ const dir = dirname(absolutePath);
1398
+ const ext = extname2(absolutePath);
1399
+ const base = basename2(absolutePath, ext);
1400
+ const token = `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
1401
+ return join4(dir, `${base}.bust-${token}${ext}`);
1402
+ }
1389
1403
  async function dynamicImport(absolutePath, isWatchMode) {
1390
1404
  const href = pathToFileURL3(absolutePath).href;
1391
- const url = isWatchMode ? `${href}?t=${Date.now()}` : href;
1392
- return await import(url);
1405
+ if (!isWatchMode) {
1406
+ return await import(href);
1407
+ }
1408
+ const resolved = await realpath(absolutePath);
1409
+ const mtimeMs = (await stat3(resolved)).mtimeMs;
1410
+ const cached = watchImportCache.get(resolved);
1411
+ if (cached && cached.mtimeMs === mtimeMs) {
1412
+ return cached.mod;
1413
+ }
1414
+ const tmp = bustCopyPath(resolved);
1415
+ await copyFile(resolved, tmp);
1416
+ try {
1417
+ const mod = await import(pathToFileURL3(tmp).href);
1418
+ watchImportCache.set(resolved, { mtimeMs, mod });
1419
+ return mod;
1420
+ } finally {
1421
+ await unlink(tmp).catch(() => {});
1422
+ }
1393
1423
  }
1394
1424
  function isThenable(value) {
1395
1425
  return typeof value === "object" && value !== null && typeof value.then === "function";
@@ -1397,7 +1427,10 @@ function isThenable(value) {
1397
1427
  function toPromise(input) {
1398
1428
  return input instanceof Promise ? input : Promise.resolve(input);
1399
1429
  }
1400
- var init_imports = () => {};
1430
+ var watchImportCache;
1431
+ var init_imports = __esm(() => {
1432
+ watchImportCache = new Map;
1433
+ });
1401
1434
 
1402
1435
  // packages/core/src/ssr/lib/collections.ts
1403
1436
  async function loadCollections(cwd, isWatchMode) {
@@ -2187,7 +2220,7 @@ var init_compute = __esm(() => {
2187
2220
  });
2188
2221
 
2189
2222
  // packages/core/src/ssr/lib/modules.ts
2190
- import { readdir as readdir4, stat as stat3 } from "node:fs/promises";
2223
+ import { readdir as readdir4, stat as stat4 } from "node:fs/promises";
2191
2224
  async function importContentModuleForPath(pathname, clientDir, cwd, isWatchMode) {
2192
2225
  try {
2193
2226
  const resolved = resolveContentPathParts(pathname);
@@ -2245,7 +2278,7 @@ async function tryChunkImport(collection, name, cwd, isWatchMode) {
2245
2278
  let latestM = 0;
2246
2279
  for (const f of matches) {
2247
2280
  try {
2248
- const s = await stat3(join2(chunkDir, f));
2281
+ const s = await stat4(join2(chunkDir, f));
2249
2282
  if (s.mtimeMs >= latestM) {
2250
2283
  latestM = s.mtimeMs;
2251
2284
  latest = f;
@@ -2302,6 +2335,16 @@ function touchModule(key) {
2302
2335
  evictLRUModule();
2303
2336
  }
2304
2337
  }
2338
+ function clearSSRModuleStores() {
2339
+ const g = globalThis;
2340
+ if (g.__REROUTE_SSR_MODULES__) {
2341
+ g.__REROUTE_SSR_MODULES__ = {};
2342
+ }
2343
+ if (g.__REROUTE_SSR_EXPORTS__) {
2344
+ g.__REROUTE_SSR_EXPORTS__ = {};
2345
+ }
2346
+ moduleAccessOrder.length = 0;
2347
+ }
2305
2348
  async function seedSSRModuleForPath(pathname, clientDir, cwd, isWatchMode) {
2306
2349
  try {
2307
2350
  const resolved = resolveContentPathParts(pathname);
@@ -3286,7 +3329,7 @@ var init_metadata2 = __esm(() => {
3286
3329
  });
3287
3330
 
3288
3331
  // packages/core/src/ssr/lib/preload.ts
3289
- import { readdir as readdir6, stat as stat4 } from "node:fs/promises";
3332
+ import { readdir as readdir6, stat as stat5 } from "node:fs/promises";
3290
3333
  async function preloadContentModule(pathname, clientDir, cwd, isWatchMode) {
3291
3334
  let extraHead = "";
3292
3335
  let hydrationScript = "";
@@ -3320,14 +3363,14 @@ async function isContentCollection(clientDir, collection) {
3320
3363
  if (isProduction) {
3321
3364
  const collectionFile = join2(clientDir, "collections", `${collection}.js`);
3322
3365
  try {
3323
- const s2 = await stat4(collectionFile);
3366
+ const s2 = await stat5(collectionFile);
3324
3367
  return s2?.isFile() ?? false;
3325
3368
  } catch {
3326
3369
  return false;
3327
3370
  }
3328
3371
  }
3329
3372
  const maybeDir = join2(clientDir, "routes", collection, "content");
3330
- const s = await stat4(maybeDir);
3373
+ const s = await stat5(maybeDir);
3331
3374
  return typeof s?.isDirectory === "function" ? s.isDirectory() : true;
3332
3375
  } catch {
3333
3376
  return false;
@@ -3338,7 +3381,7 @@ async function findLatestCandidate(chunkDir, candidates) {
3338
3381
  let latestM = 0;
3339
3382
  for (const candidateName of candidates) {
3340
3383
  try {
3341
- const s = await stat4(join2(chunkDir, candidateName));
3384
+ const s = await stat5(join2(chunkDir, candidateName));
3342
3385
  if (s.mtimeMs >= latestM) {
3343
3386
  latestM = s.mtimeMs;
3344
3387
  latest = candidateName;
@@ -3726,15 +3769,15 @@ var init_scripts = __esm(() => {
3726
3769
  // packages/core/src/ssr/lib/styles.ts
3727
3770
  async function inlineThemeCSS(clientDir, minify = false, isWatchMode = false) {
3728
3771
  try {
3772
+ if (isWatchMode) {
3773
+ const timestamp = Date.now();
3774
+ return `<link rel="stylesheet" href="/.reroute/index.css?t=${timestamp}" data-reroute="theme">`;
3775
+ }
3729
3776
  const bundledCss = globalThis.__REROUTE_THEME_CSS__;
3730
3777
  if (bundledCss) {
3731
3778
  const css2 = minify ? minifyCSS(bundledCss) : bundledCss;
3732
3779
  return `<style data-reroute="theme">${css2}</style>`;
3733
3780
  }
3734
- if (isWatchMode) {
3735
- const timestamp = Date.now();
3736
- return `<link rel="stylesheet" href="/.reroute/index.css?t=${timestamp}" data-reroute="theme">`;
3737
- }
3738
3781
  const candidates = [
3739
3782
  join2(clientDir, "..", ".reroute", "index.css"),
3740
3783
  join2(clientDir, "..", "..", ".reroute", "index.css"),
@@ -4453,10 +4496,10 @@ var init_extractor = __esm(() => {
4453
4496
  // packages/core/src/llms/index-generator.ts
4454
4497
  var exports_index_generator = {};
4455
4498
  __export(exports_index_generator, {
4456
- generateLLMsIndex: () => generateLLMsIndex,
4457
- discoverStaticRoutes: () => discoverStaticRoutes,
4499
+ discoverCollectionRoutes: () => discoverCollectionRoutes,
4458
4500
  discoverSSRDataRoutes: () => discoverSSRDataRoutes,
4459
- discoverCollectionRoutes: () => discoverCollectionRoutes
4501
+ discoverStaticRoutes: () => discoverStaticRoutes,
4502
+ generateLLMsIndex: () => generateLLMsIndex
4460
4503
  });
4461
4504
  import { pathToFileURL as pathToFileURL6 } from "node:url";
4462
4505
  async function discoverStaticRoutes(cwd, isWatchMode) {
@@ -5239,10 +5282,10 @@ var init_robots = __esm(() => {
5239
5282
  // packages/core/src/sitemap/discovery.ts
5240
5283
  var exports_discovery = {};
5241
5284
  __export(exports_discovery, {
5242
- discoverSitemapData: () => discoverSitemapData,
5243
- discoverSSRDataRoutes: () => discoverSSRDataRoutes2,
5285
+ discoverCollectionContent: () => discoverCollectionContent,
5244
5286
  discoverRoutes: () => discoverRoutes,
5245
- discoverCollectionContent: () => discoverCollectionContent
5287
+ discoverSSRDataRoutes: () => discoverSSRDataRoutes2,
5288
+ discoverSitemapData: () => discoverSitemapData
5246
5289
  });
5247
5290
  async function loadRoutesModule2(cwd, isWatchMode) {
5248
5291
  let routes = globalThis.__REROUTE_ROUTES__;
@@ -6526,137 +6569,139 @@ var init_src = __esm(() => {
6526
6569
  // packages/core/index.ts
6527
6570
  var exports_core = {};
6528
6571
  __export(exports_core, {
6529
- toPromise: () => toPromise,
6530
- toOgLocale: () => toOgLocale,
6531
- toBytes: () => toBytes,
6532
- stripStart: () => stripStart,
6533
- stripHtmlTags: () => stripHtmlTags,
6534
- stripEnd: () => stripEnd,
6535
- statusCache: () => statusCache,
6536
- ssrCache: () => ssrCache,
6537
- splitTemplate: () => splitTemplate,
6538
- shouldExcludeRoute: () => shouldExcludeRoute,
6539
- setGlobalSSRData: () => setGlobalSSRData,
6540
- setGlobalCollections: () => setGlobalCollections,
6541
- seedSSRModuleForPath: () => seedSSRModuleForPath,
6542
- resolveLocale: () => resolveLocale,
6543
- resetSSRAccessTracking: () => resetSSRAccessTracking,
6544
- renderSSRDocumentStream: () => renderSSRDocumentStream,
6545
- renderSSRDocument: () => renderSSRDocument,
6546
- renderOGImageToPNG: () => renderOGImageToPNG,
6547
- removeOverriddenMetaTags: () => removeOverriddenMetaTags,
6548
- processCollections: () => processCollections,
6549
- preloadContentModule: () => preloadContentModule,
6550
- performSSRSetup: () => performSSRSetup,
6551
- parseCookieValue: () => parseCookieValue,
6552
- parseContentPath: () => parseContentPath,
6553
- normalizePathname: () => normalizePathname,
6554
- negotiateLocale: () => negotiateLocale,
6555
- mergeLayoutData: () => mergeLayoutData,
6556
- matchRoutes: () => matchRoutes,
6557
- matchRoutePattern: () => matchRoutePattern,
6558
- lookupMessage: () => lookupMessage,
6559
- looksLikeLocale: () => looksLikeLocale,
6560
- localizeHref: () => localizeHref,
6561
- localizeContentHref: () => localizeContentHref,
6562
- loadRoutesModule: () => loadRoutesModule,
6563
- loadOGImageComponent: () => loadOGImageComponent,
6564
- loadIndexHtml: () => loadIndexHtml,
6565
- loadConfig: () => loadConfig,
6566
- loadCollections: () => loadCollections,
6567
- listContentFiles: () => listContentFiles,
6568
- join: () => join2,
6569
- isThenable: () => isThenable,
6570
- isCompressible: () => isCompressible,
6571
- inlineThemeCSS: () => inlineThemeCSS,
6572
- importContentModuleForPath: () => importContentModuleForPath,
6573
- htmlToMarkdown: () => htmlToMarkdown,
6574
- hreflangTags: () => hreflangTags,
6575
- gzipIfAccepted: () => gzipIfAccepted,
6576
- getSitemapExcludedRoutes: () => getSitemapExcludedRoutes,
6577
- getRedirectSourcePaths: () => getRedirectSourcePaths,
6578
- getPatternDepth: () => getPatternDepth,
6579
- getMimeType: () => getMimeType,
6580
- getMessage: () => getMessage,
6581
- getMatchingLayouts: () => getMatchingLayouts,
6582
- getContentMeta: () => getContentMeta,
6583
- generateSitemapXML: () => generateSitemapXML,
6584
- generateSitemapIndexXML: () => generateSitemapIndexXML,
6585
- generateSitemap: () => generateSitemap,
6586
- generateRobots: () => generateRobots,
6587
- generateRSSXML: () => generateRSSXML,
6588
- generateOGImageMetaTags: () => generateOGImageMetaTags,
6589
- generateLLMsIndex: () => generateLLMsIndex,
6590
- generateLLMsFullContent: () => generateLLMsFullContent,
6591
- generateLLMsFooter: () => generateLLMsFooter,
6592
- generateHydrationScripts: () => generateHydrationScripts,
6593
- generateFeed: () => generateFeed,
6594
- generateContentHash: () => generateContentHash,
6595
- generateCollectionScripts: () => generateCollectionScripts,
6596
- generateAtomXML: () => generateAtomXML,
6597
- formatMessage: () => formatMessage,
6598
- formatAsText: () => formatAsText,
6599
- formatAsMarkdown: () => formatAsMarkdown,
6600
- findOGImageForPath: () => findOGImageForPath,
6601
- extractTitle: () => extractTitle,
6602
- extractParamsFromPath: () => extractParamsFromPath,
6603
- extractPageMetadata: () => extractPageMetadata,
6604
- extractContentForLLMs: () => extractContentForLLMs,
6605
- extname: () => extname,
6606
- escapeXml: () => escapeXml2,
6607
- escapeJsonForScript: () => escapeJsonForScript,
6608
- dynamicImport: () => dynamicImport,
6609
- duplicateQueryParamData: () => duplicateQueryParamData,
6610
- discoverSitemapData: () => discoverSitemapData,
6611
- discoverSSRDataRoutes: () => discoverSSRDataRoutes2,
6612
- discoverSSRDataFeedItems: () => discoverSSRDataFeedItems,
6613
- discoverRoutesForRobots: () => discoverRoutesForRobots,
6614
- discoverRoutes: () => discoverRoutes,
6615
- discoverRobotsData: () => discoverRobotsData,
6616
- discoverRSSData: () => discoverRSSData,
6617
- discoverI18n: () => discoverI18n,
6618
- discoverCollections: () => discoverCollections,
6619
- discoverCollectionContent: () => discoverCollectionContent,
6620
- defineConfig: () => defineConfig,
6621
- deduplicateMetaTags: () => deduplicateMetaTags,
6622
- createTranslator: () => createTranslator,
6623
- createLlmsScript: () => createLlmsScript,
6624
- createLayoutDataKey: () => createLayoutDataKey,
6625
- createLayoutCacheKey: () => createLayoutCacheKey,
6626
- createFeedsScript: () => createFeedsScript,
6627
- createDataScript: () => createDataScript,
6628
- createCollectionScript: () => createCollectionScript,
6629
- createBundlePreload: () => createBundlePreload,
6630
- contentNegotiateRedirect: () => contentNegotiateRedirect,
6631
- contentKey: () => contentKey,
6632
- computeSSRDataForPath: () => computeSSRDataForPath,
6633
- computeSSRData: () => computeSSRData,
6634
- computeRouteData: () => computeRouteData,
6635
- computeLayoutData: () => computeLayoutData,
6636
- computeContentData: () => computeContentData,
6637
- compressStreamIfAccepted: () => compressStreamIfAccepted,
6638
- compareRouteSpecificity: () => compareRouteSpecificity,
6639
- cleanupPathScopedSSRData: () => cleanupPathScopedSSRData,
6640
- buildLocaleCookie: () => buildLocaleCookie,
6641
- buildHeadFromMeta: () => buildHeadFromMeta,
6642
- blockSearchCrawlers: () => blockSearchCrawlers,
6643
- blockAITrainingCrawlers: () => blockAITrainingCrawlers,
6644
- blockAICrawlers: () => blockAICrawlers,
6645
- basename: () => basename,
6646
- applyIndexTemplate: () => applyIndexTemplate,
6647
- allowSearchCrawlers: () => allowSearchCrawlers,
6648
- allowAICrawlers: () => allowAICrawlers,
6649
- acceptsGzip: () => acceptsGzip,
6650
- acceptsBrotli: () => acceptsBrotli,
6651
- TTLCache: () => TTLCache,
6652
- SSRDataCache: () => SSRDataCache,
6653
- SEARCH_CRAWLERS: () => SEARCH_CRAWLERS,
6654
- LRUCache: () => LRUCache,
6655
- DefaultOGTemplate: () => DefaultOGTemplate,
6656
- DEFAULT_LOCALES_DIR: () => DEFAULT_LOCALES_DIR,
6657
- DEFAULT_LOCALE: () => DEFAULT_LOCALE,
6572
+ AI_CRAWLERS: () => AI_CRAWLERS,
6658
6573
  DEFAULT_COOKIE: () => DEFAULT_COOKIE,
6659
- AI_CRAWLERS: () => AI_CRAWLERS
6574
+ DEFAULT_LOCALE: () => DEFAULT_LOCALE,
6575
+ DEFAULT_LOCALES_DIR: () => DEFAULT_LOCALES_DIR,
6576
+ DefaultOGTemplate: () => DefaultOGTemplate,
6577
+ LRUCache: () => LRUCache,
6578
+ SEARCH_CRAWLERS: () => SEARCH_CRAWLERS,
6579
+ SSRDataCache: () => SSRDataCache,
6580
+ TTLCache: () => TTLCache,
6581
+ acceptsBrotli: () => acceptsBrotli,
6582
+ acceptsGzip: () => acceptsGzip,
6583
+ allowAICrawlers: () => allowAICrawlers,
6584
+ allowSearchCrawlers: () => allowSearchCrawlers,
6585
+ applyIndexTemplate: () => applyIndexTemplate,
6586
+ basename: () => basename,
6587
+ blockAICrawlers: () => blockAICrawlers,
6588
+ blockAITrainingCrawlers: () => blockAITrainingCrawlers,
6589
+ blockSearchCrawlers: () => blockSearchCrawlers,
6590
+ buildHeadFromMeta: () => buildHeadFromMeta,
6591
+ buildLocaleCookie: () => buildLocaleCookie,
6592
+ cleanupPathScopedSSRData: () => cleanupPathScopedSSRData,
6593
+ clearSSRModuleStores: () => clearSSRModuleStores,
6594
+ clearWatchImportCache: () => clearWatchImportCache,
6595
+ compareRouteSpecificity: () => compareRouteSpecificity,
6596
+ compressStreamIfAccepted: () => compressStreamIfAccepted,
6597
+ computeContentData: () => computeContentData,
6598
+ computeLayoutData: () => computeLayoutData,
6599
+ computeRouteData: () => computeRouteData,
6600
+ computeSSRData: () => computeSSRData,
6601
+ computeSSRDataForPath: () => computeSSRDataForPath,
6602
+ contentKey: () => contentKey,
6603
+ contentNegotiateRedirect: () => contentNegotiateRedirect,
6604
+ createBundlePreload: () => createBundlePreload,
6605
+ createCollectionScript: () => createCollectionScript,
6606
+ createDataScript: () => createDataScript,
6607
+ createFeedsScript: () => createFeedsScript,
6608
+ createLayoutCacheKey: () => createLayoutCacheKey,
6609
+ createLayoutDataKey: () => createLayoutDataKey,
6610
+ createLlmsScript: () => createLlmsScript,
6611
+ createTranslator: () => createTranslator,
6612
+ deduplicateMetaTags: () => deduplicateMetaTags,
6613
+ defineConfig: () => defineConfig,
6614
+ discoverCollectionContent: () => discoverCollectionContent,
6615
+ discoverCollections: () => discoverCollections,
6616
+ discoverI18n: () => discoverI18n,
6617
+ discoverRSSData: () => discoverRSSData,
6618
+ discoverRobotsData: () => discoverRobotsData,
6619
+ discoverRoutes: () => discoverRoutes,
6620
+ discoverRoutesForRobots: () => discoverRoutesForRobots,
6621
+ discoverSSRDataFeedItems: () => discoverSSRDataFeedItems,
6622
+ discoverSSRDataRoutes: () => discoverSSRDataRoutes2,
6623
+ discoverSitemapData: () => discoverSitemapData,
6624
+ duplicateQueryParamData: () => duplicateQueryParamData,
6625
+ dynamicImport: () => dynamicImport,
6626
+ escapeJsonForScript: () => escapeJsonForScript,
6627
+ escapeXml: () => escapeXml2,
6628
+ extname: () => extname,
6629
+ extractContentForLLMs: () => extractContentForLLMs,
6630
+ extractPageMetadata: () => extractPageMetadata,
6631
+ extractParamsFromPath: () => extractParamsFromPath,
6632
+ extractTitle: () => extractTitle,
6633
+ findOGImageForPath: () => findOGImageForPath,
6634
+ formatAsMarkdown: () => formatAsMarkdown,
6635
+ formatAsText: () => formatAsText,
6636
+ formatMessage: () => formatMessage,
6637
+ generateAtomXML: () => generateAtomXML,
6638
+ generateCollectionScripts: () => generateCollectionScripts,
6639
+ generateContentHash: () => generateContentHash,
6640
+ generateFeed: () => generateFeed,
6641
+ generateHydrationScripts: () => generateHydrationScripts,
6642
+ generateLLMsFooter: () => generateLLMsFooter,
6643
+ generateLLMsFullContent: () => generateLLMsFullContent,
6644
+ generateLLMsIndex: () => generateLLMsIndex,
6645
+ generateOGImageMetaTags: () => generateOGImageMetaTags,
6646
+ generateRSSXML: () => generateRSSXML,
6647
+ generateRobots: () => generateRobots,
6648
+ generateSitemap: () => generateSitemap,
6649
+ generateSitemapIndexXML: () => generateSitemapIndexXML,
6650
+ generateSitemapXML: () => generateSitemapXML,
6651
+ getContentMeta: () => getContentMeta,
6652
+ getMatchingLayouts: () => getMatchingLayouts,
6653
+ getMessage: () => getMessage,
6654
+ getMimeType: () => getMimeType,
6655
+ getPatternDepth: () => getPatternDepth,
6656
+ getRedirectSourcePaths: () => getRedirectSourcePaths,
6657
+ getSitemapExcludedRoutes: () => getSitemapExcludedRoutes,
6658
+ gzipIfAccepted: () => gzipIfAccepted,
6659
+ hreflangTags: () => hreflangTags,
6660
+ htmlToMarkdown: () => htmlToMarkdown,
6661
+ importContentModuleForPath: () => importContentModuleForPath,
6662
+ inlineThemeCSS: () => inlineThemeCSS,
6663
+ isCompressible: () => isCompressible,
6664
+ isThenable: () => isThenable,
6665
+ join: () => join2,
6666
+ listContentFiles: () => listContentFiles,
6667
+ loadCollections: () => loadCollections,
6668
+ loadConfig: () => loadConfig,
6669
+ loadIndexHtml: () => loadIndexHtml,
6670
+ loadOGImageComponent: () => loadOGImageComponent,
6671
+ loadRoutesModule: () => loadRoutesModule,
6672
+ localizeContentHref: () => localizeContentHref,
6673
+ localizeHref: () => localizeHref,
6674
+ looksLikeLocale: () => looksLikeLocale,
6675
+ lookupMessage: () => lookupMessage,
6676
+ matchRoutePattern: () => matchRoutePattern,
6677
+ matchRoutes: () => matchRoutes,
6678
+ mergeLayoutData: () => mergeLayoutData,
6679
+ negotiateLocale: () => negotiateLocale,
6680
+ normalizePathname: () => normalizePathname,
6681
+ parseContentPath: () => parseContentPath,
6682
+ parseCookieValue: () => parseCookieValue,
6683
+ performSSRSetup: () => performSSRSetup,
6684
+ preloadContentModule: () => preloadContentModule,
6685
+ processCollections: () => processCollections,
6686
+ removeOverriddenMetaTags: () => removeOverriddenMetaTags,
6687
+ renderOGImageToPNG: () => renderOGImageToPNG,
6688
+ renderSSRDocument: () => renderSSRDocument,
6689
+ renderSSRDocumentStream: () => renderSSRDocumentStream,
6690
+ resetSSRAccessTracking: () => resetSSRAccessTracking,
6691
+ resolveLocale: () => resolveLocale,
6692
+ seedSSRModuleForPath: () => seedSSRModuleForPath,
6693
+ setGlobalCollections: () => setGlobalCollections,
6694
+ setGlobalSSRData: () => setGlobalSSRData,
6695
+ shouldExcludeRoute: () => shouldExcludeRoute,
6696
+ splitTemplate: () => splitTemplate,
6697
+ ssrCache: () => ssrCache,
6698
+ statusCache: () => statusCache,
6699
+ stripEnd: () => stripEnd,
6700
+ stripHtmlTags: () => stripHtmlTags,
6701
+ stripStart: () => stripStart,
6702
+ toBytes: () => toBytes,
6703
+ toOgLocale: () => toOgLocale,
6704
+ toPromise: () => toPromise
6660
6705
  });
6661
6706
  var init_core = __esm(() => {
6662
6707
  init_src();
@@ -6666,7 +6711,9 @@ var init_core = __esm(() => {
6666
6711
  function getCommonBuildOptions() {
6667
6712
  return {
6668
6713
  loader: {
6669
- ".css": "text"
6714
+ ".css": "text",
6715
+ ".md": "text",
6716
+ ".mdx": "text"
6670
6717
  }
6671
6718
  };
6672
6719
  }
@@ -6677,10 +6724,13 @@ function getNamingConfig(options) {
6677
6724
  asset: options?.asset || "asset.[hash].[ext]"
6678
6725
  };
6679
6726
  }
6727
+ function shouldRebuildClientBundle(filename) {
6728
+ return filename.endsWith(".ts") || filename.endsWith(".tsx") || filename.endsWith(".md") || filename.endsWith(".mdx");
6729
+ }
6680
6730
 
6681
6731
  // packages/cli/src/commands/lib/env.ts
6682
6732
  import { existsSync as existsSync2, readFileSync } from "node:fs";
6683
- import { join as join4 } from "node:path";
6733
+ import { join as join5 } from "node:path";
6684
6734
  function parseEnvFile(content2) {
6685
6735
  const env = {};
6686
6736
  const lines = content2.split(`
@@ -6706,7 +6756,7 @@ function loadEnvFiles(cwd, mode = "development") {
6706
6756
  const env = {};
6707
6757
  const loadedFiles = [];
6708
6758
  for (const file of envFiles) {
6709
- const filePath = join4(cwd, file);
6759
+ const filePath = join5(cwd, file);
6710
6760
  if (existsSync2(filePath)) {
6711
6761
  try {
6712
6762
  const content2 = readFileSync(filePath, "utf-8");
@@ -6750,11 +6800,11 @@ var init_env = () => {};
6750
6800
 
6751
6801
  // packages/cli/src/commands/lib/markdown/availability.ts
6752
6802
  import { existsSync as existsSync3, readFileSync as readFileSync2 } from "node:fs";
6753
- import { dirname, join as join5 } from "node:path";
6803
+ import { dirname as dirname2, join as join6 } from "node:path";
6754
6804
  function isPackageAvailable(cwd, packageName) {
6755
6805
  let currentDir = cwd;
6756
6806
  for (let i = 0;i < 5; i++) {
6757
- const packageJsonPath = join5(currentDir, "package.json");
6807
+ const packageJsonPath = join6(currentDir, "package.json");
6758
6808
  if (existsSync3(packageJsonPath)) {
6759
6809
  try {
6760
6810
  const packageJson = JSON.parse(readFileSync2(packageJsonPath, "utf-8"));
@@ -6768,7 +6818,7 @@ function isPackageAvailable(cwd, packageName) {
6768
6818
  }
6769
6819
  } catch {}
6770
6820
  }
6771
- const parentDir = dirname(currentDir);
6821
+ const parentDir = dirname2(currentDir);
6772
6822
  if (parentDir === currentDir) {
6773
6823
  break;
6774
6824
  }
@@ -6826,7 +6876,7 @@ var init_availability = () => {};
6826
6876
 
6827
6877
  // packages/cli/src/commands/lib/markdown/processor.ts
6828
6878
  import { existsSync as existsSync4, readFileSync as readFileSync3 } from "node:fs";
6829
- import { basename as basename2, dirname as dirname2, extname as extname2, join as join6, relative, resolve } from "node:path";
6879
+ import { basename as basename3, dirname as dirname3, extname as extname3, join as join7, relative, resolve } from "node:path";
6830
6880
  import matter from "gray-matter";
6831
6881
  function convertPropertiesToJsx(properties) {
6832
6882
  const newProperties = {};
@@ -6885,7 +6935,7 @@ function processMarkdownFile(filePath) {
6885
6935
  function isMdxAvailable2(cwd) {
6886
6936
  let currentDir = cwd;
6887
6937
  for (let i = 0;i < 5; i++) {
6888
- const packageJsonPath = join6(currentDir, "package.json");
6938
+ const packageJsonPath = join7(currentDir, "package.json");
6889
6939
  if (existsSync4(packageJsonPath)) {
6890
6940
  try {
6891
6941
  const packageJson = JSON.parse(readFileSync3(packageJsonPath, "utf-8"));
@@ -6899,7 +6949,7 @@ function isMdxAvailable2(cwd) {
6899
6949
  }
6900
6950
  } catch {}
6901
6951
  }
6902
- const parentDir = dirname2(currentDir);
6952
+ const parentDir = dirname3(currentDir);
6903
6953
  if (parentDir === currentDir) {
6904
6954
  break;
6905
6955
  }
@@ -6909,10 +6959,10 @@ function isMdxAvailable2(cwd) {
6909
6959
  }
6910
6960
  function tryLoadModule(cwd, moduleName) {
6911
6961
  const pathsToTry = [
6912
- join6(cwd, `node_modules/${moduleName}`),
6913
- join6(cwd, `../node_modules/${moduleName}`),
6914
- join6(cwd, `../../node_modules/${moduleName}`),
6915
- join6(cwd, `../../../node_modules/${moduleName}`)
6962
+ join7(cwd, `node_modules/${moduleName}`),
6963
+ join7(cwd, `../node_modules/${moduleName}`),
6964
+ join7(cwd, `../../node_modules/${moduleName}`),
6965
+ join7(cwd, `../../../node_modules/${moduleName}`)
6916
6966
  ];
6917
6967
  for (const modulePath of pathsToTry) {
6918
6968
  try {
@@ -7001,9 +7051,9 @@ async function compileMdx(content2, cwd, options = {}) {
7001
7051
  function rewriteImportPaths(code, sourcePath, targetPath) {
7002
7052
  const importRegex = /import\s+(?:{[^}]+}|[\w\s,]+)\s+from\s+['"](\.[^'"]+)['"]/g;
7003
7053
  return code.replace(importRegex, (match, importPath) => {
7004
- const sourceDir = dirname2(sourcePath);
7054
+ const sourceDir = dirname3(sourcePath);
7005
7055
  const absoluteImportPath = resolve(sourceDir, importPath);
7006
- const targetDir = dirname2(targetPath);
7056
+ const targetDir = dirname3(targetPath);
7007
7057
  let newRelativePath = relative(targetDir, absoluteImportPath);
7008
7058
  if (!newRelativePath.startsWith(".")) {
7009
7059
  newRelativePath = `./${newRelativePath}`;
@@ -7161,7 +7211,7 @@ export default function MarkdownFallback() {
7161
7211
  `;
7162
7212
  }
7163
7213
  function isMarkdownFile(filePath) {
7164
- const ext = extname2(filePath).toLowerCase();
7214
+ const ext = extname3(filePath).toLowerCase();
7165
7215
  return ext === ".md" || ext === ".mdx";
7166
7216
  }
7167
7217
  function extractHeadings(content2, options = {}) {
@@ -7242,7 +7292,7 @@ function isProductionMode(args = []) {
7242
7292
  }
7243
7293
 
7244
7294
  // packages/cli/src/commands/lib/streaming/analyzer.ts
7245
- import { dirname as dirname3, join as join7 } from "node:path";
7295
+ import { dirname as dirname4, join as join8 } from "node:path";
7246
7296
  function hasSSRDataExport(source) {
7247
7297
  if (SSR_DATA_INLINE_EXPORT_REGEX.test(source)) {
7248
7298
  return true;
@@ -7269,11 +7319,11 @@ async function analyzeRouteForStreaming(options) {
7269
7319
  };
7270
7320
  }
7271
7321
  async function findSkeletonForTarget(routesDir, relativePath, type) {
7272
- const dirName = normalizeRelativePath(dirname3(relativePath));
7273
- const baseDir = dirName === "." ? routesDir : join7(routesDir, dirName).replace(/\\/g, "/");
7322
+ const dirName = normalizeRelativePath(dirname4(relativePath));
7323
+ const baseDir = dirName === "." ? routesDir : join8(routesDir, dirName).replace(/\\/g, "/");
7274
7324
  const candidates = type === "layout" ? ["[layout+skeleton].tsx", "[layout+skeleton].ts"] : ["[skeleton].tsx", "[skeleton].ts"];
7275
7325
  for (const candidate of candidates) {
7276
- const candidatePath = join7(baseDir, candidate);
7326
+ const candidatePath = join8(baseDir, candidate);
7277
7327
  try {
7278
7328
  const file = Bun.file(candidatePath);
7279
7329
  if (await file.exists()) {
@@ -7294,12 +7344,12 @@ var init_analyzer = __esm(() => {
7294
7344
  });
7295
7345
 
7296
7346
  // packages/cli/src/commands/lib/streaming/suspense.ts
7297
- import { dirname as dirname4, join as join8, relative as relative2 } from "node:path";
7347
+ import { dirname as dirname5, join as join9, relative as relative2 } from "node:path";
7298
7348
  async function generateStreamingWrapper(options) {
7299
7349
  const { cwd, relativeFilePath, analysis, config: config2 } = options;
7300
- const streamingModulePath = join8(cwd, ".reroute", "streaming", relativeFilePath).replace(/\.(tsx|ts)$/, ".tsx");
7301
- const wrapperDir = dirname4(streamingModulePath);
7302
- const originalModuleWithoutExt = removeExtension(join8(cwd, "src", "client", "routes", relativeFilePath));
7350
+ const streamingModulePath = join9(cwd, ".reroute", "streaming", relativeFilePath).replace(/\.(tsx|ts)$/, ".tsx");
7351
+ const wrapperDir = dirname5(streamingModulePath);
7352
+ const originalModuleWithoutExt = removeExtension(join9(cwd, "src", "client", "routes", relativeFilePath));
7303
7353
  const originalImportPath = toImportPath(wrapperDir, originalModuleWithoutExt);
7304
7354
  const skeletonImportBlock = await resolveSkeletonBlock({
7305
7355
  analysis,
@@ -7341,7 +7391,7 @@ async function resolveSkeletonBlock(args) {
7341
7391
  }
7342
7392
  function resolveConfiguredSkeletonPath(value, cwd) {
7343
7393
  if (typeof value === "string" && value.trim().length > 0) {
7344
- return value.startsWith("/") ? value : join8(cwd, value);
7394
+ return value.startsWith("/") ? value : join9(cwd, value);
7345
7395
  }
7346
7396
  if (value && !warnedSkeletonType) {
7347
7397
  console.warn("[reroute/streaming] default skeletons must be provided as string module paths in reroute.config.ts");
@@ -7378,10 +7428,10 @@ var init_suspense = () => {};
7378
7428
  // packages/cli/src/commands/lib/theme.ts
7379
7429
  import { existsSync as existsSync5, readFileSync as readFileSync4 } from "node:fs";
7380
7430
  import { mkdir as mkdir2, writeFile } from "node:fs/promises";
7381
- import { dirname as dirname5, isAbsolute, join as join9, resolve as resolve2 } from "node:path";
7431
+ import { dirname as dirname6, isAbsolute, join as join10, resolve as resolve2 } from "node:path";
7382
7432
  function getCssPaths(cwd) {
7383
- const input = join9(cwd, "src/client/index.css");
7384
- const output = join9(cwd, ".reroute/index.css");
7433
+ const input = join10(cwd, "src/client/index.css");
7434
+ const output = join10(cwd, ".reroute/index.css");
7385
7435
  return { input, output };
7386
7436
  }
7387
7437
  function isFileImport(specifier) {
@@ -7407,7 +7457,7 @@ function bundleCssEntrypoint(entryPath) {
7407
7457
  }
7408
7458
  stack.add(absPath);
7409
7459
  const source = readFileSync4(absPath, "utf-8");
7410
- const baseDir = dirname5(absPath);
7460
+ const baseDir = dirname6(absPath);
7411
7461
  const bundled = source.replace(IMPORT_RE, (full, single, double, bare, rest) => {
7412
7462
  const specifier = single || double || bare;
7413
7463
  const condition = (rest ?? "").trim();
@@ -7430,7 +7480,7 @@ async function syncThemeCss(cwd) {
7430
7480
  if (!existsSync5(input)) {
7431
7481
  return false;
7432
7482
  }
7433
- await mkdir2(dirname5(output), { recursive: true });
7483
+ await mkdir2(dirname6(output), { recursive: true });
7434
7484
  try {
7435
7485
  const css = bundleCssEntrypoint(input);
7436
7486
  await writeFile(output, css, "utf-8");
@@ -7453,15 +7503,19 @@ var init_theme = __esm(() => {
7453
7503
  // packages/cli/src/commands/gen.ts
7454
7504
  var exports_gen = {};
7455
7505
  __export(exports_gen, {
7456
- default: () => gen
7506
+ default: () => gen,
7507
+ startGenWatch: () => startGenWatch
7457
7508
  });
7458
7509
  import { watch } from "node:fs";
7459
- import { copyFile, mkdir as mkdir3, readdir as readdir7, rm, unlink } from "node:fs/promises";
7460
- import { dirname as dirname6, extname as extname3, join as join10 } from "node:path";
7510
+ import { copyFile as copyFile2, mkdir as mkdir3, readdir as readdir7, rm, unlink as unlink2 } from "node:fs/promises";
7511
+ import { dirname as dirname7, extname as extname4, join as join11 } from "node:path";
7461
7512
  import { pathToFileURL as pathToFileURL8 } from "node:url";
7513
+ function isWatchNoise(name) {
7514
+ return name.split(/[/\\]/).some((part) => part.startsWith(".")) || /\.bust-[^/\\]+$/.test(name);
7515
+ }
7462
7516
  async function bundleThemeCssIntoArtifacts(cwd) {
7463
- const cssPath = join10(cwd, ".reroute", "index.css");
7464
- const artifactsPath = join10(cwd, OUTPUT_ARTIFACTS);
7517
+ const cssPath = join11(cwd, ".reroute", "index.css");
7518
+ const artifactsPath = join11(cwd, OUTPUT_ARTIFACTS);
7465
7519
  try {
7466
7520
  const cssContent = await Bun.file(cssPath).text();
7467
7521
  if (!cssContent)
@@ -7487,7 +7541,7 @@ async function bundleThemeCssIntoArtifacts(cwd) {
7487
7541
  async function ensureOutputDir(cwd, options = {}) {
7488
7542
  const { clean = true } = options;
7489
7543
  try {
7490
- const outputPath = join10(cwd, OUTPUT_DIR);
7544
+ const outputPath = join11(cwd, OUTPUT_DIR);
7491
7545
  if (clean) {
7492
7546
  let needsCleanup = false;
7493
7547
  try {
@@ -7500,9 +7554,9 @@ async function ensureOutputDir(cwd, options = {}) {
7500
7554
  }
7501
7555
  }
7502
7556
  await mkdir3(outputPath, { recursive: true });
7503
- await mkdir3(join10(cwd, OUTPUT_COLLECTIONS_DIR), { recursive: true });
7504
- await mkdir3(join10(cwd, ".reroute/bundles"), { recursive: true });
7505
- await mkdir3(join10(cwd, ".reroute/streaming"), { recursive: true });
7557
+ await mkdir3(join11(cwd, OUTPUT_COLLECTIONS_DIR), { recursive: true });
7558
+ await mkdir3(join11(cwd, ".reroute/bundles"), { recursive: true });
7559
+ await mkdir3(join11(cwd, ".reroute/streaming"), { recursive: true });
7506
7560
  } catch {}
7507
7561
  }
7508
7562
  async function writeStubFiles(cwd) {
@@ -7560,11 +7614,11 @@ import './artifacts';
7560
7614
  import './routes'; // Import routes (bundles all route components)
7561
7615
  import '../src/index';
7562
7616
  `;
7563
- await Bun.write(join10(cwd, OUTPUT_ROUTES), STUB_ROUTES);
7564
- await Bun.write(join10(cwd, OUTPUT_CONTENT_TS), STUB_CONTENT);
7565
- await Bun.write(join10(cwd, OUTPUT_ARTIFACTS), STUB_ARTIFACTS);
7566
- await Bun.write(join10(cwd, OUTPUT_INDEX), STUB_INDEX);
7567
- await Bun.write(join10(cwd, ".reroute/entry.ts"), STUB_ENTRY);
7617
+ await Bun.write(join11(cwd, OUTPUT_ROUTES), STUB_ROUTES);
7618
+ await Bun.write(join11(cwd, OUTPUT_CONTENT_TS), STUB_CONTENT);
7619
+ await Bun.write(join11(cwd, OUTPUT_ARTIFACTS), STUB_ARTIFACTS);
7620
+ await Bun.write(join11(cwd, OUTPUT_INDEX), STUB_INDEX);
7621
+ await Bun.write(join11(cwd, ".reroute/entry.ts"), STUB_ENTRY);
7568
7622
  console.log("[reroute/gen] Initialized stub files");
7569
7623
  }
7570
7624
  function shouldSkipFile(relativePath, entryName) {
@@ -7586,8 +7640,8 @@ async function scanDirectory(dir, base = "") {
7586
7640
  const files = [];
7587
7641
  const entries = await readdir7(dir, { withFileTypes: true });
7588
7642
  for (const entry of entries) {
7589
- const fullPath = join10(dir, entry.name);
7590
- const relativePath = join10(base, entry.name);
7643
+ const fullPath = join11(dir, entry.name);
7644
+ const relativePath = join11(base, entry.name);
7591
7645
  if (entry.isDirectory()) {
7592
7646
  if (entry.name === "content")
7593
7647
  continue;
@@ -7605,8 +7659,8 @@ async function scan404Files(dir, base = "") {
7605
7659
  const files = [];
7606
7660
  const entries = await readdir7(dir, { withFileTypes: true });
7607
7661
  for (const entry of entries) {
7608
- const fullPath = join10(dir, entry.name);
7609
- const relativePath = join10(base, entry.name);
7662
+ const fullPath = join11(dir, entry.name);
7663
+ const relativePath = join11(base, entry.name);
7610
7664
  if (entry.isDirectory()) {
7611
7665
  const nested = await scan404Files(fullPath, relativePath);
7612
7666
  files.push(...nested);
@@ -7621,8 +7675,8 @@ async function scanOgFiles(dir, base = "") {
7621
7675
  const files = [];
7622
7676
  const entries = await readdir7(dir, { withFileTypes: true });
7623
7677
  for (const entry of entries) {
7624
- const fullPath = join10(dir, entry.name);
7625
- const relativePath = join10(base, entry.name);
7678
+ const fullPath = join11(dir, entry.name);
7679
+ const relativePath = join11(base, entry.name);
7626
7680
  if (entry.isDirectory()) {
7627
7681
  if (entry.name === "content")
7628
7682
  continue;
@@ -7876,7 +7930,7 @@ function matchPattern(route: Route, pathname: string): Record<string, string> |
7876
7930
  `;
7877
7931
  }
7878
7932
  async function buildStreamingWrappersForTree(cwd, routesPath, tree, config2) {
7879
- const streamingDir = join10(cwd, ".reroute", "streaming");
7933
+ const streamingDir = join11(cwd, ".reroute", "streaming");
7880
7934
  const analyses = new Map;
7881
7935
  const candidates = [
7882
7936
  ...tree.routes.map((route) => ({
@@ -7895,7 +7949,7 @@ async function buildStreamingWrappersForTree(cwd, routesPath, tree, config2) {
7895
7949
  for (const candidate of candidates) {
7896
7950
  if (!/\.(tsx|ts)$/.test(candidate.filePath))
7897
7951
  continue;
7898
- const absolutePath = join10(routesPath, candidate.filePath);
7952
+ const absolutePath = join11(routesPath, candidate.filePath);
7899
7953
  const analysis = await analyzeRouteForStreaming({
7900
7954
  absolutePath,
7901
7955
  relativePath: candidate.filePath,
@@ -7904,8 +7958,8 @@ async function buildStreamingWrappersForTree(cwd, routesPath, tree, config2) {
7904
7958
  });
7905
7959
  if (!analysis.needsStreaming)
7906
7960
  continue;
7907
- const wrapperPath = join10(streamingDir, candidate.filePath).replace(/\.(tsx|ts)$/, ".tsx");
7908
- await mkdir3(dirname6(wrapperPath), { recursive: true });
7961
+ const wrapperPath = join11(streamingDir, candidate.filePath).replace(/\.(tsx|ts)$/, ".tsx");
7962
+ await mkdir3(dirname7(wrapperPath), { recursive: true });
7909
7963
  const code = await generateStreamingWrapper({
7910
7964
  cwd,
7911
7965
  relativeFilePath: candidate.filePath,
@@ -7929,13 +7983,13 @@ function isContentFileName(name) {
7929
7983
  }
7930
7984
  async function listLocaleContentFiles(collectionDir, locale) {
7931
7985
  try {
7932
- const nested = await readdir7(join10(collectionDir, locale), {
7986
+ const nested = await readdir7(join11(collectionDir, locale), {
7933
7987
  withFileTypes: true
7934
7988
  });
7935
7989
  const files = [];
7936
7990
  for (const n of nested) {
7937
7991
  if (n.isFile() && isContentFileName(n.name)) {
7938
- files.push({ relativePath: join10(locale, n.name), locale });
7992
+ files.push({ relativePath: join11(locale, n.name), locale });
7939
7993
  }
7940
7994
  }
7941
7995
  return files;
@@ -7973,13 +8027,13 @@ async function loadContentMeta(absSrc, buildSrc, isMarkdown) {
7973
8027
  if (isMarkdown) {
7974
8028
  return processMarkdownFile(absSrc).frontmatter || {};
7975
8029
  }
7976
- const tmp = join10(dirname6(buildSrc), `.meta-${Date.now()}-${Math.random().toString(36).slice(2)}${extname3(buildSrc)}`);
8030
+ const tmp = join11(dirname7(buildSrc), `.meta-${Date.now()}-${Math.random().toString(36).slice(2)}${extname4(buildSrc)}`);
7977
8031
  try {
7978
- await copyFile(buildSrc, tmp);
8032
+ await copyFile2(buildSrc, tmp);
7979
8033
  const m = await import(pathToFileURL8(tmp).href);
7980
8034
  return m.meta || {};
7981
8035
  } finally {
7982
- await unlink(tmp).catch(() => {});
8036
+ await unlink2(tmp).catch(() => {});
7983
8037
  }
7984
8038
  }
7985
8039
  function serializeConfig(config2) {
@@ -8031,9 +8085,9 @@ async function buildSingleContentChunk(cwd, collection, fileRef, contentDir, arg
8031
8085
  const locale = fileRef.locale || defaultLocale;
8032
8086
  const baseName = file.split("/").pop() || file;
8033
8087
  const name = baseName.replace(/\.(tsx|ts|md|mdx)$/, "");
8034
- const absSrc = join10(contentDir, file);
8088
+ const absSrc = join11(contentDir, file);
8035
8089
  const isMarkdown = /\.(md|mdx)$/.test(file);
8036
- const buildSrc = isMarkdown ? join10(cwd, ".reroute", "markdown", collection, "content", file.replace(/\.(md|mdx)$/, ".tsx")) : absSrc;
8090
+ const buildSrc = isMarkdown ? join11(cwd, ".reroute", "markdown", collection, "content", file.replace(/\.(md|mdx)$/, ".tsx")) : absSrc;
8037
8091
  if (isMarkdown) {
8038
8092
  try {
8039
8093
  const exists = await Bun.file(buildSrc).exists();
@@ -8079,11 +8133,11 @@ async function buildSingleContentChunk(cwd, collection, fileRef, contentDir, arg
8079
8133
  return null;
8080
8134
  }
8081
8135
  const hash2 = await sha8(code);
8082
- const chunkRelDir = join10(".reroute", "bundles");
8083
- const chunkAbsDir = join10(cwd, chunkRelDir);
8136
+ const chunkRelDir = join11(".reroute", "bundles");
8137
+ const chunkAbsDir = join11(cwd, chunkRelDir);
8084
8138
  const localeSuffix = locale !== defaultLocale ? `${locale}-` : "";
8085
8139
  const outFile = `${collection}-${localeSuffix}${name}.${hash2}.js`;
8086
- const absOut = join10(chunkAbsDir, outFile);
8140
+ const absOut = join11(chunkAbsDir, outFile);
8087
8141
  if (sourcemapContent) {
8088
8142
  code = code.replace(/\/\/# sourceMappingURL=.*\.js\.map/, `//# sourceMappingURL=${outFile}.map`);
8089
8143
  }
@@ -8116,7 +8170,7 @@ async function buildSingleContentChunk(cwd, collection, fileRef, contentDir, arg
8116
8170
  };
8117
8171
  }
8118
8172
  async function buildContentChunks(cwd, args = [], defaultLocale = "en-US") {
8119
- const routesRoot = join10(cwd, ROUTES_DIR);
8173
+ const routesRoot = join11(cwd, ROUTES_DIR);
8120
8174
  console.log(`[reroute/content] scan ${routesRoot}`);
8121
8175
  const collections2 = await readdir7(routesRoot, { withFileTypes: true });
8122
8176
  const results = [];
@@ -8124,7 +8178,7 @@ async function buildContentChunks(cwd, args = [], defaultLocale = "en-US") {
8124
8178
  if (!c.isDirectory())
8125
8179
  continue;
8126
8180
  const collection = c.name;
8127
- const contentDir = join10(routesRoot, collection, "content");
8181
+ const contentDir = join11(routesRoot, collection, "content");
8128
8182
  console.log(`[reroute/content] collection ${collection} dir ${contentDir}`);
8129
8183
  const files = await listContentFiles2(contentDir);
8130
8184
  console.log(`[reroute/content] files ${files.length}`);
@@ -8176,7 +8230,7 @@ async function buildContentChunks(cwd, args = [], defaultLocale = "en-US") {
8176
8230
  lines.push("");
8177
8231
  const writes = [];
8178
8232
  writes.push({
8179
- path: join10(cwd, OUTPUT_CONTENT_TS),
8233
+ path: join11(cwd, OUTPUT_CONTENT_TS),
8180
8234
  content: lines.join(`
8181
8235
  `)
8182
8236
  });
@@ -8210,7 +8264,7 @@ async function buildContentChunks(cwd, args = [], defaultLocale = "en-US") {
8210
8264
  js.push("}");
8211
8265
  js.push("");
8212
8266
  writes.push({
8213
- path: join10(cwd, OUTPUT_COLLECTIONS_DIR, `${collection}.js`),
8267
+ path: join11(cwd, OUTPUT_COLLECTIONS_DIR, `${collection}.js`),
8214
8268
  content: js.join(`
8215
8269
  `)
8216
8270
  });
@@ -8234,7 +8288,7 @@ async function buildSearchIndex(cwd, config2, args = []) {
8234
8288
  minHeadingLevel = 1,
8235
8289
  maxHeadingLevel = 6
8236
8290
  } = searchConfig;
8237
- const routesRoot = join10(cwd, ROUTES_DIR);
8291
+ const routesRoot = join11(cwd, ROUTES_DIR);
8238
8292
  const collections2 = await readdir7(routesRoot, { withFileTypes: true });
8239
8293
  const i18n2 = await discoverI18n(cwd, config2.i18n);
8240
8294
  const defaultLocale = i18n2.defaultLocale;
@@ -8246,7 +8300,7 @@ async function buildSearchIndex(cwd, config2, args = []) {
8246
8300
  if (targetCollections.length > 0 && !targetCollections.includes(collection)) {
8247
8301
  continue;
8248
8302
  }
8249
- const contentDir = join10(routesRoot, collection, "content");
8303
+ const contentDir = join11(routesRoot, collection, "content");
8250
8304
  try {
8251
8305
  const files = await listContentFiles2(contentDir);
8252
8306
  for (const fileRef of files) {
@@ -8256,7 +8310,7 @@ async function buildSearchIndex(cwd, config2, args = []) {
8256
8310
  const baseName = file.split("/").pop() || file;
8257
8311
  const name = baseName.replace(/\.(md|mdx)$/, "");
8258
8312
  const locale = fileRef.locale || defaultLocale;
8259
- const filePath = join10(contentDir, file);
8313
+ const filePath = join11(contentDir, file);
8260
8314
  try {
8261
8315
  const processed = processMarkdownFile(filePath);
8262
8316
  const { frontmatter, content: content2 } = processed;
@@ -8304,13 +8358,13 @@ async function buildSearchIndex(cwd, config2, args = []) {
8304
8358
  generated: new Date().toISOString(),
8305
8359
  entries: searchIndex
8306
8360
  };
8307
- await Bun.write(join10(cwd, OUTPUT_SEARCH_INDEX), JSON.stringify(indexData, null, 2));
8308
- console.log(`[reroute/search] Generated search index with ${searchIndex.length} entries: ${join10(cwd, OUTPUT_SEARCH_INDEX)}`);
8361
+ await Bun.write(join11(cwd, OUTPUT_SEARCH_INDEX), JSON.stringify(indexData, null, 2));
8362
+ console.log(`[reroute/search] Generated search index with ${searchIndex.length} entries: ${join11(cwd, OUTPUT_SEARCH_INDEX)}`);
8309
8363
  }
8310
8364
  async function preprocessMarkdownFiles(cwd, config2) {
8311
8365
  console.log("[reroute/markdown] Starting markdown preprocessing...");
8312
- const routesPath = join10(cwd, ROUTES_DIR);
8313
- const markdownDir = join10(cwd, ".reroute", "markdown");
8366
+ const routesPath = join11(cwd, ROUTES_DIR);
8367
+ const markdownDir = join11(cwd, ".reroute", "markdown");
8314
8368
  try {
8315
8369
  await rm(markdownDir, { force: true, recursive: true });
8316
8370
  } catch {}
@@ -8320,8 +8374,8 @@ async function preprocessMarkdownFiles(cwd, config2) {
8320
8374
  try {
8321
8375
  const entries = await readdir7(dir, { withFileTypes: true });
8322
8376
  for (const entry of entries) {
8323
- const fullPath = join10(dir, entry.name);
8324
- const relativePath = join10(base, entry.name);
8377
+ const fullPath = join11(dir, entry.name);
8378
+ const relativePath = join11(base, entry.name);
8325
8379
  if (entry.isDirectory()) {
8326
8380
  const nested = await scanMarkdown(fullPath, relativePath);
8327
8381
  files.push(...nested);
@@ -8343,8 +8397,8 @@ async function preprocessMarkdownFiles(cwd, config2) {
8343
8397
  }
8344
8398
  console.log(`[reroute/markdown] Found ${markdownFiles.length} markdown file(s)`);
8345
8399
  for (const file of markdownFiles) {
8346
- const sourcePath = join10(routesPath, file);
8347
- const targetPath = join10(markdownDir, file.replace(/\.mdx?$/, ".tsx"));
8400
+ const sourcePath = join11(routesPath, file);
8401
+ const targetPath = join11(markdownDir, file.replace(/\.mdx?$/, ".tsx"));
8348
8402
  try {
8349
8403
  const processed = processMarkdownFile(sourcePath);
8350
8404
  const isMdx = file.endsWith(".mdx");
@@ -8370,8 +8424,8 @@ async function preprocessMarkdownFiles(cwd, config2) {
8370
8424
  }
8371
8425
  async function buildEntrypointBundle(cwd, args = []) {
8372
8426
  const buildStartTime = performance.now();
8373
- const clientDir = join10(cwd, "src", "client");
8374
- const entrypoint = join10(clientDir, "index.tsx");
8427
+ const clientDir = join11(cwd, "src", "client");
8428
+ const entrypoint = join11(clientDir, "index.tsx");
8375
8429
  const exists = await Bun.file(entrypoint).exists();
8376
8430
  if (!exists) {
8377
8431
  console.log("[reroute/gen] No index.tsx found, skipping bundle build");
@@ -8379,7 +8433,7 @@ async function buildEntrypointBundle(cwd, args = []) {
8379
8433
  }
8380
8434
  console.log("[reroute/gen] Building entrypoint bundle...");
8381
8435
  const isProd = args.includes("--prod");
8382
- const bundlesDir = join10(cwd, ".reroute", "bundles");
8436
+ const bundlesDir = join11(cwd, ".reroute", "bundles");
8383
8437
  await mkdir3(bundlesDir, { recursive: true });
8384
8438
  const mode = isProd ? "production" : "development";
8385
8439
  const publicEnv = getPublicEnvVars(cwd, mode);
@@ -8481,7 +8535,7 @@ async function buildEntrypointBundle(cwd, args = []) {
8481
8535
  const existingFiles = await readdir7(bundlesDir);
8482
8536
  for (const file of existingFiles) {
8483
8537
  if (/^(index|chunk|asset)\.[a-z0-9]+\.(js|css|js\.map|css\.map)(\.gz|\.br)?$/i.test(file) && !newFiles.has(file.replace(/\.(gz|br)$/, ""))) {
8484
- await rm(join10(bundlesDir, file), { force: true });
8538
+ await rm(join11(bundlesDir, file), { force: true });
8485
8539
  }
8486
8540
  }
8487
8541
  } catch (_error) {}
@@ -8497,7 +8551,7 @@ async function buildEntrypointBundle(cwd, args = []) {
8497
8551
  }
8498
8552
  }
8499
8553
  await Promise.all(outputs.map(async (output) => {
8500
- const destPath = join10(bundlesDir, output.fileName);
8554
+ const destPath = join11(bundlesDir, output.fileName);
8501
8555
  await Bun.write(destPath, output.content);
8502
8556
  if (shouldPreCompress) {
8503
8557
  const shouldCompress = /\.(js|css)$/i.test(output.fileName) && !output.fileName.endsWith(".map");
@@ -8566,7 +8620,7 @@ async function generate(cwd, args = [], options = {}) {
8566
8620
  await writeStubFiles(cwd);
8567
8621
  }
8568
8622
  await perfTrack("Markdown preprocessing", () => preprocessMarkdownFiles(cwd, config2));
8569
- const routesPath = join10(cwd, ROUTES_DIR);
8623
+ const routesPath = join11(cwd, ROUTES_DIR);
8570
8624
  try {
8571
8625
  await perfTrack("Routes generation", async () => {
8572
8626
  const files = await scanDirectory(routesPath);
@@ -8575,10 +8629,10 @@ async function generate(cwd, args = [], options = {}) {
8575
8629
  const tree = generateRouteTree(all.map((f) => f.replace(/\\/g, "/")));
8576
8630
  const streamingAnalyses = streamingEnabled ? await buildStreamingWrappersForTree(cwd, routesPath, tree, config2) : new Map;
8577
8631
  const ts = generateTypeScript(tree, streamingAnalyses);
8578
- await Bun.write(join10(cwd, OUTPUT_ROUTES), ts);
8632
+ await Bun.write(join11(cwd, OUTPUT_ROUTES), ts);
8579
8633
  });
8580
8634
  if (!showPerformance) {
8581
- console.log(`[reroute/gen] Generated routes: ${join10(cwd, OUTPUT_ROUTES)}`);
8635
+ console.log(`[reroute/gen] Generated routes: ${join11(cwd, OUTPUT_ROUTES)}`);
8582
8636
  }
8583
8637
  } catch (error) {
8584
8638
  console.error("[reroute/gen] Failed to generate routes:", error);
@@ -8587,7 +8641,7 @@ async function generate(cwd, args = [], options = {}) {
8587
8641
  const i18n2 = await discoverI18n(cwd, config2.i18n);
8588
8642
  const defaultLocale = i18n2.defaultLocale;
8589
8643
  try {
8590
- await Bun.write(join10(cwd, ".reroute", "i18n.json"), JSON.stringify({
8644
+ await Bun.write(join11(cwd, ".reroute", "i18n.json"), JSON.stringify({
8591
8645
  enabled: i18n2.enabled,
8592
8646
  defaultLocale: i18n2.defaultLocale,
8593
8647
  locales: i18n2.locales,
@@ -8604,7 +8658,7 @@ async function generate(cwd, args = [], options = {}) {
8604
8658
  try {
8605
8659
  await perfTrack("Content building", () => buildContentChunks(cwd, args, defaultLocale));
8606
8660
  if (!showPerformance) {
8607
- console.log(`[reroute/gen] Generated content: ${join10(cwd, OUTPUT_CONTENT_TS)} + collections/*.js`);
8661
+ console.log(`[reroute/gen] Generated content: ${join11(cwd, OUTPUT_CONTENT_TS)} + collections/*.js`);
8608
8662
  }
8609
8663
  } catch (error) {
8610
8664
  console.error("[reroute/gen] Failed to generate content:", error);
@@ -8612,17 +8666,17 @@ async function generate(cwd, args = [], options = {}) {
8612
8666
  }
8613
8667
  try {
8614
8668
  await perfTrack("Manifest generation", async () => {
8615
- const routesPath2 = join10(cwd, OUTPUT_ROUTES);
8669
+ const routesPath2 = join11(cwd, OUTPUT_ROUTES);
8616
8670
  const routesModule = await import(`file://${routesPath2}?t=${Date.now()}`);
8617
8671
  const routes = routesModule.routes || [];
8618
8672
  const staticRoutes = routes.filter((r) => !r.params || r.params.length === 0).map((r) => r.pattern);
8619
8673
  const contentRoutes = [];
8620
- const collectionsDir = join10(cwd, ".reroute", "collections");
8674
+ const collectionsDir = join11(cwd, ".reroute", "collections");
8621
8675
  try {
8622
8676
  const collectionFiles = await readdir7(collectionsDir);
8623
8677
  for (const file of collectionFiles) {
8624
8678
  if (file.endsWith(".js")) {
8625
- const collectionPath = join10(collectionsDir, file);
8679
+ const collectionPath = join11(collectionsDir, file);
8626
8680
  const collectionModule = await import(`file://${collectionPath}?t=${Date.now()}`);
8627
8681
  const items = collectionModule.items || [];
8628
8682
  for (const item of items) {
@@ -8647,7 +8701,7 @@ async function generate(cwd, args = [], options = {}) {
8647
8701
  dynamicRoutes,
8648
8702
  version: 1
8649
8703
  };
8650
- await Bun.write(join10(cwd, ".reroute", "manifest.json"), JSON.stringify(manifest, null, 2));
8704
+ await Bun.write(join11(cwd, ".reroute", "manifest.json"), JSON.stringify(manifest, null, 2));
8651
8705
  });
8652
8706
  } catch (error) {
8653
8707
  console.error("[reroute/gen] Failed to generate manifest:", error);
@@ -8668,7 +8722,7 @@ async function generate(cwd, args = [], options = {}) {
8668
8722
  mdComponentsLines.push("");
8669
8723
  mdComponentsLines.push(`import markdownComponents from '${componentsPath}';`);
8670
8724
  mdComponentsLines.push("export { markdownComponents };");
8671
- await Bun.write(join10(cwd, ".reroute/markdown-components.ts"), mdComponentsLines.join(`
8725
+ await Bun.write(join11(cwd, ".reroute/markdown-components.ts"), mdComponentsLines.join(`
8672
8726
  `));
8673
8727
  }
8674
8728
  const indexLines = [];
@@ -8688,7 +8742,7 @@ async function generate(cwd, args = [], options = {}) {
8688
8742
  const ogTemplatePath = config2.ogImage.defaultTemplate.startsWith(".") ? `../${config2.ogImage.defaultTemplate}` : config2.ogImage.defaultTemplate;
8689
8743
  indexLines.push(`import OGTemplate from '${ogTemplatePath}';`);
8690
8744
  }
8691
- const ogFiles = await scanOgFiles(join10(cwd, ROUTES_DIR));
8745
+ const ogFiles = await scanOgFiles(join11(cwd, ROUTES_DIR));
8692
8746
  const ogImports = [];
8693
8747
  for (let i = 0;i < ogFiles.length; i++) {
8694
8748
  const ogFile = ogFiles[i];
@@ -8734,7 +8788,7 @@ async function generate(cwd, args = [], options = {}) {
8734
8788
  }
8735
8789
  indexLines.push("};");
8736
8790
  }
8737
- const templatePath = join10(cwd, "src", "client", "index.html");
8791
+ const templatePath = join11(cwd, "src", "client", "index.html");
8738
8792
  try {
8739
8793
  const templateContent = await Bun.file(templatePath).text();
8740
8794
  indexLines.push("");
@@ -8746,7 +8800,7 @@ async function generate(cwd, args = [], options = {}) {
8746
8800
  indexLines.push(`(globalThis as any).__REROUTE_CONFIG__ = ${serializeConfig(config2)};`);
8747
8801
  indexLines.push("");
8748
8802
  indexLines.push("export type RerouteBundle = typeof bundle;");
8749
- await Bun.write(join10(cwd, OUTPUT_ARTIFACTS), indexLines.join(`
8803
+ await Bun.write(join11(cwd, OUTPUT_ARTIFACTS), indexLines.join(`
8750
8804
  `));
8751
8805
  const barrelLines = [
8752
8806
  "// \uD83D\uDEA8 Auto-generated by Reroute - DO NOT EDIT \uD83D\uDEA8",
@@ -8756,7 +8810,7 @@ async function generate(cwd, args = [], options = {}) {
8756
8810
  "",
8757
8811
  "export * from './artifacts';"
8758
8812
  ];
8759
- await Bun.write(join10(cwd, OUTPUT_INDEX), barrelLines.join(`
8813
+ await Bun.write(join11(cwd, OUTPUT_INDEX), barrelLines.join(`
8760
8814
  `));
8761
8815
  const entryLines = [
8762
8816
  "// \uD83D\uDEA8 Auto-generated by Reroute - DO NOT EDIT \uD83D\uDEA8",
@@ -8772,10 +8826,10 @@ async function generate(cwd, args = [], options = {}) {
8772
8826
  "import './routes'; // Import routes (bundles all route components)",
8773
8827
  "import '../src/index'; // Import user's server entry"
8774
8828
  ];
8775
- await Bun.write(join10(cwd, ".reroute/entry.ts"), entryLines.join(`
8829
+ await Bun.write(join11(cwd, ".reroute/entry.ts"), entryLines.join(`
8776
8830
  `));
8777
8831
  if (!showPerformance) {
8778
- console.log(`[reroute/gen] Generated artifacts: ${join10(cwd, OUTPUT_ARTIFACTS)}`);
8832
+ console.log(`[reroute/gen] Generated artifacts: ${join11(cwd, OUTPUT_ARTIFACTS)}`);
8779
8833
  }
8780
8834
  await perfTrack("Bundle building", () => buildEntrypointBundle(cwd, args));
8781
8835
  const endTime = performance.now();
@@ -8786,22 +8840,8 @@ async function generate(cwd, args = [], options = {}) {
8786
8840
  console.log(`[reroute/gen] Generation complete in ${duration}s`);
8787
8841
  }
8788
8842
  }
8789
- async function gen(args) {
8843
+ async function startGenWatch(cwd, args) {
8790
8844
  const genStartTime = performance.now();
8791
- const cwd = process.cwd();
8792
- const watchMode = args.includes("--watch") || args.includes("-w");
8793
- if (!watchMode) {
8794
- await generate(cwd, args);
8795
- await syncThemeCss(cwd);
8796
- await bundleThemeCssIntoArtifacts(cwd);
8797
- checkMarkdownIfConfigured(cwd);
8798
- const genEndTime2 = performance.now();
8799
- const totalDuration2 = ((genEndTime2 - genStartTime) / 1000).toFixed(2);
8800
- console.log(`
8801
- [reroute/gen] ✓ Build complete in ${totalDuration2}s
8802
- `);
8803
- process.exit(0);
8804
- }
8805
8845
  console.log("[reroute/gen] Watch mode enabled");
8806
8846
  console.log("[reroute/gen] Initial generation...");
8807
8847
  await generate(cwd, args);
@@ -8910,7 +8950,7 @@ async function gen(args) {
8910
8950
  const mediumDebounce = createDebouncer(150);
8911
8951
  const slowDebounce = createDebouncer(300);
8912
8952
  const loadedConfig = await loadConfig(cwd);
8913
- const configPath = join10(cwd, "reroute.config.ts");
8953
+ const configPath = join11(cwd, "reroute.config.ts");
8914
8954
  let configWatcher = null;
8915
8955
  try {
8916
8956
  configWatcher = watch(configPath, () => {
@@ -8932,7 +8972,7 @@ async function gen(args) {
8932
8972
  ];
8933
8973
  const envWatchers = [];
8934
8974
  for (const envFile of envFiles) {
8935
- const envPath = join10(cwd, envFile);
8975
+ const envPath = join11(cwd, envFile);
8936
8976
  try {
8937
8977
  const envWatcher = watch(envPath, () => {
8938
8978
  mediumDebounce(() => {
@@ -8951,21 +8991,23 @@ async function gen(args) {
8951
8991
  let packagesWatcher = null;
8952
8992
  const isRerouteWorkspace = async () => {
8953
8993
  try {
8954
- const packagesPath = join10(cwd, "..", "..", "packages");
8955
- const exists = await Bun.file(join10(packagesPath, "core", "index.ts")).exists();
8994
+ const packagesPath = join11(cwd, "..", "..", "packages");
8995
+ const exists = await Bun.file(join11(packagesPath, "core", "index.ts")).exists();
8956
8996
  return exists;
8957
8997
  } catch {
8958
8998
  return false;
8959
8999
  }
8960
9000
  };
8961
9001
  if (await isRerouteWorkspace()) {
8962
- const packagesPath = join10(cwd, "..", "..", "packages");
9002
+ const packagesPath = join11(cwd, "..", "..", "packages");
8963
9003
  console.log("[reroute/watch] \uD83D\uDD27 Workspace development mode enabled");
8964
9004
  console.log(`[reroute/watch] \uD83D\uDD27 Watching ${packagesPath}...`);
8965
9005
  packagesWatcher = watch(packagesPath, { recursive: true }, (_ev, filename) => {
8966
9006
  if (!filename)
8967
9007
  return;
8968
9008
  const name = String(filename);
9009
+ if (isWatchNoise(name))
9010
+ return;
8969
9011
  if (name.includes("dist/") || name.includes("node_modules/"))
8970
9012
  return;
8971
9013
  if (!/\.(tsx|ts|jsx|js)$/.test(name))
@@ -8982,12 +9024,14 @@ async function gen(args) {
8982
9024
  });
8983
9025
  });
8984
9026
  }
8985
- const routesPath = join10(cwd, ROUTES_DIR);
9027
+ const routesPath = join11(cwd, ROUTES_DIR);
8986
9028
  console.log(`[reroute/watch] \uD83D\uDCC1 Watching ${routesPath}...`);
8987
9029
  const routesWatcher = watch(routesPath, { recursive: true }, (_ev, filename) => {
8988
9030
  if (!filename)
8989
9031
  return;
8990
9032
  const name = String(filename);
9033
+ if (isWatchNoise(name))
9034
+ return;
8991
9035
  quickDebounce(() => {
8992
9036
  scheduleBuild(async () => {
8993
9037
  const isContentFile = name.includes("/content/") || name.includes("\\content\\");
@@ -9005,7 +9049,7 @@ async function gen(args) {
9005
9049
  console.log("[reroute/watch] ├─ Building content chunks...");
9006
9050
  const contentStart = performance.now();
9007
9051
  const watchI18n = await discoverI18n(cwd, loadedConfig.i18n);
9008
- await Bun.write(join10(cwd, ".reroute", "i18n.json"), JSON.stringify({
9052
+ await Bun.write(join11(cwd, ".reroute", "i18n.json"), JSON.stringify({
9009
9053
  enabled: watchI18n.enabled,
9010
9054
  defaultLocale: watchI18n.defaultLocale,
9011
9055
  locales: watchI18n.locales,
@@ -9042,13 +9086,15 @@ async function gen(args) {
9042
9086
  }, "routes change");
9043
9087
  });
9044
9088
  });
9045
- const clientPath = join10(cwd, "src", "client");
9089
+ const clientPath = join11(cwd, "src", "client");
9046
9090
  console.log(`[reroute/watch] \uD83D\uDCE6 Watching ${clientPath}...`);
9047
9091
  let pendingClientFiles = new Set;
9048
9092
  const clientWatcher = watch(clientPath, { recursive: true }, (_ev, filename) => {
9049
9093
  if (!filename)
9050
9094
  return;
9051
9095
  const name = String(filename);
9096
+ if (isWatchNoise(name))
9097
+ return;
9052
9098
  if (name.includes(".reroute") || name.includes("node_modules"))
9053
9099
  return;
9054
9100
  if (name.includes("routes/") || name.includes("routes\\"))
@@ -9063,7 +9109,7 @@ async function gen(args) {
9063
9109
  const label = names.length === 1 ? names[0] : `${names.length} files`;
9064
9110
  scheduleBuild(async () => {
9065
9111
  console.log(`[reroute/watch] \uD83D\uDCE6 Client changed: ${label}`);
9066
- if (names.some((n) => n.endsWith(".ts") || n.endsWith(".tsx"))) {
9112
+ if (names.some((n) => shouldRebuildClientBundle(n))) {
9067
9113
  console.log("[reroute/watch] ├─ Rebuilding bundle...");
9068
9114
  const bundleStart = performance.now();
9069
9115
  try {
@@ -9091,16 +9137,42 @@ async function gen(args) {
9091
9137
  configWatcher,
9092
9138
  ...envWatchers
9093
9139
  ].filter(Boolean);
9094
- process.on("SIGINT", () => {
9095
- console.log(`
9140
+ return {
9141
+ close() {
9142
+ console.log(`
9096
9143
  [reroute/watch] \uD83D\uDED1 Stopping watch mode...`);
9097
- for (const watcher of watchers) {
9098
- try {
9099
- watcher?.close();
9100
- } catch {}
9144
+ for (const watcher of watchers) {
9145
+ try {
9146
+ watcher?.close();
9147
+ } catch {}
9148
+ }
9101
9149
  }
9150
+ };
9151
+ }
9152
+ async function gen(args) {
9153
+ const cwd = process.cwd();
9154
+ const watchMode = args.includes("--watch") || args.includes("-w");
9155
+ if (!watchMode) {
9156
+ const genStartTime = performance.now();
9157
+ await generate(cwd, args);
9158
+ await syncThemeCss(cwd);
9159
+ await bundleThemeCssIntoArtifacts(cwd);
9160
+ checkMarkdownIfConfigured(cwd);
9161
+ const genEndTime = performance.now();
9162
+ const totalDuration = ((genEndTime - genStartTime) / 1000).toFixed(2);
9163
+ console.log(`
9164
+ [reroute/gen] ✓ Build complete in ${totalDuration}s
9165
+ `);
9102
9166
  process.exit(0);
9167
+ }
9168
+ const session = await startGenWatch(cwd, args);
9169
+ await new Promise((resolve3) => {
9170
+ process.on("SIGINT", () => {
9171
+ session.close();
9172
+ resolve3();
9173
+ });
9103
9174
  });
9175
+ process.exit(0);
9104
9176
  }
9105
9177
  var ROUTES_DIR = "src/client/routes", OUTPUT_DIR = ".reroute", OUTPUT_ROUTES = ".reroute/routes.ts", OUTPUT_CONTENT_TS = ".reroute/content.ts", OUTPUT_COLLECTIONS_DIR = ".reroute/collections", OUTPUT_SEARCH_INDEX = ".reroute/search.json", OUTPUT_ARTIFACTS = ".reroute/artifacts.ts", OUTPUT_INDEX = ".reroute/index.ts";
9106
9178
  var init_gen = __esm(() => {
@@ -9112,6 +9184,35 @@ var init_gen = __esm(() => {
9112
9184
  init_theme();
9113
9185
  });
9114
9186
 
9187
+ // packages/cli/src/commands/lib/command.ts
9188
+ var exports_command = {};
9189
+ __export(exports_command, {
9190
+ getRerouteCommand: () => getRerouteCommand
9191
+ });
9192
+ import { existsSync as existsSync6 } from "node:fs";
9193
+ import { join as join12 } from "node:path";
9194
+ function getRerouteCommand() {
9195
+ const binPath = join12(import.meta.dir, "..", "..", "bin.ts");
9196
+ const isBunDev = existsSync6(binPath);
9197
+ if (isBunDev) {
9198
+ return `bun ${binPath}`;
9199
+ }
9200
+ const cwd = process.cwd();
9201
+ const nodeModulesPaths = [
9202
+ join12(cwd, "node_modules", ".bin", "reroute"),
9203
+ join12(cwd, "..", "node_modules", ".bin", "reroute"),
9204
+ join12(cwd, "..", "..", "node_modules", ".bin", "reroute"),
9205
+ join12(cwd, "..", "..", "..", "node_modules", ".bin", "reroute")
9206
+ ];
9207
+ for (const binPath2 of nodeModulesPaths) {
9208
+ if (existsSync6(binPath2)) {
9209
+ return binPath2;
9210
+ }
9211
+ }
9212
+ return "reroute";
9213
+ }
9214
+ var init_command = () => {};
9215
+
9115
9216
  // packages/cli/src/commands/lib/log.ts
9116
9217
  function colorizeLogPrefix(text) {
9117
9218
  let colored = text;
@@ -9162,6 +9263,17 @@ var init_log = __esm(() => {
9162
9263
  });
9163
9264
 
9164
9265
  // packages/cli/src/commands/lib/server.ts
9266
+ async function isServerRunning(port, timeout = 1000) {
9267
+ try {
9268
+ const response = await fetch(`http://localhost:${port}/`, {
9269
+ method: "GET",
9270
+ signal: AbortSignal.timeout(timeout)
9271
+ });
9272
+ return response.status < 500;
9273
+ } catch {
9274
+ return false;
9275
+ }
9276
+ }
9165
9277
  async function waitForServerReady(port = 3000, timeout = 30000) {
9166
9278
  const startTime = Date.now();
9167
9279
  let checkInterval = 50;
@@ -9183,7 +9295,7 @@ async function waitForServerReady(port = 3000, timeout = 30000) {
9183
9295
  }
9184
9296
 
9185
9297
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/alias.js
9186
- var require_alias = __commonJS((exports) => {
9298
+ var require_alias = __commonJS(function(exports) {
9187
9299
  var alias = exports;
9188
9300
  alias.bools = {
9189
9301
  auto_left_margin: ["bw", "bw"],
@@ -9658,7 +9770,7 @@ var require_alias = __commonJS((exports) => {
9658
9770
  });
9659
9771
 
9660
9772
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/tput.js
9661
- var require_tput = __commonJS((exports, module) => {
9773
+ var require_tput = __commonJS(function(exports, module) {
9662
9774
  var __dirname = "/Users/stewan/dev/reroute/node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib";
9663
9775
  var assert = __require("assert");
9664
9776
  var path3 = __require("path");
@@ -11756,7 +11868,7 @@ var require_tput = __commonJS((exports, module) => {
11756
11868
  });
11757
11869
 
11758
11870
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/colors.js
11759
- var require_colors = __commonJS((exports) => {
11871
+ var require_colors = __commonJS(function(exports) {
11760
11872
  exports.match = function(r1, g1, b1) {
11761
11873
  if (typeof r1 === "string") {
11762
11874
  var hex = r1;
@@ -12176,7 +12288,7 @@ var require_colors = __commonJS((exports) => {
12176
12288
  });
12177
12289
 
12178
12290
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/keys.js
12179
- var require_keys = __commonJS((exports) => {
12291
+ var require_keys = __commonJS(function(exports) {
12180
12292
  var EventEmitter = __require("events").EventEmitter;
12181
12293
  function listenerCount(stream2, event) {
12182
12294
  return EventEmitter.listenerCount ? EventEmitter.listenerCount(stream2, event) : stream2.listeners(event).length;
@@ -12533,7 +12645,7 @@ var require_keys = __commonJS((exports) => {
12533
12645
  });
12534
12646
 
12535
12647
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/gpmclient.js
12536
- var require_gpmclient = __commonJS((exports, module) => {
12648
+ var require_gpmclient = __commonJS(function(exports, module) {
12537
12649
  var net = __require("net");
12538
12650
  var fs = __require("fs");
12539
12651
  var EventEmitter = __require("events").EventEmitter;
@@ -12608,8 +12720,8 @@ var require_gpmclient = __commonJS((exports, module) => {
12608
12720
  }
12609
12721
  var self2 = this;
12610
12722
  if (tty) {
12611
- fs.stat(GPM_SOCKET, function(err, stat5) {
12612
- if (err || !stat5.isSocket()) {
12723
+ fs.stat(GPM_SOCKET, function(err, stat6) {
12724
+ if (err || !stat6.isSocket()) {
12613
12725
  return;
12614
12726
  }
12615
12727
  var conf = {
@@ -12696,7 +12808,7 @@ var require_gpmclient = __commonJS((exports, module) => {
12696
12808
  });
12697
12809
 
12698
12810
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/program.js
12699
- var require_program = __commonJS((exports, module) => {
12811
+ var require_program = __commonJS(function(exports, module) {
12700
12812
  var EventEmitter = __require("events").EventEmitter;
12701
12813
  var StringDecoder = __require("string_decoder").StringDecoder;
12702
12814
  var cp = __require("child_process");
@@ -15237,7 +15349,7 @@ var require_program = __commonJS((exports, module) => {
15237
15349
  });
15238
15350
 
15239
15351
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/widget.js
15240
- var require_widget = __commonJS((exports) => {
15352
+ var require_widget = __commonJS(function(exports) {
15241
15353
  var widget = exports;
15242
15354
  widget.classes = [
15243
15355
  "Node",
@@ -15291,7 +15403,7 @@ var require_widget = __commonJS((exports) => {
15291
15403
  });
15292
15404
 
15293
15405
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/unicode.js
15294
- var require_unicode = __commonJS((exports) => {
15406
+ var require_unicode = __commonJS(function(exports) {
15295
15407
  var stringFromCharCode = String.fromCharCode;
15296
15408
  var floor = Math.floor;
15297
15409
  exports.charWidth = function(str, i) {
@@ -15591,7 +15703,7 @@ var require_unicode = __commonJS((exports) => {
15591
15703
  });
15592
15704
 
15593
15705
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/events.js
15594
- var require_events = __commonJS((exports, module) => {
15706
+ var require_events = __commonJS(function(exports, module) {
15595
15707
  var slice = Array.prototype.slice;
15596
15708
  function EventEmitter() {
15597
15709
  if (!this._events)
@@ -15691,7 +15803,7 @@ var require_events = __commonJS((exports, module) => {
15691
15803
  });
15692
15804
 
15693
15805
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/widgets/node.js
15694
- var require_node = __commonJS((exports, module) => {
15806
+ var require_node = __commonJS(function(exports, module) {
15695
15807
  var EventEmitter = require_events().EventEmitter;
15696
15808
  function Node(options) {
15697
15809
  var self2 = this;
@@ -15913,7 +16025,7 @@ var require_node = __commonJS((exports, module) => {
15913
16025
  });
15914
16026
 
15915
16027
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/widgets/element.js
15916
- var require_element = __commonJS((exports, module) => {
16028
+ var require_element = __commonJS(function(exports, module) {
15917
16029
  var assert = __require("assert");
15918
16030
  var colors = require_colors();
15919
16031
  var unicode = require_unicode();
@@ -17826,7 +17938,7 @@ var require_element = __commonJS((exports, module) => {
17826
17938
  });
17827
17939
 
17828
17940
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/widgets/box.js
17829
- var require_box = __commonJS((exports, module) => {
17941
+ var require_box = __commonJS(function(exports, module) {
17830
17942
  var Node = require_node();
17831
17943
  var Element = require_element();
17832
17944
  function Box(options) {
@@ -17842,7 +17954,7 @@ var require_box = __commonJS((exports, module) => {
17842
17954
  });
17843
17955
 
17844
17956
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/widgets/scrollablebox.js
17845
- var require_scrollablebox = __commonJS((exports, module) => {
17957
+ var require_scrollablebox = __commonJS(function(exports, module) {
17846
17958
  var Node = require_node();
17847
17959
  var Box = require_box();
17848
17960
  function ScrollableBox(options) {
@@ -18122,7 +18234,7 @@ var require_scrollablebox = __commonJS((exports, module) => {
18122
18234
  });
18123
18235
 
18124
18236
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/widgets/scrollabletext.js
18125
- var require_scrollabletext = __commonJS((exports, module) => {
18237
+ var require_scrollabletext = __commonJS(function(exports, module) {
18126
18238
  var Node = require_node();
18127
18239
  var ScrollableBox = require_scrollablebox();
18128
18240
  function ScrollableText(options) {
@@ -18139,7 +18251,7 @@ var require_scrollabletext = __commonJS((exports, module) => {
18139
18251
  });
18140
18252
 
18141
18253
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/widgets/log.js
18142
- var require_log = __commonJS((exports, module) => {
18254
+ var require_log = __commonJS(function(exports, module) {
18143
18255
  var util = __require("util");
18144
18256
  var nextTick = global.setImmediate || process.nextTick.bind(process);
18145
18257
  var Node = require_node();
@@ -18193,7 +18305,7 @@ var require_log = __commonJS((exports, module) => {
18193
18305
  });
18194
18306
 
18195
18307
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/widgets/screen.js
18196
- var require_screen = __commonJS((exports, module) => {
18308
+ var require_screen = __commonJS(function(exports, module) {
18197
18309
  var path3 = __require("path");
18198
18310
  var fs = __require("fs");
18199
18311
  var cp = __require("child_process");
@@ -19902,7 +20014,7 @@ var require_screen = __commonJS((exports, module) => {
19902
20014
  });
19903
20015
 
19904
20016
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/helpers.js
19905
- var require_helpers = __commonJS((exports) => {
20017
+ var require_helpers = __commonJS(function(exports) {
19906
20018
  var fs = __require("fs");
19907
20019
  var unicode = require_unicode();
19908
20020
  var helpers = exports;
@@ -19933,7 +20045,7 @@ var require_helpers = __commonJS((exports) => {
19933
20045
  };
19934
20046
  helpers.findFile = function(start, target) {
19935
20047
  return function read(dir) {
19936
- var files, file, stat5, out;
20048
+ var files, file, stat6, out;
19937
20049
  if (dir === "/dev" || dir === "/sys" || dir === "/proc" || dir === "/net") {
19938
20050
  return null;
19939
20051
  }
@@ -19948,11 +20060,11 @@ var require_helpers = __commonJS((exports) => {
19948
20060
  return (dir === "/" ? "" : dir) + "/" + file;
19949
20061
  }
19950
20062
  try {
19951
- stat5 = fs.lstatSync((dir === "/" ? "" : dir) + "/" + file);
20063
+ stat6 = fs.lstatSync((dir === "/" ? "" : dir) + "/" + file);
19952
20064
  } catch (e) {
19953
- stat5 = null;
20065
+ stat6 = null;
19954
20066
  }
19955
- if (stat5 && stat5.isDirectory() && !stat5.isSymbolicLink()) {
20067
+ if (stat6 && stat6.isDirectory() && !stat6.isSymbolicLink()) {
19956
20068
  out = read((dir === "/" ? "" : dir) + "/" + file);
19957
20069
  if (out)
19958
20070
  return out;
@@ -20024,7 +20136,7 @@ var require_helpers = __commonJS((exports) => {
20024
20136
  });
20025
20137
 
20026
20138
  // node_modules/.bun/blessed@0.1.81/node_modules/blessed/lib/blessed.js
20027
- var require_blessed = __commonJS((exports, module) => {
20139
+ var require_blessed = __commonJS(function(exports, module) {
20028
20140
  function blessed() {
20029
20141
  return blessed.program.apply(null, arguments);
20030
20142
  }
@@ -20042,7 +20154,7 @@ var require_blessed = __commonJS((exports, module) => {
20042
20154
  });
20043
20155
 
20044
20156
  // node_modules/.bun/x256@0.0.2/node_modules/x256/colors.json
20045
- var require_colors2 = __commonJS((exports, module) => {
20157
+ var require_colors2 = __commonJS(function(exports, module) {
20046
20158
  module.exports = [
20047
20159
  "000000",
20048
20160
  "800000",
@@ -20304,7 +20416,7 @@ var require_colors2 = __commonJS((exports, module) => {
20304
20416
  });
20305
20417
 
20306
20418
  // node_modules/.bun/x256@0.0.2/node_modules/x256/index.js
20307
- var require_x256 = __commonJS((exports, module) => {
20419
+ var require_x256 = __commonJS(function(exports, module) {
20308
20420
  var colors = require_colors2().map(function(hex) {
20309
20421
  var r = parseInt(hex.slice(0, 2), 16);
20310
20422
  var g = parseInt(hex.slice(2, 4), 16);
@@ -20329,7 +20441,7 @@ var require_x256 = __commonJS((exports, module) => {
20329
20441
  });
20330
20442
 
20331
20443
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/utils.js
20332
- var require_utils = __commonJS((exports) => {
20444
+ var require_utils = __commonJS(function(exports) {
20333
20445
  var x256 = require_x256();
20334
20446
  function MergeRecursive(obj1, obj2) {
20335
20447
  if (obj1 == null) {
@@ -20387,7 +20499,7 @@ var require_utils = __commonJS((exports) => {
20387
20499
  });
20388
20500
 
20389
20501
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/layout/grid.js
20390
- var require_grid = __commonJS((exports, module) => {
20502
+ var require_grid = __commonJS(function(exports, module) {
20391
20503
  var utils = require_utils();
20392
20504
  var widgetSpacing = 0;
20393
20505
  function Grid(options) {
@@ -20422,7 +20534,7 @@ var require_grid = __commonJS((exports, module) => {
20422
20534
  });
20423
20535
 
20424
20536
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/layout/carousel.js
20425
- var require_carousel = __commonJS((exports, module) => {
20537
+ var require_carousel = __commonJS(function(exports, module) {
20426
20538
  function Carousel(pages, options) {
20427
20539
  this.currPage = 0;
20428
20540
  this.pages = pages;
@@ -20491,7 +20603,7 @@ var require_carousel = __commonJS((exports, module) => {
20491
20603
  });
20492
20604
 
20493
20605
  // node_modules/.bun/drawille-blessed-contrib@1.0.0/node_modules/drawille-blessed-contrib/index.js
20494
- var require_drawille_blessed_contrib = __commonJS((exports, module) => {
20606
+ var require_drawille_blessed_contrib = __commonJS(function(exports, module) {
20495
20607
  var map = [
20496
20608
  [1, 8],
20497
20609
  [2, 16],
@@ -20601,7 +20713,7 @@ var require_drawille_blessed_contrib = __commonJS((exports, module) => {
20601
20713
  });
20602
20714
 
20603
20715
  // node_modules/.bun/bresenham@0.0.3/node_modules/bresenham/index.js
20604
- var require_bresenham = __commonJS((exports, module) => {
20716
+ var require_bresenham = __commonJS(function(exports, module) {
20605
20717
  module.exports = function(x0, y0, x1, y1, fn) {
20606
20718
  if (!fn) {
20607
20719
  var arr = [];
@@ -20640,7 +20752,7 @@ var require_bresenham = __commonJS((exports, module) => {
20640
20752
  });
20641
20753
 
20642
20754
  // node_modules/.bun/gl-matrix@2.8.1/node_modules/gl-matrix/dist/gl-matrix.js
20643
- var require_gl_matrix = __commonJS((exports, module) => {
20755
+ var require_gl_matrix = __commonJS(function(exports, module) {
20644
20756
  /*!
20645
20757
  @fileoverview gl-matrix - High performance matrix and vector operations
20646
20758
  @author Brandon Jones
@@ -21741,7 +21853,7 @@ var require_gl_matrix = __commonJS((exports, module) => {
21741
21853
  });
21742
21854
 
21743
21855
  // node_modules/.bun/drawille-canvas-blessed-contrib@0.1.3/node_modules/drawille-canvas-blessed-contrib/index.js
21744
- var require_drawille_canvas_blessed_contrib = __commonJS((exports, module) => {
21856
+ var require_drawille_canvas_blessed_contrib = __commonJS(function(exports, module) {
21745
21857
  var Canvas = require_drawille_blessed_contrib();
21746
21858
  var bresenham = require_bresenham();
21747
21859
  var glMatrix = require_gl_matrix();
@@ -21948,7 +22060,7 @@ var require_drawille_canvas_blessed_contrib = __commonJS((exports, module) => {
21948
22060
  });
21949
22061
 
21950
22062
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/canvas.js
21951
- var require_canvas = __commonJS((exports, module) => {
22063
+ var require_canvas = __commonJS(function(exports, module) {
21952
22064
  var blessed = require_blessed();
21953
22065
  var Node = blessed.Node;
21954
22066
  var Box = blessed.Box;
@@ -21988,7 +22100,7 @@ var require_canvas = __commonJS((exports, module) => {
21988
22100
  });
21989
22101
 
21990
22102
  // node_modules/.bun/map-canvas@0.1.5/node_modules/map-canvas/map.js
21991
- var require_map = __commonJS((exports, module) => {
22103
+ var require_map = __commonJS(function(exports, module) {
21992
22104
  (function() {})();
21993
22105
  Map2.prototype.drawBackground = function() {
21994
22106
  this.ctx.fillStyle = "rgb(0,0,0)";
@@ -81984,7 +82096,7 @@ var require_map = __commonJS((exports, module) => {
81984
82096
  });
81985
82097
 
81986
82098
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/map.js
81987
- var require_map2 = __commonJS((exports, module) => {
82099
+ var require_map2 = __commonJS(function(exports, module) {
81988
82100
  var blessed = require_blessed();
81989
82101
  var Node = blessed.Node;
81990
82102
  var Canvas = require_canvas();
@@ -82055,7 +82167,7 @@ var require_map2 = __commonJS((exports, module) => {
82055
82167
  });
82056
82168
 
82057
82169
  // node_modules/.bun/ansi-term@0.0.2/node_modules/ansi-term/index.js
82058
- var require_ansi_term = __commonJS((exports, module) => {
82170
+ var require_ansi_term = __commonJS(function(exports, module) {
82059
82171
  var x256 = require_x256();
82060
82172
  function AnsiTerminal(width, height) {
82061
82173
  this.width = width;
@@ -82161,7 +82273,7 @@ var require_ansi_term = __commonJS((exports, module) => {
82161
82273
  });
82162
82274
 
82163
82275
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/gauge.js
82164
- var require_gauge = __commonJS((exports, module) => {
82276
+ var require_gauge = __commonJS(function(exports, module) {
82165
82277
  var blessed = require_blessed();
82166
82278
  var Node = blessed.Node;
82167
82279
  var Canvas = require_canvas();
@@ -82193,7 +82305,7 @@ var require_gauge = __commonJS((exports, module) => {
82193
82305
  };
82194
82306
  Gauge.prototype.type = "gauge";
82195
82307
  Gauge.prototype.setData = function(data) {
82196
- if (typeof data == "object" && data.length > 0) {
82308
+ if (typeof data == typeof [] && data.length > 0) {
82197
82309
  this.setStack(data);
82198
82310
  } else if (typeof data == "number") {
82199
82311
  this.setPercent(data);
@@ -82231,7 +82343,7 @@ var require_gauge = __commonJS((exports, module) => {
82231
82343
  for (var i = 0;i < stack.length; i++) {
82232
82344
  var currentStack = stack[i];
82233
82345
  let percent;
82234
- if (typeof currentStack == "object")
82346
+ if (typeof currentStack == typeof {})
82235
82347
  percent = currentStack.percent;
82236
82348
  else
82237
82349
  percent = currentStack;
@@ -82260,7 +82372,7 @@ var require_gauge = __commonJS((exports, module) => {
82260
82372
  });
82261
82373
 
82262
82374
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/gauge-list.js
82263
- var require_gauge_list = __commonJS((exports, module) => {
82375
+ var require_gauge_list = __commonJS(function(exports, module) {
82264
82376
  var blessed = require_blessed();
82265
82377
  var Node = blessed.Node;
82266
82378
  var Canvas = require_canvas();
@@ -82311,7 +82423,7 @@ var require_gauge_list = __commonJS((exports, module) => {
82311
82423
  for (var i = 0;i < stack.length; i++) {
82312
82424
  var currentStack = stack[i];
82313
82425
  var percent;
82314
- if (typeof currentStack == "object") {
82426
+ if (typeof currentStack == typeof {}) {
82315
82427
  percent = currentStack.percent;
82316
82428
  } else {
82317
82429
  percent = currentStack;
@@ -82338,7 +82450,7 @@ var require_gauge_list = __commonJS((exports, module) => {
82338
82450
  });
82339
82451
 
82340
82452
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/lcd.js
82341
- var require_lcd = __commonJS((exports, module) => {
82453
+ var require_lcd = __commonJS(function(exports, module) {
82342
82454
  var blessed = require_blessed();
82343
82455
  var Node = blessed.Node;
82344
82456
  var Canvas = require_canvas();
@@ -82695,7 +82807,7 @@ var require_lcd = __commonJS((exports, module) => {
82695
82807
  });
82696
82808
 
82697
82809
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/donut.js
82698
- var require_donut = __commonJS((exports, module) => {
82810
+ var require_donut = __commonJS(function(exports, module) {
82699
82811
  var blessed = require_blessed();
82700
82812
  var Node = blessed.Node;
82701
82813
  var Canvas = require_canvas();
@@ -82783,15 +82895,15 @@ var require_donut = __commonJS((exports, module) => {
82783
82895
  c.fillText(ptext, cxx - Math.round(parseFloat(c.measureText(ptext).width / 2)) + 3, middle2);
82784
82896
  c.fillText(label, cxx - Math.round(parseFloat(c.measureText(label).width / 2)) + 3, middle2 + radius2 + 5);
82785
82897
  }
82786
- function makeDonut(stat5, which) {
82898
+ function makeDonut(stat6, which) {
82787
82899
  var left = radius + spacing * which + radius * 2 * (which - 1);
82788
- var percent = stat5.percent;
82900
+ var percent = stat6.percent;
82789
82901
  if (percent > 1.001) {
82790
82902
  percent = parseFloat(percent / 100).toFixed(2);
82791
82903
  }
82792
- var label = stat5.label;
82793
- var percentAltNumber = stat5.percentAltNumber;
82794
- var color = stat5.color || "green";
82904
+ var label = stat6.label;
82905
+ var percentAltNumber = stat6.percentAltNumber;
82906
+ var color = stat6.color || "green";
82795
82907
  var cxx = left;
82796
82908
  drawDonut(label, percent, radius, width, cxx, middle, color, percentAltNumber);
82797
82909
  }
@@ -82825,7 +82937,7 @@ var require_donut = __commonJS((exports, module) => {
82825
82937
  });
82826
82938
 
82827
82939
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/log.js
82828
- var require_log2 = __commonJS((exports, module) => {
82940
+ var require_log2 = __commonJS(function(exports, module) {
82829
82941
  var blessed = require_blessed();
82830
82942
  var Node = blessed.Node;
82831
82943
  var List = blessed.List;
@@ -82854,7 +82966,7 @@ var require_log2 = __commonJS((exports, module) => {
82854
82966
  });
82855
82967
 
82856
82968
  // node_modules/.bun/png-js@0.1.1/node_modules/png-js/png-node.js
82857
- var require_png_node = __commonJS((exports, module) => {
82969
+ var require_png_node = __commonJS(function(exports, module) {
82858
82970
  (function() {
82859
82971
  var PNG, fs, zlib;
82860
82972
  fs = __require("fs");
@@ -83135,7 +83247,7 @@ var require_png_node = __commonJS((exports, module) => {
83135
83247
  });
83136
83248
 
83137
83249
  // node_modules/.bun/charm@0.1.2/node_modules/charm/lib/encode.js
83138
- var require_encode = __commonJS((exports, module) => {
83250
+ var require_encode = __commonJS(function(exports, module) {
83139
83251
  var encode = module.exports = function(xs) {
83140
83252
  function bytes(s) {
83141
83253
  if (typeof s === "string") {
@@ -83154,7 +83266,7 @@ var require_encode = __commonJS((exports, module) => {
83154
83266
  });
83155
83267
 
83156
83268
  // node_modules/.bun/charm@0.1.2/node_modules/charm/index.js
83157
- var require_charm = __commonJS((exports, module) => {
83269
+ var require_charm = __commonJS(function(exports, module) {
83158
83270
  var tty = __require("tty");
83159
83271
  var encode = require_encode();
83160
83272
  var Stream = __require("stream").Stream;
@@ -83423,7 +83535,7 @@ var require_charm = __commonJS((exports, module) => {
83423
83535
  });
83424
83536
 
83425
83537
  // node_modules/.bun/buffers@0.1.1/node_modules/buffers/index.js
83426
- var require_buffers = __commonJS((exports, module) => {
83538
+ var require_buffers = __commonJS(function(exports, module) {
83427
83539
  module.exports = Buffers;
83428
83540
  function Buffers(bufs) {
83429
83541
  if (!(this instanceof Buffers))
@@ -83633,7 +83745,7 @@ var require_buffers = __commonJS((exports, module) => {
83633
83745
  });
83634
83746
 
83635
83747
  // node_modules/.bun/wordwrap@0.0.3/node_modules/wordwrap/index.js
83636
- var require_wordwrap = __commonJS((exports, module) => {
83748
+ var require_wordwrap = __commonJS(function(exports, module) {
83637
83749
  var wordwrap = module.exports = function(start, stop, params) {
83638
83750
  if (typeof start === "object") {
83639
83751
  params = start;
@@ -83694,7 +83806,7 @@ var require_wordwrap = __commonJS((exports, module) => {
83694
83806
  });
83695
83807
 
83696
83808
  // node_modules/.bun/optimist@0.2.8/node_modules/optimist/index.js
83697
- var require_optimist = __commonJS((exports, module) => {
83809
+ var require_optimist = __commonJS(function(exports, module) {
83698
83810
  var path3 = __require("path");
83699
83811
  var wordwrap = require_wordwrap();
83700
83812
  var inst = Argv(process.argv.slice(2));
@@ -84036,7 +84148,7 @@ var require_optimist = __commonJS((exports, module) => {
84036
84148
  });
84037
84149
 
84038
84150
  // node_modules/.bun/event-stream@0.9.8/node_modules/event-stream/index.js
84039
- var require_event_stream = __commonJS((exports) => {
84151
+ var require_event_stream = __commonJS(function(exports) {
84040
84152
  var Stream = __require("stream").Stream;
84041
84153
  var es = exports;
84042
84154
  es.Stream = Stream;
@@ -84461,7 +84573,7 @@ var require_event_stream = __commonJS((exports) => {
84461
84573
  });
84462
84574
 
84463
84575
  // node_modules/.bun/picture-tuber@1.0.2/node_modules/picture-tuber/index.js
84464
- var require_picture_tuber = __commonJS((exports, module) => {
84576
+ var require_picture_tuber = __commonJS(function(exports, module) {
84465
84577
  var PNG = require_png_node();
84466
84578
  var charm = require_charm();
84467
84579
  var x256 = require_x256();
@@ -84502,14 +84614,14 @@ var require_picture_tuber = __commonJS((exports, module) => {
84502
84614
  });
84503
84615
 
84504
84616
  // node_modules/.bun/isarray@0.0.1/node_modules/isarray/index.js
84505
- var require_isarray = __commonJS((exports, module) => {
84617
+ var require_isarray = __commonJS(function(exports, module) {
84506
84618
  module.exports = Array.isArray || function(arr) {
84507
84619
  return Object.prototype.toString.call(arr) == "[object Array]";
84508
84620
  };
84509
84621
  });
84510
84622
 
84511
84623
  // node_modules/.bun/core-util-is@1.0.3/node_modules/core-util-is/lib/util.js
84512
- var require_util = __commonJS((exports) => {
84624
+ var require_util = __commonJS(function(exports) {
84513
84625
  function isArray(arg) {
84514
84626
  if (Array.isArray) {
84515
84627
  return Array.isArray(arg);
@@ -84576,7 +84688,7 @@ var require_util = __commonJS((exports) => {
84576
84688
  });
84577
84689
 
84578
84690
  // node_modules/.bun/inherits@2.0.4/node_modules/inherits/inherits_browser.js
84579
- var require_inherits_browser = __commonJS((exports, module) => {
84691
+ var require_inherits_browser = __commonJS(function(exports, module) {
84580
84692
  if (typeof Object.create === "function") {
84581
84693
  module.exports = function inherits(ctor, superCtor) {
84582
84694
  if (superCtor) {
@@ -84605,7 +84717,7 @@ var require_inherits_browser = __commonJS((exports, module) => {
84605
84717
  });
84606
84718
 
84607
84719
  // node_modules/.bun/inherits@2.0.4/node_modules/inherits/inherits.js
84608
- var require_inherits = __commonJS((exports, module) => {
84720
+ var require_inherits = __commonJS(function(exports, module) {
84609
84721
  try {
84610
84722
  util = __require("util");
84611
84723
  if (typeof util.inherits !== "function")
@@ -84618,7 +84730,7 @@ var require_inherits = __commonJS((exports, module) => {
84618
84730
  });
84619
84731
 
84620
84732
  // node_modules/.bun/string_decoder@0.10.31/node_modules/string_decoder/index.js
84621
- var require_string_decoder = __commonJS((exports) => {
84733
+ var require_string_decoder = __commonJS(function(exports) {
84622
84734
  var Buffer2 = __require("buffer").Buffer;
84623
84735
  var isBufferEncoding = Buffer2.isEncoding || function(encoding) {
84624
84736
  switch (encoding && encoding.toLowerCase()) {
@@ -84754,7 +84866,7 @@ var require_string_decoder = __commonJS((exports) => {
84754
84866
  });
84755
84867
 
84756
84868
  // node_modules/.bun/readable-stream@1.0.34/node_modules/readable-stream/lib/_stream_readable.js
84757
- var require__stream_readable = __commonJS((exports, module) => {
84869
+ var require__stream_readable = __commonJS(function(exports, module) {
84758
84870
  module.exports = Readable;
84759
84871
  var isArray = require_isarray();
84760
84872
  var Buffer2 = __require("buffer").Buffer;
@@ -85361,7 +85473,7 @@ var require__stream_readable = __commonJS((exports, module) => {
85361
85473
  });
85362
85474
 
85363
85475
  // node_modules/.bun/readable-stream@1.0.34/node_modules/readable-stream/lib/_stream_duplex.js
85364
- var require__stream_duplex = __commonJS((exports, module) => {
85476
+ var require__stream_duplex = __commonJS(function(exports, module) {
85365
85477
  module.exports = Duplex;
85366
85478
  var objectKeys = Object.keys || function(obj) {
85367
85479
  var keys = [];
@@ -85405,7 +85517,7 @@ var require__stream_duplex = __commonJS((exports, module) => {
85405
85517
  });
85406
85518
 
85407
85519
  // node_modules/.bun/readable-stream@1.0.34/node_modules/readable-stream/lib/_stream_writable.js
85408
- var require__stream_writable = __commonJS((exports, module) => {
85520
+ var require__stream_writable = __commonJS(function(exports, module) {
85409
85521
  module.exports = Writable;
85410
85522
  var Buffer2 = __require("buffer").Buffer;
85411
85523
  Writable.WritableState = WritableState;
@@ -85633,7 +85745,7 @@ var require__stream_writable = __commonJS((exports, module) => {
85633
85745
  });
85634
85746
 
85635
85747
  // node_modules/.bun/readable-stream@1.0.34/node_modules/readable-stream/lib/_stream_transform.js
85636
- var require__stream_transform = __commonJS((exports, module) => {
85748
+ var require__stream_transform = __commonJS(function(exports, module) {
85637
85749
  module.exports = Transform;
85638
85750
  var Duplex = require__stream_duplex();
85639
85751
  var util = require_util();
@@ -85725,7 +85837,7 @@ var require__stream_transform = __commonJS((exports, module) => {
85725
85837
  });
85726
85838
 
85727
85839
  // node_modules/.bun/readable-stream@1.0.34/node_modules/readable-stream/lib/_stream_passthrough.js
85728
- var require__stream_passthrough = __commonJS((exports, module) => {
85840
+ var require__stream_passthrough = __commonJS(function(exports, module) {
85729
85841
  module.exports = PassThrough;
85730
85842
  var Transform = require__stream_transform();
85731
85843
  var util = require_util();
@@ -85742,7 +85854,7 @@ var require__stream_passthrough = __commonJS((exports, module) => {
85742
85854
  });
85743
85855
 
85744
85856
  // node_modules/.bun/readable-stream@1.0.34/node_modules/readable-stream/readable.js
85745
- var require_readable = __commonJS((exports, module) => {
85857
+ var require_readable = __commonJS(function(exports, module) {
85746
85858
  var Stream = __require("stream");
85747
85859
  exports = module.exports = require__stream_readable();
85748
85860
  exports.Stream = Stream;
@@ -85757,7 +85869,7 @@ var require_readable = __commonJS((exports, module) => {
85757
85869
  });
85758
85870
 
85759
85871
  // node_modules/.bun/memory-streams@0.1.3/node_modules/memory-streams/lib/ReadableStream.js
85760
- var require_ReadableStream = __commonJS((exports, module) => {
85872
+ var require_ReadableStream = __commonJS(function(exports, module) {
85761
85873
  var Stream = require_readable();
85762
85874
  var util = __require("util");
85763
85875
  module.exports = ReadableStream;
@@ -85776,7 +85888,7 @@ var require_ReadableStream = __commonJS((exports, module) => {
85776
85888
  });
85777
85889
 
85778
85890
  // node_modules/.bun/memory-streams@0.1.3/node_modules/memory-streams/lib/WritableStream.js
85779
- var require_WritableStream = __commonJS((exports, module) => {
85891
+ var require_WritableStream = __commonJS(function(exports, module) {
85780
85892
  var Stream = require_readable();
85781
85893
  var util = __require("util");
85782
85894
  module.exports = WritableStream;
@@ -85811,13 +85923,13 @@ var require_WritableStream = __commonJS((exports, module) => {
85811
85923
  });
85812
85924
 
85813
85925
  // node_modules/.bun/memory-streams@0.1.3/node_modules/memory-streams/index.js
85814
- var require_memory_streams = __commonJS((exports, module) => {
85926
+ var require_memory_streams = __commonJS(function(exports, module) {
85815
85927
  exports.ReadableStream = require_ReadableStream();
85816
85928
  exports.WritableStream = require_WritableStream();
85817
85929
  });
85818
85930
 
85819
85931
  // node_modules/.bun/memorystream@0.3.1/node_modules/memorystream/index.js
85820
- var require_memorystream = __commonJS((exports, module) => {
85932
+ var require_memorystream = __commonJS(function(exports, module) {
85821
85933
  var STREAM = __require("stream");
85822
85934
  var UTIL = __require("util");
85823
85935
  var StringDecoder = __require("string_decoder").StringDecoder;
@@ -85965,7 +86077,7 @@ var require_memorystream = __commonJS((exports, module) => {
85965
86077
  });
85966
86078
 
85967
86079
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/picture.js
85968
- var require_picture = __commonJS((exports, module) => {
86080
+ var require_picture = __commonJS(function(exports, module) {
85969
86081
  var blessed = require_blessed();
85970
86082
  var Node = blessed.Node;
85971
86083
  var Box = blessed.Box;
@@ -86020,7 +86132,7 @@ var require_picture = __commonJS((exports, module) => {
86020
86132
  });
86021
86133
 
86022
86134
  // node_modules/.bun/sparkline@0.1.2/node_modules/sparkline/lib/sparkline.js
86023
- var require_sparkline = __commonJS((exports, module) => {
86135
+ var require_sparkline = __commonJS(function(exports, module) {
86024
86136
  (function(window2) {
86025
86137
  var sparkline, ticks = ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"];
86026
86138
  sparkline = function(numbers, options) {
@@ -86049,7 +86161,7 @@ var require_sparkline = __commonJS((exports, module) => {
86049
86161
  });
86050
86162
 
86051
86163
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/sparkline.js
86052
- var require_sparkline2 = __commonJS((exports, module) => {
86164
+ var require_sparkline2 = __commonJS(function(exports, module) {
86053
86165
  var blessed = require_blessed();
86054
86166
  var Node = blessed.Node;
86055
86167
  var Box = blessed.Box;
@@ -86106,14 +86218,14 @@ var require_sparkline2 = __commonJS((exports, module) => {
86106
86218
  });
86107
86219
 
86108
86220
  // node_modules/.bun/ansi-regex@2.1.1/node_modules/ansi-regex/index.js
86109
- var require_ansi_regex = __commonJS((exports, module) => {
86221
+ var require_ansi_regex = __commonJS(function(exports, module) {
86110
86222
  module.exports = function() {
86111
86223
  return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;
86112
86224
  };
86113
86225
  });
86114
86226
 
86115
86227
  // node_modules/.bun/strip-ansi@3.0.1/node_modules/strip-ansi/index.js
86116
- var require_strip_ansi = __commonJS((exports, module) => {
86228
+ var require_strip_ansi = __commonJS(function(exports, module) {
86117
86229
  var ansiRegex = require_ansi_regex()();
86118
86230
  module.exports = function(str) {
86119
86231
  return typeof str === "string" ? str.replace(ansiRegex, "") : str;
@@ -86121,7 +86233,7 @@ var require_strip_ansi = __commonJS((exports, module) => {
86121
86233
  });
86122
86234
 
86123
86235
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/table.js
86124
- var require_table = __commonJS((exports, module) => {
86236
+ var require_table = __commonJS(function(exports, module) {
86125
86237
  var blessed = require_blessed();
86126
86238
  var Node = blessed.Node;
86127
86239
  var Box = blessed.Box;
@@ -86237,7 +86349,7 @@ var require_table = __commonJS((exports, module) => {
86237
86349
  });
86238
86350
 
86239
86351
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/tree.js
86240
- var require_tree = __commonJS((exports, module) => {
86352
+ var require_tree = __commonJS(function(exports, module) {
86241
86353
  var blessed = require_blessed();
86242
86354
  var Node = blessed.Node;
86243
86355
  var Box = blessed.Box;
@@ -86370,7 +86482,7 @@ var require_tree = __commonJS((exports, module) => {
86370
86482
  });
86371
86483
 
86372
86484
  // node_modules/.bun/marked@4.3.0/node_modules/marked/lib/marked.cjs
86373
- var require_marked = __commonJS((exports) => {
86485
+ var require_marked = __commonJS(function(exports) {
86374
86486
  function _defineProperties(target, props) {
86375
86487
  for (var i = 0;i < props.length; i++) {
86376
86488
  var descriptor = props[i];
@@ -88684,7 +88796,7 @@ Please report this to https://github.com/markedjs/marked.`;
88684
88796
  });
88685
88797
 
88686
88798
  // node_modules/.bun/esprima@4.0.1/node_modules/esprima/dist/esprima.js
88687
- var require_esprima = __commonJS((exports, module) => {
88799
+ var require_esprima = __commonJS(function(exports, module) {
88688
88800
  (function webpackUniversalModuleDefinition(root, factory) {
88689
88801
  if (typeof exports === "object" && typeof module === "object")
88690
88802
  module.exports = factory();
@@ -94824,7 +94936,7 @@ var require_esprima = __commonJS((exports, module) => {
94824
94936
  });
94825
94937
 
94826
94938
  // node_modules/.bun/redeyed@2.1.1/node_modules/redeyed/redeyed.js
94827
- var require_redeyed = __commonJS((exports, module) => {
94939
+ var require_redeyed = __commonJS(function(exports, module) {
94828
94940
  (function() {
94829
94941
  var esprima;
94830
94942
  var exportFn;
@@ -95064,7 +95176,7 @@ Should be of format "before:after"`);
95064
95176
  });
95065
95177
 
95066
95178
  // node_modules/.bun/ansicolors@0.3.2/node_modules/ansicolors/ansicolors.js
95067
- var require_ansicolors = __commonJS((exports, module) => {
95179
+ var require_ansicolors = __commonJS(function(exports, module) {
95068
95180
  var colorNums = {
95069
95181
  white: 37,
95070
95182
  black: 30,
@@ -95124,7 +95236,7 @@ var require_ansicolors = __commonJS((exports, module) => {
95124
95236
  });
95125
95237
 
95126
95238
  // node_modules/.bun/cardinal@2.1.1/node_modules/cardinal/themes/default.js
95127
- var require_default = __commonJS((exports, module) => {
95239
+ var require_default = __commonJS(function(exports, module) {
95128
95240
  var colors = require_ansicolors();
95129
95241
  module.exports = {
95130
95242
  Boolean: {
@@ -95296,7 +95408,7 @@ var require_default = __commonJS((exports, module) => {
95296
95408
  });
95297
95409
 
95298
95410
  // node_modules/.bun/cardinal@2.1.1/node_modules/cardinal/lib/highlight.js
95299
- var require_highlight = __commonJS((exports, module) => {
95411
+ var require_highlight = __commonJS(function(exports, module) {
95300
95412
  var redeyed = require_redeyed();
95301
95413
  var theme = require_default();
95302
95414
  var colors = require_ansicolors();
@@ -95368,7 +95480,7 @@ var require_highlight = __commonJS((exports, module) => {
95368
95480
  });
95369
95481
 
95370
95482
  // node_modules/.bun/cardinal@2.1.1/node_modules/cardinal/lib/highlightFile.js
95371
- var require_highlightFile = __commonJS((exports, module) => {
95483
+ var require_highlightFile = __commonJS(function(exports, module) {
95372
95484
  var fs = __require("fs");
95373
95485
  var highlight = require_highlight();
95374
95486
  function isFunction(obj) {
@@ -95393,7 +95505,7 @@ var require_highlightFile = __commonJS((exports, module) => {
95393
95505
  });
95394
95506
 
95395
95507
  // node_modules/.bun/cardinal@2.1.1/node_modules/cardinal/lib/highlightFileSync.js
95396
- var require_highlightFileSync = __commonJS((exports, module) => {
95508
+ var require_highlightFileSync = __commonJS(function(exports, module) {
95397
95509
  var fs = __require("fs");
95398
95510
  var highlight = require_highlight();
95399
95511
  module.exports = function highlightFileSync(fullPath, opts) {
@@ -95404,7 +95516,7 @@ var require_highlightFileSync = __commonJS((exports, module) => {
95404
95516
  });
95405
95517
 
95406
95518
  // node_modules/.bun/cardinal@2.1.1/node_modules/cardinal/cardinal.js
95407
- var require_cardinal = __commonJS((exports, module) => {
95519
+ var require_cardinal = __commonJS(function(exports, module) {
95408
95520
  module.exports = {
95409
95521
  highlight: require_highlight(),
95410
95522
  highlightFile: require_highlightFile(),
@@ -95413,13 +95525,13 @@ var require_cardinal = __commonJS((exports, module) => {
95413
95525
  });
95414
95526
 
95415
95527
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_freeGlobal.js
95416
- var require__freeGlobal = __commonJS((exports, module) => {
95528
+ var require__freeGlobal = __commonJS(function(exports, module) {
95417
95529
  var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
95418
95530
  module.exports = freeGlobal;
95419
95531
  });
95420
95532
 
95421
95533
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_root.js
95422
- var require__root = __commonJS((exports, module) => {
95534
+ var require__root = __commonJS(function(exports, module) {
95423
95535
  var freeGlobal = require__freeGlobal();
95424
95536
  var freeSelf = typeof self == "object" && self && self.Object === Object && self;
95425
95537
  var root = freeGlobal || freeSelf || Function("return this")();
@@ -95427,14 +95539,14 @@ var require__root = __commonJS((exports, module) => {
95427
95539
  });
95428
95540
 
95429
95541
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_Symbol.js
95430
- var require__Symbol = __commonJS((exports, module) => {
95542
+ var require__Symbol = __commonJS(function(exports, module) {
95431
95543
  var root = require__root();
95432
95544
  var Symbol2 = root.Symbol;
95433
95545
  module.exports = Symbol2;
95434
95546
  });
95435
95547
 
95436
95548
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_copyArray.js
95437
- var require__copyArray = __commonJS((exports, module) => {
95549
+ var require__copyArray = __commonJS(function(exports, module) {
95438
95550
  function copyArray(source, array) {
95439
95551
  var index = -1, length = source.length;
95440
95552
  array || (array = Array(length));
@@ -95447,7 +95559,7 @@ var require__copyArray = __commonJS((exports, module) => {
95447
95559
  });
95448
95560
 
95449
95561
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_getRawTag.js
95450
- var require__getRawTag = __commonJS((exports, module) => {
95562
+ var require__getRawTag = __commonJS(function(exports, module) {
95451
95563
  var Symbol2 = require__Symbol();
95452
95564
  var objectProto = Object.prototype;
95453
95565
  var hasOwnProperty = objectProto.hasOwnProperty;
@@ -95473,7 +95585,7 @@ var require__getRawTag = __commonJS((exports, module) => {
95473
95585
  });
95474
95586
 
95475
95587
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_objectToString.js
95476
- var require__objectToString = __commonJS((exports, module) => {
95588
+ var require__objectToString = __commonJS(function(exports, module) {
95477
95589
  var objectProto = Object.prototype;
95478
95590
  var nativeObjectToString = objectProto.toString;
95479
95591
  function objectToString(value) {
@@ -95483,7 +95595,7 @@ var require__objectToString = __commonJS((exports, module) => {
95483
95595
  });
95484
95596
 
95485
95597
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_baseGetTag.js
95486
- var require__baseGetTag = __commonJS((exports, module) => {
95598
+ var require__baseGetTag = __commonJS(function(exports, module) {
95487
95599
  var Symbol2 = require__Symbol();
95488
95600
  var getRawTag = require__getRawTag();
95489
95601
  var objectToString = require__objectToString();
@@ -95500,7 +95612,7 @@ var require__baseGetTag = __commonJS((exports, module) => {
95500
95612
  });
95501
95613
 
95502
95614
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/isObject.js
95503
- var require_isObject = __commonJS((exports, module) => {
95615
+ var require_isObject = __commonJS(function(exports, module) {
95504
95616
  function isObject(value) {
95505
95617
  var type = typeof value;
95506
95618
  return value != null && (type == "object" || type == "function");
@@ -95509,7 +95621,7 @@ var require_isObject = __commonJS((exports, module) => {
95509
95621
  });
95510
95622
 
95511
95623
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/isFunction.js
95512
- var require_isFunction = __commonJS((exports, module) => {
95624
+ var require_isFunction = __commonJS(function(exports, module) {
95513
95625
  var baseGetTag = require__baseGetTag();
95514
95626
  var isObject = require_isObject();
95515
95627
  var asyncTag = "[object AsyncFunction]";
@@ -95527,14 +95639,14 @@ var require_isFunction = __commonJS((exports, module) => {
95527
95639
  });
95528
95640
 
95529
95641
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_coreJsData.js
95530
- var require__coreJsData = __commonJS((exports, module) => {
95642
+ var require__coreJsData = __commonJS(function(exports, module) {
95531
95643
  var root = require__root();
95532
95644
  var coreJsData = root["__core-js_shared__"];
95533
95645
  module.exports = coreJsData;
95534
95646
  });
95535
95647
 
95536
95648
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_isMasked.js
95537
- var require__isMasked = __commonJS((exports, module) => {
95649
+ var require__isMasked = __commonJS(function(exports, module) {
95538
95650
  var coreJsData = require__coreJsData();
95539
95651
  var maskSrcKey = function() {
95540
95652
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
@@ -95547,7 +95659,7 @@ var require__isMasked = __commonJS((exports, module) => {
95547
95659
  });
95548
95660
 
95549
95661
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_toSource.js
95550
- var require__toSource = __commonJS((exports, module) => {
95662
+ var require__toSource = __commonJS(function(exports, module) {
95551
95663
  var funcProto = Function.prototype;
95552
95664
  var funcToString = funcProto.toString;
95553
95665
  function toSource(func) {
@@ -95565,7 +95677,7 @@ var require__toSource = __commonJS((exports, module) => {
95565
95677
  });
95566
95678
 
95567
95679
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_baseIsNative.js
95568
- var require__baseIsNative = __commonJS((exports, module) => {
95680
+ var require__baseIsNative = __commonJS(function(exports, module) {
95569
95681
  var isFunction = require_isFunction();
95570
95682
  var isMasked = require__isMasked();
95571
95683
  var isObject = require_isObject();
@@ -95588,7 +95700,7 @@ var require__baseIsNative = __commonJS((exports, module) => {
95588
95700
  });
95589
95701
 
95590
95702
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_getValue.js
95591
- var require__getValue = __commonJS((exports, module) => {
95703
+ var require__getValue = __commonJS(function(exports, module) {
95592
95704
  function getValue(object, key) {
95593
95705
  return object == null ? undefined : object[key];
95594
95706
  }
@@ -95596,7 +95708,7 @@ var require__getValue = __commonJS((exports, module) => {
95596
95708
  });
95597
95709
 
95598
95710
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_getNative.js
95599
- var require__getNative = __commonJS((exports, module) => {
95711
+ var require__getNative = __commonJS(function(exports, module) {
95600
95712
  var baseIsNative = require__baseIsNative();
95601
95713
  var getValue = require__getValue();
95602
95714
  function getNative(object, key) {
@@ -95607,7 +95719,7 @@ var require__getNative = __commonJS((exports, module) => {
95607
95719
  });
95608
95720
 
95609
95721
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_DataView.js
95610
- var require__DataView = __commonJS((exports, module) => {
95722
+ var require__DataView = __commonJS(function(exports, module) {
95611
95723
  var getNative = require__getNative();
95612
95724
  var root = require__root();
95613
95725
  var DataView = getNative(root, "DataView");
@@ -95615,7 +95727,7 @@ var require__DataView = __commonJS((exports, module) => {
95615
95727
  });
95616
95728
 
95617
95729
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_Map.js
95618
- var require__Map = __commonJS((exports, module) => {
95730
+ var require__Map = __commonJS(function(exports, module) {
95619
95731
  var getNative = require__getNative();
95620
95732
  var root = require__root();
95621
95733
  var Map2 = getNative(root, "Map");
@@ -95623,7 +95735,7 @@ var require__Map = __commonJS((exports, module) => {
95623
95735
  });
95624
95736
 
95625
95737
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_Promise.js
95626
- var require__Promise = __commonJS((exports, module) => {
95738
+ var require__Promise = __commonJS(function(exports, module) {
95627
95739
  var getNative = require__getNative();
95628
95740
  var root = require__root();
95629
95741
  var Promise2 = getNative(root, "Promise");
@@ -95631,7 +95743,7 @@ var require__Promise = __commonJS((exports, module) => {
95631
95743
  });
95632
95744
 
95633
95745
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_Set.js
95634
- var require__Set = __commonJS((exports, module) => {
95746
+ var require__Set = __commonJS(function(exports, module) {
95635
95747
  var getNative = require__getNative();
95636
95748
  var root = require__root();
95637
95749
  var Set2 = getNative(root, "Set");
@@ -95639,7 +95751,7 @@ var require__Set = __commonJS((exports, module) => {
95639
95751
  });
95640
95752
 
95641
95753
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_WeakMap.js
95642
- var require__WeakMap = __commonJS((exports, module) => {
95754
+ var require__WeakMap = __commonJS(function(exports, module) {
95643
95755
  var getNative = require__getNative();
95644
95756
  var root = require__root();
95645
95757
  var WeakMap2 = getNative(root, "WeakMap");
@@ -95647,7 +95759,7 @@ var require__WeakMap = __commonJS((exports, module) => {
95647
95759
  });
95648
95760
 
95649
95761
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_getTag.js
95650
- var require__getTag = __commonJS((exports, module) => {
95762
+ var require__getTag = __commonJS(function(exports, module) {
95651
95763
  var DataView = require__DataView();
95652
95764
  var Map2 = require__Map();
95653
95765
  var Promise2 = require__Promise();
@@ -95691,7 +95803,7 @@ var require__getTag = __commonJS((exports, module) => {
95691
95803
  });
95692
95804
 
95693
95805
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/isLength.js
95694
- var require_isLength = __commonJS((exports, module) => {
95806
+ var require_isLength = __commonJS(function(exports, module) {
95695
95807
  var MAX_SAFE_INTEGER = 9007199254740991;
95696
95808
  function isLength(value) {
95697
95809
  return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
@@ -95700,7 +95812,7 @@ var require_isLength = __commonJS((exports, module) => {
95700
95812
  });
95701
95813
 
95702
95814
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/isArrayLike.js
95703
- var require_isArrayLike = __commonJS((exports, module) => {
95815
+ var require_isArrayLike = __commonJS(function(exports, module) {
95704
95816
  var isFunction = require_isFunction();
95705
95817
  var isLength = require_isLength();
95706
95818
  function isArrayLike(value) {
@@ -95710,13 +95822,13 @@ var require_isArrayLike = __commonJS((exports, module) => {
95710
95822
  });
95711
95823
 
95712
95824
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/isArray.js
95713
- var require_isArray = __commonJS((exports, module) => {
95825
+ var require_isArray = __commonJS(function(exports, module) {
95714
95826
  var isArray = Array.isArray;
95715
95827
  module.exports = isArray;
95716
95828
  });
95717
95829
 
95718
95830
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/isObjectLike.js
95719
- var require_isObjectLike = __commonJS((exports, module) => {
95831
+ var require_isObjectLike = __commonJS(function(exports, module) {
95720
95832
  function isObjectLike(value) {
95721
95833
  return value != null && typeof value == "object";
95722
95834
  }
@@ -95724,7 +95836,7 @@ var require_isObjectLike = __commonJS((exports, module) => {
95724
95836
  });
95725
95837
 
95726
95838
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/isString.js
95727
- var require_isString = __commonJS((exports, module) => {
95839
+ var require_isString = __commonJS(function(exports, module) {
95728
95840
  var baseGetTag = require__baseGetTag();
95729
95841
  var isArray = require_isArray();
95730
95842
  var isObjectLike = require_isObjectLike();
@@ -95736,7 +95848,7 @@ var require_isString = __commonJS((exports, module) => {
95736
95848
  });
95737
95849
 
95738
95850
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_iteratorToArray.js
95739
- var require__iteratorToArray = __commonJS((exports, module) => {
95851
+ var require__iteratorToArray = __commonJS(function(exports, module) {
95740
95852
  function iteratorToArray(iterator) {
95741
95853
  var data, result = [];
95742
95854
  while (!(data = iterator.next()).done) {
@@ -95748,7 +95860,7 @@ var require__iteratorToArray = __commonJS((exports, module) => {
95748
95860
  });
95749
95861
 
95750
95862
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_mapToArray.js
95751
- var require__mapToArray = __commonJS((exports, module) => {
95863
+ var require__mapToArray = __commonJS(function(exports, module) {
95752
95864
  function mapToArray(map) {
95753
95865
  var index = -1, result = Array(map.size);
95754
95866
  map.forEach(function(value, key) {
@@ -95760,7 +95872,7 @@ var require__mapToArray = __commonJS((exports, module) => {
95760
95872
  });
95761
95873
 
95762
95874
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_setToArray.js
95763
- var require__setToArray = __commonJS((exports, module) => {
95875
+ var require__setToArray = __commonJS(function(exports, module) {
95764
95876
  function setToArray(set) {
95765
95877
  var index = -1, result = Array(set.size);
95766
95878
  set.forEach(function(value) {
@@ -95772,7 +95884,7 @@ var require__setToArray = __commonJS((exports, module) => {
95772
95884
  });
95773
95885
 
95774
95886
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_asciiToArray.js
95775
- var require__asciiToArray = __commonJS((exports, module) => {
95887
+ var require__asciiToArray = __commonJS(function(exports, module) {
95776
95888
  function asciiToArray(string) {
95777
95889
  return string.split("");
95778
95890
  }
@@ -95780,7 +95892,7 @@ var require__asciiToArray = __commonJS((exports, module) => {
95780
95892
  });
95781
95893
 
95782
95894
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_hasUnicode.js
95783
- var require__hasUnicode = __commonJS((exports, module) => {
95895
+ var require__hasUnicode = __commonJS(function(exports, module) {
95784
95896
  var rsAstralRange = "\\ud800-\\udfff";
95785
95897
  var rsComboMarksRange = "\\u0300-\\u036f";
95786
95898
  var reComboHalfMarksRange = "\\ufe20-\\ufe2f";
@@ -95796,7 +95908,7 @@ var require__hasUnicode = __commonJS((exports, module) => {
95796
95908
  });
95797
95909
 
95798
95910
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_unicodeToArray.js
95799
- var require__unicodeToArray = __commonJS((exports, module) => {
95911
+ var require__unicodeToArray = __commonJS(function(exports, module) {
95800
95912
  var rsAstralRange = "\\ud800-\\udfff";
95801
95913
  var rsComboMarksRange = "\\u0300-\\u036f";
95802
95914
  var reComboHalfMarksRange = "\\ufe20-\\ufe2f";
@@ -95824,7 +95936,7 @@ var require__unicodeToArray = __commonJS((exports, module) => {
95824
95936
  });
95825
95937
 
95826
95938
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_stringToArray.js
95827
- var require__stringToArray = __commonJS((exports, module) => {
95939
+ var require__stringToArray = __commonJS(function(exports, module) {
95828
95940
  var asciiToArray = require__asciiToArray();
95829
95941
  var hasUnicode = require__hasUnicode();
95830
95942
  var unicodeToArray = require__unicodeToArray();
@@ -95835,7 +95947,7 @@ var require__stringToArray = __commonJS((exports, module) => {
95835
95947
  });
95836
95948
 
95837
95949
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_arrayMap.js
95838
- var require__arrayMap = __commonJS((exports, module) => {
95950
+ var require__arrayMap = __commonJS(function(exports, module) {
95839
95951
  function arrayMap(array, iteratee) {
95840
95952
  var index = -1, length = array == null ? 0 : array.length, result = Array(length);
95841
95953
  while (++index < length) {
@@ -95847,7 +95959,7 @@ var require__arrayMap = __commonJS((exports, module) => {
95847
95959
  });
95848
95960
 
95849
95961
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_baseValues.js
95850
- var require__baseValues = __commonJS((exports, module) => {
95962
+ var require__baseValues = __commonJS(function(exports, module) {
95851
95963
  var arrayMap = require__arrayMap();
95852
95964
  function baseValues(object, props) {
95853
95965
  return arrayMap(props, function(key) {
@@ -95858,7 +95970,7 @@ var require__baseValues = __commonJS((exports, module) => {
95858
95970
  });
95859
95971
 
95860
95972
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_baseTimes.js
95861
- var require__baseTimes = __commonJS((exports, module) => {
95973
+ var require__baseTimes = __commonJS(function(exports, module) {
95862
95974
  function baseTimes(n, iteratee) {
95863
95975
  var index = -1, result = Array(n);
95864
95976
  while (++index < n) {
@@ -95870,7 +95982,7 @@ var require__baseTimes = __commonJS((exports, module) => {
95870
95982
  });
95871
95983
 
95872
95984
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_baseIsArguments.js
95873
- var require__baseIsArguments = __commonJS((exports, module) => {
95985
+ var require__baseIsArguments = __commonJS(function(exports, module) {
95874
95986
  var baseGetTag = require__baseGetTag();
95875
95987
  var isObjectLike = require_isObjectLike();
95876
95988
  var argsTag = "[object Arguments]";
@@ -95881,7 +95993,7 @@ var require__baseIsArguments = __commonJS((exports, module) => {
95881
95993
  });
95882
95994
 
95883
95995
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/isArguments.js
95884
- var require_isArguments = __commonJS((exports, module) => {
95996
+ var require_isArguments = __commonJS(function(exports, module) {
95885
95997
  var baseIsArguments = require__baseIsArguments();
95886
95998
  var isObjectLike = require_isObjectLike();
95887
95999
  var objectProto = Object.prototype;
@@ -95896,7 +96008,7 @@ var require_isArguments = __commonJS((exports, module) => {
95896
96008
  });
95897
96009
 
95898
96010
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/stubFalse.js
95899
- var require_stubFalse = __commonJS((exports, module) => {
96011
+ var require_stubFalse = __commonJS(function(exports, module) {
95900
96012
  function stubFalse() {
95901
96013
  return false;
95902
96014
  }
@@ -95904,7 +96016,7 @@ var require_stubFalse = __commonJS((exports, module) => {
95904
96016
  });
95905
96017
 
95906
96018
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/isBuffer.js
95907
- var require_isBuffer = __commonJS((exports, module) => {
96019
+ var require_isBuffer = __commonJS(function(exports, module) {
95908
96020
  var root = require__root();
95909
96021
  var stubFalse = require_stubFalse();
95910
96022
  var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
@@ -95917,7 +96029,7 @@ var require_isBuffer = __commonJS((exports, module) => {
95917
96029
  });
95918
96030
 
95919
96031
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_isIndex.js
95920
- var require__isIndex = __commonJS((exports, module) => {
96032
+ var require__isIndex = __commonJS(function(exports, module) {
95921
96033
  var MAX_SAFE_INTEGER = 9007199254740991;
95922
96034
  var reIsUint = /^(?:0|[1-9]\d*)$/;
95923
96035
  function isIndex(value, length) {
@@ -95929,7 +96041,7 @@ var require__isIndex = __commonJS((exports, module) => {
95929
96041
  });
95930
96042
 
95931
96043
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_baseIsTypedArray.js
95932
- var require__baseIsTypedArray = __commonJS((exports, module) => {
96044
+ var require__baseIsTypedArray = __commonJS(function(exports, module) {
95933
96045
  var baseGetTag = require__baseGetTag();
95934
96046
  var isLength = require_isLength();
95935
96047
  var isObjectLike = require_isObjectLike();
@@ -95967,7 +96079,7 @@ var require__baseIsTypedArray = __commonJS((exports, module) => {
95967
96079
  });
95968
96080
 
95969
96081
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_baseUnary.js
95970
- var require__baseUnary = __commonJS((exports, module) => {
96082
+ var require__baseUnary = __commonJS(function(exports, module) {
95971
96083
  function baseUnary(func) {
95972
96084
  return function(value) {
95973
96085
  return func(value);
@@ -95977,7 +96089,7 @@ var require__baseUnary = __commonJS((exports, module) => {
95977
96089
  });
95978
96090
 
95979
96091
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_nodeUtil.js
95980
- var require__nodeUtil = __commonJS((exports, module) => {
96092
+ var require__nodeUtil = __commonJS(function(exports, module) {
95981
96093
  var freeGlobal = require__freeGlobal();
95982
96094
  var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
95983
96095
  var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
@@ -95996,7 +96108,7 @@ var require__nodeUtil = __commonJS((exports, module) => {
95996
96108
  });
95997
96109
 
95998
96110
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/isTypedArray.js
95999
- var require_isTypedArray = __commonJS((exports, module) => {
96111
+ var require_isTypedArray = __commonJS(function(exports, module) {
96000
96112
  var baseIsTypedArray = require__baseIsTypedArray();
96001
96113
  var baseUnary = require__baseUnary();
96002
96114
  var nodeUtil = require__nodeUtil();
@@ -96006,7 +96118,7 @@ var require_isTypedArray = __commonJS((exports, module) => {
96006
96118
  });
96007
96119
 
96008
96120
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_arrayLikeKeys.js
96009
- var require__arrayLikeKeys = __commonJS((exports, module) => {
96121
+ var require__arrayLikeKeys = __commonJS(function(exports, module) {
96010
96122
  var baseTimes = require__baseTimes();
96011
96123
  var isArguments = require_isArguments();
96012
96124
  var isArray = require_isArray();
@@ -96028,7 +96140,7 @@ var require__arrayLikeKeys = __commonJS((exports, module) => {
96028
96140
  });
96029
96141
 
96030
96142
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_isPrototype.js
96031
- var require__isPrototype = __commonJS((exports, module) => {
96143
+ var require__isPrototype = __commonJS(function(exports, module) {
96032
96144
  var objectProto = Object.prototype;
96033
96145
  function isPrototype(value) {
96034
96146
  var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
@@ -96038,7 +96150,7 @@ var require__isPrototype = __commonJS((exports, module) => {
96038
96150
  });
96039
96151
 
96040
96152
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_overArg.js
96041
- var require__overArg = __commonJS((exports, module) => {
96153
+ var require__overArg = __commonJS(function(exports, module) {
96042
96154
  function overArg(func, transform) {
96043
96155
  return function(arg) {
96044
96156
  return func(transform(arg));
@@ -96048,14 +96160,14 @@ var require__overArg = __commonJS((exports, module) => {
96048
96160
  });
96049
96161
 
96050
96162
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_nativeKeys.js
96051
- var require__nativeKeys = __commonJS((exports, module) => {
96163
+ var require__nativeKeys = __commonJS(function(exports, module) {
96052
96164
  var overArg = require__overArg();
96053
96165
  var nativeKeys = overArg(Object.keys, Object);
96054
96166
  module.exports = nativeKeys;
96055
96167
  });
96056
96168
 
96057
96169
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/_baseKeys.js
96058
- var require__baseKeys = __commonJS((exports, module) => {
96170
+ var require__baseKeys = __commonJS(function(exports, module) {
96059
96171
  var isPrototype = require__isPrototype();
96060
96172
  var nativeKeys = require__nativeKeys();
96061
96173
  var objectProto = Object.prototype;
@@ -96076,7 +96188,7 @@ var require__baseKeys = __commonJS((exports, module) => {
96076
96188
  });
96077
96189
 
96078
96190
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/keys.js
96079
- var require_keys2 = __commonJS((exports, module) => {
96191
+ var require_keys2 = __commonJS(function(exports, module) {
96080
96192
  var arrayLikeKeys = require__arrayLikeKeys();
96081
96193
  var baseKeys = require__baseKeys();
96082
96194
  var isArrayLike = require_isArrayLike();
@@ -96087,7 +96199,7 @@ var require_keys2 = __commonJS((exports, module) => {
96087
96199
  });
96088
96200
 
96089
96201
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/values.js
96090
- var require_values = __commonJS((exports, module) => {
96202
+ var require_values = __commonJS(function(exports, module) {
96091
96203
  var baseValues = require__baseValues();
96092
96204
  var keys = require_keys2();
96093
96205
  function values(object) {
@@ -96097,7 +96209,7 @@ var require_values = __commonJS((exports, module) => {
96097
96209
  });
96098
96210
 
96099
96211
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/toArray.js
96100
- var require_toArray = __commonJS((exports, module) => {
96212
+ var require_toArray = __commonJS(function(exports, module) {
96101
96213
  var Symbol2 = require__Symbol();
96102
96214
  var copyArray = require__copyArray();
96103
96215
  var getTag = require__getTag();
@@ -96128,12 +96240,12 @@ var require_toArray = __commonJS((exports, module) => {
96128
96240
  });
96129
96241
 
96130
96242
  // node_modules/.bun/node-emoji@1.11.0/node_modules/node-emoji/lib/emoji.json
96131
- var require_emoji = __commonJS((exports, module) => {
96243
+ var require_emoji = __commonJS(function(exports, module) {
96132
96244
  module.exports = { "100": "💯", "1234": "🔢", umbrella_with_rain_drops: "☔", coffee: "☕", aries: "♈", taurus: "♉", sagittarius: "♐", capricorn: "♑", aquarius: "♒", pisces: "♓", anchor: "⚓", white_check_mark: "✅", sparkles: "✨", question: "❓", grey_question: "❔", grey_exclamation: "❕", exclamation: "❗", heavy_exclamation_mark: "❗", heavy_plus_sign: "➕", heavy_minus_sign: "➖", heavy_division_sign: "➗", hash: "#️⃣", keycap_star: "*️⃣", zero: "0️⃣", one: "1️⃣", two: "2️⃣", three: "3️⃣", four: "4️⃣", five: "5️⃣", six: "6️⃣", seven: "7️⃣", eight: "8️⃣", nine: "9️⃣", copyright: "©️", registered: "®️", mahjong: "🀄", black_joker: "🃏", a: "🅰️", b: "🅱️", o2: "🅾️", parking: "🅿️", ab: "🆎", cl: "🆑", cool: "🆒", free: "🆓", id: "🆔", new: "🆕", ng: "🆖", ok: "🆗", sos: "🆘", up: "🆙", vs: "🆚", "flag-ac": "🇦🇨", "flag-ad": "🇦🇩", "flag-ae": "🇦🇪", "flag-af": "🇦🇫", "flag-ag": "🇦🇬", "flag-ai": "🇦🇮", "flag-al": "🇦🇱", "flag-am": "🇦🇲", "flag-ao": "🇦🇴", "flag-aq": "🇦🇶", "flag-ar": "🇦🇷", "flag-as": "🇦🇸", "flag-at": "🇦🇹", "flag-au": "🇦🇺", "flag-aw": "🇦🇼", "flag-ax": "🇦🇽", "flag-az": "🇦🇿", "flag-ba": "🇧🇦", "flag-bb": "🇧🇧", "flag-bd": "🇧🇩", "flag-be": "🇧🇪", "flag-bf": "🇧🇫", "flag-bg": "🇧🇬", "flag-bh": "🇧🇭", "flag-bi": "🇧🇮", "flag-bj": "🇧🇯", "flag-bl": "🇧🇱", "flag-bm": "🇧🇲", "flag-bn": "🇧🇳", "flag-bo": "🇧🇴", "flag-bq": "🇧🇶", "flag-br": "🇧🇷", "flag-bs": "🇧🇸", "flag-bt": "🇧🇹", "flag-bv": "🇧🇻", "flag-bw": "🇧🇼", "flag-by": "🇧🇾", "flag-bz": "🇧🇿", "flag-ca": "🇨🇦", "flag-cc": "🇨🇨", "flag-cd": "🇨🇩", "flag-cf": "🇨🇫", "flag-cg": "🇨🇬", "flag-ch": "🇨🇭", "flag-ci": "🇨🇮", "flag-ck": "🇨🇰", "flag-cl": "🇨🇱", "flag-cm": "🇨🇲", cn: "🇨🇳", "flag-cn": "🇨🇳", "flag-co": "🇨🇴", "flag-cp": "🇨🇵", "flag-cr": "🇨🇷", "flag-cu": "🇨🇺", "flag-cv": "🇨🇻", "flag-cw": "🇨🇼", "flag-cx": "🇨🇽", "flag-cy": "🇨🇾", "flag-cz": "🇨🇿", de: "🇩🇪", "flag-de": "🇩🇪", "flag-dg": "🇩🇬", "flag-dj": "🇩🇯", "flag-dk": "🇩🇰", "flag-dm": "🇩🇲", "flag-do": "🇩🇴", "flag-dz": "🇩🇿", "flag-ea": "🇪🇦", "flag-ec": "🇪🇨", "flag-ee": "🇪🇪", "flag-eg": "🇪🇬", "flag-eh": "🇪🇭", "flag-er": "🇪🇷", es: "🇪🇸", "flag-es": "🇪🇸", "flag-et": "🇪🇹", "flag-eu": "🇪🇺", "flag-fi": "🇫🇮", "flag-fj": "🇫🇯", "flag-fk": "🇫🇰", "flag-fm": "🇫🇲", "flag-fo": "🇫🇴", fr: "🇫🇷", "flag-fr": "🇫🇷", "flag-ga": "🇬🇦", gb: "🇬🇧", uk: "🇬🇧", "flag-gb": "🇬🇧", "flag-gd": "🇬🇩", "flag-ge": "🇬🇪", "flag-gf": "🇬🇫", "flag-gg": "🇬🇬", "flag-gh": "🇬🇭", "flag-gi": "🇬🇮", "flag-gl": "🇬🇱", "flag-gm": "🇬🇲", "flag-gn": "🇬🇳", "flag-gp": "🇬🇵", "flag-gq": "🇬🇶", "flag-gr": "🇬🇷", "flag-gs": "🇬🇸", "flag-gt": "🇬🇹", "flag-gu": "🇬🇺", "flag-gw": "🇬🇼", "flag-gy": "🇬🇾", "flag-hk": "🇭🇰", "flag-hm": "🇭🇲", "flag-hn": "🇭🇳", "flag-hr": "🇭🇷", "flag-ht": "🇭🇹", "flag-hu": "🇭🇺", "flag-ic": "🇮🇨", "flag-id": "🇮🇩", "flag-ie": "🇮🇪", "flag-il": "🇮🇱", "flag-im": "🇮🇲", "flag-in": "🇮🇳", "flag-io": "🇮🇴", "flag-iq": "🇮🇶", "flag-ir": "🇮🇷", "flag-is": "🇮🇸", it: "🇮🇹", "flag-it": "🇮🇹", "flag-je": "🇯🇪", "flag-jm": "🇯🇲", "flag-jo": "🇯🇴", jp: "🇯🇵", "flag-jp": "🇯🇵", "flag-ke": "🇰🇪", "flag-kg": "🇰🇬", "flag-kh": "🇰🇭", "flag-ki": "🇰🇮", "flag-km": "🇰🇲", "flag-kn": "🇰🇳", "flag-kp": "🇰🇵", kr: "🇰🇷", "flag-kr": "🇰🇷", "flag-kw": "🇰🇼", "flag-ky": "🇰🇾", "flag-kz": "🇰🇿", "flag-la": "🇱🇦", "flag-lb": "🇱🇧", "flag-lc": "🇱🇨", "flag-li": "🇱🇮", "flag-lk": "🇱🇰", "flag-lr": "🇱🇷", "flag-ls": "🇱🇸", "flag-lt": "🇱🇹", "flag-lu": "🇱🇺", "flag-lv": "🇱🇻", "flag-ly": "🇱🇾", "flag-ma": "🇲🇦", "flag-mc": "🇲🇨", "flag-md": "🇲🇩", "flag-me": "🇲🇪", "flag-mf": "🇲🇫", "flag-mg": "🇲🇬", "flag-mh": "🇲🇭", "flag-mk": "🇲🇰", "flag-ml": "🇲🇱", "flag-mm": "🇲🇲", "flag-mn": "🇲🇳", "flag-mo": "🇲🇴", "flag-mp": "🇲🇵", "flag-mq": "🇲🇶", "flag-mr": "🇲🇷", "flag-ms": "🇲🇸", "flag-mt": "🇲🇹", "flag-mu": "🇲🇺", "flag-mv": "🇲🇻", "flag-mw": "🇲🇼", "flag-mx": "🇲🇽", "flag-my": "🇲🇾", "flag-mz": "🇲🇿", "flag-na": "🇳🇦", "flag-nc": "🇳🇨", "flag-ne": "🇳🇪", "flag-nf": "🇳🇫", "flag-ng": "🇳🇬", "flag-ni": "🇳🇮", "flag-nl": "🇳🇱", "flag-no": "🇳🇴", "flag-np": "🇳🇵", "flag-nr": "🇳🇷", "flag-nu": "🇳🇺", "flag-nz": "🇳🇿", "flag-om": "🇴🇲", "flag-pa": "🇵🇦", "flag-pe": "🇵🇪", "flag-pf": "🇵🇫", "flag-pg": "🇵🇬", "flag-ph": "🇵🇭", "flag-pk": "🇵🇰", "flag-pl": "🇵🇱", "flag-pm": "🇵🇲", "flag-pn": "🇵🇳", "flag-pr": "🇵🇷", "flag-ps": "🇵🇸", "flag-pt": "🇵🇹", "flag-pw": "🇵🇼", "flag-py": "🇵🇾", "flag-qa": "🇶🇦", "flag-re": "🇷🇪", "flag-ro": "🇷🇴", "flag-rs": "🇷🇸", ru: "🇷🇺", "flag-ru": "🇷🇺", "flag-rw": "🇷🇼", "flag-sa": "🇸🇦", "flag-sb": "🇸🇧", "flag-sc": "🇸🇨", "flag-sd": "🇸🇩", "flag-se": "🇸🇪", "flag-sg": "🇸🇬", "flag-sh": "🇸🇭", "flag-si": "🇸🇮", "flag-sj": "🇸🇯", "flag-sk": "🇸🇰", "flag-sl": "🇸🇱", "flag-sm": "🇸🇲", "flag-sn": "🇸🇳", "flag-so": "🇸🇴", "flag-sr": "🇸🇷", "flag-ss": "🇸🇸", "flag-st": "🇸🇹", "flag-sv": "🇸🇻", "flag-sx": "🇸🇽", "flag-sy": "🇸🇾", "flag-sz": "🇸🇿", "flag-ta": "🇹🇦", "flag-tc": "🇹🇨", "flag-td": "🇹🇩", "flag-tf": "🇹🇫", "flag-tg": "🇹🇬", "flag-th": "🇹🇭", "flag-tj": "🇹🇯", "flag-tk": "🇹🇰", "flag-tl": "🇹🇱", "flag-tm": "🇹🇲", "flag-tn": "🇹🇳", "flag-to": "🇹🇴", "flag-tr": "🇹🇷", "flag-tt": "🇹🇹", "flag-tv": "🇹🇻", "flag-tw": "🇹🇼", "flag-tz": "🇹🇿", "flag-ua": "🇺🇦", "flag-ug": "🇺🇬", "flag-um": "🇺🇲", "flag-un": "🇺🇳", us: "🇺🇸", "flag-us": "🇺🇸", "flag-uy": "🇺🇾", "flag-uz": "🇺🇿", "flag-va": "🇻🇦", "flag-vc": "🇻🇨", "flag-ve": "🇻🇪", "flag-vg": "🇻🇬", "flag-vi": "🇻🇮", "flag-vn": "🇻🇳", "flag-vu": "🇻🇺", "flag-wf": "🇼🇫", "flag-ws": "🇼🇸", "flag-xk": "🇽🇰", "flag-ye": "🇾🇪", "flag-yt": "🇾🇹", "flag-za": "🇿🇦", "flag-zm": "🇿🇲", "flag-zw": "🇿🇼", koko: "🈁", sa: "🈂️", u7121: "🈚", u6307: "🈯", u7981: "🈲", u7a7a: "🈳", u5408: "🈴", u6e80: "🈵", u6709: "🈶", u6708: "🈷️", u7533: "🈸", u5272: "🈹", u55b6: "🈺", ideograph_advantage: "🉐", accept: "🉑", cyclone: "🌀", foggy: "🌁", closed_umbrella: "🌂", night_with_stars: "🌃", sunrise_over_mountains: "🌄", sunrise: "🌅", city_sunset: "🌆", city_sunrise: "🌇", rainbow: "🌈", bridge_at_night: "🌉", ocean: "🌊", volcano: "🌋", milky_way: "🌌", earth_africa: "🌍", earth_americas: "🌎", earth_asia: "🌏", globe_with_meridians: "🌐", new_moon: "🌑", waxing_crescent_moon: "🌒", first_quarter_moon: "🌓", moon: "🌔", waxing_gibbous_moon: "🌔", full_moon: "🌕", waning_gibbous_moon: "🌖", last_quarter_moon: "🌗", waning_crescent_moon: "🌘", crescent_moon: "🌙", new_moon_with_face: "🌚", first_quarter_moon_with_face: "🌛", last_quarter_moon_with_face: "🌜", full_moon_with_face: "🌝", sun_with_face: "🌞", star2: "🌟", stars: "🌠", thermometer: "🌡️", mostly_sunny: "🌤️", sun_small_cloud: "🌤️", barely_sunny: "🌥️", sun_behind_cloud: "🌥️", partly_sunny_rain: "🌦️", sun_behind_rain_cloud: "🌦️", rain_cloud: "🌧️", snow_cloud: "🌨️", lightning: "🌩️", lightning_cloud: "🌩️", tornado: "🌪️", tornado_cloud: "🌪️", fog: "🌫️", wind_blowing_face: "🌬️", hotdog: "🌭", taco: "🌮", burrito: "🌯", chestnut: "🌰", seedling: "🌱", evergreen_tree: "🌲", deciduous_tree: "🌳", palm_tree: "🌴", cactus: "🌵", hot_pepper: "🌶️", tulip: "🌷", cherry_blossom: "🌸", rose: "🌹", hibiscus: "🌺", sunflower: "🌻", blossom: "🌼", corn: "🌽", ear_of_rice: "🌾", herb: "🌿", four_leaf_clover: "🍀", maple_leaf: "🍁", fallen_leaf: "🍂", leaves: "🍃", mushroom: "🍄", tomato: "🍅", eggplant: "🍆", grapes: "🍇", melon: "🍈", watermelon: "🍉", tangerine: "🍊", lemon: "🍋", banana: "🍌", pineapple: "🍍", apple: "🍎", green_apple: "🍏", pear: "🍐", peach: "🍑", cherries: "🍒", strawberry: "🍓", hamburger: "🍔", pizza: "🍕", meat_on_bone: "🍖", poultry_leg: "🍗", rice_cracker: "🍘", rice_ball: "🍙", rice: "🍚", curry: "🍛", ramen: "🍜", spaghetti: "🍝", bread: "🍞", fries: "🍟", sweet_potato: "🍠", dango: "🍡", oden: "🍢", sushi: "🍣", fried_shrimp: "🍤", fish_cake: "🍥", icecream: "🍦", shaved_ice: "🍧", ice_cream: "🍨", doughnut: "🍩", cookie: "🍪", chocolate_bar: "🍫", candy: "🍬", lollipop: "🍭", custard: "🍮", honey_pot: "🍯", cake: "🍰", bento: "🍱", stew: "🍲", fried_egg: "🍳", cooking: "🍳", fork_and_knife: "🍴", tea: "🍵", sake: "🍶", wine_glass: "🍷", cocktail: "🍸", tropical_drink: "🍹", beer: "🍺", beers: "🍻", baby_bottle: "🍼", knife_fork_plate: "🍽️", champagne: "🍾", popcorn: "🍿", ribbon: "🎀", gift: "🎁", birthday: "🎂", jack_o_lantern: "🎃", christmas_tree: "🎄", santa: "🎅", fireworks: "🎆", sparkler: "🎇", balloon: "🎈", tada: "🎉", confetti_ball: "🎊", tanabata_tree: "🎋", crossed_flags: "🎌", bamboo: "🎍", dolls: "🎎", flags: "🎏", wind_chime: "🎐", rice_scene: "🎑", school_satchel: "🎒", mortar_board: "🎓", medal: "🎖️", reminder_ribbon: "🎗️", studio_microphone: "🎙️", level_slider: "🎚️", control_knobs: "🎛️", film_frames: "🎞️", admission_tickets: "🎟️", carousel_horse: "🎠", ferris_wheel: "🎡", roller_coaster: "🎢", fishing_pole_and_fish: "🎣", microphone: "🎤", movie_camera: "🎥", cinema: "🎦", headphones: "🎧", art: "🎨", tophat: "🎩", circus_tent: "🎪", ticket: "🎫", clapper: "🎬", performing_arts: "🎭", video_game: "🎮", dart: "🎯", slot_machine: "🎰", "8ball": "🎱", game_die: "🎲", bowling: "🎳", flower_playing_cards: "🎴", musical_note: "🎵", notes: "🎶", saxophone: "🎷", guitar: "🎸", musical_keyboard: "🎹", trumpet: "🎺", violin: "🎻", musical_score: "🎼", running_shirt_with_sash: "🎽", tennis: "🎾", ski: "🎿", basketball: "🏀", checkered_flag: "🏁", snowboarder: "🏂", "woman-running": "🏃‍♀️", "man-running": "🏃‍♂️", runner: "🏃‍♂️", running: "🏃‍♂️", "woman-surfing": "🏄‍♀️", "man-surfing": "🏄‍♂️", surfer: "🏄‍♂️", sports_medal: "🏅", trophy: "🏆", horse_racing: "🏇", football: "🏈", rugby_football: "🏉", "woman-swimming": "🏊‍♀️", "man-swimming": "🏊‍♂️", swimmer: "🏊‍♂️", "woman-lifting-weights": "🏋️‍♀️", "man-lifting-weights": "🏋️‍♂️", weight_lifter: "🏋️‍♂️", "woman-golfing": "🏌️‍♀️", "man-golfing": "🏌️‍♂️", golfer: "🏌️‍♂️", racing_motorcycle: "🏍️", racing_car: "🏎️", cricket_bat_and_ball: "🏏", volleyball: "🏐", field_hockey_stick_and_ball: "🏑", ice_hockey_stick_and_puck: "🏒", table_tennis_paddle_and_ball: "🏓", snow_capped_mountain: "🏔️", camping: "🏕️", beach_with_umbrella: "🏖️", building_construction: "🏗️", house_buildings: "🏘️", cityscape: "🏙️", derelict_house_building: "🏚️", classical_building: "🏛️", desert: "🏜️", desert_island: "🏝️", national_park: "🏞️", stadium: "🏟️", house: "🏠", house_with_garden: "🏡", office: "🏢", post_office: "🏣", european_post_office: "🏤", hospital: "🏥", bank: "🏦", atm: "🏧", hotel: "🏨", love_hotel: "🏩", convenience_store: "🏪", school: "🏫", department_store: "🏬", factory: "🏭", izakaya_lantern: "🏮", lantern: "🏮", japanese_castle: "🏯", european_castle: "🏰", "rainbow-flag": "🏳️‍🌈", transgender_flag: "🏳️‍⚧️", waving_white_flag: "🏳️", pirate_flag: "🏴‍☠️", "flag-england": "🏴󠁧󠁢󠁥󠁮󠁧󠁿", "flag-scotland": "🏴󠁧󠁢󠁳󠁣󠁴󠁿", "flag-wales": "🏴󠁧󠁢󠁷󠁬󠁳󠁿", waving_black_flag: "🏴", rosette: "🏵️", label: "🏷️", badminton_racquet_and_shuttlecock: "🏸", bow_and_arrow: "🏹", amphora: "🏺", "skin-tone-2": "🏻", "skin-tone-3": "🏼", "skin-tone-4": "🏽", "skin-tone-5": "🏾", "skin-tone-6": "🏿", rat: "🐀", mouse2: "🐁", ox: "🐂", water_buffalo: "🐃", cow2: "🐄", tiger2: "🐅", leopard: "🐆", rabbit2: "🐇", black_cat: "🐈‍⬛", cat2: "🐈", dragon: "🐉", crocodile: "🐊", whale2: "🐋", snail: "🐌", snake: "🐍", racehorse: "🐎", ram: "🐏", goat: "🐐", sheep: "🐑", monkey: "🐒", rooster: "🐓", chicken: "🐔", service_dog: "🐕‍🦺", dog2: "🐕", pig2: "🐖", boar: "🐗", elephant: "🐘", octopus: "🐙", shell: "🐚", bug: "🐛", ant: "🐜", bee: "🐝", honeybee: "🐝", ladybug: "🐞", lady_beetle: "🐞", fish: "🐟", tropical_fish: "🐠", blowfish: "🐡", turtle: "🐢", hatching_chick: "🐣", baby_chick: "🐤", hatched_chick: "🐥", bird: "🐦", penguin: "🐧", koala: "🐨", poodle: "🐩", dromedary_camel: "🐪", camel: "🐫", dolphin: "🐬", flipper: "🐬", mouse: "🐭", cow: "🐮", tiger: "🐯", rabbit: "🐰", cat: "🐱", dragon_face: "🐲", whale: "🐳", horse: "🐴", monkey_face: "🐵", dog: "🐶", pig: "🐷", frog: "🐸", hamster: "🐹", wolf: "🐺", polar_bear: "🐻‍❄️", bear: "🐻", panda_face: "🐼", pig_nose: "🐽", feet: "🐾", paw_prints: "🐾", chipmunk: "🐿️", eyes: "👀", "eye-in-speech-bubble": "👁️‍🗨️", eye: "👁️", ear: "👂", nose: "👃", lips: "👄", tongue: "👅", point_up_2: "👆", point_down: "👇", point_left: "👈", point_right: "👉", facepunch: "👊", punch: "👊", wave: "👋", ok_hand: "👌", "+1": "👍", thumbsup: "👍", "-1": "👎", thumbsdown: "👎", clap: "👏", open_hands: "👐", crown: "👑", womans_hat: "👒", eyeglasses: "👓", necktie: "👔", shirt: "👕", tshirt: "👕", jeans: "👖", dress: "👗", kimono: "👘", bikini: "👙", womans_clothes: "👚", purse: "👛", handbag: "👜", pouch: "👝", mans_shoe: "👞", shoe: "👞", athletic_shoe: "👟", high_heel: "👠", sandal: "👡", boot: "👢", footprints: "👣", bust_in_silhouette: "👤", busts_in_silhouette: "👥", boy: "👦", girl: "👧", "male-farmer": "👨‍🌾", "male-cook": "👨‍🍳", man_feeding_baby: "👨‍🍼", "male-student": "👨‍🎓", "male-singer": "👨‍🎤", "male-artist": "👨‍🎨", "male-teacher": "👨‍🏫", "male-factory-worker": "👨‍🏭", "man-boy-boy": "👨‍👦‍👦", "man-boy": "👨‍👦", "man-girl-boy": "👨‍👧‍👦", "man-girl-girl": "👨‍👧‍👧", "man-girl": "👨‍👧", "man-man-boy": "👨‍👨‍👦", "man-man-boy-boy": "👨‍👨‍👦‍👦", "man-man-girl": "👨‍👨‍👧", "man-man-girl-boy": "👨‍👨‍👧‍👦", "man-man-girl-girl": "👨‍👨‍👧‍👧", "man-woman-boy": "👨‍👩‍👦", family: "👨‍👩‍👦", "man-woman-boy-boy": "👨‍👩‍👦‍👦", "man-woman-girl": "👨‍👩‍👧", "man-woman-girl-boy": "👨‍👩‍👧‍👦", "man-woman-girl-girl": "👨‍👩‍👧‍👧", "male-technologist": "👨‍💻", "male-office-worker": "👨‍💼", "male-mechanic": "👨‍🔧", "male-scientist": "👨‍🔬", "male-astronaut": "👨‍🚀", "male-firefighter": "👨‍🚒", man_with_probing_cane: "👨‍🦯", red_haired_man: "👨‍🦰", curly_haired_man: "👨‍🦱", bald_man: "👨‍🦲", white_haired_man: "👨‍🦳", man_in_motorized_wheelchair: "👨‍🦼", man_in_manual_wheelchair: "👨‍🦽", "male-doctor": "👨‍⚕️", "male-judge": "👨‍⚖️", "male-pilot": "👨‍✈️", "man-heart-man": "👨‍❤️‍👨", "man-kiss-man": "👨‍❤️‍💋‍👨", man: "👨", "female-farmer": "👩‍🌾", "female-cook": "👩‍🍳", woman_feeding_baby: "👩‍🍼", "female-student": "👩‍🎓", "female-singer": "👩‍🎤", "female-artist": "👩‍🎨", "female-teacher": "👩‍🏫", "female-factory-worker": "👩‍🏭", "woman-boy-boy": "👩‍👦‍👦", "woman-boy": "👩‍👦", "woman-girl-boy": "👩‍👧‍👦", "woman-girl-girl": "👩‍👧‍👧", "woman-girl": "👩‍👧", "woman-woman-boy": "👩‍👩‍👦", "woman-woman-boy-boy": "👩‍👩‍👦‍👦", "woman-woman-girl": "👩‍👩‍👧", "woman-woman-girl-boy": "👩‍👩‍👧‍👦", "woman-woman-girl-girl": "👩‍👩‍👧‍👧", "female-technologist": "👩‍💻", "female-office-worker": "👩‍💼", "female-mechanic": "👩‍🔧", "female-scientist": "👩‍🔬", "female-astronaut": "👩‍🚀", "female-firefighter": "👩‍🚒", woman_with_probing_cane: "👩‍🦯", red_haired_woman: "👩‍🦰", curly_haired_woman: "👩‍🦱", bald_woman: "👩‍🦲", white_haired_woman: "👩‍🦳", woman_in_motorized_wheelchair: "👩‍🦼", woman_in_manual_wheelchair: "👩‍🦽", "female-doctor": "👩‍⚕️", "female-judge": "👩‍⚖️", "female-pilot": "👩‍✈️", "woman-heart-man": "👩‍❤️‍👨", "woman-heart-woman": "👩‍❤️‍👩", "woman-kiss-man": "👩‍❤️‍💋‍👨", "woman-kiss-woman": "👩‍❤️‍💋‍👩", woman: "👩", man_and_woman_holding_hands: "👫", woman_and_man_holding_hands: "👫", couple: "👫", two_men_holding_hands: "👬", men_holding_hands: "👬", two_women_holding_hands: "👭", women_holding_hands: "👭", "female-police-officer": "👮‍♀️", "male-police-officer": "👮‍♂️", cop: "👮‍♂️", "women-with-bunny-ears-partying": "👯‍♀️", "woman-with-bunny-ears-partying": "👯‍♀️", dancers: "👯‍♀️", "men-with-bunny-ears-partying": "👯‍♂️", "man-with-bunny-ears-partying": "👯‍♂️", woman_with_veil: "👰‍♀️", man_with_veil: "👰‍♂️", bride_with_veil: "👰", "blond-haired-woman": "👱‍♀️", "blond-haired-man": "👱‍♂️", person_with_blond_hair: "👱‍♂️", man_with_gua_pi_mao: "👲", "woman-wearing-turban": "👳‍♀️", "man-wearing-turban": "👳‍♂️", man_with_turban: "👳‍♂️", older_man: "👴", older_woman: "👵", baby: "👶", "female-construction-worker": "👷‍♀️", "male-construction-worker": "👷‍♂️", construction_worker: "👷‍♂️", princess: "👸", japanese_ogre: "👹", japanese_goblin: "👺", ghost: "👻", angel: "👼", alien: "👽", space_invader: "👾", imp: "👿", skull: "💀", "woman-tipping-hand": "💁‍♀️", information_desk_person: "💁‍♀️", "man-tipping-hand": "💁‍♂️", "female-guard": "💂‍♀️", "male-guard": "💂‍♂️", guardsman: "💂‍♂️", dancer: "💃", lipstick: "💄", nail_care: "💅", "woman-getting-massage": "💆‍♀️", massage: "💆‍♀️", "man-getting-massage": "💆‍♂️", "woman-getting-haircut": "💇‍♀️", haircut: "💇‍♀️", "man-getting-haircut": "💇‍♂️", barber: "💈", syringe: "💉", pill: "💊", kiss: "💋", love_letter: "💌", ring: "💍", gem: "💎", couplekiss: "💏", bouquet: "💐", couple_with_heart: "💑", wedding: "💒", heartbeat: "💓", broken_heart: "💔", two_hearts: "💕", sparkling_heart: "💖", heartpulse: "💗", cupid: "💘", blue_heart: "💙", green_heart: "💚", yellow_heart: "💛", purple_heart: "💜", gift_heart: "💝", revolving_hearts: "💞", heart_decoration: "💟", diamond_shape_with_a_dot_inside: "💠", bulb: "💡", anger: "💢", bomb: "💣", zzz: "💤", boom: "💥", collision: "💥", sweat_drops: "💦", droplet: "💧", dash: "💨", hankey: "💩", poop: "💩", shit: "💩", muscle: "💪", dizzy: "💫", speech_balloon: "💬", thought_balloon: "💭", white_flower: "💮", moneybag: "💰", currency_exchange: "💱", heavy_dollar_sign: "💲", credit_card: "💳", yen: "💴", dollar: "💵", euro: "💶", pound: "💷", money_with_wings: "💸", chart: "💹", seat: "💺", computer: "💻", briefcase: "💼", minidisc: "💽", floppy_disk: "💾", cd: "💿", dvd: "📀", file_folder: "📁", open_file_folder: "📂", page_with_curl: "📃", page_facing_up: "📄", date: "📅", calendar: "📆", card_index: "📇", chart_with_upwards_trend: "📈", chart_with_downwards_trend: "📉", bar_chart: "📊", clipboard: "📋", pushpin: "📌", round_pushpin: "📍", paperclip: "📎", straight_ruler: "📏", triangular_ruler: "📐", bookmark_tabs: "📑", ledger: "📒", notebook: "📓", notebook_with_decorative_cover: "📔", closed_book: "📕", book: "📖", open_book: "📖", green_book: "📗", blue_book: "📘", orange_book: "📙", books: "📚", name_badge: "📛", scroll: "📜", memo: "📝", pencil: "📝", telephone_receiver: "📞", pager: "📟", fax: "📠", satellite_antenna: "📡", loudspeaker: "📢", mega: "📣", outbox_tray: "📤", inbox_tray: "📥", package: "📦", "e-mail": "📧", incoming_envelope: "📨", envelope_with_arrow: "📩", mailbox_closed: "📪", mailbox: "📫", mailbox_with_mail: "📬", mailbox_with_no_mail: "📭", postbox: "📮", postal_horn: "📯", newspaper: "📰", iphone: "📱", calling: "📲", vibration_mode: "📳", mobile_phone_off: "📴", no_mobile_phones: "📵", signal_strength: "📶", camera: "📷", camera_with_flash: "📸", video_camera: "📹", tv: "📺", radio: "📻", vhs: "📼", film_projector: "📽️", prayer_beads: "📿", twisted_rightwards_arrows: "🔀", repeat: "🔁", repeat_one: "🔂", arrows_clockwise: "🔃", arrows_counterclockwise: "🔄", low_brightness: "🔅", high_brightness: "🔆", mute: "🔇", speaker: "🔈", sound: "🔉", loud_sound: "🔊", battery: "🔋", electric_plug: "🔌", mag: "🔍", mag_right: "🔎", lock_with_ink_pen: "🔏", closed_lock_with_key: "🔐", key: "🔑", lock: "🔒", unlock: "🔓", bell: "🔔", no_bell: "🔕", bookmark: "🔖", link: "🔗", radio_button: "🔘", back: "🔙", end: "🔚", on: "🔛", soon: "🔜", top: "🔝", underage: "🔞", keycap_ten: "🔟", capital_abcd: "🔠", abcd: "🔡", symbols: "🔣", abc: "🔤", fire: "🔥", flashlight: "🔦", wrench: "🔧", hammer: "🔨", nut_and_bolt: "🔩", hocho: "🔪", knife: "🔪", gun: "🔫", microscope: "🔬", telescope: "🔭", crystal_ball: "🔮", six_pointed_star: "🔯", beginner: "🔰", trident: "🔱", black_square_button: "🔲", white_square_button: "🔳", red_circle: "🔴", large_blue_circle: "🔵", large_orange_diamond: "🔶", large_blue_diamond: "🔷", small_orange_diamond: "🔸", small_blue_diamond: "🔹", small_red_triangle: "🔺", small_red_triangle_down: "🔻", arrow_up_small: "🔼", arrow_down_small: "🔽", om_symbol: "🕉️", dove_of_peace: "🕊️", kaaba: "🕋", mosque: "🕌", synagogue: "🕍", menorah_with_nine_branches: "🕎", clock1: "🕐", clock2: "🕑", clock3: "🕒", clock4: "🕓", clock5: "🕔", clock6: "🕕", clock7: "🕖", clock8: "🕗", clock9: "🕘", clock10: "🕙", clock11: "🕚", clock12: "🕛", clock130: "🕜", clock230: "🕝", clock330: "🕞", clock430: "🕟", clock530: "🕠", clock630: "🕡", clock730: "🕢", clock830: "🕣", clock930: "🕤", clock1030: "🕥", clock1130: "🕦", clock1230: "🕧", candle: "🕯️", mantelpiece_clock: "🕰️", hole: "🕳️", man_in_business_suit_levitating: "🕴️", "female-detective": "🕵️‍♀️", "male-detective": "🕵️‍♂️", sleuth_or_spy: "🕵️‍♂️", dark_sunglasses: "🕶️", spider: "🕷️", spider_web: "🕸️", joystick: "🕹️", man_dancing: "🕺", linked_paperclips: "🖇️", lower_left_ballpoint_pen: "🖊️", lower_left_fountain_pen: "🖋️", lower_left_paintbrush: "🖌️", lower_left_crayon: "🖍️", raised_hand_with_fingers_splayed: "🖐️", middle_finger: "🖕", reversed_hand_with_middle_finger_extended: "🖕", "spock-hand": "🖖", black_heart: "🖤", desktop_computer: "🖥️", printer: "🖨️", three_button_mouse: "🖱️", trackball: "🖲️", frame_with_picture: "🖼️", card_index_dividers: "🗂️", card_file_box: "🗃️", file_cabinet: "🗄️", wastebasket: "🗑️", spiral_note_pad: "🗒️", spiral_calendar_pad: "🗓️", compression: "🗜️", old_key: "🗝️", rolled_up_newspaper: "🗞️", dagger_knife: "🗡️", speaking_head_in_silhouette: "🗣️", left_speech_bubble: "🗨️", right_anger_bubble: "🗯️", ballot_box_with_ballot: "🗳️", world_map: "🗺️", mount_fuji: "🗻", tokyo_tower: "🗼", statue_of_liberty: "🗽", japan: "🗾", moyai: "🗿", grinning: "😀", grin: "😁", joy: "😂", smiley: "😃", smile: "😄", sweat_smile: "😅", laughing: "😆", satisfied: "😆", innocent: "😇", smiling_imp: "😈", wink: "😉", blush: "😊", yum: "😋", relieved: "😌", heart_eyes: "😍", sunglasses: "😎", smirk: "😏", neutral_face: "😐", expressionless: "😑", unamused: "😒", sweat: "😓", pensive: "😔", confused: "😕", confounded: "😖", kissing: "😗", kissing_heart: "😘", kissing_smiling_eyes: "😙", kissing_closed_eyes: "😚", stuck_out_tongue: "😛", stuck_out_tongue_winking_eye: "😜", stuck_out_tongue_closed_eyes: "😝", disappointed: "😞", worried: "😟", angry: "😠", rage: "😡", cry: "😢", persevere: "😣", triumph: "😤", disappointed_relieved: "😥", frowning: "😦", anguished: "😧", fearful: "😨", weary: "😩", sleepy: "😪", tired_face: "😫", grimacing: "😬", sob: "😭", face_exhaling: "😮‍💨", open_mouth: "😮", hushed: "😯", cold_sweat: "😰", scream: "😱", astonished: "😲", flushed: "😳", sleeping: "😴", face_with_spiral_eyes: "😵‍💫", dizzy_face: "😵", face_in_clouds: "😶‍🌫️", no_mouth: "😶", mask: "😷", smile_cat: "😸", joy_cat: "😹", smiley_cat: "😺", heart_eyes_cat: "😻", smirk_cat: "😼", kissing_cat: "😽", pouting_cat: "😾", crying_cat_face: "😿", scream_cat: "🙀", slightly_frowning_face: "🙁", slightly_smiling_face: "🙂", upside_down_face: "🙃", face_with_rolling_eyes: "🙄", "woman-gesturing-no": "🙅‍♀️", no_good: "🙅‍♀️", "man-gesturing-no": "🙅‍♂️", "woman-gesturing-ok": "🙆‍♀️", ok_woman: "🙆‍♀️", "man-gesturing-ok": "🙆‍♂️", "woman-bowing": "🙇‍♀️", "man-bowing": "🙇‍♂️", bow: "🙇‍♂️", see_no_evil: "🙈", hear_no_evil: "🙉", speak_no_evil: "🙊", "woman-raising-hand": "🙋‍♀️", raising_hand: "🙋‍♀️", "man-raising-hand": "🙋‍♂️", raised_hands: "🙌", "woman-frowning": "🙍‍♀️", person_frowning: "🙍‍♀️", "man-frowning": "🙍‍♂️", "woman-pouting": "🙎‍♀️", person_with_pouting_face: "🙎‍♀️", "man-pouting": "🙎‍♂️", pray: "🙏", rocket: "🚀", helicopter: "🚁", steam_locomotive: "🚂", railway_car: "🚃", bullettrain_side: "🚄", bullettrain_front: "🚅", train2: "🚆", metro: "🚇", light_rail: "🚈", station: "🚉", tram: "🚊", train: "🚋", bus: "🚌", oncoming_bus: "🚍", trolleybus: "🚎", busstop: "🚏", minibus: "🚐", ambulance: "🚑", fire_engine: "🚒", police_car: "🚓", oncoming_police_car: "🚔", taxi: "🚕", oncoming_taxi: "🚖", car: "🚗", red_car: "🚗", oncoming_automobile: "🚘", blue_car: "🚙", truck: "🚚", articulated_lorry: "🚛", tractor: "🚜", monorail: "🚝", mountain_railway: "🚞", suspension_railway: "🚟", mountain_cableway: "🚠", aerial_tramway: "🚡", ship: "🚢", "woman-rowing-boat": "🚣‍♀️", "man-rowing-boat": "🚣‍♂️", rowboat: "🚣‍♂️", speedboat: "🚤", traffic_light: "🚥", vertical_traffic_light: "🚦", construction: "🚧", rotating_light: "🚨", triangular_flag_on_post: "🚩", door: "🚪", no_entry_sign: "🚫", smoking: "🚬", no_smoking: "🚭", put_litter_in_its_place: "🚮", do_not_litter: "🚯", potable_water: "🚰", "non-potable_water": "🚱", bike: "🚲", no_bicycles: "🚳", "woman-biking": "🚴‍♀️", "man-biking": "🚴‍♂️", bicyclist: "🚴‍♂️", "woman-mountain-biking": "🚵‍♀️", "man-mountain-biking": "🚵‍♂️", mountain_bicyclist: "🚵‍♂️", "woman-walking": "🚶‍♀️", "man-walking": "🚶‍♂️", walking: "🚶‍♂️", no_pedestrians: "🚷", children_crossing: "🚸", mens: "🚹", womens: "🚺", restroom: "🚻", baby_symbol: "🚼", toilet: "🚽", wc: "🚾", shower: "🚿", bath: "🛀", bathtub: "🛁", passport_control: "🛂", customs: "🛃", baggage_claim: "🛄", left_luggage: "🛅", couch_and_lamp: "🛋️", sleeping_accommodation: "🛌", shopping_bags: "🛍️", bellhop_bell: "🛎️", bed: "🛏️", place_of_worship: "🛐", octagonal_sign: "🛑", shopping_trolley: "🛒", hindu_temple: "🛕", hut: "🛖", elevator: "🛗", hammer_and_wrench: "🛠️", shield: "🛡️", oil_drum: "🛢️", motorway: "🛣️", railway_track: "🛤️", motor_boat: "🛥️", small_airplane: "🛩️", airplane_departure: "🛫", airplane_arriving: "🛬", satellite: "🛰️", passenger_ship: "🛳️", scooter: "🛴", motor_scooter: "🛵", canoe: "🛶", sled: "🛷", flying_saucer: "🛸", skateboard: "🛹", auto_rickshaw: "🛺", pickup_truck: "🛻", roller_skate: "🛼", large_orange_circle: "🟠", large_yellow_circle: "🟡", large_green_circle: "🟢", large_purple_circle: "🟣", large_brown_circle: "🟤", large_red_square: "🟥", large_blue_square: "🟦", large_orange_square: "🟧", large_yellow_square: "🟨", large_green_square: "🟩", large_purple_square: "🟪", large_brown_square: "🟫", pinched_fingers: "🤌", white_heart: "🤍", brown_heart: "🤎", pinching_hand: "🤏", zipper_mouth_face: "🤐", money_mouth_face: "🤑", face_with_thermometer: "🤒", nerd_face: "🤓", thinking_face: "🤔", face_with_head_bandage: "🤕", robot_face: "🤖", hugging_face: "🤗", the_horns: "🤘", sign_of_the_horns: "🤘", call_me_hand: "🤙", raised_back_of_hand: "🤚", "left-facing_fist": "🤛", "right-facing_fist": "🤜", handshake: "🤝", crossed_fingers: "🤞", hand_with_index_and_middle_fingers_crossed: "🤞", i_love_you_hand_sign: "🤟", face_with_cowboy_hat: "🤠", clown_face: "🤡", nauseated_face: "🤢", rolling_on_the_floor_laughing: "🤣", drooling_face: "🤤", lying_face: "🤥", "woman-facepalming": "🤦‍♀️", "man-facepalming": "🤦‍♂️", face_palm: "🤦", sneezing_face: "🤧", face_with_raised_eyebrow: "🤨", face_with_one_eyebrow_raised: "🤨", "star-struck": "🤩", grinning_face_with_star_eyes: "🤩", zany_face: "🤪", grinning_face_with_one_large_and_one_small_eye: "🤪", shushing_face: "🤫", face_with_finger_covering_closed_lips: "🤫", face_with_symbols_on_mouth: "🤬", serious_face_with_symbols_covering_mouth: "🤬", face_with_hand_over_mouth: "🤭", smiling_face_with_smiling_eyes_and_hand_covering_mouth: "🤭", face_vomiting: "🤮", face_with_open_mouth_vomiting: "🤮", exploding_head: "🤯", shocked_face_with_exploding_head: "🤯", pregnant_woman: "🤰", "breast-feeding": "🤱", palms_up_together: "🤲", selfie: "🤳", prince: "🤴", woman_in_tuxedo: "🤵‍♀️", man_in_tuxedo: "🤵‍♂️", person_in_tuxedo: "🤵", mrs_claus: "🤶", mother_christmas: "🤶", "woman-shrugging": "🤷‍♀️", "man-shrugging": "🤷‍♂️", shrug: "🤷", "woman-cartwheeling": "🤸‍♀️", "man-cartwheeling": "🤸‍♂️", person_doing_cartwheel: "🤸", "woman-juggling": "🤹‍♀️", "man-juggling": "🤹‍♂️", juggling: "🤹", fencer: "🤺", "woman-wrestling": "🤼‍♀️", "man-wrestling": "🤼‍♂️", wrestlers: "🤼", "woman-playing-water-polo": "🤽‍♀️", "man-playing-water-polo": "🤽‍♂️", water_polo: "🤽", "woman-playing-handball": "🤾‍♀️", "man-playing-handball": "🤾‍♂️", handball: "🤾", diving_mask: "🤿", wilted_flower: "🥀", drum_with_drumsticks: "🥁", clinking_glasses: "🥂", tumbler_glass: "🥃", spoon: "🥄", goal_net: "🥅", first_place_medal: "🥇", second_place_medal: "🥈", third_place_medal: "🥉", boxing_glove: "🥊", martial_arts_uniform: "🥋", curling_stone: "🥌", lacrosse: "🥍", softball: "🥎", flying_disc: "🥏", croissant: "🥐", avocado: "🥑", cucumber: "🥒", bacon: "🥓", potato: "🥔", carrot: "🥕", baguette_bread: "🥖", green_salad: "🥗", shallow_pan_of_food: "🥘", stuffed_flatbread: "🥙", egg: "🥚", glass_of_milk: "🥛", peanuts: "🥜", kiwifruit: "🥝", pancakes: "🥞", dumpling: "🥟", fortune_cookie: "🥠", takeout_box: "🥡", chopsticks: "🥢", bowl_with_spoon: "🥣", cup_with_straw: "🥤", coconut: "🥥", broccoli: "🥦", pie: "🥧", pretzel: "🥨", cut_of_meat: "🥩", sandwich: "🥪", canned_food: "🥫", leafy_green: "🥬", mango: "🥭", moon_cake: "🥮", bagel: "🥯", smiling_face_with_3_hearts: "🥰", yawning_face: "🥱", smiling_face_with_tear: "🥲", partying_face: "🥳", woozy_face: "🥴", hot_face: "🥵", cold_face: "🥶", ninja: "🥷", disguised_face: "🥸", pleading_face: "🥺", sari: "🥻", lab_coat: "🥼", goggles: "🥽", hiking_boot: "🥾", womans_flat_shoe: "🥿", crab: "🦀", lion_face: "🦁", scorpion: "🦂", turkey: "🦃", unicorn_face: "🦄", eagle: "🦅", duck: "🦆", bat: "🦇", shark: "🦈", owl: "🦉", fox_face: "🦊", butterfly: "🦋", deer: "🦌", gorilla: "🦍", lizard: "🦎", rhinoceros: "🦏", shrimp: "🦐", squid: "🦑", giraffe_face: "🦒", zebra_face: "🦓", hedgehog: "🦔", sauropod: "🦕", "t-rex": "🦖", cricket: "🦗", kangaroo: "🦘", llama: "🦙", peacock: "🦚", hippopotamus: "🦛", parrot: "🦜", raccoon: "🦝", lobster: "🦞", mosquito: "🦟", microbe: "🦠", badger: "🦡", swan: "🦢", mammoth: "🦣", dodo: "🦤", sloth: "🦥", otter: "🦦", orangutan: "🦧", skunk: "🦨", flamingo: "🦩", oyster: "🦪", beaver: "🦫", bison: "🦬", seal: "🦭", guide_dog: "🦮", probing_cane: "🦯", bone: "🦴", leg: "🦵", foot: "🦶", tooth: "🦷", female_superhero: "🦸‍♀️", male_superhero: "🦸‍♂️", superhero: "🦸", female_supervillain: "🦹‍♀️", male_supervillain: "🦹‍♂️", supervillain: "🦹", safety_vest: "🦺", ear_with_hearing_aid: "🦻", motorized_wheelchair: "🦼", manual_wheelchair: "🦽", mechanical_arm: "🦾", mechanical_leg: "🦿", cheese_wedge: "🧀", cupcake: "🧁", salt: "🧂", beverage_box: "🧃", garlic: "🧄", onion: "🧅", falafel: "🧆", waffle: "🧇", butter: "🧈", mate_drink: "🧉", ice_cube: "🧊", bubble_tea: "🧋", woman_standing: "🧍‍♀️", man_standing: "🧍‍♂️", standing_person: "🧍", woman_kneeling: "🧎‍♀️", man_kneeling: "🧎‍♂️", kneeling_person: "🧎", deaf_woman: "🧏‍♀️", deaf_man: "🧏‍♂️", deaf_person: "🧏", face_with_monocle: "🧐", farmer: "🧑‍🌾", cook: "🧑‍🍳", person_feeding_baby: "🧑‍🍼", mx_claus: "🧑‍🎄", student: "🧑‍🎓", singer: "🧑‍🎤", artist: "🧑‍🎨", teacher: "🧑‍🏫", factory_worker: "🧑‍🏭", technologist: "🧑‍💻", office_worker: "🧑‍💼", mechanic: "🧑‍🔧", scientist: "🧑‍🔬", astronaut: "🧑‍🚀", firefighter: "🧑‍🚒", people_holding_hands: "🧑‍🤝‍🧑", person_with_probing_cane: "🧑‍🦯", red_haired_person: "🧑‍🦰", curly_haired_person: "🧑‍🦱", bald_person: "🧑‍🦲", white_haired_person: "🧑‍🦳", person_in_motorized_wheelchair: "🧑‍🦼", person_in_manual_wheelchair: "🧑‍🦽", health_worker: "🧑‍⚕️", judge: "🧑‍⚖️", pilot: "🧑‍✈️", adult: "🧑", child: "🧒", older_adult: "🧓", woman_with_beard: "🧔‍♀️", man_with_beard: "🧔‍♂️", bearded_person: "🧔", person_with_headscarf: "🧕", woman_in_steamy_room: "🧖‍♀️", man_in_steamy_room: "🧖‍♂️", person_in_steamy_room: "🧖‍♂️", woman_climbing: "🧗‍♀️", person_climbing: "🧗‍♀️", man_climbing: "🧗‍♂️", woman_in_lotus_position: "🧘‍♀️", person_in_lotus_position: "🧘‍♀️", man_in_lotus_position: "🧘‍♂️", female_mage: "🧙‍♀️", mage: "🧙‍♀️", male_mage: "🧙‍♂️", female_fairy: "🧚‍♀️", fairy: "🧚‍♀️", male_fairy: "🧚‍♂️", female_vampire: "🧛‍♀️", vampire: "🧛‍♀️", male_vampire: "🧛‍♂️", mermaid: "🧜‍♀️", merman: "🧜‍♂️", merperson: "🧜‍♂️", female_elf: "🧝‍♀️", male_elf: "🧝‍♂️", elf: "🧝‍♂️", female_genie: "🧞‍♀️", male_genie: "🧞‍♂️", genie: "🧞‍♂️", female_zombie: "🧟‍♀️", male_zombie: "🧟‍♂️", zombie: "🧟‍♂️", brain: "🧠", orange_heart: "🧡", billed_cap: "🧢", scarf: "🧣", gloves: "🧤", coat: "🧥", socks: "🧦", red_envelope: "🧧", firecracker: "🧨", jigsaw: "🧩", test_tube: "🧪", petri_dish: "🧫", dna: "🧬", compass: "🧭", abacus: "🧮", fire_extinguisher: "🧯", toolbox: "🧰", bricks: "🧱", magnet: "🧲", luggage: "🧳", lotion_bottle: "🧴", thread: "🧵", yarn: "🧶", safety_pin: "🧷", teddy_bear: "🧸", broom: "🧹", basket: "🧺", roll_of_paper: "🧻", soap: "🧼", sponge: "🧽", receipt: "🧾", nazar_amulet: "🧿", ballet_shoes: "🩰", "one-piece_swimsuit": "🩱", briefs: "🩲", shorts: "🩳", thong_sandal: "🩴", drop_of_blood: "🩸", adhesive_bandage: "🩹", stethoscope: "🩺", "yo-yo": "🪀", kite: "🪁", parachute: "🪂", boomerang: "🪃", magic_wand: "🪄", pinata: "🪅", nesting_dolls: "🪆", ringed_planet: "🪐", chair: "🪑", razor: "🪒", axe: "🪓", diya_lamp: "🪔", banjo: "🪕", military_helmet: "🪖", accordion: "🪗", long_drum: "🪘", coin: "🪙", carpentry_saw: "🪚", screwdriver: "🪛", ladder: "🪜", hook: "🪝", mirror: "🪞", window: "🪟", plunger: "🪠", sewing_needle: "🪡", knot: "🪢", bucket: "🪣", mouse_trap: "🪤", toothbrush: "🪥", headstone: "🪦", placard: "🪧", rock: "🪨", fly: "🪰", worm: "🪱", beetle: "🪲", cockroach: "🪳", potted_plant: "🪴", wood: "🪵", feather: "🪶", anatomical_heart: "🫀", lungs: "🫁", people_hugging: "🫂", blueberries: "🫐", bell_pepper: "🫑", olive: "🫒", flatbread: "🫓", tamale: "🫔", fondue: "🫕", teapot: "🫖", bangbang: "‼️", interrobang: "⁉️", tm: "™️", information_source: "ℹ️", left_right_arrow: "↔️", arrow_up_down: "↕️", arrow_upper_left: "↖️", arrow_upper_right: "↗️", arrow_lower_right: "↘️", arrow_lower_left: "↙️", leftwards_arrow_with_hook: "↩️", arrow_right_hook: "↪️", watch: "⌚", hourglass: "⌛", keyboard: "⌨️", eject: "⏏️", fast_forward: "⏩", rewind: "⏪", arrow_double_up: "⏫", arrow_double_down: "⏬", black_right_pointing_double_triangle_with_vertical_bar: "⏭️", black_left_pointing_double_triangle_with_vertical_bar: "⏮️", black_right_pointing_triangle_with_double_vertical_bar: "⏯️", alarm_clock: "⏰", stopwatch: "⏱️", timer_clock: "⏲️", hourglass_flowing_sand: "⏳", double_vertical_bar: "⏸️", black_square_for_stop: "⏹️", black_circle_for_record: "⏺️", m: "Ⓜ️", black_small_square: "▪️", white_small_square: "▫️", arrow_forward: "▶️", arrow_backward: "◀️", white_medium_square: "◻️", black_medium_square: "◼️", white_medium_small_square: "◽", black_medium_small_square: "◾", sunny: "☀️", cloud: "☁️", umbrella: "☂️", snowman: "☃️", comet: "☄️", phone: "☎️", telephone: "☎️", ballot_box_with_check: "☑️", shamrock: "☘️", point_up: "☝️", skull_and_crossbones: "☠️", radioactive_sign: "☢️", biohazard_sign: "☣️", orthodox_cross: "☦️", star_and_crescent: "☪️", peace_symbol: "☮️", yin_yang: "☯️", wheel_of_dharma: "☸️", white_frowning_face: "☹️", relaxed: "☺️", female_sign: "♀️", male_sign: "♂️", gemini: "♊", cancer: "♋", leo: "♌", virgo: "♍", libra: "♎", scorpius: "♏", chess_pawn: "♟️", spades: "♠️", clubs: "♣️", hearts: "♥️", diamonds: "♦️", hotsprings: "♨️", recycle: "♻️", infinity: "♾️", wheelchair: "♿", hammer_and_pick: "⚒️", crossed_swords: "⚔️", medical_symbol: "⚕️", staff_of_aesculapius: "⚕️", scales: "⚖️", alembic: "⚗️", gear: "⚙️", atom_symbol: "⚛️", fleur_de_lis: "⚜️", warning: "⚠️", zap: "⚡", transgender_symbol: "⚧️", white_circle: "⚪", black_circle: "⚫", coffin: "⚰️", funeral_urn: "⚱️", soccer: "⚽", baseball: "⚾", snowman_without_snow: "⛄", partly_sunny: "⛅", thunder_cloud_and_rain: "⛈️", ophiuchus: "⛎", pick: "⛏️", helmet_with_white_cross: "⛑️", chains: "⛓️", no_entry: "⛔", shinto_shrine: "⛩️", church: "⛪", mountain: "⛰️", umbrella_on_ground: "⛱️", fountain: "⛲", golf: "⛳", ferry: "⛴️", boat: "⛵", sailboat: "⛵", skier: "⛷️", ice_skate: "⛸️", "woman-bouncing-ball": "⛹️‍♀️", "man-bouncing-ball": "⛹️‍♂️", person_with_ball: "⛹️‍♂️", tent: "⛺", fuelpump: "⛽", scissors: "✂️", airplane: "✈️", email: "✉️", envelope: "✉️", fist: "✊", hand: "✋", raised_hand: "✋", v: "✌️", writing_hand: "✍️", pencil2: "✏️", black_nib: "✒️", heavy_check_mark: "✔️", heavy_multiplication_x: "✖️", latin_cross: "✝️", star_of_david: "✡️", eight_spoked_asterisk: "✳️", eight_pointed_black_star: "✴️", snowflake: "❄️", sparkle: "❇️", x: "❌", negative_squared_cross_mark: "❎", heavy_heart_exclamation_mark_ornament: "❣️", heart_on_fire: "❤️‍🔥", mending_heart: "❤️‍🩹", heart: "❤️", arrow_right: "➡️", curly_loop: "➰", loop: "➿", arrow_heading_up: "⤴️", arrow_heading_down: "⤵️", arrow_left: "⬅️", arrow_up: "⬆️", arrow_down: "⬇️", black_large_square: "⬛", white_large_square: "⬜", star: "⭐", o: "⭕", wavy_dash: "〰️", part_alternation_mark: "〽️", congratulations: "㊗️", secret: "㊙️" };
96133
96245
  });
96134
96246
 
96135
96247
  // node_modules/.bun/node-emoji@1.11.0/node_modules/node-emoji/lib/emoji.js
96136
- var require_emoji2 = __commonJS((exports, module) => {
96248
+ var require_emoji2 = __commonJS(function(exports, module) {
96137
96249
  var toArray = require_toArray();
96138
96250
  var emojiByName = require_emoji();
96139
96251
  var emojiNameRegex = /:([a-zA-Z0-9_\-\+]+):/g;
@@ -96278,7 +96390,7 @@ var require_emoji2 = __commonJS((exports, module) => {
96278
96390
  });
96279
96391
 
96280
96392
  // node_modules/.bun/has-flag@4.0.0/node_modules/has-flag/index.js
96281
- var require_has_flag = __commonJS((exports, module) => {
96393
+ var require_has_flag = __commonJS(function(exports, module) {
96282
96394
  module.exports = (flag, argv = process.argv) => {
96283
96395
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
96284
96396
  const position = argv.indexOf(prefix + flag);
@@ -96288,7 +96400,7 @@ var require_has_flag = __commonJS((exports, module) => {
96288
96400
  });
96289
96401
 
96290
96402
  // node_modules/.bun/supports-color@7.2.0/node_modules/supports-color/index.js
96291
- var require_supports_color = __commonJS((exports, module) => {
96403
+ var require_supports_color = __commonJS(function(exports, module) {
96292
96404
  var os = __require("os");
96293
96405
  var tty = __require("tty");
96294
96406
  var hasFlag = require_has_flag();
@@ -96387,7 +96499,7 @@ var require_supports_color = __commonJS((exports, module) => {
96387
96499
  });
96388
96500
 
96389
96501
  // node_modules/.bun/supports-hyperlinks@2.3.0/node_modules/supports-hyperlinks/index.js
96390
- var require_supports_hyperlinks = __commonJS((exports, module) => {
96502
+ var require_supports_hyperlinks = __commonJS(function(exports, module) {
96391
96503
  var supportsColor = require_supports_color();
96392
96504
  var hasFlag = require_has_flag();
96393
96505
  function parseVersion(versionString) {
@@ -96466,7 +96578,7 @@ var require_supports_hyperlinks = __commonJS((exports, module) => {
96466
96578
  });
96467
96579
 
96468
96580
  // node_modules/.bun/marked-terminal@5.2.0+2cbc53c039b95cf4/node_modules/marked-terminal/index.cjs
96469
- var require_marked_terminal = __commonJS((exports, module) => {
96581
+ var require_marked_terminal = __commonJS(function(exports, module) {
96470
96582
  var process$1 = __require("node:process");
96471
96583
  var os = __require("node:os");
96472
96584
  var tty = __require("node:tty");
@@ -97454,7 +97566,7 @@ var require_marked_terminal = __commonJS((exports, module) => {
97454
97566
  });
97455
97567
 
97456
97568
  // node_modules/.bun/escape-string-regexp@1.0.5/node_modules/escape-string-regexp/index.js
97457
- var require_escape_string_regexp = __commonJS((exports, module) => {
97569
+ var require_escape_string_regexp = __commonJS(function(exports, module) {
97458
97570
  var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
97459
97571
  module.exports = function(str) {
97460
97572
  if (typeof str !== "string") {
@@ -97465,7 +97577,7 @@ var require_escape_string_regexp = __commonJS((exports, module) => {
97465
97577
  });
97466
97578
 
97467
97579
  // node_modules/.bun/ansi-styles@2.2.1/node_modules/ansi-styles/index.js
97468
- var require_ansi_styles = __commonJS((exports, module) => {
97580
+ var require_ansi_styles = __commonJS(function(exports, module) {
97469
97581
  function assembleStyles() {
97470
97582
  var styles2 = {
97471
97583
  modifiers: {
@@ -97524,14 +97636,14 @@ var require_ansi_styles = __commonJS((exports, module) => {
97524
97636
  });
97525
97637
 
97526
97638
  // node_modules/.bun/has-ansi@2.0.0/node_modules/has-ansi/index.js
97527
- var require_has_ansi = __commonJS((exports, module) => {
97639
+ var require_has_ansi = __commonJS(function(exports, module) {
97528
97640
  var ansiRegex = require_ansi_regex();
97529
97641
  var re = new RegExp(ansiRegex().source);
97530
97642
  module.exports = re.test.bind(re);
97531
97643
  });
97532
97644
 
97533
97645
  // node_modules/.bun/supports-color@2.0.0/node_modules/supports-color/index.js
97534
- var require_supports_color2 = __commonJS((exports, module) => {
97646
+ var require_supports_color2 = __commonJS(function(exports, module) {
97535
97647
  var argv = process.argv;
97536
97648
  var terminator = argv.indexOf("--");
97537
97649
  var hasFlag = function(flag) {
@@ -97569,7 +97681,7 @@ var require_supports_color2 = __commonJS((exports, module) => {
97569
97681
  });
97570
97682
 
97571
97683
  // node_modules/.bun/chalk@1.1.3/node_modules/chalk/index.js
97572
- var require_chalk = __commonJS((exports, module) => {
97684
+ var require_chalk = __commonJS(function(exports, module) {
97573
97685
  var escapeStringRegexp = require_escape_string_regexp();
97574
97686
  var ansiStyles = require_ansi_styles();
97575
97687
  var stripAnsi = require_strip_ansi();
@@ -97650,7 +97762,7 @@ var require_chalk = __commonJS((exports, module) => {
97650
97762
  });
97651
97763
 
97652
97764
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/markdown.js
97653
- var require_markdown = __commonJS((exports, module) => {
97765
+ var require_markdown = __commonJS(function(exports, module) {
97654
97766
  var blessed = require_blessed();
97655
97767
  var Box = blessed.Box;
97656
97768
  var marked = require_marked();
@@ -97704,7 +97816,7 @@ var require_markdown = __commonJS((exports, module) => {
97704
97816
  });
97705
97817
 
97706
97818
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/charts/bar.js
97707
- var require_bar = __commonJS((exports, module) => {
97819
+ var require_bar = __commonJS(function(exports, module) {
97708
97820
  var blessed = require_blessed();
97709
97821
  var Node = blessed.Node;
97710
97822
  var Canvas = require_canvas();
@@ -97785,7 +97897,7 @@ var require_bar = __commonJS((exports, module) => {
97785
97897
  });
97786
97898
 
97787
97899
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/charts/stacked-bar.js
97788
- var require_stacked_bar = __commonJS((exports, module) => {
97900
+ var require_stacked_bar = __commonJS(function(exports, module) {
97789
97901
  var blessed = require_blessed();
97790
97902
  var Node = blessed.Node;
97791
97903
  var Canvas = require_canvas();
@@ -97941,7 +98053,7 @@ var require_stacked_bar = __commonJS((exports, module) => {
97941
98053
  });
97942
98054
 
97943
98055
  // node_modules/.bun/lodash@4.17.21/node_modules/lodash/lodash.js
97944
- var require_lodash = __commonJS((exports, module) => {
98056
+ var require_lodash = __commonJS(function(exports, module) {
97945
98057
  (function() {
97946
98058
  var undefined2;
97947
98059
  var VERSION = "4.17.21";
@@ -101168,7 +101280,7 @@ var require_lodash = __commonJS((exports, module) => {
101168
101280
  }
101169
101281
  return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : [];
101170
101282
  });
101171
- function join11(array, separator) {
101283
+ function join13(array, separator) {
101172
101284
  return array == null ? "" : nativeJoin.call(array, separator);
101173
101285
  }
101174
101286
  function last(array) {
@@ -103100,7 +103212,7 @@ __p += '`;
103100
103212
  lodash.isUndefined = isUndefined;
103101
103213
  lodash.isWeakMap = isWeakMap;
103102
103214
  lodash.isWeakSet = isWeakSet;
103103
- lodash.join = join11;
103215
+ lodash.join = join13;
103104
103216
  lodash.kebabCase = kebabCase;
103105
103217
  lodash.last = last;
103106
103218
  lodash.lastIndexOf = lastIndexOf;
@@ -103357,7 +103469,7 @@ __p += '`;
103357
103469
  });
103358
103470
 
103359
103471
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/widget/charts/line.js
103360
- var require_line = __commonJS((exports, module) => {
103472
+ var require_line = __commonJS(function(exports, module) {
103361
103473
  var blessed = require_blessed();
103362
103474
  var Node = blessed.Node;
103363
103475
  var Canvas = require_canvas();
@@ -103564,7 +103676,7 @@ var require_line = __commonJS((exports, module) => {
103564
103676
  });
103565
103677
 
103566
103678
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/lib/server-utils.js
103567
- var require_server_utils = __commonJS((exports) => {
103679
+ var require_server_utils = __commonJS(function(exports) {
103568
103680
  var url = __require("url");
103569
103681
  var contrib = require_blessed_contrib();
103570
103682
  var blessed = require_blessed();
@@ -103628,7 +103740,7 @@ var require_server_utils = __commonJS((exports) => {
103628
103740
  });
103629
103741
 
103630
103742
  // node_modules/.bun/blessed-contrib@4.11.0/node_modules/blessed-contrib/index.js
103631
- var require_blessed_contrib = __commonJS((exports) => {
103743
+ var require_blessed_contrib = __commonJS(function(exports) {
103632
103744
  exports.grid = require_grid();
103633
103745
  exports.carousel = require_carousel();
103634
103746
  exports.map = require_map2();
@@ -103781,27 +103893,15 @@ __export(exports_dev, {
103781
103893
  default: () => dev
103782
103894
  });
103783
103895
  import { spawn } from "node:child_process";
103784
- import { existsSync as existsSync6 } from "node:fs";
103785
- import { join as join11 } from "node:path";
103786
- function getRerouteCommand() {
103787
- const binPath = join11(import.meta.dir, "..", "..", "bin.ts");
103788
- const isBunDev = existsSync6(binPath);
103789
- if (isBunDev) {
103790
- return `bun ${binPath}`;
103791
- }
103792
- const cwd = process.cwd();
103793
- const nodeModulesPaths = [
103794
- join11(cwd, "node_modules", ".bin", "reroute"),
103795
- join11(cwd, "..", "node_modules", ".bin", "reroute"),
103796
- join11(cwd, "..", "..", "node_modules", ".bin", "reroute"),
103797
- join11(cwd, "..", "..", "..", "node_modules", ".bin", "reroute")
103798
- ];
103799
- for (const binPath2 of nodeModulesPaths) {
103800
- if (existsSync6(binPath2)) {
103801
- return binPath2;
103802
- }
103896
+ import { existsSync as existsSync7 } from "node:fs";
103897
+ import { join as join13 } from "node:path";
103898
+ import { pathToFileURL as pathToFileURL9 } from "node:url";
103899
+ function parsePort(args) {
103900
+ const portIndex = args.findIndex((arg) => arg === "--port" || arg === "-p");
103901
+ if (portIndex !== -1 && args[portIndex + 1]) {
103902
+ return Number(args[portIndex + 1]);
103803
103903
  }
103804
- return "reroute";
103904
+ return Number(process.env.PORT || "3000");
103805
103905
  }
103806
103906
  async function waitForInitialBuild(genProcess) {
103807
103907
  console.log("[reroute/dev] Waiting for initial build...");
@@ -103826,15 +103926,33 @@ async function waitForInitialBuild(genProcess) {
103826
103926
  console.log("[reroute/dev] Initial build complete!");
103827
103927
  return outputBuffer;
103828
103928
  }
103829
- async function startServerProcess(genProcess, port) {
103929
+ async function startTui(port) {
103930
+ const rerouteCmd = getRerouteCommand();
103931
+ const useShell = rerouteCmd.includes(" ");
103932
+ const genCommand = useShell ? `${rerouteCmd} gen --watch` : rerouteCmd;
103933
+ const genArgs = useShell ? [] : ["gen", "--watch"];
103934
+ const genProcess = spawn(genCommand, genArgs, {
103935
+ stdio: ["ignore", "pipe", "pipe"],
103936
+ shell: useShell,
103937
+ env: {
103938
+ ...process.env,
103939
+ PORT: String(port),
103940
+ REROUTE_DEV: "1"
103941
+ }
103942
+ });
103943
+ const outputBuffer = await waitForInitialBuild(genProcess).catch((error) => {
103944
+ console.error("[reroute/dev] Failed to complete initial build:", error);
103945
+ genProcess.kill();
103946
+ process.exit(1);
103947
+ });
103830
103948
  const serverProcess = spawn("bun", ["--watch", "src/index.ts"], {
103831
103949
  stdio: ["ignore", "pipe", "pipe"],
103832
103950
  env: {
103833
103951
  ...process.env,
103834
- PORT: String(port)
103952
+ PORT: String(port),
103953
+ REROUTE_DEV: "1"
103835
103954
  }
103836
103955
  });
103837
- console.log("[reroute/dev] Starting server...");
103838
103956
  try {
103839
103957
  await waitForServerReady(port);
103840
103958
  console.log(`[reroute/dev] ✓ Server ready at http://localhost:${port}
@@ -103845,48 +103963,6 @@ async function startServerProcess(genProcess, port) {
103845
103963
  serverProcess.kill();
103846
103964
  process.exit(1);
103847
103965
  }
103848
- return serverProcess;
103849
- }
103850
- function setupDefaultMode(genProcess, serverProcess, outputBuffer) {
103851
- const genBuffer = { current: "" };
103852
- const serverBuffer = { current: "" };
103853
- const handleGenOutput = (data) => {
103854
- const text = genBuffer.current + data.toString();
103855
- const lines = text.split(`
103856
- `);
103857
- genBuffer.current = lines.pop() || "";
103858
- for (const line of lines) {
103859
- if (!line.trim())
103860
- continue;
103861
- const ansiColored = colorizeLogPrefixAnsi(line);
103862
- console.log(ansiColored);
103863
- }
103864
- };
103865
- const handleServerOutput = createServerOutputHandler(serverBuffer);
103866
- for (const data of outputBuffer) {
103867
- handleGenOutput(data);
103868
- }
103869
- genProcess.stdout?.on("data", handleGenOutput);
103870
- genProcess.stderr?.on("data", handleGenOutput);
103871
- serverProcess.stdout?.on("data", handleServerOutput);
103872
- serverProcess.stderr?.on("data", handleServerOutput);
103873
- genProcess.on("exit", (code) => {
103874
- console.log(`
103875
- [reroute/gen] Process exited with code ${code}`);
103876
- });
103877
- serverProcess.on("exit", (code) => {
103878
- console.log(`
103879
- [server] Process exited with code ${code}`);
103880
- });
103881
- process.on("SIGINT", () => {
103882
- console.log(`
103883
- [reroute/dev] Shutting down...`);
103884
- genProcess.kill("SIGINT");
103885
- serverProcess.kill("SIGINT");
103886
- process.exit(0);
103887
- });
103888
- }
103889
- async function setupTerminalUI(genProcess, serverProcess, outputBuffer) {
103890
103966
  const blessed = await Promise.resolve().then(() => __toESM(require_blessed(), 1));
103891
103967
  const contrib = await Promise.resolve().then(() => __toESM(require_blessed_contrib(), 1));
103892
103968
  const screen = blessed.default.screen({
@@ -103902,33 +103978,53 @@ async function setupTerminalUI(genProcess, serverProcess, outputBuffer) {
103902
103978
  const { setupTerminalUIHandlers: setupTerminalUIHandlers2 } = await Promise.resolve().then(() => exports_terminal_ui);
103903
103979
  setupTerminalUIHandlers2(screen, grid, genProcess, serverProcess, outputBuffer, blessed, colorizeLogPrefix);
103904
103980
  }
103981
+ async function startDefault(port) {
103982
+ process.env.PORT = String(port);
103983
+ process.env.REROUTE_DEV = "1";
103984
+ const session = await startGenWatch(process.cwd(), ["--watch"]);
103985
+ const entry = join13(process.cwd(), "src/index.ts");
103986
+ if (!existsSync7(entry)) {
103987
+ session.close();
103988
+ throw new Error(`[reroute/dev] Missing ${entry}`);
103989
+ }
103990
+ console.log("[reroute/dev] Starting server...");
103991
+ await import(pathToFileURL9(entry).href);
103992
+ try {
103993
+ await waitForServerReady(port);
103994
+ console.log(`[reroute/dev] ✓ Server ready at http://localhost:${port}
103995
+ `);
103996
+ } catch (error) {
103997
+ session.close();
103998
+ console.error("[reroute/dev] Server failed to start:", error);
103999
+ process.exit(1);
104000
+ }
104001
+ const shutdown = () => {
104002
+ console.log(`
104003
+ [reroute/dev] Shutting down...`);
104004
+ session.close();
104005
+ process.exit(0);
104006
+ };
104007
+ process.on("SIGINT", shutdown);
104008
+ process.on("SIGTERM", shutdown);
104009
+ }
103905
104010
  async function dev(args) {
103906
104011
  const terminalUI = args.includes("--tui") || args.includes("-t");
103907
- const portIndex = args.findIndex((arg) => arg === "--port" || arg === "-p");
103908
- const port = portIndex !== -1 && args[portIndex + 1] ? Number(args[portIndex + 1]) : Number(process.env.PORT || "3000");
104012
+ const port = parsePort(args);
104013
+ if (await isServerRunning(port)) {
104014
+ console.log(`[reroute/dev] Already running at http://localhost:${port} — not starting another instance`);
104015
+ return;
104016
+ }
104017
+ process.env.PORT = String(port);
104018
+ process.env.REROUTE_DEV = "1";
103909
104019
  try {
103910
- console.log("[reroute/dev] Starting development servers...");
104020
+ console.log("[reroute/dev] Starting development server...");
103911
104021
  console.log(`[reroute/dev] Press Ctrl+C to stop
103912
104022
  `);
103913
- const rerouteCmd = getRerouteCommand();
103914
- const useShell = rerouteCmd.includes(" ");
103915
- const genCommand = useShell ? `${rerouteCmd} gen --watch` : rerouteCmd;
103916
- const genArgs = useShell ? [] : ["gen", "--watch"];
103917
- const genProcess = spawn(genCommand, genArgs, {
103918
- stdio: ["ignore", "pipe", "pipe"],
103919
- shell: useShell
103920
- });
103921
- const outputBuffer = await waitForInitialBuild(genProcess).catch((error) => {
103922
- console.error("[reroute/dev] Failed to complete initial build:", error);
103923
- genProcess.kill();
103924
- process.exit(1);
103925
- });
103926
- const serverProcess = await startServerProcess(genProcess, port);
103927
- if (!terminalUI) {
103928
- setupDefaultMode(genProcess, serverProcess, outputBuffer);
103929
- } else {
103930
- await setupTerminalUI(genProcess, serverProcess, outputBuffer);
104023
+ if (terminalUI) {
104024
+ await startTui(port);
104025
+ return;
103931
104026
  }
104027
+ await startDefault(port);
103932
104028
  } catch (error) {
103933
104029
  if (error.code === "SIGINT") {
103934
104030
  console.log(`
@@ -103940,6 +104036,8 @@ async function dev(args) {
103940
104036
  }
103941
104037
  }
103942
104038
  var init_dev = __esm(() => {
104039
+ init_gen();
104040
+ init_command();
103943
104041
  init_log();
103944
104042
  });
103945
104043
 
@@ -103949,23 +104047,23 @@ __export(exports_start, {
103949
104047
  default: () => start
103950
104048
  });
103951
104049
  import { spawn as spawn2 } from "node:child_process";
103952
- import { existsSync as existsSync7 } from "node:fs";
103953
- import { join as join12 } from "node:path";
104050
+ import { existsSync as existsSync8 } from "node:fs";
104051
+ import { join as join14 } from "node:path";
103954
104052
  function getRerouteCommand2() {
103955
- const binPath = join12(import.meta.dir, "..", "..", "bin.ts");
103956
- const isBunDev = existsSync7(binPath);
104053
+ const binPath = join14(import.meta.dir, "..", "..", "bin.ts");
104054
+ const isBunDev = existsSync8(binPath);
103957
104055
  if (isBunDev) {
103958
104056
  return `bun ${binPath}`;
103959
104057
  }
103960
104058
  const cwd = process.cwd();
103961
104059
  const nodeModulesPaths = [
103962
- join12(cwd, "node_modules", ".bin", "reroute"),
103963
- join12(cwd, "..", "node_modules", ".bin", "reroute"),
103964
- join12(cwd, "..", "..", "node_modules", ".bin", "reroute"),
103965
- join12(cwd, "..", "..", "..", "node_modules", ".bin", "reroute")
104060
+ join14(cwd, "node_modules", ".bin", "reroute"),
104061
+ join14(cwd, "..", "node_modules", ".bin", "reroute"),
104062
+ join14(cwd, "..", "..", "node_modules", ".bin", "reroute"),
104063
+ join14(cwd, "..", "..", "..", "node_modules", ".bin", "reroute")
103966
104064
  ];
103967
104065
  for (const binPath2 of nodeModulesPaths) {
103968
- if (existsSync7(binPath2)) {
104066
+ if (existsSync8(binPath2)) {
103969
104067
  return binPath2;
103970
104068
  }
103971
104069
  }
@@ -104086,17 +104184,17 @@ var init_start = __esm(() => {
104086
104184
  // packages/cli/src/commands/lib/assets.ts
104087
104185
  import {
104088
104186
  cpSync,
104089
- existsSync as existsSync8,
104187
+ existsSync as existsSync9,
104090
104188
  mkdirSync,
104091
104189
  readdirSync
104092
104190
  } from "node:fs";
104093
- import { join as join13 } from "node:path";
104191
+ import { join as join15 } from "node:path";
104094
104192
  function copyAssetsToReroute(cwd, sourceAssetsDir, rerouteAssetsDir) {
104095
- if (!existsSync8(sourceAssetsDir)) {
104193
+ if (!existsSync9(sourceAssetsDir)) {
104096
104194
  return 0;
104097
104195
  }
104098
- const rerouteDir = join13(cwd, ".reroute");
104099
- if (!existsSync8(rerouteDir)) {
104196
+ const rerouteDir = join15(cwd, ".reroute");
104197
+ if (!existsSync9(rerouteDir)) {
104100
104198
  mkdirSync(rerouteDir, { recursive: true });
104101
104199
  }
104102
104200
  cpSync(sourceAssetsDir, rerouteAssetsDir, { recursive: true });
@@ -104107,7 +104205,7 @@ function countFiles(dir) {
104107
104205
  const entries = readdirSync(dir, { withFileTypes: true });
104108
104206
  for (const entry of entries) {
104109
104207
  if (entry.isDirectory()) {
104110
- count += countFiles(join13(dir, entry.name));
104208
+ count += countFiles(join15(dir, entry.name));
104111
104209
  } else {
104112
104210
  count++;
104113
104211
  }
@@ -104122,23 +104220,23 @@ __export(exports_build, {
104122
104220
  default: () => build
104123
104221
  });
104124
104222
  import { spawn as spawn3 } from "node:child_process";
104125
- import { existsSync as existsSync9, readFileSync as readFileSync5, rmSync, unlinkSync } from "node:fs";
104126
- import { join as join14 } from "node:path";
104223
+ import { existsSync as existsSync10, readFileSync as readFileSync5, rmSync, unlinkSync } from "node:fs";
104224
+ import { join as join16 } from "node:path";
104127
104225
  function getRerouteCommand3() {
104128
- const binPath = join14(import.meta.dir, "..", "..", "bin.ts");
104129
- const isBunDev = existsSync9(binPath);
104226
+ const binPath = join16(import.meta.dir, "..", "..", "bin.ts");
104227
+ const isBunDev = existsSync10(binPath);
104130
104228
  if (isBunDev) {
104131
104229
  return `bun ${binPath}`;
104132
104230
  }
104133
104231
  const cwd = process.cwd();
104134
104232
  const nodeModulesPaths = [
104135
- join14(cwd, "node_modules", ".bin", "reroute"),
104136
- join14(cwd, "..", "node_modules", ".bin", "reroute"),
104137
- join14(cwd, "..", "..", "node_modules", ".bin", "reroute"),
104138
- join14(cwd, "..", "..", "..", "node_modules", ".bin", "reroute")
104233
+ join16(cwd, "node_modules", ".bin", "reroute"),
104234
+ join16(cwd, "..", "node_modules", ".bin", "reroute"),
104235
+ join16(cwd, "..", "..", "node_modules", ".bin", "reroute"),
104236
+ join16(cwd, "..", "..", "..", "node_modules", ".bin", "reroute")
104139
104237
  ];
104140
104238
  for (const binPath2 of nodeModulesPaths) {
104141
- if (existsSync9(binPath2)) {
104239
+ if (existsSync10(binPath2)) {
104142
104240
  return binPath2;
104143
104241
  }
104144
104242
  }
@@ -104146,8 +104244,8 @@ function getRerouteCommand3() {
104146
104244
  }
104147
104245
  function getOutputName() {
104148
104246
  const cwd = process.cwd();
104149
- const packageJsonPath = join14(cwd, "package.json");
104150
- if (existsSync9(packageJsonPath)) {
104247
+ const packageJsonPath = join16(cwd, "package.json");
104248
+ if (existsSync10(packageJsonPath)) {
104151
104249
  try {
104152
104250
  const packageJson = JSON.parse(readFileSync5(packageJsonPath, "utf-8"));
104153
104251
  const name = packageJson.name;
@@ -104178,16 +104276,16 @@ function parseBuildArgs(args) {
104178
104276
  return { outfile, compileBinary, noCompression, externalArgs };
104179
104277
  }
104180
104278
  function cleanDistFolder(cwd) {
104181
- const distDir = join14(cwd, "dist");
104182
- if (existsSync9(distDir)) {
104279
+ const distDir = join16(cwd, "dist");
104280
+ if (existsSync10(distDir)) {
104183
104281
  process.stdout.write(colorizeLogPrefixAnsi(`[reroute/build] Cleaning dist folder...
104184
104282
  `));
104185
104283
  rmSync(distDir, { recursive: true });
104186
104284
  }
104187
104285
  }
104188
104286
  async function cleanRerouteFolder(cwd) {
104189
- const rerouteDir = join14(cwd, ".reroute");
104190
- if (existsSync9(rerouteDir)) {
104287
+ const rerouteDir = join16(cwd, ".reroute");
104288
+ if (existsSync10(rerouteDir)) {
104191
104289
  process.stdout.write(colorizeLogPrefixAnsi(`[reroute/build] Cleaning .reroute folder...
104192
104290
  `));
104193
104291
  rmSync(rerouteDir, { recursive: true, force: true });
@@ -104241,10 +104339,10 @@ async function runGenCommand(rerouteCmd, useShell, noCompression) {
104241
104339
  async function copyAssets(cwd) {
104242
104340
  const config2 = await loadConfig(cwd);
104243
104341
  const appSrc = config2.app?.src ?? "./src/client/App";
104244
- const dirname7 = __require("node:path").dirname;
104245
- const assetsPath = dirname7(appSrc);
104246
- const sourceAssetsDir = join14(cwd, assetsPath, "assets");
104247
- const rerouteAssetsDir = join14(cwd, ".reroute", "assets");
104342
+ const dirname8 = __require("node:path").dirname;
104343
+ const assetsPath = dirname8(appSrc);
104344
+ const sourceAssetsDir = join16(cwd, assetsPath, "assets");
104345
+ const rerouteAssetsDir = join16(cwd, ".reroute", "assets");
104248
104346
  process.stdout.write(colorizeLogPrefixAnsi(`[reroute/build] Copying assets...
104249
104347
  `));
104250
104348
  const fileCount = copyAssetsToReroute(cwd, sourceAssetsDir, rerouteAssetsDir);
@@ -104259,9 +104357,9 @@ async function copyAssets(cwd) {
104259
104357
  async function buildBundle(cwd, buildArgs) {
104260
104358
  const external = [...buildArgs.externalArgs, "sharp", "@vercel/og"];
104261
104359
  const buildResult = await Bun.build({
104262
- entrypoints: [join14(cwd, ".reroute/entry.ts")],
104360
+ entrypoints: [join16(cwd, ".reroute/entry.ts")],
104263
104361
  target: "bun",
104264
- outdir: join14(cwd, "dist"),
104362
+ outdir: join16(cwd, "dist"),
104265
104363
  sourcemap: "external",
104266
104364
  ...getCommonBuildOptions(),
104267
104365
  external,
@@ -104304,8 +104402,8 @@ function cleanupBundledFiles(rerouteDir) {
104304
104402
  "markdown-components.ts"
104305
104403
  ];
104306
104404
  for (const file of tsFilesToRemove) {
104307
- const filePath = join14(rerouteDir, file);
104308
- if (existsSync9(filePath)) {
104405
+ const filePath = join16(rerouteDir, file);
104406
+ if (existsSync10(filePath)) {
104309
104407
  try {
104310
104408
  unlinkSync(filePath);
104311
104409
  cleanupCount++;
@@ -104314,8 +104412,8 @@ function cleanupBundledFiles(rerouteDir) {
104314
104412
  }
104315
104413
  const dirsToRemove = ["markdown", "streaming"];
104316
104414
  for (const dir of dirsToRemove) {
104317
- const dirPath = join14(rerouteDir, dir);
104318
- if (existsSync9(dirPath)) {
104415
+ const dirPath = join16(rerouteDir, dir);
104416
+ if (existsSync10(dirPath)) {
104319
104417
  try {
104320
104418
  rmSync(dirPath, { recursive: true });
104321
104419
  cleanupCount++;
@@ -104348,7 +104446,7 @@ async function build(args) {
104348
104446
  await runGenCommand(rerouteCmd, useShell, buildArgs.noCompression);
104349
104447
  await copyAssets(cwd);
104350
104448
  await buildBundle(cwd, buildArgs);
104351
- const rerouteDir = join14(cwd, ".reroute");
104449
+ const rerouteDir = join16(cwd, ".reroute");
104352
104450
  cleanupBundledFiles(rerouteDir);
104353
104451
  logBuildComplete(buildStartTime, buildArgs);
104354
104452
  process.exit(0);
@@ -104364,60 +104462,31 @@ var init_build = __esm(() => {
104364
104462
  init_log();
104365
104463
  });
104366
104464
 
104367
- // packages/cli/src/commands/lib/command.ts
104368
- var exports_command = {};
104369
- __export(exports_command, {
104370
- getRerouteCommand: () => getRerouteCommand4
104371
- });
104372
- import { existsSync as existsSync10 } from "node:fs";
104373
- import { join as join15 } from "node:path";
104374
- function getRerouteCommand4() {
104375
- const binPath = join15(import.meta.dir, "..", "..", "bin.ts");
104376
- const isBunDev = existsSync10(binPath);
104377
- if (isBunDev) {
104378
- return `bun ${binPath}`;
104379
- }
104380
- const cwd = process.cwd();
104381
- const nodeModulesPaths = [
104382
- join15(cwd, "node_modules", ".bin", "reroute"),
104383
- join15(cwd, "..", "node_modules", ".bin", "reroute"),
104384
- join15(cwd, "..", "..", "node_modules", ".bin", "reroute"),
104385
- join15(cwd, "..", "..", "..", "node_modules", ".bin", "reroute")
104386
- ];
104387
- for (const binPath2 of nodeModulesPaths) {
104388
- if (existsSync10(binPath2)) {
104389
- return binPath2;
104390
- }
104391
- }
104392
- return "reroute";
104393
- }
104394
- var init_command = () => {};
104395
-
104396
104465
  // packages/cli/src/commands/analyze.ts
104397
104466
  var exports_analyze = {};
104398
104467
  __export(exports_analyze, {
104399
104468
  default: () => analyze
104400
104469
  });
104401
104470
  import { existsSync as existsSync11, statSync } from "node:fs";
104402
- import { readdir as readdir8, readFile, stat as stat5, writeFile as writeFile2 } from "node:fs/promises";
104403
- import { basename as basename3, join as join16, relative as relative3 } from "node:path";
104471
+ import { readdir as readdir8, readFile, stat as stat6, writeFile as writeFile2 } from "node:fs/promises";
104472
+ import { basename as basename4, join as join17, relative as relative3 } from "node:path";
104404
104473
  import Table from "cli-table3";
104405
104474
  async function findChunkBundles(cwd) {
104406
104475
  const bundles = [];
104407
- const chunksDir = join16(cwd, ".reroute", "chunks");
104476
+ const chunksDir = join17(cwd, ".reroute", "chunks");
104408
104477
  if (!existsSync11(chunksDir))
104409
104478
  return bundles;
104410
104479
  const collections2 = await readdir8(chunksDir, { withFileTypes: true });
104411
104480
  for (const collection of collections2) {
104412
104481
  if (!collection.isDirectory())
104413
104482
  continue;
104414
- const collectionDir = join16(chunksDir, collection.name);
104483
+ const collectionDir = join17(chunksDir, collection.name);
104415
104484
  const files = await readdir8(collectionDir);
104416
104485
  for (const file of files) {
104417
104486
  if (!file.endsWith(".js"))
104418
104487
  continue;
104419
- const filePath = join16(collectionDir, file);
104420
- const stats = await stat5(filePath);
104488
+ const filePath = join17(collectionDir, file);
104489
+ const stats = await stat6(filePath);
104421
104490
  const content2 = await Bun.file(filePath).arrayBuffer();
104422
104491
  const gzippedSize = Bun.gzipSync(new Uint8Array(content2)).length;
104423
104492
  bundles.push({
@@ -104434,12 +104503,12 @@ async function findChunkBundles(cwd) {
104434
104503
  }
104435
104504
  async function findDistBundles(cwd) {
104436
104505
  const bundles = [];
104437
- const distDir = join16(cwd, "dist");
104506
+ const distDir = join17(cwd, "dist");
104438
104507
  if (!existsSync11(distDir))
104439
104508
  return bundles;
104440
104509
  const files = await readdir8(distDir);
104441
104510
  for (const file of files) {
104442
- const filePath = join16(distDir, file);
104511
+ const filePath = join17(distDir, file);
104443
104512
  const stats = statSync(filePath);
104444
104513
  if (stats.isFile() && !file.endsWith(".map") && !file.endsWith(".d.ts")) {
104445
104514
  const content2 = await Bun.file(filePath).arrayBuffer();
@@ -104465,9 +104534,9 @@ async function findBundles(cwd) {
104465
104534
  }
104466
104535
  async function findBrowserEntry(cwd) {
104467
104536
  try {
104468
- const clientDir = join16(cwd, "src", "client");
104469
- const tsxEntry = join16(clientDir, "index.tsx");
104470
- const tsEntry = join16(clientDir, "index.ts");
104537
+ const clientDir = join17(cwd, "src", "client");
104538
+ const tsxEntry = join17(clientDir, "index.tsx");
104539
+ const tsEntry = join17(clientDir, "index.ts");
104471
104540
  let sourceEntry = null;
104472
104541
  if (existsSync11(tsxEntry)) {
104473
104542
  sourceEntry = tsxEntry;
@@ -104500,12 +104569,12 @@ async function findBrowserEntry(cwd) {
104500
104569
  console.warn("[reroute/analyze] Browser build produced no outputs");
104501
104570
  return null;
104502
104571
  }
104503
- const tempDir = join16(cwd, ".reroute", "browser");
104572
+ const tempDir = join17(cwd, ".reroute", "browser");
104504
104573
  await import("node:fs/promises").then((fs) => fs.mkdir(tempDir, { recursive: true }));
104505
104574
  const output = result.outputs[0];
104506
104575
  const code = await output.text();
104507
104576
  const actualHash = await generateContentHash2(code);
104508
- const bundlePath = join16(tempDir, `index.${actualHash}.js`);
104577
+ const bundlePath = join17(tempDir, `index.${actualHash}.js`);
104509
104578
  await writeFile2(bundlePath, code, "utf-8");
104510
104579
  const mapOutput = result.outputs.find((o) => o.path.endsWith(".map"));
104511
104580
  if (mapOutput) {
@@ -104557,7 +104626,7 @@ function calculateStats(bundles) {
104557
104626
  }
104558
104627
  async function getInstalledPackageSizes(cwd) {
104559
104628
  const packageSizes = new Map;
104560
- const nodeModulesDir = join16(cwd, "node_modules");
104629
+ const nodeModulesDir = join17(cwd, "node_modules");
104561
104630
  if (!existsSync11(nodeModulesDir))
104562
104631
  return packageSizes;
104563
104632
  try {
@@ -104572,7 +104641,7 @@ async function getInstalledPackageSizes(cwd) {
104572
104641
  const [sizeKB, path3] = line.split("\t");
104573
104642
  if (!path3)
104574
104643
  continue;
104575
- const pkgName = basename3(path3);
104644
+ const pkgName = basename4(path3);
104576
104645
  if (pkgName.startsWith("@")) {
104577
104646
  const scopeDir = path3;
104578
104647
  const scopedOutput = execSync(`du -sk ${scopeDir}/* 2>/dev/null || true`, {
@@ -104584,7 +104653,7 @@ async function getInstalledPackageSizes(cwd) {
104584
104653
  const [scopedSizeKB, scopedPath] = scopedLine.split("\t");
104585
104654
  if (!scopedPath)
104586
104655
  continue;
104587
- const fullPkgName = `${pkgName}/${basename3(scopedPath)}`;
104656
+ const fullPkgName = `${pkgName}/${basename4(scopedPath)}`;
104588
104657
  packageSizes.set(fullPkgName, Number.parseInt(scopedSizeKB, 10) * 1024);
104589
104658
  }
104590
104659
  } else {
@@ -104599,7 +104668,7 @@ async function buildDependencyTree(entryPath, cwd) {
104599
104668
  if (!existsSync11(entryPath))
104600
104669
  return null;
104601
104670
  const root = {
104602
- name: basename3(entryPath),
104671
+ name: basename4(entryPath),
104603
104672
  path: entryPath,
104604
104673
  size: 0,
104605
104674
  children: []
@@ -104613,14 +104682,14 @@ async function buildDependencyTree(entryPath, cwd) {
104613
104682
  if (!pkgNode) {
104614
104683
  pkgNode = {
104615
104684
  name: pkgName || "unknown",
104616
- path: join16(cwd, "node_modules", pkgName || ""),
104685
+ path: join17(cwd, "node_modules", pkgName || ""),
104617
104686
  size: 0,
104618
104687
  children: []
104619
104688
  };
104620
104689
  nodeModulesNode.children?.push(pkgNode);
104621
104690
  }
104622
104691
  pkgNode.children?.push({
104623
- name: basename3(filePath),
104692
+ name: basename4(filePath),
104624
104693
  path: filePath,
104625
104694
  size
104626
104695
  });
@@ -104634,7 +104703,7 @@ async function buildDependencyTree(entryPath, cwd) {
104634
104703
  if (!child) {
104635
104704
  child = {
104636
104705
  name: part,
104637
- path: join16(cwd, ...parts.slice(0, i + 1)),
104706
+ path: join17(cwd, ...parts.slice(0, i + 1)),
104638
104707
  size: 0,
104639
104708
  children: []
104640
104709
  };
@@ -104643,7 +104712,7 @@ async function buildDependencyTree(entryPath, cwd) {
104643
104712
  current = child;
104644
104713
  }
104645
104714
  current.children?.push({
104646
- name: parts[parts.length - 1] || basename3(filePath),
104715
+ name: parts[parts.length - 1] || basename4(filePath),
104647
104716
  path: filePath,
104648
104717
  size
104649
104718
  });
@@ -104665,7 +104734,7 @@ async function buildDependencyTree(entryPath, cwd) {
104665
104734
  const modulePattern = /\/\/\s*(.+?\.(?:ts|tsx|js|jsx|mjs|cjs))\s*$/gm;
104666
104735
  const nodeModulesNode = {
104667
104736
  name: "node_modules",
104668
- path: join16(cwd, "node_modules"),
104737
+ path: join17(cwd, "node_modules"),
104669
104738
  size: 0,
104670
104739
  children: []
104671
104740
  };
@@ -104731,7 +104800,7 @@ async function buildTreeFromSourceMap(bundlePath, cwd) {
104731
104800
  if (sourcePath.startsWith("/") || sourcePath.match(/^[A-Za-z]:\\/))
104732
104801
  return sourcePath;
104733
104802
  const bundleDir = bundlePath.substring(0, bundlePath.lastIndexOf("/"));
104734
- return join16(bundleDir, sourceRoot || "", sourcePath);
104803
+ return join17(bundleDir, sourceRoot || "", sourcePath);
104735
104804
  }, computeSizes = function(node) {
104736
104805
  if (node.children && node.children.length > 0) {
104737
104806
  node.size = node.children.reduce((s, c) => s + computeSizes(c), 0);
@@ -104796,14 +104865,14 @@ async function buildTreeFromSourceMap(bundlePath, cwd) {
104796
104865
  }
104797
104866
  }
104798
104867
  const root = {
104799
- name: basename3(bundlePath),
104868
+ name: basename4(bundlePath),
104800
104869
  path: bundlePath,
104801
104870
  size: 0,
104802
104871
  children: []
104803
104872
  };
104804
104873
  const nodeModulesNode = {
104805
104874
  name: "node_modules",
104806
- path: join16(cwd, "node_modules"),
104875
+ path: join17(cwd, "node_modules"),
104807
104876
  size: 0,
104808
104877
  children: []
104809
104878
  };
@@ -104843,14 +104912,14 @@ async function buildTreeFromSourceMap(bundlePath, cwd) {
104843
104912
  if (!pkgNode) {
104844
104913
  pkgNode = {
104845
104914
  name: pkgName || "unknown",
104846
- path: join16(cwd, "node_modules", pkgName || ""),
104915
+ path: join17(cwd, "node_modules", pkgName || ""),
104847
104916
  size: 0,
104848
104917
  children: []
104849
104918
  };
104850
104919
  nodeModulesNode.children?.push(pkgNode);
104851
104920
  }
104852
104921
  pkgNode.children?.push({
104853
- name: basename3(srcPath),
104922
+ name: basename4(srcPath),
104854
104923
  path: srcPath,
104855
104924
  size
104856
104925
  });
@@ -104864,7 +104933,7 @@ async function buildTreeFromSourceMap(bundlePath, cwd) {
104864
104933
  if (!child) {
104865
104934
  child = {
104866
104935
  name: part,
104867
- path: join16(cwd, ...parts.slice(0, i2 + 1)),
104936
+ path: join17(cwd, ...parts.slice(0, i2 + 1)),
104868
104937
  size: 0,
104869
104938
  children: []
104870
104939
  };
@@ -104873,7 +104942,7 @@ async function buildTreeFromSourceMap(bundlePath, cwd) {
104873
104942
  current = child;
104874
104943
  }
104875
104944
  current.children?.push({
104876
- name: parts[parts.length - 1] || basename3(srcPath),
104945
+ name: parts[parts.length - 1] || basename4(srcPath),
104877
104946
  path: srcPath,
104878
104947
  size
104879
104948
  });
@@ -104894,11 +104963,11 @@ async function generateHTMLReport(stats, depTree, mainInfo, browserDepTree, brow
104894
104963
  let actualServerBinarySize = null;
104895
104964
  let actualServerBinaryGzipped = null;
104896
104965
  try {
104897
- const distDir = join16(process.cwd(), "dist");
104966
+ const distDir = join17(process.cwd(), "dist");
104898
104967
  if (existsSync11(distDir)) {
104899
104968
  const files = await readdir8(distDir);
104900
104969
  for (const file of files) {
104901
- const filePath = join16(distDir, file);
104970
+ const filePath = join17(distDir, file);
104902
104971
  const stats2 = statSync(filePath);
104903
104972
  if (stats2.isFile() && !file.includes(".")) {
104904
104973
  actualServerBinarySize = stats2.size;
@@ -106380,11 +106449,11 @@ async function printConsoleReport(stats, depTree, mainInfo, browserDepTree, brow
106380
106449
  let actualServerBinarySize = null;
106381
106450
  let actualServerBinaryGzipped = null;
106382
106451
  try {
106383
- const distDir = join16(process.cwd(), "dist");
106452
+ const distDir = join17(process.cwd(), "dist");
106384
106453
  if (existsSync11(distDir)) {
106385
106454
  const files = await readdir8(distDir);
106386
106455
  for (const file of files) {
106387
- const filePath = join16(distDir, file);
106456
+ const filePath = join17(distDir, file);
106388
106457
  const stats2 = statSync(filePath);
106389
106458
  if (stats2.isFile() && !file.includes(".")) {
106390
106459
  actualServerBinarySize = stats2.size;
@@ -106418,13 +106487,13 @@ async function analyze(args) {
106418
106487
  const isProd = isProductionMode(args);
106419
106488
  const searchIndex = args.indexOf("--search");
106420
106489
  const initialSearch = searchIndex !== -1 && args[searchIndex + 1] ? args[searchIndex + 1] : "";
106421
- const rerouteIndexPath = join16(cwd, ".reroute", "index.ts");
106490
+ const rerouteIndexPath = join17(cwd, ".reroute", "index.ts");
106422
106491
  if (!existsSync11(rerouteIndexPath)) {
106423
106492
  console.log(colorizeLogPrefixAnsi(`[reroute/analyze] .reroute artifacts not found, running build...
106424
106493
  `));
106425
106494
  const { spawn: spawn4 } = await import("node:child_process");
106426
- const { getRerouteCommand: getRerouteCommand5 } = await Promise.resolve().then(() => (init_command(), exports_command));
106427
- const rerouteCmd = getRerouteCommand5();
106495
+ const { getRerouteCommand: getRerouteCommand4 } = await Promise.resolve().then(() => (init_command(), exports_command));
106496
+ const rerouteCmd = getRerouteCommand4();
106428
106497
  const useShell = rerouteCmd.includes(" ");
106429
106498
  const buildCommand = useShell ? `${rerouteCmd} build` : rerouteCmd;
106430
106499
  const buildArgs = useShell ? [] : ["build"];
@@ -106465,11 +106534,11 @@ async function analyze(args) {
106465
106534
  `));
106466
106535
  }
106467
106536
  try {
106468
- const browserStat = await stat5(browserEntry);
106537
+ const browserStat = await stat6(browserEntry);
106469
106538
  const browserContent = await readFile(browserEntry);
106470
106539
  const browserGzipped = Bun.gzipSync(browserContent).length;
106471
106540
  browserInfo = {
106472
- name: basename3(browserEntry),
106541
+ name: basename4(browserEntry),
106473
106542
  size: browserStat.size,
106474
106543
  gzippedSize: browserGzipped
106475
106544
  };
@@ -106481,12 +106550,12 @@ async function analyze(args) {
106481
106550
  let entry = null;
106482
106551
  let depTree = null;
106483
106552
  let mainInfo = null;
106484
- const srcEntry = join16(cwd, "src", "index.ts");
106553
+ const srcEntry = join17(cwd, "src", "index.ts");
106485
106554
  if (existsSync11(srcEntry)) {
106486
106555
  console.log(colorizeLogPrefixAnsi(`[reroute/analyze] Building server binary for analysis...
106487
106556
  `));
106488
106557
  const { mkdir: mkdir4 } = await import("node:fs/promises");
106489
- const serverAnalysisDir = join16(cwd, ".reroute", "server");
106558
+ const serverAnalysisDir = join17(cwd, ".reroute", "server");
106490
106559
  await mkdir4(serverAnalysisDir, { recursive: true });
106491
106560
  const result = await Bun.build({
106492
106561
  entrypoints: [srcEntry],
@@ -106499,7 +106568,7 @@ async function analyze(args) {
106499
106568
  if (result.success && result.outputs.length > 0) {
106500
106569
  const output = result.outputs[0];
106501
106570
  const code = await output.text();
106502
- const analysisEntry = join16(serverAnalysisDir, "index.js");
106571
+ const analysisEntry = join17(serverAnalysisDir, "index.js");
106503
106572
  await writeFile2(analysisEntry, code, "utf-8");
106504
106573
  const mapOutput = result.outputs.find((o) => o.path.endsWith(".map"));
106505
106574
  if (mapOutput) {
@@ -106517,7 +106586,7 @@ async function analyze(args) {
106517
106586
  `));
106518
106587
  const installedSizes = await getInstalledPackageSizes(cwd);
106519
106588
  if (depTree) {
106520
- const packageJsonPath = join16(cwd, "package.json");
106589
+ const packageJsonPath = join17(cwd, "package.json");
106521
106590
  if (existsSync11(packageJsonPath)) {
106522
106591
  try {
106523
106592
  const packageJson = JSON.parse(await readFile(packageJsonPath, "utf-8"));
@@ -106529,7 +106598,7 @@ async function analyze(args) {
106529
106598
  if (!trackedPkgs.has(pkgName) && installedSizes.has(pkgName)) {
106530
106599
  nodeModulesNode.children?.push({
106531
106600
  name: pkgName,
106532
- path: join16(cwd, "node_modules", pkgName),
106601
+ path: join17(cwd, "node_modules", pkgName),
106533
106602
  size: installedSizes.get(pkgName) || 0
106534
106603
  });
106535
106604
  }
@@ -106547,11 +106616,11 @@ async function analyze(args) {
106547
106616
  }
106548
106617
  }
106549
106618
  try {
106550
- const entryStat = await stat5(entry);
106619
+ const entryStat = await stat6(entry);
106551
106620
  const entryContent = await readFile(entry);
106552
106621
  const entryGzipped = Bun.gzipSync(entryContent).length;
106553
106622
  mainInfo = {
106554
- name: basename3(entry),
106623
+ name: basename4(entry),
106555
106624
  size: entryStat.size,
106556
106625
  gzippedSize: entryGzipped
106557
106626
  };
@@ -106560,10 +106629,10 @@ async function analyze(args) {
106560
106629
  const fullOutput = args.includes("--full");
106561
106630
  await printConsoleReport(stats, depTree, mainInfo, browserDepTree, browserInfo, fullOutput);
106562
106631
  if (outputHtml || openBrowser) {
106563
- const htmlPath = join16(cwd, ".reroute", "analysis.html");
106632
+ const htmlPath = join17(cwd, ".reroute", "analysis.html");
106564
106633
  const html2 = await generateHTMLReport(stats, depTree, mainInfo, browserDepTree, browserInfo, initialSearch);
106565
106634
  const { mkdir: mkdir4 } = await import("node:fs/promises");
106566
- await mkdir4(join16(cwd, ".reroute"), { recursive: true });
106635
+ await mkdir4(join17(cwd, ".reroute"), { recursive: true });
106567
106636
  await writeFile2(htmlPath, html2, "utf-8");
106568
106637
  console.log(colorizeLogPrefixAnsi(`[reroute/analyze] HTML report generated: ${relative3(cwd, htmlPath)}
106569
106638
  `));
@@ -106627,7 +106696,7 @@ __export(exports_og, {
106627
106696
  });
106628
106697
  import { spawn as spawn4 } from "node:child_process";
106629
106698
  import { readdir as readdir9 } from "node:fs/promises";
106630
- import { join as join17 } from "node:path";
106699
+ import { join as join18 } from "node:path";
106631
106700
  function getPortFromConfig(baseUrl) {
106632
106701
  if (!baseUrl)
106633
106702
  return 3000;
@@ -106648,7 +106717,7 @@ async function killProcessOnPort(port) {
106648
106717
  });
106649
106718
  } catch {}
106650
106719
  }
106651
- async function isServerRunning(port) {
106720
+ async function isServerRunning2(port) {
106652
106721
  try {
106653
106722
  const response = await fetch(`http://localhost:${port}`, {
106654
106723
  signal: AbortSignal.timeout(1000)
@@ -106659,7 +106728,7 @@ async function isServerRunning(port) {
106659
106728
  }
106660
106729
  }
106661
106730
  async function ensureServer(cwd, port) {
106662
- const alreadyRunning = await isServerRunning(port);
106731
+ const alreadyRunning = await isServerRunning2(port);
106663
106732
  if (alreadyRunning) {
106664
106733
  console.log(`✅ Dev server already running at http://localhost:${port}
106665
106734
  `);
@@ -106706,8 +106775,8 @@ async function scanForOgTemplates(dir, base, routes) {
106706
106775
  try {
106707
106776
  const entries = await readdir9(dir, { withFileTypes: true });
106708
106777
  for (const entry of entries) {
106709
- const fullPath = join17(dir, entry.name);
106710
- const relativePath = join17(base, entry.name);
106778
+ const fullPath = join18(dir, entry.name);
106779
+ const relativePath = join18(base, entry.name);
106711
106780
  if (entry.isDirectory()) {
106712
106781
  if (entry.name === "content")
106713
106782
  continue;
@@ -106728,7 +106797,7 @@ async function addContentRoutes(routesPath, routes) {
106728
106797
  for (const entry of entries) {
106729
106798
  if (!entry.isDirectory())
106730
106799
  continue;
106731
- const contentDir = join17(routesPath, entry.name, "content");
106800
+ const contentDir = join18(routesPath, entry.name, "content");
106732
106801
  try {
106733
106802
  const contentFiles = await readdir9(contentDir);
106734
106803
  if (contentFiles.length === 0)
@@ -106745,7 +106814,7 @@ async function addContentRoutes(routesPath, routes) {
106745
106814
  async function findRoutesWithOG(cwd) {
106746
106815
  const routes = [];
106747
106816
  try {
106748
- const manifestPath = join17(cwd, ".reroute", "manifest.json");
106817
+ const manifestPath = join18(cwd, ".reroute", "manifest.json");
106749
106818
  const manifestFile = Bun.file(manifestPath);
106750
106819
  const manifest = await manifestFile.json();
106751
106820
  if (manifest.staticRoutes && Array.isArray(manifest.staticRoutes)) {
@@ -106756,7 +106825,7 @@ async function findRoutesWithOG(cwd) {
106756
106825
  }
106757
106826
  } catch {
106758
106827
  console.warn("⚠️ .reroute/manifest.json not found, scanning routes directory...");
106759
- const routesPath = join17(cwd, ROUTES_DIR2);
106828
+ const routesPath = join18(cwd, ROUTES_DIR2);
106760
106829
  await scanForOgTemplates(routesPath, "", routes);
106761
106830
  await addContentRoutes(routesPath, routes);
106762
106831
  }
@@ -107008,7 +107077,7 @@ async function getVersionString2() {
107008
107077
  }
107009
107078
  async function getVersion2() {
107010
107079
  if (true) {
107011
- return "1.0.0-alpha.3";
107080
+ return "1.0.0-alpha.5";
107012
107081
  }
107013
107082
  const possiblePaths = [
107014
107083
  path3.join(import.meta.dir, "../../../package.json"),
@@ -107025,10 +107094,10 @@ async function getVersion2() {
107025
107094
  }
107026
107095
  async function getCommit2() {
107027
107096
  if (true) {
107028
- return "7cf20f6";
107097
+ return "403cf32";
107029
107098
  }
107030
107099
  return "dev";
107031
107100
  }
107032
107101
  main();
107033
107102
 
107034
- //# debugId=944B98E3E3F64BCD64756E2164756E21
107103
+ //# debugId=CD4585F819A6C03E64756E2164756E21