one 1.21.1 → 1.21.3

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 (158) hide show
  1. package/dist/cjs/cli/build.cjs +9 -8
  2. package/dist/cjs/cli/build.native.js +17 -16
  3. package/dist/cjs/cli/build.native.js.map +1 -1
  4. package/dist/cjs/cli/buildPage.cjs +1 -1
  5. package/dist/cjs/cli/buildPage.native.js +1 -1
  6. package/dist/cjs/cli/buildPage.native.js.map +1 -1
  7. package/dist/cjs/daemon/ipc.cjs +21 -3
  8. package/dist/cjs/daemon/ipc.native.js +21 -3
  9. package/dist/cjs/daemon/ipc.native.js.map +1 -1
  10. package/dist/cjs/router/getRoutes.cjs +1 -2
  11. package/dist/cjs/router/getRoutes.native.js +1 -2
  12. package/dist/cjs/router/getRoutes.native.js.map +1 -1
  13. package/dist/cjs/router/hmrImport.native.js +13 -2
  14. package/dist/cjs/router/hmrImport.native.js.map +1 -1
  15. package/dist/cjs/router/hmrImport.native.test.cjs +52 -0
  16. package/dist/cjs/router/hmrImport.native.test.native.js +61 -0
  17. package/dist/cjs/router/hmrImport.native.test.native.js.map +1 -0
  18. package/dist/cjs/router/matchers.cjs +7 -0
  19. package/dist/cjs/router/matchers.native.js +8 -0
  20. package/dist/cjs/router/matchers.native.js.map +1 -1
  21. package/dist/cjs/router/routeHmr.cjs +32 -0
  22. package/dist/cjs/router/routeHmr.native.js +57 -0
  23. package/dist/cjs/router/routeHmr.native.js.map +1 -0
  24. package/dist/cjs/router/routeHmr.native.test.cjs +83 -0
  25. package/dist/cjs/router/routeHmr.native.test.native.js +95 -0
  26. package/dist/cjs/router/routeHmr.native.test.native.js.map +1 -0
  27. package/dist/cjs/router/useScreens.cjs +2 -0
  28. package/dist/cjs/router/useScreens.native.js +2 -0
  29. package/dist/cjs/router/useScreens.native.js.map +1 -1
  30. package/dist/cjs/router/useViteRoutes.cjs +7 -17
  31. package/dist/cjs/router/useViteRoutes.native.js +8 -18
  32. package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
  33. package/dist/cjs/router/useViteRoutes.test.cjs +42 -0
  34. package/dist/cjs/router/useViteRoutes.test.native.js +55 -0
  35. package/dist/cjs/router/useViteRoutes.test.native.js.map +1 -0
  36. package/dist/cjs/utils/cleanUrl.cjs +12 -2
  37. package/dist/cjs/utils/cleanUrl.native.js +15 -3
  38. package/dist/cjs/utils/cleanUrl.native.js.map +1 -1
  39. package/dist/cjs/utils/cleanUrl.test.cjs +37 -0
  40. package/dist/cjs/utils/cleanUrl.test.native.js +37 -0
  41. package/dist/cjs/utils/cleanUrl.test.native.js.map +1 -1
  42. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +37 -2
  43. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +70 -8
  44. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  45. package/dist/cjs/vite/plugins/virtualEntryPlugin.test.cjs +58 -0
  46. package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js +62 -0
  47. package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
  48. package/dist/esm/cli/build.mjs +9 -8
  49. package/dist/esm/cli/build.mjs.map +1 -1
  50. package/dist/esm/cli/build.native.js +17 -16
  51. package/dist/esm/cli/build.native.js.map +1 -1
  52. package/dist/esm/cli/buildPage.mjs +2 -2
  53. package/dist/esm/cli/buildPage.mjs.map +1 -1
  54. package/dist/esm/cli/buildPage.native.js +2 -2
  55. package/dist/esm/cli/buildPage.native.js.map +1 -1
  56. package/dist/esm/daemon/ipc.mjs +21 -3
  57. package/dist/esm/daemon/ipc.mjs.map +1 -1
  58. package/dist/esm/daemon/ipc.native.js +21 -3
  59. package/dist/esm/daemon/ipc.native.js.map +1 -1
  60. package/dist/esm/getURL.native.test.mjs +1 -1
  61. package/dist/esm/router/getRoutes.mjs +2 -3
  62. package/dist/esm/router/getRoutes.mjs.map +1 -1
  63. package/dist/esm/router/getRoutes.native.js +2 -3
  64. package/dist/esm/router/getRoutes.native.js.map +1 -1
  65. package/dist/esm/router/hmrImport.native.js +13 -2
  66. package/dist/esm/router/hmrImport.native.js.map +1 -1
  67. package/dist/esm/router/hmrImport.native.test.js +51 -0
  68. package/dist/esm/router/hmrImport.native.test.js.map +6 -0
  69. package/dist/esm/router/hmrImport.native.test.mjs +53 -0
  70. package/dist/esm/router/hmrImport.native.test.mjs.map +1 -0
  71. package/dist/esm/router/hmrImport.native.test.native.js +59 -0
  72. package/dist/esm/router/hmrImport.native.test.native.js.map +1 -0
  73. package/dist/esm/router/matchers.mjs +7 -1
  74. package/dist/esm/router/matchers.mjs.map +1 -1
  75. package/dist/esm/router/matchers.native.js +8 -1
  76. package/dist/esm/router/matchers.native.js.map +1 -1
  77. package/dist/esm/router/routeHmr.mjs +6 -0
  78. package/dist/esm/router/routeHmr.mjs.map +1 -0
  79. package/dist/esm/router/routeHmr.native.js +28 -0
  80. package/dist/esm/router/routeHmr.native.js.map +1 -0
  81. package/dist/esm/router/routeHmr.native.test.js +58 -0
  82. package/dist/esm/router/routeHmr.native.test.js.map +6 -0
  83. package/dist/esm/router/routeHmr.native.test.mjs +60 -0
  84. package/dist/esm/router/routeHmr.native.test.mjs.map +1 -0
  85. package/dist/esm/router/routeHmr.native.test.native.js +69 -0
  86. package/dist/esm/router/routeHmr.native.test.native.js.map +1 -0
  87. package/dist/esm/router/useScreens.mjs +1 -0
  88. package/dist/esm/router/useScreens.mjs.map +1 -1
  89. package/dist/esm/router/useScreens.native.js +2 -0
  90. package/dist/esm/router/useScreens.native.js.map +1 -1
  91. package/dist/esm/router/useViteRoutes.mjs +7 -17
  92. package/dist/esm/router/useViteRoutes.mjs.map +1 -1
  93. package/dist/esm/router/useViteRoutes.native.js +8 -18
  94. package/dist/esm/router/useViteRoutes.native.js.map +1 -1
  95. package/dist/esm/router/useViteRoutes.test.mjs +43 -0
  96. package/dist/esm/router/useViteRoutes.test.mjs.map +1 -0
  97. package/dist/esm/router/useViteRoutes.test.native.js +53 -0
  98. package/dist/esm/router/useViteRoutes.test.native.js.map +1 -0
  99. package/dist/esm/utils/cleanUrl.mjs +11 -3
  100. package/dist/esm/utils/cleanUrl.mjs.map +1 -1
  101. package/dist/esm/utils/cleanUrl.native.js +14 -4
  102. package/dist/esm/utils/cleanUrl.native.js.map +1 -1
  103. package/dist/esm/utils/cleanUrl.test.mjs +38 -1
  104. package/dist/esm/utils/cleanUrl.test.mjs.map +1 -1
  105. package/dist/esm/utils/cleanUrl.test.native.js +38 -1
  106. package/dist/esm/utils/cleanUrl.test.native.js.map +1 -1
  107. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +26 -2
  108. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  109. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +59 -8
  110. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  111. package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs +58 -0
  112. package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs.map +1 -1
  113. package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js +62 -0
  114. package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
  115. package/package.json +9 -9
  116. package/src/cli/build.ts +18 -11
  117. package/src/cli/buildPage.ts +12 -2
  118. package/src/daemon/ipc.ts +46 -4
  119. package/src/router/getRoutes.ts +2 -3
  120. package/src/router/hmrImport.native.test.ts +55 -0
  121. package/src/router/hmrImport.native.ts +25 -5
  122. package/src/router/matchers.ts +10 -0
  123. package/src/router/routeHmr.native.test.ts +71 -0
  124. package/src/router/routeHmr.native.ts +37 -0
  125. package/src/router/routeHmr.ts +8 -0
  126. package/src/router/useScreens.tsx +12 -0
  127. package/src/router/useViteRoutes.test.ts +49 -0
  128. package/src/router/useViteRoutes.tsx +12 -21
  129. package/src/utils/cleanUrl.test.ts +63 -1
  130. package/src/utils/cleanUrl.ts +25 -3
  131. package/src/vite/plugins/virtualEntryPlugin.test.ts +70 -0
  132. package/src/vite/plugins/virtualEntryPlugin.ts +48 -2
  133. package/src/vite/types.ts +9 -0
  134. package/types/cli/build.d.ts.map +1 -1
  135. package/types/cli/buildPage.d.ts.map +1 -1
  136. package/types/daemon/ipc.d.ts.map +1 -1
  137. package/types/router/getRoutes.d.ts.map +1 -1
  138. package/types/router/hmrImport.native.d.ts +8 -3
  139. package/types/router/hmrImport.native.d.ts.map +1 -1
  140. package/types/router/hmrImport.native.test.d.ts +2 -0
  141. package/types/router/hmrImport.native.test.d.ts.map +1 -0
  142. package/types/router/matchers.d.ts +2 -0
  143. package/types/router/matchers.d.ts.map +1 -1
  144. package/types/router/routeHmr.d.ts +3 -0
  145. package/types/router/routeHmr.d.ts.map +1 -0
  146. package/types/router/routeHmr.native.d.ts +6 -0
  147. package/types/router/routeHmr.native.d.ts.map +1 -0
  148. package/types/router/routeHmr.native.test.d.ts +2 -0
  149. package/types/router/routeHmr.native.test.d.ts.map +1 -0
  150. package/types/router/useScreens.d.ts.map +1 -1
  151. package/types/router/useViteRoutes.d.ts.map +1 -1
  152. package/types/router/useViteRoutes.test.d.ts +2 -0
  153. package/types/router/useViteRoutes.test.d.ts.map +1 -0
  154. package/types/utils/cleanUrl.d.ts +2 -0
  155. package/types/utils/cleanUrl.d.ts.map +1 -1
  156. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
  157. package/types/vite/types.d.ts +8 -0
  158. package/types/vite/types.d.ts.map +1 -1
