@farm.js/core 0.1.0-beta.48 → 0.1.0-beta.49

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 (92) hide show
  1. package/dist/api/route-manager.cjs.map +1 -1
  2. package/dist/api/route-manager.mjs +2 -2
  3. package/dist/api.cjs.map +1 -1
  4. package/dist/api.mjs +3 -3
  5. package/dist/{chunk-TIESOJ7Z.mjs → chunk-BOSVED4K.mjs} +2 -2
  6. package/dist/{chunk-XR7M5VXU.mjs → chunk-DF6GAB63.mjs} +2 -2
  7. package/dist/{chunk-3P63LWDM.mjs → chunk-DWG3W2FN.mjs} +2 -2
  8. package/dist/{chunk-3UUEBVR3.mjs → chunk-ECGXDMBF.mjs} +3 -3
  9. package/dist/{chunk-MP2SDRRB.mjs → chunk-HB3XKQ5X.mjs} +2 -2
  10. package/dist/{chunk-EHUGMAWL.mjs → chunk-LIBL3V6K.mjs} +3 -3
  11. package/dist/{chunk-ECLWCE4H.mjs → chunk-MHE2AMUC.mjs} +2 -2
  12. package/dist/{chunk-GXASWWJU.mjs → chunk-RS5Z5M26.mjs} +5 -2
  13. package/dist/chunk-RS5Z5M26.mjs.map +1 -0
  14. package/dist/{chunk-HEZHCCMF.mjs → chunk-UQ3PDDAK.mjs} +65 -29
  15. package/dist/chunk-UQ3PDDAK.mjs.map +1 -0
  16. package/dist/{chunk-VZKOMD6C.mjs → chunk-VVVDVGAS.mjs} +8 -8
  17. package/dist/{chunk-NKIHYEWC.mjs → chunk-X3JR4G7L.mjs} +2 -2
  18. package/dist/{chunk-NKIHYEWC.mjs.map → chunk-X3JR4G7L.mjs.map} +1 -1
  19. package/dist/{chunk-4E6VRJ6P.mjs → chunk-XY3B4K5E.mjs} +6 -3
  20. package/dist/chunk-XY3B4K5E.mjs.map +1 -0
  21. package/dist/{chunk-U5SPS2HR.mjs → chunk-YB7QPRM4.mjs} +6 -1
  22. package/dist/chunk-YB7QPRM4.mjs.map +1 -0
  23. package/dist/client/lifecycle.mjs +2 -2
  24. package/dist/client-plugins.cjs +1 -1
  25. package/dist/client-plugins.cjs.map +1 -1
  26. package/dist/client-plugins.mjs +2 -2
  27. package/dist/client.cjs +1 -1
  28. package/dist/client.cjs.map +1 -1
  29. package/dist/client.mjs +2 -2
  30. package/dist/cron.cjs +9 -1
  31. package/dist/cron.cjs.map +1 -1
  32. package/dist/cron.mjs +2 -1
  33. package/dist/{devtools-BUFIHBX3.mjs → devtools-S7KR2MMF.mjs} +5 -4
  34. package/dist/{devtools-BUFIHBX3.mjs.map → devtools-S7KR2MMF.mjs.map} +1 -1
  35. package/dist/docs.mjs +5 -4
  36. package/dist/index.cjs +66 -23
  37. package/dist/index.cjs.map +1 -1
  38. package/dist/index.d.mts +1 -1
  39. package/dist/index.d.ts +1 -1
  40. package/dist/index.mjs +15 -13
  41. package/dist/index.mjs.map +1 -1
  42. package/dist/internal/build-runtime.cjs +230 -189
  43. package/dist/internal/build-runtime.cjs.map +1 -1
  44. package/dist/internal/build-runtime.d.mts +1 -1
  45. package/dist/internal/build-runtime.d.ts +1 -1
  46. package/dist/internal/build-runtime.mjs +10 -10
  47. package/dist/internal/client-runtime.cjs +1 -1
  48. package/dist/internal/client-runtime.cjs.map +1 -1
  49. package/dist/internal/client-runtime.mjs +2 -2
  50. package/dist/internal/config-runtime.cjs +10 -10
  51. package/dist/internal/config-runtime.cjs.map +1 -1
  52. package/dist/internal/config-runtime.d.mts +1 -1
  53. package/dist/internal/config-runtime.d.ts +1 -1
  54. package/dist/internal/config-runtime.mjs +4 -4
  55. package/dist/middleware.cjs.map +1 -1
  56. package/dist/middleware.mjs +3 -3
  57. package/dist/{nitro-G3BP7E7F.mjs → nitro-VXD26VW2.mjs} +4 -3
  58. package/dist/{nitro-G3BP7E7F.mjs.map → nitro-VXD26VW2.mjs.map} +1 -1
  59. package/dist/plugin.cjs +171 -149
  60. package/dist/plugin.cjs.map +1 -1
  61. package/dist/plugin.mjs +7 -7
  62. package/dist/server.cjs +203 -177
  63. package/dist/server.cjs.map +1 -1
  64. package/dist/server.d.mts +1 -1
  65. package/dist/server.d.ts +1 -1
  66. package/dist/server.mjs +10 -8
  67. package/dist/server.mjs.map +1 -1
  68. package/dist/testing.mjs +2 -2
  69. package/dist/{utils-9OPxcT1T.d.mts → utils--3v-RtD3.d.mts} +7 -1
  70. package/dist/{utils-CIIoLfn9.d.ts → utils-J3ipMElz.d.ts} +7 -1
  71. package/dist/version.cjs +1 -1
  72. package/dist/version.cjs.map +1 -1
  73. package/dist/version.mjs +1 -1
  74. package/dist/vite.cjs +171 -149
  75. package/dist/vite.cjs.map +1 -1
  76. package/dist/vite.mjs +7 -7
  77. package/dist/workflows.cjs +8 -2
  78. package/dist/workflows.cjs.map +1 -1
  79. package/dist/workflows.mjs +2 -1
  80. package/package.json +1 -1
  81. package/dist/chunk-4E6VRJ6P.mjs.map +0 -1
  82. package/dist/chunk-GXASWWJU.mjs.map +0 -1
  83. package/dist/chunk-HEZHCCMF.mjs.map +0 -1
  84. package/dist/chunk-U5SPS2HR.mjs.map +0 -1
  85. /package/dist/{chunk-TIESOJ7Z.mjs.map → chunk-BOSVED4K.mjs.map} +0 -0
  86. /package/dist/{chunk-XR7M5VXU.mjs.map → chunk-DF6GAB63.mjs.map} +0 -0
  87. /package/dist/{chunk-3P63LWDM.mjs.map → chunk-DWG3W2FN.mjs.map} +0 -0
  88. /package/dist/{chunk-3UUEBVR3.mjs.map → chunk-ECGXDMBF.mjs.map} +0 -0
  89. /package/dist/{chunk-MP2SDRRB.mjs.map → chunk-HB3XKQ5X.mjs.map} +0 -0
  90. /package/dist/{chunk-EHUGMAWL.mjs.map → chunk-LIBL3V6K.mjs.map} +0 -0
  91. /package/dist/{chunk-ECLWCE4H.mjs.map → chunk-MHE2AMUC.mjs.map} +0 -0
  92. /package/dist/{chunk-VZKOMD6C.mjs.map → chunk-VVVDVGAS.mjs.map} +0 -0
