one 2.0.0-beta.139.1 → 2.0.0-beta.141.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/dist/cjs/router/diagnoseRouteLoadFailure.cjs +49 -17
  2. package/dist/cjs/router/diagnoseRouteLoadFailure.native.cjs +56 -19
  3. package/dist/cjs/router/diagnoseRouteLoadFailure.native.js +56 -19
  4. package/dist/cjs/router/diagnoseRouteLoadFailure.native.js.map +1 -1
  5. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +8 -1
  6. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.cjs +8 -1
  7. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +8 -1
  8. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  9. package/dist/esm/router/diagnoseRouteLoadFailure.mjs +49 -17
  10. package/dist/esm/router/diagnoseRouteLoadFailure.mjs.map +1 -1
  11. package/dist/esm/router/diagnoseRouteLoadFailure.native.js +56 -19
  12. package/dist/esm/router/diagnoseRouteLoadFailure.native.js.map +1 -1
  13. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +8 -1
  14. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  15. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +8 -1
  16. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  17. package/ios/OneNativeTabsView.swift +23 -8
  18. package/package.json +10 -10
  19. package/src/router/diagnoseRouteLoadFailure.ts +65 -25
  20. package/src/router/useViteRoutes.tsx +4 -4
  21. package/src/vite/plugins/fileSystemRouterPlugin.tsx +12 -1
  22. package/types/router/diagnoseRouteLoadFailure.d.ts +14 -5
  23. package/types/router/diagnoseRouteLoadFailure.d.ts.map +1 -1
  24. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
@@ -21,7 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var diagnoseRouteLoadFailure_exports = {};
22
22
  __export(diagnoseRouteLoadFailure_exports, {
23
23
  diagnoseRouteLoadFailure: () => diagnoseRouteLoadFailure,
24
- findBlockedModule: () => findBlockedModule
24
+ findRouteLoadFault: () => findRouteLoadFault
25
25
  });
26
26
  module.exports = __toCommonJS(diagnoseRouteLoadFailure_exports);
27
27
  const MAX_MODULES = 500;
@@ -39,56 +39,88 @@ function collectImports(source, base) {
39
39
  for (const m of source.matchAll(/(?:^|[\s;}])import\s*["']([^"']+)["']/g)) add(m[1]);
40
40
  return out;
41
41
  }