@@ -65,6 +65,43 @@ function roundtrip(path) {
65
65
  (0, import_vitest.expect)(result).toContain("_refetch_12345_");
66
66
  });
67
67
  });
68
+ (0, import_vitest.describe)("NTFS-reserved characters in route-derived names", function () {
69
+ (0, import_vitest.it)("roundtrips a root dynamic route pattern", function () {
70
+ (0, import_vitest.expect)(roundtrip("/:param")).toBe("/:param");
71
+ });
72
+ (0, import_vitest.it)("roundtrips a nested dynamic route pattern", function () {
73
+ (0, import_vitest.expect)(roundtrip("/dashboard/:appId")).toBe("/dashboard/:appId");
74
+ });
75
+ (0, import_vitest.it)("roundtrips a catch-all pattern", function () {
76
+ (0, import_vitest.expect)(roundtrip("/*")).toBe("/*");
77
+ });
78
+ (0, import_vitest.it)("roundtrips hostile concrete param values (chars that survive URL parsing raw)", function () {
79
+ (0, import_vitest.expect)(roundtrip("/blog/a:b*c")).toBe("/blog/a:b*c");
80
+ });
81
+ (0, import_vitest.it)("emits filesystem-legal names for the full reserved set via preload paths", function () {
82
+ (0, import_vitest.expect)((0, import_cleanUrl.getPreloadPath)('/blog/a:b*c"d<e>f|g?h')).not.toMatch(/[<>:"|?*]/);
83
+ });
84
+ (0, import_vitest.it)("roundtrips literal equals signs (self-escape)", function () {
85
+ (0, import_vitest.expect)(roundtrip("/foo=bar")).toBe("/foo=bar");
86
+ });
87
+ (0, import_vitest.it)("roundtrips equals followed by hex-looking characters", function () {
88
+ (0, import_vitest.expect)(roundtrip("/x=3ay")).toBe("/x=3ay");
89
+ });
90
+ (0, import_vitest.it)("emits no NTFS-reserved characters in loader filenames", function () {
91
+ (0, import_vitest.expect)((0, import_cleanUrl.getLoaderPath)("/dashboard/:appId", false)).not.toMatch(/[<>:"|?*]/);
92
+ });
93
+ (0, import_vitest.it)("emits no NTFS-reserved characters in preload filenames", function () {
94
+ (0, import_vitest.expect)((0, import_cleanUrl.getPreloadPath)("/:param")).not.toMatch(/[<>:"|?*]/);
95
+ (0, import_vitest.expect)((0, import_cleanUrl.getPreloadPath)("/*")).not.toMatch(/[<>:"|?*]/);
96
+ });
97
+ (0, import_vitest.it)("encodeReservedFilenameChars is identity for clean paths", function () {
98
+ (0, import_vitest.expect)((0, import_cleanUrl.encodeReservedFilenameChars)("/blog/my-slug.html")).toBe("/blog/my-slug.html");
99
+ });
100
+ (0, import_vitest.it)("encodes the html artifact path for non-prerendered dynamic routes", function () {
101
+ (0, import_vitest.expect)((0, import_cleanUrl.encodeReservedFilenameChars)("/dashboard/:appId.html")).toBe("/dashboard/=3aappId.html");
102
+ (0, import_vitest.expect)((0, import_cleanUrl.encodeReservedFilenameChars)("/*.html")).toBe("/=2a.html");
103
+ });
104
+ });
68
105
  (0, import_vitest.describe)("getPathFromLoaderPath", function () {
69
106
  (0, import_vitest.it)("strips /_one/assets prefix", function () {
70
107
  (0, import_vitest.expect)((0, import_cleanUrl.getPathFromLoaderPath)("/_one/assets/docs_intro_999_vxrn_loader.js")).toBe("/docs/intro");
@@ -1 +1 @@
1
- {"version":3,"names":["import_vitest","require","import_cleanUrl","roundtrip","path","loaderPath","getLoaderPath","getPathFromLoaderPath","describe","it","expect","toBe","result","toMatch","originalEnv","process","env","NODE_ENV","toContain"],"sources":["../../../src/utils/cleanUrl.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["import_vitest","require","import_cleanUrl","roundtrip","path","loaderPath","getLoaderPath","getPathFromLoaderPath","describe","it","expect","toBe","result","toMatch","originalEnv","process","env","NODE_ENV","toContain","getPreloadPath","not","encodeReservedFilenameChars"],"sources":["../../../src/utils/cleanUrl.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,8 @@
1
+ var __create = Object.create;
1
2
  var __defProp = Object.defineProperty;
2
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
4
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
7
  var __export = (target, all) => {
6
8
  for (var name in all) __defProp(target, name, {
@@ -17,6 +19,15 @@ var __copyProps = (to, from, except, desc) => {
17
19
  }
18
20
  return to;
19
21
  };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
20
31
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
32
  value: true
22
33
  }), mod);
@@ -28,8 +39,10 @@ module.exports = __toCommonJS(virtualEntryPlugin_exports);
28
39
  var import_node_path = require("node:path");
29
40
  var import_node_url = require("node:url");
30
41
  var import_compiler = require("@vxrn/compiler");
42
+ var import_fast_glob = __toESM(require("fast-glob"), 1);
31
43
  var import_vxrn = require("vxrn");
32
44
  var import_glob_patterns = require("../../router/glob-patterns.cjs");
45
+ var import_matchers = require("../../router/matchers.cjs");
33
46
  var import_virtualEntryConstants = require("./virtualEntryConstants.cjs");
34
47
  function normalizeSetupFile(setupFile) {
35
48
  if (!setupFile) return {};
@@ -115,6 +128,25 @@ function createVirtualEntry(options) {
115
128
  if (id === import_virtualEntryConstants.resolvedVirtualEntryId) {
116
129
  const isNative = (0, import_vxrn.isNativeEnvironment)(this.environment);
117
130
  const isSSR = this.environment.name === "ssr";
131
+ const serverSpaRouteFiles = isSSR ? import_fast_glob.default.sync("**/*.{ts,tsx}", {
132
+ cwd: (0, import_node_path.resolve)(viteRoot, options.root),
133
+ ignore: [...import_glob_patterns.ROUTE_WEB_EXCLUSION_GLOB_PATTERNS, ...(options.router?.ignoredRouteFiles || [])]
134
+ }).map(file => file.replaceAll("\\", "/")).filter(file => {
135
+ const parts = file.split("/");
136
+ const filename = parts.at(-1) || "";
137
+ if (filename.startsWith("_layout") || filename.startsWith("_middleware")) {
138
+ return false;
139
+ }
140
+ const fileMode = (0, import_matchers.matchFileRenderMode)(filename);
141
+ if (fileMode) return fileMode === "spa";
142
+ let parentMode;
143
+ for (const directory of parts.slice(0, -1)) {
144
+ parentMode = (0, import_matchers.matchDirectoryRenderMode)(directory)?.renderMode ?? parentMode;
145
+ }
146
+ return parentMode === "spa";
147
+ }) : [];
148
+ const serverSpaRouteStubs = serverSpaRouteFiles.map(file => `${JSON.stringify(`/${options.root}/${file}`)}: () => Promise.resolve({})`).join(",\n ");
149
+ const webRouteGlobs = [...routeGlobs, ...import_glob_patterns.ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map(pattern => `!${pattern}`), ...serverSpaRouteFiles.map(file => `!/${options.root}/${file}`)];
118
150
  const useStaticImport = isNative || isSSR && isDevMode;
119
151
  const setupResult = getSetupFileImport(this.environment.name, setupFiles, useStaticImport, viteRoot);
120
152
  const nativewindImport = import_compiler.configuration.enableNativewind ? `import 'react-native-css-interop/dist/runtime/components'` : "";
@@ -138,10 +170,13 @@ if (typeof window !== 'undefined') {
138
170
  window.__oneRegisterPreloadedRoute = registerPreloadedRoute
139
171
  }
140
172
 
141
- // globbing ${JSON.stringify(routeGlobs)}
173
+ // globbing ${JSON.stringify(webRouteGlobs)}
142
174
  export default createApp({
143
175
  ${setupPromiseArg}
144
- routes: import.meta.glob(${JSON.stringify([...routeGlobs, ...import_glob_patterns.ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map(p => `!${p}`)])}, { exhaustive: true }),
176
+ routes: {
177
+ ...import.meta.glob(${JSON.stringify(webRouteGlobs)}, { exhaustive: true }),
178
+ ${serverSpaRouteStubs}
179
+ },
145
180
  routerRoot: ${JSON.stringify(options.root)},
146
181
  flags: ${JSON.stringify(options.flags)},
147
182
  ${linkingArg}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ var __create = Object.create;
3
4
  var __defProp = Object.defineProperty;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
6
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
9
  var __export = (target, all) => {
8
10
  for (var name in all) __defProp(target, name, {
@@ -19,6 +21,15 @@ var __copyProps = (to, from, except, desc) => {
19
21
  }
20
22
  return to;
21
23
  };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
+ value: mod,
31
+ enumerable: true
32
+ }) : target, mod));
22
33
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
34
  value: true
24
35
  }), mod);
@@ -30,8 +41,10 @@ module.exports = __toCommonJS(virtualEntryPlugin_exports);
30
41
  var import_path = require("path");
31
42
  var import_url = require("url");
32
43
  var import_compiler = require("@vxrn/compiler");
44
+ var import_fast_glob = __toESM(require("fast-glob"), 1);
33
45
  var import_vxrn = require("vxrn");
34
46
  var import_glob_patterns = require("../../router/glob-patterns.native.js");
47
+ var import_matchers = require("../../router/matchers.native.js");
35
48
  var import_virtualEntryConstants = require("./virtualEntryConstants.native.js");
36
49
  function normalizeSetupFile(setupFile) {
37
50
  if (!setupFile) return {};
@@ -118,14 +131,62 @@ function createVirtualEntry(options) {
118
131
  },
119
132
  load(id) {
120
133
  if (id === import_virtualEntryConstants.resolvedVirtualEntryId) {
121
- var _options_router2;
134
+ var _options_router2, _options_router1;
122
135
  var isNative = (0, import_vxrn.isNativeEnvironment)(this.environment);
123
136
  var isSSR = this.environment.name === "ssr";
137
+ var serverSpaRouteFiles = isSSR ? import_fast_glob.default.sync("**/*.{ts,tsx}", {
138
+ cwd: (0, import_path.resolve)(viteRoot, options.root),
139
+ ignore: [...import_glob_patterns.ROUTE_WEB_EXCLUSION_GLOB_PATTERNS, ...(((_options_router2 = options.router) === null || _options_router2 === void 0 ? void 0 : _options_router2.ignoredRouteFiles) || [])]
140
+ }).map(function (file) {
141
+ return file.replaceAll("\\", "/");
142
+ }).filter(function (file) {
143
+ var parts = file.split("/");
144
+ var filename = parts.at(-1) || "";
145
+ if (filename.startsWith("_layout") || filename.startsWith("_middleware")) {
146
+ return false;
147
+ }
148
+ var fileMode = (0, import_matchers.matchFileRenderMode)(filename);
149
+ if (fileMode) return fileMode === "spa";
150
+ var parentMode;
151
+ var _iteratorNormalCompletion = true,
152
+ _didIteratorError = false,
153
+ _iteratorError = void 0;
154
+ try {
155
+ for (var _iterator = parts.slice(0, -1)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
156
+ var directory = _step.value;
157
+ var _ref;
158
+ var _matchDirectoryRenderMode;
159
+ parentMode = (_ref = (_matchDirectoryRenderMode = (0, import_matchers.matchDirectoryRenderMode)(directory)) === null || _matchDirectoryRenderMode === void 0 ? void 0 : _matchDirectoryRenderMode.renderMode) !== null && _ref !== void 0 ? _ref : parentMode;
160
+ }
161
+ } catch (err) {
162
+ _didIteratorError = true;
163
+ _iteratorError = err;
164
+ } finally {
165
+ try {
166
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
167
+ _iterator.return();
168
+ }
169
+ } finally {
170
+ if (_didIteratorError) {
171
+ throw _iteratorError;
172
+ }
173
+ }
174
+ }
175
+ return parentMode === "spa";
176
+ }) : [];
177
+ var serverSpaRouteStubs = serverSpaRouteFiles.map(function (file) {
178
+ return `${JSON.stringify(`/${options.root}/${file}`)}: () => Promise.resolve({})`;
179
+ }).join(",\n ");
180
+ var webRouteGlobs = [...routeGlobs, ...import_glob_patterns.ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map(function (pattern) {
181
+ return `!${pattern}`;
182
+ }), ...serverSpaRouteFiles.map(function (file) {
183
+ return `!/${options.root}/${file}`;
184
+ })];
124
185
  var useStaticImport = isNative || isSSR && isDevMode;
125
186
  var setupResult = getSetupFileImport(this.environment.name, setupFiles, useStaticImport, viteRoot);
126
187
  var nativewindImport = import_compiler.configuration.enableNativewind ? `import 'react-native-css-interop/dist/runtime/components'` : "";
127
188
  var setupPromiseArg = setupResult.promiseVarName ? `getSetupPromise: ${setupResult.promiseVarName},` : "";
128
- var linkingArg = ((_options_router2 = options.router) === null || _options_router2 === void 0 ? void 0 : _options_router2.linking) ? `linking: ${JSON.stringify(options.router.linking)},` : "";
189
+ var linkingArg = ((_options_router1 = options.router) === null || _options_router1 === void 0 ? void 0 : _options_router1.linking) ? `linking: ${JSON.stringify(options.router.linking)},` : "";
129
190
  return `
130
191
  ${setupResult.promiseDeclaration}
131
192
  ${nativewindImport}
@@ -144,12 +205,13 @@ if (typeof window !== 'undefined') {
144
205
  window.__oneRegisterPreloadedRoute = registerPreloadedRoute
145
206
  }
146
207
 
147
- // globbing ${JSON.stringify(routeGlobs)}
208
+ // globbing ${JSON.stringify(webRouteGlobs)}
148
209
  export default createApp({
149
210
  ${setupPromiseArg}
150
- routes: import.meta.glob(${JSON.stringify([...routeGlobs, ...import_glob_patterns.ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map(function (p) {
151
- return `!${p}`;
152
- })])}, { exhaustive: true }),
211
+ routes: {
212
+ ...import.meta.glob(${JSON.stringify(webRouteGlobs)}, { exhaustive: true }),
213
+ ${serverSpaRouteStubs}
214
+ },
153
215
  routerRoot: ${JSON.stringify(options.root)},
154
216
  flags: ${JSON.stringify(options.flags)},
155
217
  ${linkingArg}
@@ -157,10 +219,10 @@ export default createApp({
157
219
  `;
158
220
  }
159
221
  if (id === import_virtualEntryConstants.resolvedVirtualEntryIdNative) {
160
- var _options_router1;
222
+ var _options_router22;
161
223
  var isNative1 = (0, import_vxrn.isNativeEnvironment)(this.environment);
162
224
  var setupResult1 = getSetupFileImport(this.environment.name, setupFiles, isNative1, viteRoot);
163
- var linkingArg1 = ((_options_router1 = options.router) === null || _options_router1 === void 0 ? void 0 : _options_router1.linking) ? `linking: ${JSON.stringify(options.router.linking)},` : "";
225
+ var linkingArg1 = ((_options_router22 = options.router) === null || _options_router22 === void 0 ? void 0 : _options_router22.linking) ? `linking: ${JSON.stringify(options.router.linking)},` : "";
164
226
  return `
165
227
  import { createApp } from 'one'
166
228
  ${setupResult1.importStatement}
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","virtualEntryPlugin_exports","__export","createVirtualEntry","module","exports","import_path","require","import_url","import_compiler","import_vxrn","import_glob_patterns","import_virtualEntryConstants","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","root","envMap","ssr","key","importStatement","promiseDeclaration","promiseVarName","resolvedSetupFile","pathToFileURL","resolve","href","JSON","stringify","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","ROUTE_GLOB_PATTERN","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","API_ROUTE_GLOB_PATTERN","viteRoot","isDevMode","name","enforce","configResolved","config","command","resolveId","id","virtualEntryId","resolvedVirtualEntryId","virtualEntryIdNative","resolvedVirtualEntryIdNative","load","_options_router2","isNative","isNativeEnvironment","environment","isSSR","setupResult","nativewindImport","configuration","enableNativewind","setupPromiseArg","linkingArg","linking","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","p","flags","_options_router1","isNative1","setupResult1","linkingArg1","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","virtualEntryPlugin_exports","__export","createVirtualEntry","module","exports","import_path","require","import_url","import_compiler","import_fast_glob","__toESM","import_vxrn","import_glob_patterns","import_matchers","import_virtualEntryConstants","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","root","envMap","ssr","key","importStatement","promiseDeclaration","promiseVarName","resolvedSetupFile","pathToFileURL","resolve","href","JSON","stringify","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","ROUTE_GLOB_PATTERN","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","API_ROUTE_GLOB_PATTERN","viteRoot","isDevMode","name","enforce","configResolved","config","command","resolveId","id","virtualEntryId","resolvedVirtualEntryId","virtualEntryIdNative","resolvedVirtualEntryIdNative","load","_options_router2","_options_router1","isNative","isNativeEnvironment","environment","isSSR","serverSpaRouteFiles","default","sync","cwd","ignore","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","file","replaceAll","filter","parts","split","filename","at","startsWith","fileMode","matchFileRenderMode","parentMode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","slice","Symbol","iterator","_step","next","done","directory","_ref","_matchDirectoryRenderMode","matchDirectoryRenderMode","renderMode","err","return","serverSpaRouteStubs","join","webRouteGlobs","setupResult","nativewindImport","configuration","enableNativewind","setupPromiseArg","linkingArg","linking"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,9 @@
1
+ var import_node_buffer = require("node:buffer");
2
+ var import_node_fs = require("node:fs");
3
+ var import_node_os = require("node:os");
4
+ var import_node_path = require("node:path");
1
5
  var import_vitest = require("vitest");
6
+ var import_vite = require("vite");
2
7
  var import_virtualEntryPlugin = require("./virtualEntryPlugin.cjs");
3
8
  import_vitest.vi.mock("vxrn", () => ({
4
9
  isNativeEnvironment: env => {
@@ -23,6 +28,59 @@ function loadEntry(plugin, envName, command = "build") {
23
28
  return plugin.load.call(ctx, "\0virtual:one-entry");
24
29
  }
25
30
  (0, import_vitest.describe)("virtualEntryPlugin", () => {
31
+ (0, import_vitest.it)("keeps spa route matching without bundling the client module on the server", async () => {
32
+ const root = (0, import_node_fs.mkdtempSync)((0, import_node_path.join)((0, import_node_os.tmpdir)(), "one-spa-server-"));
33
+ const appDir = (0, import_node_path.join)(root, "app");
34
+ (0, import_node_fs.mkdirSync)(appDir);
35
+ const spaRoute = (0, import_node_path.join)(appDir, "client-only+spa.tsx");
36
+ (0, import_node_fs.writeFileSync)(spaRoute, `export const browserPayload = 'must-not-enter-server-graph'
37
+ export default function ClientOnlyPage() { return null }
38
+ `);
39
+ try {
40
+ const result = await (0, import_vite.build)({
41
+ root,
42
+ configFile: false,
43
+ logLevel: "silent",
44
+ plugins: [{
45
+ name: "test-one-entry",
46
+ enforce: "pre",
47
+ resolveId(id) {
48
+ if (id === "one") return "\0test-one-entry";
49
+ },
50
+ load(id) {
51
+ if (id === "\0test-one-entry") {
52
+ return `export const createApp = (options) => options
53
+ export const registerPreloadedRoute = () => {}`;
54
+ }
55
+ }
56
+ }, (0, import_virtualEntryPlugin.createVirtualEntry)({
57
+ root: "app",
58
+ flags: {}
59
+ })],
60
+ build: {
61
+ ssr: true,
62
+ write: false,
63
+ rolldownOptions: {
64
+ input: "virtual:one-entry"
65
+ }
66
+ }
67
+ });
68
+ if (Array.isArray(result)) throw new Error("expected one server build output");
69
+ if (!("output" in result)) throw new Error("expected completed server build");
70
+ const moduleIds = result.output.flatMap(output => output.type === "chunk" ? output.moduleIds : []);
71
+ (0, import_vitest.expect)(moduleIds).not.toContain((0, import_node_path.resolve)(spaRoute));
72
+ const entry = result.output.find(output => output.type === "chunk" && output.isEntry);
73
+ if (!entry || entry.type !== "chunk") throw new Error("missing server entry chunk");
74
+ const built = await import(`data:text/javascript;base64,${import_node_buffer.Buffer.from(entry.code).toString("base64")}`);
75
+ (0, import_vitest.expect)(Object.keys(built.default.routes)).toContain("/app/client-only+spa.tsx");
76
+ await (0, import_vitest.expect)(built.default.routes["/app/client-only+spa.tsx"]()).resolves.toEqual({});
77
+ } finally {
78
+ (0, import_node_fs.rmSync)(root, {
79
+ recursive: true,
80
+ force: true
81
+ });
82
+ }
83
+ });
26
84
  (0, import_vitest.describe)("setupFile", () => {
27
85
  const base = {
28
86
  root: "app",
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var import_buffer = require("buffer");
4
+ var import_fs = require("fs");
5
+ var import_os = require("os");
6
+ var import_path = require("path");
3
7
  var import_vitest = require("vitest");
8
+ var import_vite = require("vite");
4
9
  var import_virtualEntryPlugin = require("./virtualEntryPlugin.native.js");
5
10
  import_vitest.vi.mock("vxrn", function () {
6
11
  return {
@@ -31,6 +36,63 @@ function loadEntry(plugin, envName) {
31
36
  return plugin.load.call(ctx, "\0virtual:one-entry");
32
37
  }
33
38
  (0, import_vitest.describe)("virtualEntryPlugin", function () {
39
+ (0, import_vitest.it)("keeps spa route matching without bundling the client module on the server", async function () {
40
+ var root = (0, import_fs.mkdtempSync)((0, import_path.join)((0, import_os.tmpdir)(), "one-spa-server-"));
41
+ var appDir = (0, import_path.join)(root, "app");
42
+ (0, import_fs.mkdirSync)(appDir);
43
+ var spaRoute = (0, import_path.join)(appDir, "client-only+spa.tsx");
44
+ (0, import_fs.writeFileSync)(spaRoute, `export const browserPayload = 'must-not-enter-server-graph'
45
+ export default function ClientOnlyPage() { return null }
46
+ `);
47
+ try {
48
+ var result = await (0, import_vite.build)({
49
+ root,
50
+ configFile: false,
51
+ logLevel: "silent",
52
+ plugins: [{
53
+ name: "test-one-entry",
54
+ enforce: "pre",
55
+ resolveId(id) {
56
+ if (id === "one") return "\0test-one-entry";
57
+ },
58
+ load(id) {
59
+ if (id === "\0test-one-entry") {
60
+ return `export const createApp = (options) => options
61
+ export const registerPreloadedRoute = () => {}`;
62
+ }
63
+ }
64
+ }, (0, import_virtualEntryPlugin.createVirtualEntry)({
65
+ root: "app",
66
+ flags: {}
67
+ })],
68
+ build: {
69
+ ssr: true,
70
+ write: false,
71
+ rolldownOptions: {
72
+ input: "virtual:one-entry"
73
+ }
74
+ }
75
+ });
76
+ if (Array.isArray(result)) throw new Error("expected one server build output");
77
+ if (!("output" in result)) throw new Error("expected completed server build");
78
+ var moduleIds = result.output.flatMap(function (output) {
79
+ return output.type === "chunk" ? output.moduleIds : [];
80
+ });
81
+ (0, import_vitest.expect)(moduleIds).not.toContain((0, import_path.resolve)(spaRoute));
82
+ var entry = result.output.find(function (output) {
83
+ return output.type === "chunk" && output.isEntry;
84
+ });
85
+ if (!entry || entry.type !== "chunk") throw new Error("missing server entry chunk");
86
+ var built = await import(`data:text/javascript;base64,${import_buffer.Buffer.from(entry.code).toString("base64")}`);
87
+ (0, import_vitest.expect)(Object.keys(built.default.routes)).toContain("/app/client-only+spa.tsx");
88
+ await (0, import_vitest.expect)(built.default.routes["/app/client-only+spa.tsx"]()).resolves.toEqual({});
89
+ } finally {
90
+ (0, import_fs.rmSync)(root, {
91
+ recursive: true,
92
+ force: true
93
+ });
94
+ }
95
+ });
34
96
  (0, import_vitest.describe)("setupFile", function () {
35
97
  var base = {
36
98
  root: "app",
@@ -1 +1 @@
1
- {"version":3,"names":["import_vitest","require","import_virtualEntryPlugin","vi","mock","isNativeEnvironment","env","name","configuration","enableNativewind","loadEntry","plugin","envName","command","arguments","length","_plugin_configResolved","configResolved","call","root","ctx","environment","load","describe","base","flags","it","createVirtualEntry","setupFile","client","server","code","expect","not","toContain","native","ssrCode","clientCode","iosCode"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["import_buffer","require","import_fs","import_os","import_path","import_vitest","import_vite","import_virtualEntryPlugin","vi","mock","isNativeEnvironment","env","name","configuration","enableNativewind","loadEntry","plugin","envName","command","arguments","length","_plugin_configResolved","configResolved","call","root","ctx","environment","load","describe","it","mkdtempSync","join","tmpdir","appDir","mkdirSync","spaRoute","writeFileSync","result","build","configFile","logLevel","plugins","enforce","resolveId","id","createVirtualEntry","flags","ssr","write","rolldownOptions","input","Array","isArray","Error","moduleIds","output","flatMap","type","expect","not","toContain","resolve","entry","find","isEntry","built","Buffer","from","code","toString","Object","keys","default","routes","resolves","toEqual","rmSync","recursive","force","base","setupFile","client","server","native","ssrCode","clientCode","iosCode"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -220,7 +220,6 @@ async function getCloudflareProjectName(root) {
220
220
  return "one-app";
221
221
  }
222
222
  process.env.ONE_CACHE_KEY = constants.CACHE_KEY;
223
- const BUILD_CONCURRENCY = process.env.ONE_BUILD_CONCURRENCY ? Math.max(1, parseInt(process.env.ONE_BUILD_CONCURRENCY, 10)) : Math.max(1, Math.min(cpus().length, 8));
224
223
  function shouldUseWorkers(oneOptions) {
225
224
  if (process.env.ONE_BUILD_WORKERS === "0") return false;
226
225
  if (process.env.ONE_BUILD_WORKERS === "1") return true;
@@ -287,6 +286,11 @@ async function build(args) {
287
286
  config: viteLoadedConfig
288
287
  } = await loadUserOneOptions("build");
289
288
  const routerRoot = getRouterRootFromOneOptions(oneOptions);
289
+ const configuredBuildConcurrency = process.env.ONE_BUILD_CONCURRENCY ?? oneOptions.build?.concurrency;
290
+ const buildConcurrency = configuredBuildConcurrency === void 0 ? Math.max(1, Math.min(cpus().length, 8)) : Number(configuredBuildConcurrency);
291
+ if (!Number.isInteger(buildConcurrency) || buildConcurrency < 1) {
292
+ throw new Error(`build.concurrency must be a positive integer, received ${JSON.stringify(configuredBuildConcurrency)}`);
293
+ }
290
294
  if (oneOptions.web?.defaultRenderMode) {
291
295
  process.env.ONE_DEFAULT_RENDER_MODE = oneOptions.web.defaultRenderMode;
292
296
  }
@@ -489,15 +493,15 @@ async function build(args) {
489
493
  const collectImportsCache = /* @__PURE__ */new Map();
490
494
  const cssFileContentsCache = /* @__PURE__ */new Map();
491
495
  const criticalCSSOutputPaths = getCriticalCSSOutputPaths(vxrnOutput.clientManifest);
492
- const limit = pLimit(BUILD_CONCURRENCY);
496
+ const limit = pLimit(buildConcurrency);
493
497
  const useWorkers = shouldUseWorkers(oneOptions);
494
- const workerPool = useWorkers ? getWorkerPool(BUILD_CONCURRENCY) : null;
498
+ const workerPool = useWorkers ? getWorkerPool(buildConcurrency) : null;
495
499
  if (workerPool) {
496
500
  const serializableOptions = JSON.parse(JSON.stringify(oneOptions, (_key, value) => typeof value === "function" ? void 0 : value));
497
501
  await workerPool.initialize(serializableOptions);
498
502
  }
499
503
  const staticStartTime = performance.now();
500
- const modeLabel = useWorkers ? `workers: ${workerPool?.size}` : `concurrency: ${BUILD_CONCURRENCY}`;
504
+ const modeLabel = useWorkers ? `workers: ${workerPool?.size}` : `concurrency: ${buildConcurrency}`;
501
505
  console.info(`
502
506
  \u{1F528} build static routes (${modeLabel})
503
507
  `);
@@ -831,10 +835,7 @@ async function build(args) {
831
835
  `);
832
836
  printBuildTimings();
833
837
  await moveAllFiles(staticDir, clientDir);
834
- await FSExtra.rm(staticDir, {
835
- force: true,
836
- recursive: true
837
- });
838
+ await FSExtra.remove(staticDir);
838
839
  const routeMap = {};
839
840
  const routeToBuildInfo = {};
840
841
  const pathToRoute = {};