package/dist/vite.cjs CHANGED
@@ -617,6 +617,160 @@ var init_server_http = __esm({
617
617
  }
618
618
  });
619
619
 
620
+ // src/utils.ts
621
+ function parseRoutePath(filePath) {
622
+ const segments = [];
623
+ const normalizedPath = filePath.replace(/\\/g, "/");
624
+ const pathParts = normalizedPath.split("/").filter(Boolean);
625
+ const fileName = pathParts.pop() || "";
626
+ const fileType = getRouteType(fileName);
627
+ for (const part of pathParts) {
628
+ if (part.startsWith("(") && part.endsWith(")")) continue;
629
+ if (part.startsWith("[") && part.endsWith("]")) {
630
+ let segment = part.slice(1, -1);
631
+ const isDynamic = true;
632
+ let isOptional = false;
633
+ let isCatchAll = false;
634
+ if (segment.startsWith("[") && segment.endsWith("]")) {
635
+ isOptional = true;
636
+ segment = segment.slice(1, -1);
637
+ if (segment.startsWith("...")) {
638
+ segment = segment.slice(3);
639
+ isCatchAll = true;
640
+ }
641
+ } else if (segment.startsWith("...")) {
642
+ segment = segment.slice(3);
643
+ isCatchAll = true;
644
+ }
645
+ segments.push({ segment, isDynamic, isOptional, isCatchAll });
646
+ } else {
647
+ segments.push({
648
+ segment: part,
649
+ isDynamic: false,
650
+ isOptional: false,
651
+ isCatchAll: false
652
+ });
653
+ }
654
+ }
655
+ return {
656
+ segments,
657
+ filePath: normalizedPath,
658
+ type: fileType
659
+ };
660
+ }
661
+ function getRouteType(fileName) {
662
+ const baseName = fileName.replace(/\.(tsx?|jsx?|vue|svelte|mdx?|markdown)$/, "");
663
+ switch (baseName) {
664
+ case "page":
665
+ return "page";
666
+ case "layout":
667
+ return "layout";
668
+ case "loading":
669
+ return "loading";
670
+ case "error":
671
+ return "error";
672
+ case "not-found":
673
+ return "not-found";
674
+ default:
675
+ return "page";
676
+ }
677
+ }
678
+ function matchRoute(url, segments) {
679
+ const urlParts = url.split("/").filter(Boolean);
680
+ const params = {};
681
+ if (segments.length === 0) {
682
+ return { params, matches: urlParts.length === 0 };
683
+ }
684
+ let urlIndex = 0;
685
+ let segmentIndex = 0;
686
+ while (segmentIndex < segments.length && urlIndex <= urlParts.length) {
687
+ const segment = segments[segmentIndex];
688
+ if (!segment.isDynamic) {
689
+ if (urlParts[urlIndex] !== segment.segment) {
690
+ return { params: {}, matches: false };
691
+ }
692
+ urlIndex++;
693
+ segmentIndex++;
694
+ } else if (segment.isCatchAll) {
695
+ const remainingParts = urlParts.slice(urlIndex);
696
+ if (remainingParts.length === 0 && !segment.isOptional) {
697
+ return { params: {}, matches: false };
698
+ }
699
+ params[segment.segment] = remainingParts.join("/");
700
+ urlIndex = urlParts.length;
701
+ segmentIndex++;
702
+ } else {
703
+ if (urlIndex >= urlParts.length) {
704
+ return { params: {}, matches: false };
705
+ }
706
+ params[segment.segment] = urlParts[urlIndex];
707
+ urlIndex++;
708
+ segmentIndex++;
709
+ }
710
+ }
711
+ const matches = segmentIndex === segments.length && urlIndex === urlParts.length;
712
+ return { params, matches };
713
+ }
714
+ function resolveAppPath(root, ...paths) {
715
+ return import_path.default.resolve(root, ...paths);
716
+ }
717
+ function toRootRelativeUrlPath(absolutePath, projectRoot) {
718
+ if (absolutePath === projectRoot) return "";
719
+ if (absolutePath.startsWith(`${projectRoot}/`) || absolutePath.startsWith(`${projectRoot}\\`)) {
720
+ return absolutePath.slice(projectRoot.length).replace(/\\/g, "/");
721
+ }
722
+ return void 0;
723
+ }
724
+ function toPosixPath(filePath) {
725
+ return filePath.replace(/\\/g, "/");
726
+ }
727
+ function toViteModuleId(filePath, root) {
728
+ if (!import_path.default.isAbsolute(filePath)) return filePath;
729
+ const relativePath2 = import_path.default.relative(root, filePath);
730
+ if (relativePath2 && !relativePath2.startsWith("..") && !import_path.default.isAbsolute(relativePath2)) {
731
+ return `/${relativePath2.split(import_path.default.sep).join("/")}`;
732
+ }
733
+ const normalizedPath = filePath.replace(/\\/g, "/");
734
+ return normalizedPath.startsWith("/") ? `/@fs${normalizedPath}` : `/@fs/${normalizedPath}`;
735
+ }
736
+ async function fileExists(filePath) {
737
+ try {
738
+ const fs11 = await import("fs/promises");
739
+ await fs11.access(filePath);
740
+ return true;
741
+ } catch {
742
+ return false;
743
+ }
744
+ }
745
+ async function globFiles(pattern, cwd) {
746
+ const glob = await import("fast-glob");
747
+ return glob.default(pattern, { cwd, absolute: false });
748
+ }
749
+ var import_path, logger;
750
+ var init_utils = __esm({
751
+ "src/utils.ts"() {
752
+ "use strict";
753
+ import_path = __toESM(require("path"));
754
+ __name(parseRoutePath, "parseRoutePath");
755
+ __name(getRouteType, "getRouteType");
756
+ __name(matchRoute, "matchRoute");
757
+ __name(resolveAppPath, "resolveAppPath");
758
+ __name(toRootRelativeUrlPath, "toRootRelativeUrlPath");
759
+ __name(toPosixPath, "toPosixPath");
760
+ __name(toViteModuleId, "toViteModuleId");
761
+ __name(fileExists, "fileExists");
762
+ __name(globFiles, "globFiles");
763
+ logger = {
764
+ info: /* @__PURE__ */ __name((message) => console.log(`[info] ${message}`), "info"),
765
+ success: /* @__PURE__ */ __name((message) => console.log(`[success] ${message}`), "success"),
766
+ warn: /* @__PURE__ */ __name((message) => console.warn(`\u26A0\uFE0F ${message}`), "warn"),
767
+ error: /* @__PURE__ */ __name((message) => console.error(`\u274C ${message}`), "error"),
768
+ ready: /* @__PURE__ */ __name((message) => console.log(`${message}`), "ready"),
769
+ event: /* @__PURE__ */ __name((message) => console.log(` ${message}`), "event")
770
+ };
771
+ }
772
+ });
773
+
620
774
  // src/workflows.ts