42
- async function findBlockedModule(entryUrl) {
42
+ async function findRouteLoadFault(entryUrl) {
43
43
  const deadline = Date.now() + TIMEOUT_MS;
44
- const seen = /* @__PURE__ */ new Set();
45
- let frontier = [new URL(entryUrl, window.location.href).href];
46
- while (frontier.length && seen.size < MAX_MODULES && Date.now() < deadline) {
47
- const batch = frontier.filter((url) => !seen.has(url)).slice(0, 32);
48
- if (!batch.length) break;
44
+ const importers = /* @__PURE__ */ new Map();
45
+ const entry = new URL(entryUrl, window.location.href).href;
46
+ importers.set(entry, null);
47
+ let frontier = [entry];
48
+ let visited = 0;
49
+ while (frontier.length && visited < MAX_MODULES && Date.now() < deadline) {
50
+ const batch = frontier.slice(0, 32);
49
51
  frontier = frontier.slice(batch.length);
52
+ visited += batch.length;
50
53
  const results = await Promise.all(batch.map(async (url) => {
51
- seen.add(url);
52
54
  let res;
53
55
  try {
54
56
  res = await fetch(url);
55
57
  } catch {
56
58
  return {
57
59
  url,
58
- blocked: true,
60
+ fault: "unreachable",
59
61
  imports: []
60
62
  };
61
63
  }
64
+ if (res.status === 404) return {
65
+ url,
66
+ fault: "missing",
67
+ imports: []
68
+ };
62
69
  if (!res.ok) return {
63
70
  url,
64
- blocked: false,
71
+ fault: null,
65
72
  imports: []
66
73
  };
67
74
  const type = res.headers.get("content-type") ?? "";
68
75
  if (!type.includes("javascript")) return {
69
76
  url,
70
- blocked: false,
77
+ fault: null,
71
78
  imports: []
72
79
  };
73
80
  return {
74
81
  url,
75
- blocked: false,
82
+ fault: null,
76
83
  imports: collectImports(await res.text(), url)
77
84
  };
78
85
  }));
79
86
  for (const result of results) {
80
- if (result.blocked) return result.url;
87
+ if (result.fault === "missing") {
88
+ const importer = importers.get(result.url) ?? null;
89
+ if (importer?.includes("/node_modules/")) continue;
90
+ return {
91
+ kind: "missing",
92
+ url: result.url,
93
+ importer
94
+ };
95
+ }
96
+ if (result.fault === "unreachable") {
97
+ const serverAnswers = await fetch(window.location.href, { method: "HEAD" }).then(() => true, () => false);
98
+ return serverAnswers ? {
99
+ kind: "blocked",
100
+ url: result.url
101
+ } : null;
102
+ }
81
103
  for (const next of result.imports) {
82
- if (!seen.has(next)) frontier.push(next);
104
+ if (importers.has(next)) continue;
105
+ importers.set(next, result.url);
106
+ frontier.push(next);
83
107
  }
84
108
  }
85
109
  }
86
110
  return null;
87
111
  }
88
112
  async function diagnoseRouteLoadFailure(routeId, routeUrl) {
89
- const blocked = await findBlockedModule(routeUrl);
90
- if (!blocked) return null;
91
- const path = blocked.replace(window.location.origin, "");
113
+ const fault = await findRouteLoadFault(routeUrl);
114
+ if (!fault) return null;
115
+ const toPath = (url) => url.replace(window.location.origin, "");
116
+ const path = toPath(fault.url);
117
+ if (fault.kind === "missing") {
118
+ return [
119
+ `Route "${routeId}" failed to load because ${path} does not exist (the dev server answered 404).`,
120
+ ``,
121
+ fault.importer ? `${toPath(fault.importer)} imports it. Create the file or remove the import.` : `Create the file or remove the import.`
122
+ ].join("\n");
123
+ }
92
124
  return [
93
125
  `Route "${routeId}" failed to load because this browser refused to fetch ${path}`,
94
126
  ``,
@@ -23,7 +23,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
23
23
  var diagnoseRouteLoadFailure_exports = {};
24
24
  __export(diagnoseRouteLoadFailure_exports, {
25
25
  diagnoseRouteLoadFailure: () => diagnoseRouteLoadFailure,
26
- findBlockedModule: () => findBlockedModule
26
+ findRouteLoadFault: () => findRouteLoadFault
27
27
  });
28
28
  module.exports = __toCommonJS(diagnoseRouteLoadFailure_exports);
29
29
  var MAX_MODULES = 500;
@@ -98,43 +98,48 @@ function collectImports(source, base) {
98
98
  }
99
99
  return out;
100
100
  }
101
- async function findBlockedModule(entryUrl) {
101
+ async function findRouteLoadFault(entryUrl) {
102
102
  var deadline = Date.now() + TIMEOUT_MS;
103
- var seen = /* @__PURE__ */ new Set();
104
- var frontier = [new URL(entryUrl, window.location.href).href];
105
- while (frontier.length && seen.size < MAX_MODULES && Date.now() < deadline) {
106
- var batch = frontier.filter(function(url) {
107
- return !seen.has(url);
108
- }).slice(0, 32);
109
- if (!batch.length) break;
103
+ var importers = /* @__PURE__ */ new Map();
104
+ var entry = new URL(entryUrl, window.location.href).href;
105
+ importers.set(entry, null);
106
+ var frontier = [entry];
107
+ var visited = 0;
108
+ while (frontier.length && visited < MAX_MODULES && Date.now() < deadline) {
109
+ var batch = frontier.slice(0, 32);
110
110
  frontier = frontier.slice(batch.length);
111
+ visited += batch.length;
111
112
  var results = await Promise.all(batch.map(async function(url) {
112
113
  var _res_headers_get;
113
- seen.add(url);
114
114
  var res;
115
115
  try {
116
116
  res = await fetch(url);
117
117
  } catch (unused) {
118
118
  return {
119
119
  url,
120
- blocked: true,
120
+ fault: "unreachable",
121
121
  imports: []
122
122
  };
123
123
  }
124
+ if (res.status === 404) return {
125
+ url,
126
+ fault: "missing",
127
+ imports: []
128
+ };
124
129
  if (!res.ok) return {
125
130
  url,
126
- blocked: false,
131
+ fault: null,
127
132
  imports: []
128
133
  };
129
134
  var type = (_res_headers_get = res.headers.get("content-type")) !== null && _res_headers_get !== void 0 ? _res_headers_get : "";
130
135
  if (!type.includes("javascript")) return {
131
136
  url,
132
- blocked: false,
137
+ fault: null,
133
138
  imports: []
134
139
  };
135
140
  return {
136
141
  url,
137
- blocked: false,
142
+ fault: null,
138
143
  imports: collectImports(await res.text(), url)
139
144
  };
140
145
  }));
@@ -142,12 +147,34 @@ async function findBlockedModule(entryUrl) {
142
147
  try {
143
148
  for (var _iterator = results[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
144
149
  var result = _step.value;
145
- if (result.blocked) return result.url;
150
+ if (result.fault === "missing") {
151
+ var _importers_get;
152
+ var importer = (_importers_get = importers.get(result.url)) !== null && _importers_get !== void 0 ? _importers_get : null;
153
+ if (importer === null || importer === void 0 ? void 0 : importer.includes("/node_modules/")) continue;
154
+ return {
155
+ kind: "missing",
156
+ url: result.url,
157
+ importer
158
+ };
159
+ }
160
+ if (result.fault === "unreachable") {
161
+ var serverAnswers = await fetch(window.location.href, { method: "HEAD" }).then(function() {
162
+ return true;
163
+ }, function() {
164
+ return false;
165
+ });
166
+ return serverAnswers ? {
167
+ kind: "blocked",
168
+ url: result.url
169
+ } : null;
170
+ }
146
171
  var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
147
172
  try {
148
173
  for (var _iterator1 = result.imports[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
149
174
  var next = _step1.value;
150
- if (!seen.has(next)) frontier.push(next);
175
+ if (importers.has(next)) continue;
176
+ importers.set(next, result.url);
177
+ frontier.push(next);
151
178
  }
152
179
  } catch (err) {
153
180
  _didIteratorError1 = true;
@@ -182,9 +209,19 @@ async function findBlockedModule(entryUrl) {
182
209
  return null;
183
210
  }
184
211
  async function diagnoseRouteLoadFailure(routeId, routeUrl) {
185
- var blocked = await findBlockedModule(routeUrl);
186
- if (!blocked) return null;
187
- var path = blocked.replace(window.location.origin, "");
212
+ var fault = await findRouteLoadFault(routeUrl);
213
+ if (!fault) return null;
214
+ var toPath = function(url) {
215
+ return url.replace(window.location.origin, "");
216
+ };
217
+ var path = toPath(fault.url);
218
+ if (fault.kind === "missing") {
219
+ return [
220
+ `Route "${routeId}" failed to load because ${path} does not exist (the dev server answered 404).`,
221
+ ``,
222
+ fault.importer ? `${toPath(fault.importer)} imports it. Create the file or remove the import.` : `Create the file or remove the import.`
223
+ ].join("\n");
224
+ }
188
225
  return [
189
226
  `Route "${routeId}" failed to load because this browser refused to fetch ${path}`,
190
227
  ``,
@@ -23,7 +23,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
23
23
  var diagnoseRouteLoadFailure_exports = {};
24
24
  __export(diagnoseRouteLoadFailure_exports, {
25
25
  diagnoseRouteLoadFailure: () => diagnoseRouteLoadFailure,
26
- findBlockedModule: () => findBlockedModule
26
+ findRouteLoadFault: () => findRouteLoadFault
27
27
  });
28
28
  module.exports = __toCommonJS(diagnoseRouteLoadFailure_exports);
29
29
  var MAX_MODULES = 500;
@@ -98,43 +98,48 @@ function collectImports(source, base) {
98
98
  }
99
99
  return out;
100
100
  }
101
- async function findBlockedModule(entryUrl) {
101
+ async function findRouteLoadFault(entryUrl) {
102
102
  var deadline = Date.now() + TIMEOUT_MS;
103
- var seen = /* @__PURE__ */ new Set();
104
- var frontier = [new URL(entryUrl, window.location.href).href];
105
- while (frontier.length && seen.size < MAX_MODULES && Date.now() < deadline) {
106
- var batch = frontier.filter(function(url) {
107
- return !seen.has(url);
108
- }).slice(0, 32);
109
- if (!batch.length) break;
103
+ var importers = /* @__PURE__ */ new Map();
104
+ var entry = new URL(entryUrl, window.location.href).href;
105
+ importers.set(entry, null);
106
+ var frontier = [entry];
107
+ var visited = 0;
108
+ while (frontier.length && visited < MAX_MODULES && Date.now() < deadline) {
109
+ var batch = frontier.slice(0, 32);
110
110
  frontier = frontier.slice(batch.length);
111
+ visited += batch.length;
111
112
  var results = await Promise.all(batch.map(async function(url) {
112
113
  var _res_headers_get;
113
- seen.add(url);
114
114
  var res;
115
115
  try {
116
116
  res = await fetch(url);
117
117
  } catch (unused) {
118
118
  return {
119
119
  url,
120
- blocked: true,
120
+ fault: "unreachable",
121
121
  imports: []
122
122
  };
123
123
  }
124
+ if (res.status === 404) return {
125
+ url,
126
+ fault: "missing",
127
+ imports: []
128
+ };
124
129
  if (!res.ok) return {
125
130
  url,
126
- blocked: false,
131
+ fault: null,
127
132
  imports: []
128
133
  };
129
134
  var type = (_res_headers_get = res.headers.get("content-type")) !== null && _res_headers_get !== void 0 ? _res_headers_get : "";
130
135
  if (!type.includes("javascript")) return {
131
136
  url,
132
- blocked: false,
137
+ fault: null,
133
138
  imports: []
134
139
  };
135
140
  return {
136
141
  url,
137
- blocked: false,
142
+ fault: null,
138
143
  imports: collectImports(await res.text(), url)
139
144
  };
140
145
  }));
@@ -142,12 +147,34 @@ async function findBlockedModule(entryUrl) {
142
147
  try {
143
148
  for (var _iterator = results[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
144
149
  var result = _step.value;
145
- if (result.blocked) return result.url;
150
+ if (result.fault === "missing") {
151
+ var _importers_get;
152
+ var importer = (_importers_get = importers.get(result.url)) !== null && _importers_get !== void 0 ? _importers_get : null;
153
+ if (importer === null || importer === void 0 ? void 0 : importer.includes("/node_modules/")) continue;
154
+ return {
155
+ kind: "missing",
156
+ url: result.url,
157
+ importer
158
+ };
159
+ }
160
+ if (result.fault === "unreachable") {
161
+ var serverAnswers = await fetch(window.location.href, { method: "HEAD" }).then(function() {
162
+ return true;
163
+ }, function() {
164
+ return false;
165
+ });
166
+ return serverAnswers ? {
167
+ kind: "blocked",
168
+ url: result.url
169
+ } : null;
170
+ }
146
171
  var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
147
172
  try {
148
173
  for (var _iterator1 = result.imports[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
149
174
  var next = _step1.value;
150
- if (!seen.has(next)) frontier.push(next);
175
+ if (importers.has(next)) continue;
176
+ importers.set(next, result.url);
177
+ frontier.push(next);
151
178
  }
152
179
  } catch (err) {
153
180
  _didIteratorError1 = true;
@@ -182,9 +209,19 @@ async function findBlockedModule(entryUrl) {
182
209
  return null;
183
210
  }
184
211
  async function diagnoseRouteLoadFailure(routeId, routeUrl) {
185
- var blocked = await findBlockedModule(routeUrl);
186
- if (!blocked) return null;
187
- var path = blocked.replace(window.location.origin, "");
212
+ var fault = await findRouteLoadFault(routeUrl);
213
+ if (!fault) return null;
214
+ var toPath = function(url) {
215
+ return url.replace(window.location.origin, "");
216
+ };
217
+ var path = toPath(fault.url);
218
+ if (fault.kind === "missing") {
219
+ return [
220
+ `Route "${routeId}" failed to load because ${path} does not exist (the dev server answered 404).`,
221
+ ``,
222
+ fault.importer ? `${toPath(fault.importer)} imports it. Create the file or remove the import.` : `Create the file or remove the import.`
223
+ ].join("\n");
224
+ }
188
225
  return [
189
226
  `Route "${routeId}" failed to load because this browser refused to fetch ${path}`,
190
227
  ``,
@@ -1 +1 @@
1
- {"version":3,"file":"diagnoseRouteLoadFailure.native.js","names":[],"sources":["cjs/router/diagnoseRouteLoadFailure.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar diagnoseRouteLoadFailure_exports = {};\n__export(diagnoseRouteLoadFailure_exports, {\n diagnoseRouteLoadFailure: () => diagnoseRouteLoadFailure,\n findBlockedModule: () => findBlockedModule\n});\nmodule.exports = __toCommonJS(diagnoseRouteLoadFailure_exports);\nvar MAX_MODULES = 500;\nvar TIMEOUT_MS = 5e3;\nfunction collectImports(source, base) {\n var out = [];\n var add = function(spec) {\n if (!/^[./]|^https?:/.test(spec)) return;\n try {\n out.push(new URL(spec, base).href);\n } catch (unused) {\n }\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = source.matchAll(/(?:^|[\\s;}])(?:import|export)[^'\"]{0,300}?from\\s*[\"']([^\"']+)[\"']/g)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var m = _step.value;\n add(m[1]);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = source.matchAll(/\\bimport\\s*\\(\\s*[\"']([^\"']+)[\"']\\s*\\)/g)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var m1 = _step1.value;\n add(m1[1]);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = source.matchAll(/(?:^|[\\s;}])import\\s*[\"']([^\"']+)[\"']/g)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var m2 = _step2.value;\n add(m2[1]);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n return out;\n}\nasync function findBlockedModule(entryUrl) {\n var deadline = Date.now() + TIMEOUT_MS;\n var seen = /* @__PURE__ */ new Set();\n var frontier = [\n new URL(entryUrl, window.location.href).href\n ];\n while (frontier.length && seen.size < MAX_MODULES && Date.now() < deadline) {\n var batch = frontier.filter(function(url) {\n return !seen.has(url);\n }).slice(0, 32);\n if (!batch.length) break;\n frontier = frontier.slice(batch.length);\n var results = await Promise.all(batch.map(async function(url) {\n var _res_headers_get;\n seen.add(url);\n var res;\n try {\n res = await fetch(url);\n } catch (unused) {\n return {\n url,\n blocked: true,\n imports: []\n };\n }\n if (!res.ok) return {\n url,\n blocked: false,\n imports: []\n };\n var type = (_res_headers_get = res.headers.get(\"content-type\")) !== null && _res_headers_get !== void 0 ? _res_headers_get : \"\";\n if (!type.includes(\"javascript\")) return {\n url,\n blocked: false,\n imports: []\n };\n return {\n url,\n blocked: false,\n imports: collectImports(await res.text(), url)\n };\n }));\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = results[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var result = _step.value;\n if (result.blocked) return result.url;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = result.imports[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var next = _step1.value;\n if (!seen.has(next)) frontier.push(next);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return null;\n}\nasync function diagnoseRouteLoadFailure(routeId, routeUrl) {\n var blocked = await findBlockedModule(routeUrl);\n if (!blocked) return null;\n var path = blocked.replace(window.location.origin, \"\");\n return [\n `Route \"${routeId}\" failed to load because this browser refused to fetch ${path}`,\n ``,\n `That request never reached the dev server, so a content blocker or privacy`,\n `extension is blocking it. In dev the module URL is the source path, and a`,\n `path containing a word like \"analytics\", \"pageview\" or \"track\" matches the`,\n `tracking rules those blockers ship.`,\n ``,\n `Rename the file or the directory so its path no longer matches, or allow`,\n `${window.location.origin} in the blocker.`\n ].join(\"\\n\");\n}\n//# sourceMappingURL=diagnoseRouteLoadFailure.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"diagnoseRouteLoadFailure.native.js","names":[],"sources":["cjs/router/diagnoseRouteLoadFailure.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar diagnoseRouteLoadFailure_exports = {};\n__export(diagnoseRouteLoadFailure_exports, {\n diagnoseRouteLoadFailure: () => diagnoseRouteLoadFailure,\n findRouteLoadFault: () => findRouteLoadFault\n});\nmodule.exports = __toCommonJS(diagnoseRouteLoadFailure_exports);\nvar MAX_MODULES = 500;\nvar TIMEOUT_MS = 5e3;\nfunction collectImports(source, base) {\n var out = [];\n var add = function(spec) {\n if (!/^[./]|^https?:/.test(spec)) return;\n try {\n out.push(new URL(spec, base).href);\n } catch (unused) {\n }\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = source.matchAll(/(?:^|[\\s;}])(?:import|export)[^'\"]{0,300}?from\\s*[\"']([^\"']+)[\"']/g)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var m = _step.value;\n add(m[1]);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = source.matchAll(/\\bimport\\s*\\(\\s*[\"']([^\"']+)[\"']\\s*\\)/g)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var m1 = _step1.value;\n add(m1[1]);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = source.matchAll(/(?:^|[\\s;}])import\\s*[\"']([^\"']+)[\"']/g)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var m2 = _step2.value;\n add(m2[1]);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n return out;\n}\nasync function findRouteLoadFault(entryUrl) {\n var deadline = Date.now() + TIMEOUT_MS;\n var importers = /* @__PURE__ */ new Map();\n var entry = new URL(entryUrl, window.location.href).href;\n importers.set(entry, null);\n var frontier = [\n entry\n ];\n var visited = 0;\n while (frontier.length && visited < MAX_MODULES && Date.now() < deadline) {\n var batch = frontier.slice(0, 32);\n frontier = frontier.slice(batch.length);\n visited += batch.length;\n var results = await Promise.all(batch.map(async function(url) {\n var _res_headers_get;\n var res;\n try {\n res = await fetch(url);\n } catch (unused) {\n return {\n url,\n fault: \"unreachable\",\n imports: []\n };\n }\n if (res.status === 404) return {\n url,\n fault: \"missing\",\n imports: []\n };\n if (!res.ok) return {\n url,\n fault: null,\n imports: []\n };\n var type = (_res_headers_get = res.headers.get(\"content-type\")) !== null && _res_headers_get !== void 0 ? _res_headers_get : \"\";\n if (!type.includes(\"javascript\")) return {\n url,\n fault: null,\n imports: []\n };\n return {\n url,\n fault: null,\n imports: collectImports(await res.text(), url)\n };\n }));\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = results[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var result = _step.value;\n if (result.fault === \"missing\") {\n var _importers_get;\n var importer = (_importers_get = importers.get(result.url)) !== null && _importers_get !== void 0 ? _importers_get : null;\n if (importer === null || importer === void 0 ? void 0 : importer.includes(\"/node_modules/\")) continue;\n return {\n kind: \"missing\",\n url: result.url,\n importer\n };\n }\n if (result.fault === \"unreachable\") {\n var serverAnswers = await fetch(window.location.href, {\n method: \"HEAD\"\n }).then(function() {\n return true;\n }, function() {\n return false;\n });\n return serverAnswers ? {\n kind: \"blocked\",\n url: result.url\n } : null;\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = result.imports[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var next = _step1.value;\n if (importers.has(next)) continue;\n importers.set(next, result.url);\n frontier.push(next);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return null;\n}\nasync function diagnoseRouteLoadFailure(routeId, routeUrl) {\n var fault = await findRouteLoadFault(routeUrl);\n if (!fault) return null;\n var toPath = function(url) {\n return url.replace(window.location.origin, \"\");\n };\n var path = toPath(fault.url);\n if (fault.kind === \"missing\") {\n return [\n `Route \"${routeId}\" failed to load because ${path} does not exist (the dev server answered 404).`,\n ``,\n fault.importer ? `${toPath(fault.importer)} imports it. Create the file or remove the import.` : `Create the file or remove the import.`\n ].join(\"\\n\");\n }\n return [\n `Route \"${routeId}\" failed to load because this browser refused to fetch ${path}`,\n ``,\n `That request never reached the dev server, so a content blocker or privacy`,\n `extension is blocking it. In dev the module URL is the source path, and a`,\n `path containing a word like \"analytics\", \"pageview\" or \"track\" matches the`,\n `tracking rules those blockers ship.`,\n ``,\n `Rename the file or the directory so its path no longer matches, or allow`,\n `${window.location.origin} in the blocker.`\n ].join(\"\\n\");\n}\n//# sourceMappingURL=diagnoseRouteLoadFailure.js.map\n"],"mappings":"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"}
@@ -134,12 +134,19 @@ ${url2.search}`;
134
134
  const layouts = route.layouts || [];
135
135
  const isSpaShell = route.type === "spa" && layouts.some((layout) => layout.layoutRenderMode === "ssg" || layout.layoutRenderMode === "ssr");
136
136
  if (route.type === "spa" && !isSpaShell) {
137
- return `<!DOCTYPE html><html><head>
137
+ const shell = `<!DOCTYPE html><html><head>
138
138
  ${(0, import_constants.getSpaHeaderElements)({ serverContext: { mode: "spa" } })}
139
139
  <script type="module" src="/@one/dev.js"><\/script>
140
140
  <script type="module" src="/@vite/client" async=""><\/script>
141
141
  <script type="module" src="/@id/__x00__virtual:one-entry" async=""><\/script>
142
142
  </head></html>`;
143
+ if (route.isNotFound) {
144
+ return new Response(shell, {
145
+ status: 404,
146
+ headers: { "Content-Type": "text/html" }
147
+ });
148
+ }
149
+ return shell;
143
150
  }
144
151
  if (renderPromise) {
145
152
  await renderPromise;
@@ -148,12 +148,19 @@ ${url2.search}`;
148
148
  return layout.layoutRenderMode === "ssg" || layout.layoutRenderMode === "ssr";
149
149
  });
150
150
  if (route.type === "spa" && !isSpaShell) {
151
- return `<!DOCTYPE html><html><head>
151
+ var shell = `<!DOCTYPE html><html><head>
152
152
  ${(0, import_constants.getSpaHeaderElements)({ serverContext: { mode: "spa" } })}
153
153
  <script type="module" src="/@one/dev.js"><\/script>
154
154
  <script type="module" src="/@vite/client" async=""><\/script>
155
155
  <script type="module" src="/@id/__x00__virtual:one-entry" async=""><\/script>
156
156
  </head></html>`;
157
+ if (route.isNotFound) {
158
+ return new Response(shell, {
159
+ status: 404,
160
+ headers: { "Content-Type": "text/html" }
161
+ });
162
+ }
163
+ return shell;
157
164
  }
158
165
  if (renderPromise) {
159
166
  await renderPromise;
@@ -148,12 +148,19 @@ ${url2.search}`;
148
148
  return layout.layoutRenderMode === "ssg" || layout.layoutRenderMode === "ssr";
149
149
  });
150
150
  if (route.type === "spa" && !isSpaShell) {
151
- return `<!DOCTYPE html><html><head>
151
+ var shell = `<!DOCTYPE html><html><head>
152
152
  ${(0, import_constants.getSpaHeaderElements)({ serverContext: { mode: "spa" } })}
153
153
  <script type="module" src="/@one/dev.js"><\/script>
154
154
  <script type="module" src="/@vite/client" async=""><\/script>
155
155
  <script type="module" src="/@id/__x00__virtual:one-entry" async=""><\/script>
156
156
  </head></html>`;
157
+ if (route.isNotFound) {
158
+ return new Response(shell, {
159
+ status: 404,
160
+ headers: { "Content-Type": "text/html" }
161
+ });
162
+ }
163
+ return shell;
157
164
  }
158
165
  if (renderPromise) {
159
166
  await renderPromise;