621
775
  var workflows_exports = {};
622
776
  __export(workflows_exports, {
@@ -785,14 +939,14 @@ async function prepareFarmWorkflowsForNitro(config) {
785
939
  const tasks = {};
786
940
  const scheduledTasks = createScheduledTasks(workflows);
787
941
  for (const workflow of workflows) {
788
- const wrapperPath = path30.join(generatedDir, `${safeFileName(workflow.id)}.mjs`);
942
+ const wrapperPath = toPosixPath(path30.join(generatedDir, `${safeFileName(workflow.id)}.mjs`));
789
943
  await fs11.writeFile(wrapperPath, createNitroTaskWrapper(workflow), "utf8");
790
944
  tasks[workflow.id] = {
791
945
  handler: wrapperPath,
792
946
  description: workflow.description || `Farm workflow ${workflow.id}`
793
947
  };
794
948
  }
795
- const handlerPath = path30.join(generatedDir, "http-handler.mjs");
949
+ const handlerPath = toPosixPath(path30.join(generatedDir, "http-handler.mjs"));
796
950
  await fs11.writeFile(
797
951
  handlerPath,
798
952
  createNitroWorkflowHTTPHandler(
@@ -1151,6 +1305,7 @@ var init_workflows = __esm({
1151
1305
  "src/workflows.ts"() {
1152
1306
  "use strict";
1153
1307
  init_server_http();
1308
+ init_utils();
1154
1309
  DEFAULT_FARM_WORKFLOW_DIRS = ["src/jobs", "src/workflows", "src/cron"];
1155
1310
  DEFAULT_FARM_WORKFLOW_ROUTE = "/api/_farm/workflows";
1156
1311
  DEFAULT_FARM_WORKFLOW_SECRET_ENV = "CRON_SECRET";
@@ -1303,6 +1458,7 @@ var DEFAULT_FARM_CRON_SECRET_ENV, CRON_FIELD_RANGES;
1303
1458
  var init_cron = __esm({
1304
1459
  "src/cron.ts"() {
1305
1460
  "use strict";
1461
+ init_utils();
1306
1462
  DEFAULT_FARM_CRON_SECRET_ENV = "CRON_SECRET";
1307
1463
  CRON_FIELD_RANGES = [
1308
1464
  [0, 59, "minute"],
@@ -13090,152 +13246,7 @@ init_app_markdown_config();
13090
13246
  init_markdown();
13091
13247
  init_workflows();
13092
13248
  init_cron();
13093
-
13094
- // src/utils.ts
13095
- var import_path = __toESM(require("path"));
13096
- function parseRoutePath(filePath) {
13097
- const segments = [];
13098
- const normalizedPath = filePath.replace(/\\/g, "/");
13099
- const pathParts = normalizedPath.split("/").filter(Boolean);
13100
- const fileName = pathParts.pop() || "";
13101
- const fileType = getRouteType(fileName);
13102
- for (const part of pathParts) {
13103
- if (part.startsWith("(") && part.endsWith(")")) continue;
13104
- if (part.startsWith("[") && part.endsWith("]")) {
13105
- let segment = part.slice(1, -1);
13106
- const isDynamic = true;
13107
- let isOptional = false;
13108
- let isCatchAll = false;
13109
- if (segment.startsWith("[") && segment.endsWith("]")) {
13110
- isOptional = true;
13111
- segment = segment.slice(1, -1);
13112
- if (segment.startsWith("...")) {
13113
- segment = segment.slice(3);
13114
- isCatchAll = true;
13115
- }
13116
- } else if (segment.startsWith("...")) {
13117
- segment = segment.slice(3);
13118
- isCatchAll = true;
13119
- }
13120
- segments.push({ segment, isDynamic, isOptional, isCatchAll });
13121
- } else {
13122
- segments.push({
13123
- segment: part,
13124
- isDynamic: false,
13125
- isOptional: false,
13126
- isCatchAll: false
13127
- });
13128
- }
13129
- }
13130
- return {
13131
- segments,
13132
- filePath: normalizedPath,
13133
- type: fileType
13134
- };
13135
- }
13136
- __name(parseRoutePath, "parseRoutePath");
13137
- function getRouteType(fileName) {
13138
- const baseName = fileName.replace(/\.(tsx?|jsx?|vue|svelte|mdx?|markdown)$/, "");
13139
- switch (baseName) {
13140
- case "page":
13141
- return "page";
13142
- case "layout":
13143
- return "layout";
13144
- case "loading":
13145
- return "loading";
13146
- case "error":
13147
- return "error";
13148
- case "not-found":
13149
- return "not-found";
13150
- default:
13151
- return "page";
13152
- }
13153
- }
13154
- __name(getRouteType, "getRouteType");
13155
- function matchRoute(url, segments) {
13156
- const urlParts = url.split("/").filter(Boolean);
13157
- const params = {};
13158
- if (segments.length === 0) {
13159
- return { params, matches: urlParts.length === 0 };
13160
- }
13161
- let urlIndex = 0;
13162
- let segmentIndex = 0;
13163
- while (segmentIndex < segments.length && urlIndex <= urlParts.length) {
13164
- const segment = segments[segmentIndex];
13165
- if (!segment.isDynamic) {
13166
- if (urlParts[urlIndex] !== segment.segment) {
13167
- return { params: {}, matches: false };
13168
- }
13169
- urlIndex++;
13170
- segmentIndex++;
13171
- } else if (segment.isCatchAll) {
13172
- const remainingParts = urlParts.slice(urlIndex);
13173
- if (remainingParts.length === 0 && !segment.isOptional) {
13174
- return { params: {}, matches: false };
13175
- }
13176
- params[segment.segment] = remainingParts.join("/");
13177
- urlIndex = urlParts.length;
13178
- segmentIndex++;
13179
- } else {
13180
- if (urlIndex >= urlParts.length) {
13181
- return { params: {}, matches: false };
13182
- }
13183
- params[segment.segment] = urlParts[urlIndex];
13184
- urlIndex++;
13185
- segmentIndex++;
13186
- }
13187
- }
13188
- const matches = segmentIndex === segments.length && urlIndex === urlParts.length;
13189
- return { params, matches };
13190
- }
13191
- __name(matchRoute, "matchRoute");
13192
- function resolveAppPath(root, ...paths) {
13193
- return import_path.default.resolve(root, ...paths);
13194
- }
13195
- __name(resolveAppPath, "resolveAppPath");
13196
- function toRootRelativeUrlPath(absolutePath, projectRoot) {
13197
- if (absolutePath === projectRoot) return "";
13198
- if (absolutePath.startsWith(`${projectRoot}/`) || absolutePath.startsWith(`${projectRoot}\\`)) {
13199
- return absolutePath.slice(projectRoot.length).replace(/\\/g, "/");
13200
- }
13201
- return void 0;
13202
- }
13203
- __name(toRootRelativeUrlPath, "toRootRelativeUrlPath");
13204
- function toViteModuleId(filePath, root) {
13205
- if (!import_path.default.isAbsolute(filePath)) return filePath;
13206
- const relativePath2 = import_path.default.relative(root, filePath);
13207
- if (relativePath2 && !relativePath2.startsWith("..") && !import_path.default.isAbsolute(relativePath2)) {
13208
- return `/${relativePath2.split(import_path.default.sep).join("/")}`;
13209
- }
13210
- const normalizedPath = filePath.replace(/\\/g, "/");
13211
- return normalizedPath.startsWith("/") ? `/@fs${normalizedPath}` : `/@fs/${normalizedPath}`;
13212
- }
13213
- __name(toViteModuleId, "toViteModuleId");
13214
- async function fileExists(filePath) {
13215
- try {
13216
- const fs11 = await import("fs/promises");
13217
- await fs11.access(filePath);
13218
- return true;
13219
- } catch {
13220
- return false;
13221
- }
13222
- }
13223
- __name(fileExists, "fileExists");
13224
- async function globFiles(pattern, cwd) {
13225
- const glob = await import("fast-glob");
13226
- return glob.default(pattern, { cwd, absolute: false });
13227
- }
13228
- __name(globFiles, "globFiles");
13229
- var logger = {
13230
- info: /* @__PURE__ */ __name((message) => console.log(`[info] ${message}`), "info"),
13231
- success: /* @__PURE__ */ __name((message) => console.log(`[success] ${message}`), "success"),
13232
- warn: /* @__PURE__ */ __name((message) => console.warn(`\u26A0\uFE0F ${message}`), "warn"),
13233
- error: /* @__PURE__ */ __name((message) => console.error(`\u274C ${message}`), "error"),
13234
- ready: /* @__PURE__ */ __name((message) => console.log(`${message}`), "ready"),
13235
- event: /* @__PURE__ */ __name((message) => console.log(` ${message}`), "event")
13236
- };
13237
-
13238
- // src/app.ts
13249
+ init_utils();
13239
13250
  init_storage();
13240
13251
  init_observability();
13241
13252
  init_route_rules();
@@ -13244,6 +13255,9 @@ init_server_http();
13244
13255
  init_image_config();
13245
13256
  init_layers();
13246
13257
 
13258
+ // src/routing/route-manager.ts
13259
+ init_utils();
13260
+
13247
13261
  // src/ssg.ts
13248
13262
  var import_promises2 = require("fs/promises");
13249
13263
  var OPTIONAL_CATCH_ALL_SEGMENT = /^\[\[\.\.\.([^\]]+)\]\]$/;
@@ -14995,6 +15009,7 @@ function normalizePathname(pathname) {
14995
15009
  __name(normalizePathname, "normalizePathname");
14996
15010
 
14997
15011
  // src/routing/route-slots.ts
15012
+ init_utils();
14998
15013
  var SLOT_SEGMENT = /^@([A-Za-z][A-Za-z0-9_-]*)$/;
14999
15014
  function parseRouteSlotFile(filePath) {
15000
15015
  const normalized = filePath.replace(/\\/g, "/");
@@ -16047,6 +16062,7 @@ __name(safeGlobFiles, "safeGlobFiles");
16047
16062
  // src/server/renderer.ts
16048
16063
  var fs3 = __toESM(require("fs"));
16049
16064
  var path11 = __toESM(require("path"));
16065
+ init_utils();
16050
16066
 
16051
16067
  // src/server/full-document.ts
16052
16068
  function stripContentsWrappers(markup) {
@@ -19448,7 +19464,7 @@ _setFarmThemeServerSnapshotResolver(() => {
19448
19464
  });
19449
19465
 
19450
19466
  // package.json
19451
- var version = "0.1.0-beta.48";
19467
+ var version = "0.1.0-beta.49";
19452
19468
 
19453
19469
  // src/version.ts
19454
19470
  var FARM_VERSION = version;
@@ -21678,6 +21694,9 @@ function normalizeFarmAppAPIConfig(config) {
21678
21694
  }
21679
21695
  __name(normalizeFarmAppAPIConfig, "normalizeFarmAppAPIConfig");
21680
21696
 
21697
+ // src/vite.ts
21698
+ init_utils();
21699
+
21681
21700
  // src/default-styles.ts
21682
21701
  var defaultGlobalCSS = `@import "tailwindcss";
21683
21702
  `;
@@ -21955,6 +21974,7 @@ __name(isArrayIndex, "isArrayIndex");
21955
21974
  // src/api/route-manager.ts
21956
21975
  var fs5 = __toESM(require("fs"));
21957
21976
  var path15 = __toESM(require("path"));
21977
+ init_utils();
21958
21978
  init_route_runtime();
21959
21979
 
21960
21980
  // src/api/runtime.ts
@@ -22862,6 +22882,7 @@ function normalizeMiddlewareModule(middlewareModule, routePath) {
22862
22882
  __name(normalizeMiddlewareModule, "normalizeMiddlewareModule");
22863
22883
 
22864
22884
  // src/middleware/manager.ts
22885
+ init_utils();
22865
22886
  init_response();
22866
22887
  init_observability();
22867
22888
 
@@ -23308,6 +23329,7 @@ init_type_generator();
23308
23329
  // src/routing/generate-route-types.ts
23309
23330
  var path17 = __toESM(require("path"));
23310
23331
  var fs7 = __toESM(require("fs"));
23332
+ init_utils();
23311
23333
  init_write_file_if_changed();
23312
23334
  init_renderer();
23313
23335
  function routeSegmentsToTsTypeLiteral(segments) {