one 1.9.7 → 1.9.8

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 (169) hide show
  1. package/dist/cjs/cli/build.cjs +25 -19
  2. package/dist/cjs/cli/build.js +36 -24
  3. package/dist/cjs/cli/build.js.map +2 -2
  4. package/dist/cjs/cli/build.native.js +153 -117
  5. package/dist/cjs/cli/build.native.js.map +1 -1
  6. package/dist/cjs/createApp.cjs +12 -1
  7. package/dist/cjs/createApp.js +11 -1
  8. package/dist/cjs/createApp.js.map +1 -1
  9. package/dist/cjs/createHandleRequest.cjs +1 -1
  10. package/dist/cjs/createHandleRequest.js +1 -1
  11. package/dist/cjs/createHandleRequest.js.map +1 -1
  12. package/dist/cjs/createHandleRequest.native.js +1 -1
  13. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  14. package/dist/cjs/createHandleRequest.test.cjs +13 -7
  15. package/dist/cjs/createHandleRequest.test.js +6 -3
  16. package/dist/cjs/createHandleRequest.test.js.map +1 -1
  17. package/dist/cjs/createHandleRequest.test.native.js +13 -7
  18. package/dist/cjs/createHandleRequest.test.native.js.map +1 -1
  19. package/dist/cjs/notFoundState.cjs +103 -0
  20. package/dist/cjs/notFoundState.js +99 -0
  21. package/dist/cjs/notFoundState.js.map +6 -0
  22. package/dist/cjs/notFoundState.native.js +176 -0
  23. package/dist/cjs/notFoundState.native.js.map +1 -0
  24. package/dist/cjs/router/router.cjs +10 -3
  25. package/dist/cjs/router/router.js +9 -3
  26. package/dist/cjs/router/router.js.map +1 -1
  27. package/dist/cjs/router/router.native.js +10 -3
  28. package/dist/cjs/router/router.native.js.map +1 -1
  29. package/dist/cjs/server/oneServe.cjs +21 -16
  30. package/dist/cjs/server/oneServe.js +24 -15
  31. package/dist/cjs/server/oneServe.js.map +1 -1
  32. package/dist/cjs/server/oneServe.native.js +28 -26
  33. package/dist/cjs/server/oneServe.native.js.map +1 -1
  34. package/dist/cjs/useLoader.cjs +26 -9
  35. package/dist/cjs/useLoader.js +26 -11
  36. package/dist/cjs/useLoader.js.map +1 -1
  37. package/dist/cjs/useLoader.native.js +44 -17
  38. package/dist/cjs/useLoader.native.js.map +1 -1
  39. package/dist/cjs/utils/cleanUrl.cjs +2 -2
  40. package/dist/cjs/utils/cleanUrl.js +2 -2
  41. package/dist/cjs/utils/cleanUrl.js.map +1 -1
  42. package/dist/cjs/utils/cleanUrl.native.js +4 -2
  43. package/dist/cjs/utils/cleanUrl.native.js.map +1 -1
  44. package/dist/cjs/utils/cleanUrl.test.cjs +64 -0
  45. package/dist/cjs/utils/cleanUrl.test.js +72 -0
  46. package/dist/cjs/utils/cleanUrl.test.js.map +6 -0
  47. package/dist/cjs/utils/cleanUrl.test.native.js +67 -0
  48. package/dist/cjs/utils/cleanUrl.test.native.js.map +1 -0
  49. package/dist/cjs/utils/getPathnameFromFilePath.test.cjs +60 -0
  50. package/dist/cjs/utils/getPathnameFromFilePath.test.js +72 -0
  51. package/dist/cjs/utils/getPathnameFromFilePath.test.js.map +6 -0
  52. package/dist/cjs/utils/getPathnameFromFilePath.test.native.js +65 -0
  53. package/dist/cjs/utils/getPathnameFromFilePath.test.native.js.map +1 -0
  54. package/dist/cjs/views/Navigator.cjs +18 -3
  55. package/dist/cjs/views/Navigator.js +13 -4
  56. package/dist/cjs/views/Navigator.js.map +2 -2
  57. package/dist/cjs/views/Navigator.native.js +21 -6
  58. package/dist/cjs/views/Navigator.native.js.map +1 -1
  59. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +23 -36
  60. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +28 -34
  61. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  62. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +30 -40
  63. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  64. package/dist/esm/cli/build.js +36 -24
  65. package/dist/esm/cli/build.js.map +2 -2
  66. package/dist/esm/cli/build.mjs +25 -19
  67. package/dist/esm/cli/build.mjs.map +1 -1
  68. package/dist/esm/cli/build.native.js +153 -117
  69. package/dist/esm/cli/build.native.js.map +1 -1
  70. package/dist/esm/createApp.js +11 -1
  71. package/dist/esm/createApp.js.map +1 -1
  72. package/dist/esm/createApp.mjs +12 -1
  73. package/dist/esm/createApp.mjs.map +1 -1
  74. package/dist/esm/createHandleRequest.js +1 -1
  75. package/dist/esm/createHandleRequest.js.map +1 -1
  76. package/dist/esm/createHandleRequest.mjs +1 -1
  77. package/dist/esm/createHandleRequest.mjs.map +1 -1
  78. package/dist/esm/createHandleRequest.native.js +1 -1
  79. package/dist/esm/createHandleRequest.native.js.map +1 -1
  80. package/dist/esm/createHandleRequest.test.js +6 -3
  81. package/dist/esm/createHandleRequest.test.js.map +1 -1
  82. package/dist/esm/createHandleRequest.test.mjs +13 -7
  83. package/dist/esm/createHandleRequest.test.mjs.map +1 -1
  84. package/dist/esm/createHandleRequest.test.native.js +13 -7
  85. package/dist/esm/createHandleRequest.test.native.js.map +1 -1
  86. package/dist/esm/notFoundState.js +75 -0
  87. package/dist/esm/notFoundState.js.map +6 -0
  88. package/dist/esm/notFoundState.mjs +64 -0
  89. package/dist/esm/notFoundState.mjs.map +1 -0
  90. package/dist/esm/notFoundState.native.js +134 -0
  91. package/dist/esm/notFoundState.native.js.map +1 -0
  92. package/dist/esm/router/router.js +13 -2
  93. package/dist/esm/router/router.js.map +1 -1
  94. package/dist/esm/router/router.mjs +9 -2
  95. package/dist/esm/router/router.mjs.map +1 -1
  96. package/dist/esm/router/router.native.js +9 -2
  97. package/dist/esm/router/router.native.js.map +1 -1
  98. package/dist/esm/server/oneServe.js +24 -15
  99. package/dist/esm/server/oneServe.js.map +1 -1
  100. package/dist/esm/server/oneServe.mjs +21 -16
  101. package/dist/esm/server/oneServe.mjs.map +1 -1
  102. package/dist/esm/server/oneServe.native.js +28 -26
  103. package/dist/esm/server/oneServe.native.js.map +1 -1
  104. package/dist/esm/useLoader.js +27 -11
  105. package/dist/esm/useLoader.js.map +1 -1
  106. package/dist/esm/useLoader.mjs +27 -10
  107. package/dist/esm/useLoader.mjs.map +1 -1
  108. package/dist/esm/useLoader.native.js +45 -18
  109. package/dist/esm/useLoader.native.js.map +1 -1
  110. package/dist/esm/utils/cleanUrl.js +2 -2
  111. package/dist/esm/utils/cleanUrl.js.map +1 -1
  112. package/dist/esm/utils/cleanUrl.mjs +2 -2
  113. package/dist/esm/utils/cleanUrl.mjs.map +1 -1
  114. package/dist/esm/utils/cleanUrl.native.js +4 -2
  115. package/dist/esm/utils/cleanUrl.native.js.map +1 -1
  116. package/dist/esm/utils/cleanUrl.test.js +73 -0
  117. package/dist/esm/utils/cleanUrl.test.js.map +6 -0
  118. package/dist/esm/utils/cleanUrl.test.mjs +65 -0
  119. package/dist/esm/utils/cleanUrl.test.mjs.map +1 -0
  120. package/dist/esm/utils/cleanUrl.test.native.js +65 -0
  121. package/dist/esm/utils/cleanUrl.test.native.js.map +1 -0
  122. package/dist/esm/utils/getPathnameFromFilePath.test.js +73 -0
  123. package/dist/esm/utils/getPathnameFromFilePath.test.js.map +6 -0
  124. package/dist/esm/utils/getPathnameFromFilePath.test.mjs +61 -0
  125. package/dist/esm/utils/getPathnameFromFilePath.test.mjs.map +1 -0
  126. package/dist/esm/utils/getPathnameFromFilePath.test.native.js +63 -0
  127. package/dist/esm/utils/getPathnameFromFilePath.test.native.js.map +1 -0
  128. package/dist/esm/views/Navigator.js +16 -1
  129. package/dist/esm/views/Navigator.js.map +1 -1
  130. package/dist/esm/views/Navigator.mjs +16 -1
  131. package/dist/esm/views/Navigator.mjs.map +1 -1
  132. package/dist/esm/views/Navigator.native.js +18 -3
  133. package/dist/esm/views/Navigator.native.js.map +1 -1
  134. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +28 -34
  135. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  136. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +23 -36
  137. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  138. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +30 -40
  139. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  140. package/package.json +9 -9
  141. package/src/cli/build.ts +43 -30
  142. package/src/createApp.tsx +22 -0
  143. package/src/createHandleRequest.test.ts +11 -3
  144. package/src/createHandleRequest.ts +3 -1
  145. package/src/notFoundState.ts +158 -0
  146. package/src/router/router.ts +15 -1
  147. package/src/server/oneServe.ts +37 -14
  148. package/src/useLoader.ts +25 -12
  149. package/src/utils/cleanUrl.test.ts +120 -0
  150. package/src/utils/cleanUrl.ts +12 -11
  151. package/src/utils/getPathnameFromFilePath.test.ts +118 -0
  152. package/src/views/Navigator.tsx +28 -0
  153. package/src/vite/plugins/fileSystemRouterPlugin.tsx +31 -45
  154. package/types/cli/build.d.ts.map +1 -1
  155. package/types/createApp.d.ts.map +1 -1
  156. package/types/createHandleRequest.d.ts.map +1 -1
  157. package/types/notFoundState.d.ts +13 -0
  158. package/types/notFoundState.d.ts.map +1 -0
  159. package/types/router/router.d.ts.map +1 -1
  160. package/types/server/oneServe.d.ts.map +1 -1
  161. package/types/useLoader.d.ts.map +1 -1
  162. package/types/utils/cleanUrl.d.ts.map +1 -1
  163. package/types/utils/cleanUrl.test.d.ts +2 -0
  164. package/types/utils/cleanUrl.test.d.ts.map +1 -0
  165. package/types/utils/getPathnameFromFilePath.test.d.ts +2 -0
  166. package/types/utils/getPathnameFromFilePath.test.d.ts.map +1 -0
  167. package/types/views/Navigator.d.ts +2 -2
  168. package/types/views/Navigator.d.ts.map +1 -1
  169. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
@@ -0,0 +1,65 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { getLoaderPath, getPathFromLoaderPath } from "./cleanUrl.native.js";
3
+ function roundtrip(path) {
4
+ var loaderPath = getLoaderPath(path, !1);
5
+ return getPathFromLoaderPath(loaderPath);
6
+ }
7
+ describe("cleanUrl roundtrip", function () {
8
+ it("simple path", function () {
9
+ expect(roundtrip("/docs/getting-started")).toBe("/docs/getting-started");
10
+ }), it("path with underscore prefix (/_/docs)", function () {
11
+ expect(roundtrip("/_/docs/getting-started")).toBe("/_/docs/getting-started");
12
+ }), it("path with underscore prefix (/_/terms)", function () {
13
+ expect(roundtrip("/_/terms")).toBe("/_/terms");
14
+ }), it("path with underscore in segment name", function () {
15
+ expect(roundtrip("/my_page/test")).toBe("/my_page/test");
16
+ }), it("deeply nested path", function () {
17
+ expect(roundtrip("/deep/nested/path/here")).toBe("/deep/nested/path/here");
18
+ }), it("root path", function () {
19
+ expect(roundtrip("/")).toBe("/");
20
+ }), it("single segment", function () {
21
+ expect(roundtrip("/about")).toBe("/about");
22
+ }), it("path with query string is stripped", function () {
23
+ var loaderPath = getLoaderPath("/docs/intro?foo=bar", !1);
24
+ expect(getPathFromLoaderPath(loaderPath)).toBe("/docs/intro");
25
+ }), it("path with hash is stripped", function () {
26
+ var loaderPath = getLoaderPath("/docs/intro#section", !1);
27
+ expect(getPathFromLoaderPath(loaderPath)).toBe("/docs/intro");
28
+ }), it("path with trailing slash", function () {
29
+ var loaderPath = getLoaderPath("/docs/intro/", !1);
30
+ expect(getPathFromLoaderPath(loaderPath)).toBe("/docs/intro");
31
+ });
32
+ });
33
+ describe("getLoaderPath format", function () {
34
+ it("includes /assets/ prefix", function () {
35
+ var result = getLoaderPath("/docs/intro", !1);
36
+ expect(result).toMatch(/^\/assets\//);
37
+ }), it("ends with loader postfix", function () {
38
+ var result = getLoaderPath("/docs/intro", !1);
39
+ expect(result).toMatch(/_\d+_vxrn_loader\.js$/);
40
+ }), it("includes /_one prefix in dev mode", function () {
41
+ var originalEnv = process.env.NODE_ENV;
42
+ process.env.NODE_ENV = "development";
43
+ try {
44
+ var result = getLoaderPath("/docs/intro", !1);
45
+ expect(result).toMatch(/^\/_one\/assets\//);
46
+ } finally {
47
+ process.env.NODE_ENV = originalEnv;
48
+ }
49
+ }), it("includes cache bust segment", function () {
50
+ var result = getLoaderPath("/docs/intro", !1, "12345");
51
+ expect(result).toContain("_refetch_12345_");
52
+ });
53
+ });
54
+ describe("getPathFromLoaderPath", function () {
55
+ it("strips /_one/assets prefix", function () {
56
+ expect(getPathFromLoaderPath("/_one/assets/docs_intro_999_vxrn_loader.js")).toBe("/docs/intro");
57
+ }), it("strips /assets prefix", function () {
58
+ expect(getPathFromLoaderPath("/assets/docs_intro_999_vxrn_loader.js")).toBe("/docs/intro");
59
+ }), it("strips refetch cache bust", function () {
60
+ expect(getPathFromLoaderPath("/assets/docs_intro_refetch_12345__999_vxrn_loader.js")).toBe("/docs/intro");
61
+ }), it("decodes escaped underscores back to literal underscores", function () {
62
+ expect(getPathFromLoaderPath("/assets/___docs_intro_999_vxrn_loader.js")).toBe("/_/docs/intro");
63
+ });
64
+ });
65
+ //# sourceMappingURL=cleanUrl.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","getLoaderPath","getPathFromLoaderPath","roundtrip","path","loaderPath","toBe","result","toMatch","originalEnv","process","env","NODE_ENV","toContain"],"sources":["../../../src/utils/cleanUrl.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { getPathnameFromFilePath } from "./getPathnameFromFilePath";
3
+ describe("getPathnameFromFilePath", () => {
4
+ it("index route", () => {
5
+ expect(getPathnameFromFilePath("/index+spa.tsx")).toBe("/");
6
+ }), it("simple page", () => {
7
+ expect(getPathnameFromFilePath("/about+ssg.tsx")).toBe("/about");
8
+ }), it("dynamic param", () => {
9
+ expect(getPathnameFromFilePath("/[serverId]/index+spa.tsx")).toBe("/:serverId/");
10
+ }), it("nested dynamic params", () => {
11
+ expect(getPathnameFromFilePath("/[serverId]/[channelId]/index+spa.tsx")).toBe(
12
+ "/:serverId/:channelId/"
13
+ );
14
+ }), it("catch-all route without params", () => {
15
+ expect(getPathnameFromFilePath("/docs/[...slug]+ssg.tsx")).toBe("/docs/*");
16
+ }), it("catch-all route with params", () => {
17
+ expect(
18
+ getPathnameFromFilePath("/docs/[...slug]+ssg.tsx", { slug: "intro/basics" })
19
+ ).toBe("/docs/intro/basics");
20
+ }), it("route groups are stripped", () => {
21
+ expect(getPathnameFromFilePath("/(site)/(legal)/terms+ssg.tsx")).toBe("/terms");
22
+ }), it("nested path", () => {
23
+ expect(getPathnameFromFilePath("/dashboard/settings/index+ssr.tsx")).toBe(
24
+ "/dashboard/settings/"
25
+ );
26
+ }), it("folder render mode suffix stripped", () => {
27
+ expect(getPathnameFromFilePath("/folder+ssr/page+ssg.tsx")).toBe("/folder/page");
28
+ }), it("+not-found route", () => {
29
+ expect(getPathnameFromFilePath("/not-found/+not-found+ssg.tsx")).toBe(
30
+ "/not-found/+not-found"
31
+ );
32
+ }), it("dynamic param with +not-found", () => {
33
+ expect(getPathnameFromFilePath("/[slug]/+not-found+ssr.tsx")).toBe(
34
+ "/:slug/+not-found"
35
+ );
36
+ }), it("underscore-prefixed path segment", () => {
37
+ expect(getPathnameFromFilePath("/_/home/index+spa.tsx")).toBe("/_/home/");
38
+ }), describe("input must start with / not ./", () => {
39
+ it('"./" prefix produces wrong keys', () => {
40
+ const broken = getPathnameFromFilePath("./[serverId]/index+spa.tsx");
41
+ expect(broken).toBe("./:serverId/"), expect(broken).not.toBe("/:serverId/");
42
+ }), it('"/" prefix produces correct keys', () => {
43
+ expect(getPathnameFromFilePath("/[serverId]/index+spa.tsx")).toBe("/:serverId/");
44
+ }), it('"./" root produces wrong key', () => {
45
+ const broken = getPathnameFromFilePath("./index+spa.tsx");
46
+ expect(broken).toBe("./"), expect(broken).not.toBe("/");
47
+ }), it('"/" root produces correct key', () => {
48
+ expect(getPathnameFromFilePath("/index+spa.tsx")).toBe("/");
49
+ });
50
+ }), describe("with params substitution", () => {
51
+ it("substitutes dynamic param", () => {
52
+ expect(getPathnameFromFilePath("/ssr/[param]+ssr.tsx", { param: "hello" })).toBe(
53
+ "/ssr/hello"
54
+ );
55
+ }), it("substitutes filename param, dirname params become placeholders", () => {
56
+ expect(
57
+ getPathnameFromFilePath("/servers/[serverId]/[channelId]+spa.tsx", {
58
+ serverId: "abc",
59
+ channelId: "123"
60
+ })
61
+ ).toBe("/servers/:serverId/123");
62
+ });
63
+ }), describe("strict mode", () => {
64
+ it("throws on missing param in strict mode", () => {
65
+ expect(() => getPathnameFromFilePath("/[id]+ssr.tsx", {}, !0)).toThrow(
66
+ "Params doesn't fit route"
67
+ );
68
+ }), it("returns placeholder in non-strict mode", () => {
69
+ expect(getPathnameFromFilePath("/[id]+ssr.tsx", {}, !1)).toBe("/:id");
70
+ });
71
+ });
72
+ });
73
+ //# sourceMappingURL=getPathnameFromFilePath.test.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utils/getPathnameFromFilePath.test.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,61 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { getPathnameFromFilePath } from "./getPathnameFromFilePath.mjs";
3
+ describe("getPathnameFromFilePath", () => {
4
+ it("index route", () => {
5
+ expect(getPathnameFromFilePath("/index+spa.tsx")).toBe("/");
6
+ }), it("simple page", () => {
7
+ expect(getPathnameFromFilePath("/about+ssg.tsx")).toBe("/about");
8
+ }), it("dynamic param", () => {
9
+ expect(getPathnameFromFilePath("/[serverId]/index+spa.tsx")).toBe("/:serverId/");
10
+ }), it("nested dynamic params", () => {
11
+ expect(getPathnameFromFilePath("/[serverId]/[channelId]/index+spa.tsx")).toBe("/:serverId/:channelId/");
12
+ }), it("catch-all route without params", () => {
13
+ expect(getPathnameFromFilePath("/docs/[...slug]+ssg.tsx")).toBe("/docs/*");
14
+ }), it("catch-all route with params", () => {
15
+ expect(getPathnameFromFilePath("/docs/[...slug]+ssg.tsx", {
16
+ slug: "intro/basics"
17
+ })).toBe("/docs/intro/basics");
18
+ }), it("route groups are stripped", () => {
19
+ expect(getPathnameFromFilePath("/(site)/(legal)/terms+ssg.tsx")).toBe("/terms");
20
+ }), it("nested path", () => {
21
+ expect(getPathnameFromFilePath("/dashboard/settings/index+ssr.tsx")).toBe("/dashboard/settings/");
22
+ }), it("folder render mode suffix stripped", () => {
23
+ expect(getPathnameFromFilePath("/folder+ssr/page+ssg.tsx")).toBe("/folder/page");
24
+ }), it("+not-found route", () => {
25
+ expect(getPathnameFromFilePath("/not-found/+not-found+ssg.tsx")).toBe("/not-found/+not-found");
26
+ }), it("dynamic param with +not-found", () => {
27
+ expect(getPathnameFromFilePath("/[slug]/+not-found+ssr.tsx")).toBe("/:slug/+not-found");
28
+ }), it("underscore-prefixed path segment", () => {
29
+ expect(getPathnameFromFilePath("/_/home/index+spa.tsx")).toBe("/_/home/");
30
+ }), describe("input must start with / not ./", () => {
31
+ it('"./" prefix produces wrong keys', () => {
32
+ const broken = getPathnameFromFilePath("./[serverId]/index+spa.tsx");
33
+ expect(broken).toBe("./:serverId/"), expect(broken).not.toBe("/:serverId/");
34
+ }), it('"/" prefix produces correct keys', () => {
35
+ expect(getPathnameFromFilePath("/[serverId]/index+spa.tsx")).toBe("/:serverId/");
36
+ }), it('"./" root produces wrong key', () => {
37
+ const broken = getPathnameFromFilePath("./index+spa.tsx");
38
+ expect(broken).toBe("./"), expect(broken).not.toBe("/");
39
+ }), it('"/" root produces correct key', () => {
40
+ expect(getPathnameFromFilePath("/index+spa.tsx")).toBe("/");
41
+ });
42
+ }), describe("with params substitution", () => {
43
+ it("substitutes dynamic param", () => {
44
+ expect(getPathnameFromFilePath("/ssr/[param]+ssr.tsx", {
45
+ param: "hello"
46
+ })).toBe("/ssr/hello");
47
+ }), it("substitutes filename param, dirname params become placeholders", () => {
48
+ expect(getPathnameFromFilePath("/servers/[serverId]/[channelId]+spa.tsx", {
49
+ serverId: "abc",
50
+ channelId: "123"
51
+ })).toBe("/servers/:serverId/123");
52
+ });
53
+ }), describe("strict mode", () => {
54
+ it("throws on missing param in strict mode", () => {
55
+ expect(() => getPathnameFromFilePath("/[id]+ssr.tsx", {}, !0)).toThrow("Params doesn't fit route");
56
+ }), it("returns placeholder in non-strict mode", () => {
57
+ expect(getPathnameFromFilePath("/[id]+ssr.tsx", {}, !1)).toBe("/:id");
58
+ });
59
+ });
60
+ });
61
+ //# sourceMappingURL=getPathnameFromFilePath.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","getPathnameFromFilePath","toBe","slug","broken","not","param","serverId","channelId","toThrow"],"sources":["../../../src/utils/getPathnameFromFilePath.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,uBAAA,QAA+B;AAExCH,QAAA,CAAS,2BAA2B,MAAM;EACxCE,EAAA,CAAG,eAAe,MAAM;IACtBD,MAAA,CAAOE,uBAAA,CAAwB,gBAAgB,CAAC,EAAEC,IAAA,CAAK,GAAG;EAC5D,CAAC,GAEDF,EAAA,CAAG,eAAe,MAAM;IACtBD,MAAA,CAAOE,uBAAA,CAAwB,gBAAgB,CAAC,EAAEC,IAAA,CAAK,QAAQ;EACjE,CAAC,GAEDF,EAAA,CAAG,iBAAiB,MAAM;IACxBD,MAAA,CAAOE,uBAAA,CAAwB,2BAA2B,CAAC,EAAEC,IAAA,CAAK,aAAa;EACjF,CAAC,GAEDF,EAAA,CAAG,yBAAyB,MAAM;IAChCD,MAAA,CAAOE,uBAAA,CAAwB,uCAAuC,CAAC,EAAEC,IAAA,CACvE,wBACF;EACF,CAAC,GAEDF,EAAA,CAAG,kCAAkC,MAAM;IACzCD,MAAA,CAAOE,uBAAA,CAAwB,yBAAyB,CAAC,EAAEC,IAAA,CAAK,SAAS;EAC3E,CAAC,GAEDF,EAAA,CAAG,+BAA+B,MAAM;IACtCD,MAAA,CACEE,uBAAA,CAAwB,2BAA2B;MAAEE,IAAA,EAAM;IAAe,CAAC,CAC7E,EAAED,IAAA,CAAK,oBAAoB;EAC7B,CAAC,GAEDF,EAAA,CAAG,6BAA6B,MAAM;IACpCD,MAAA,CAAOE,uBAAA,CAAwB,+BAA+B,CAAC,EAAEC,IAAA,CAAK,QAAQ;EAChF,CAAC,GAEDF,EAAA,CAAG,eAAe,MAAM;IACtBD,MAAA,CAAOE,uBAAA,CAAwB,mCAAmC,CAAC,EAAEC,IAAA,CACnE,sBACF;EACF,CAAC,GAEDF,EAAA,CAAG,sCAAsC,MAAM;IAC7CD,MAAA,CAAOE,uBAAA,CAAwB,0BAA0B,CAAC,EAAEC,IAAA,CAAK,cAAc;EACjF,CAAC,GAEDF,EAAA,CAAG,oBAAoB,MAAM;IAC3BD,MAAA,CAAOE,uBAAA,CAAwB,+BAA+B,CAAC,EAAEC,IAAA,CAC/D,uBACF;EACF,CAAC,GAEDF,EAAA,CAAG,iCAAiC,MAAM;IACxCD,MAAA,CAAOE,uBAAA,CAAwB,4BAA4B,CAAC,EAAEC,IAAA,CAC5D,mBACF;EACF,CAAC,GAEDF,EAAA,CAAG,oCAAoC,MAAM;IAC3CD,MAAA,CAAOE,uBAAA,CAAwB,uBAAuB,CAAC,EAAEC,IAAA,CAAK,UAAU;EAC1E,CAAC,GAEDJ,QAAA,CAAS,kCAAkC,MAAM;IAI/CE,EAAA,CAAG,mCAAmC,MAAM;MAC1C,MAAMI,MAAA,GAASH,uBAAA,CAAwB,4BAA4B;MACnEF,MAAA,CAAOK,MAAM,EAAEF,IAAA,CAAK,cAAc,GAClCH,MAAA,CAAOK,MAAM,EAAEC,GAAA,CAAIH,IAAA,CAAK,aAAa;IACvC,CAAC,GAEDF,EAAA,CAAG,oCAAoC,MAAM;MAC3CD,MAAA,CAAOE,uBAAA,CAAwB,2BAA2B,CAAC,EAAEC,IAAA,CAAK,aAAa;IACjF,CAAC,GAEDF,EAAA,CAAG,gCAAgC,MAAM;MACvC,MAAMI,MAAA,GAASH,uBAAA,CAAwB,iBAAiB;MACxDF,MAAA,CAAOK,MAAM,EAAEF,IAAA,CAAK,IAAI,GACxBH,MAAA,CAAOK,MAAM,EAAEC,GAAA,CAAIH,IAAA,CAAK,GAAG;IAC7B,CAAC,GAEDF,EAAA,CAAG,iCAAiC,MAAM;MACxCD,MAAA,CAAOE,uBAAA,CAAwB,gBAAgB,CAAC,EAAEC,IAAA,CAAK,GAAG;IAC5D,CAAC;EACH,CAAC,GAEDJ,QAAA,CAAS,4BAA4B,MAAM;IACzCE,EAAA,CAAG,6BAA6B,MAAM;MACpCD,MAAA,CAAOE,uBAAA,CAAwB,wBAAwB;QAAEK,KAAA,EAAO;MAAQ,CAAC,CAAC,EAAEJ,IAAA,CAC1E,YACF;IACF,CAAC,GAEDF,EAAA,CAAG,kEAAkE,MAAM;MAGzED,MAAA,CACEE,uBAAA,CAAwB,2CAA2C;QACjEM,QAAA,EAAU;QACVC,SAAA,EAAW;MACb,CAAC,CACH,EAAEN,IAAA,CAAK,wBAAwB;IACjC,CAAC;EACH,CAAC,GAEDJ,QAAA,CAAS,eAAe,MAAM;IAC5BE,EAAA,CAAG,0CAA0C,MAAM;MACjDD,MAAA,CAAO,MAAME,uBAAA,CAAwB,iBAAiB,CAAC,GAAG,EAAI,CAAC,EAAEQ,OAAA,CAC/D,0BACF;IACF,CAAC,GAEDT,EAAA,CAAG,0CAA0C,MAAM;MACjDD,MAAA,CAAOE,uBAAA,CAAwB,iBAAiB,CAAC,GAAG,EAAK,CAAC,EAAEC,IAAA,CAAK,MAAM;IACzE,CAAC;EACH,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { getPathnameFromFilePath } from "./getPathnameFromFilePath.native.js";
3
+ describe("getPathnameFromFilePath", function () {
4
+ it("index route", function () {
5
+ expect(getPathnameFromFilePath("/index+spa.tsx")).toBe("/");
6
+ }), it("simple page", function () {
7
+ expect(getPathnameFromFilePath("/about+ssg.tsx")).toBe("/about");
8
+ }), it("dynamic param", function () {
9
+ expect(getPathnameFromFilePath("/[serverId]/index+spa.tsx")).toBe("/:serverId/");
10
+ }), it("nested dynamic params", function () {
11
+ expect(getPathnameFromFilePath("/[serverId]/[channelId]/index+spa.tsx")).toBe("/:serverId/:channelId/");
12
+ }), it("catch-all route without params", function () {
13
+ expect(getPathnameFromFilePath("/docs/[...slug]+ssg.tsx")).toBe("/docs/*");
14
+ }), it("catch-all route with params", function () {
15
+ expect(getPathnameFromFilePath("/docs/[...slug]+ssg.tsx", {
16
+ slug: "intro/basics"
17
+ })).toBe("/docs/intro/basics");
18
+ }), it("route groups are stripped", function () {
19
+ expect(getPathnameFromFilePath("/(site)/(legal)/terms+ssg.tsx")).toBe("/terms");
20
+ }), it("nested path", function () {
21
+ expect(getPathnameFromFilePath("/dashboard/settings/index+ssr.tsx")).toBe("/dashboard/settings/");
22
+ }), it("folder render mode suffix stripped", function () {
23
+ expect(getPathnameFromFilePath("/folder+ssr/page+ssg.tsx")).toBe("/folder/page");
24
+ }), it("+not-found route", function () {
25
+ expect(getPathnameFromFilePath("/not-found/+not-found+ssg.tsx")).toBe("/not-found/+not-found");
26
+ }), it("dynamic param with +not-found", function () {
27
+ expect(getPathnameFromFilePath("/[slug]/+not-found+ssr.tsx")).toBe("/:slug/+not-found");
28
+ }), it("underscore-prefixed path segment", function () {
29
+ expect(getPathnameFromFilePath("/_/home/index+spa.tsx")).toBe("/_/home/");
30
+ }), describe("input must start with / not ./", function () {
31
+ it('"./" prefix produces wrong keys', function () {
32
+ var broken = getPathnameFromFilePath("./[serverId]/index+spa.tsx");
33
+ expect(broken).toBe("./:serverId/"), expect(broken).not.toBe("/:serverId/");
34
+ }), it('"/" prefix produces correct keys', function () {
35
+ expect(getPathnameFromFilePath("/[serverId]/index+spa.tsx")).toBe("/:serverId/");
36
+ }), it('"./" root produces wrong key', function () {
37
+ var broken = getPathnameFromFilePath("./index+spa.tsx");
38
+ expect(broken).toBe("./"), expect(broken).not.toBe("/");
39
+ }), it('"/" root produces correct key', function () {
40
+ expect(getPathnameFromFilePath("/index+spa.tsx")).toBe("/");
41
+ });
42
+ }), describe("with params substitution", function () {
43
+ it("substitutes dynamic param", function () {
44
+ expect(getPathnameFromFilePath("/ssr/[param]+ssr.tsx", {
45
+ param: "hello"
46
+ })).toBe("/ssr/hello");
47
+ }), it("substitutes filename param, dirname params become placeholders", function () {
48
+ expect(getPathnameFromFilePath("/servers/[serverId]/[channelId]+spa.tsx", {
49
+ serverId: "abc",
50
+ channelId: "123"
51
+ })).toBe("/servers/:serverId/123");
52
+ });
53
+ }), describe("strict mode", function () {
54
+ it("throws on missing param in strict mode", function () {
55
+ expect(function () {
56
+ return getPathnameFromFilePath("/[id]+ssr.tsx", {}, !0);
57
+ }).toThrow("Params doesn't fit route");
58
+ }), it("returns placeholder in non-strict mode", function () {
59
+ expect(getPathnameFromFilePath("/[id]+ssr.tsx", {}, !1)).toBe("/:id");
60
+ });
61
+ });
62
+ });
63
+ //# sourceMappingURL=getPathnameFromFilePath.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","getPathnameFromFilePath","toBe","slug","broken","not","param","serverId","channelId","toThrow"],"sources":["../../../src/utils/getPathnameFromFilePath.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,uBAAA,QAA+B;AAExCH,QAAA,CAAS,2BAA2B,YAAM;EACxCE,EAAA,CAAG,eAAe,YAAM;IACtBD,MAAA,CAAOE,uBAAA,CAAwB,gBAAgB,CAAC,EAAEC,IAAA,CAAK,GAAG;EAC5D,CAAC,GAEDF,EAAA,CAAG,eAAe,YAAM;IACtBD,MAAA,CAAOE,uBAAA,CAAwB,gBAAgB,CAAC,EAAEC,IAAA,CAAK,QAAQ;EACjE,CAAC,GAEDF,EAAA,CAAG,iBAAiB,YAAM;IACxBD,MAAA,CAAOE,uBAAA,CAAwB,2BAA2B,CAAC,EAAEC,IAAA,CAAK,aAAa;EACjF,CAAC,GAEDF,EAAA,CAAG,yBAAyB,YAAM;IAChCD,MAAA,CAAOE,uBAAA,CAAwB,uCAAuC,CAAC,EAAEC,IAAA;EAAA,IACvEF,EAAA;IACFD,MAAA,CAAAE,uBAAA,6BAAAC,IAAA;EACF,CAAC,GAEDF,EAAA,CAAG,2CAAwC;IACzCD,MAAA,CAAOE,uBAAA,CAAwB,yBAAyB,EAAC;MAG3DE,IAAG;IACD,IAAAD,IAAA;EAAA,IACEF,EAAA,4BAAwB;IAC1BD,MAAE,CAAKE,uBAAoB,mCAAAC,IAAA;EAC7B,CAAC,GAEDF,EAAA,CAAG;IACDD,MAAA,CAAOE,uBAAA,CAAwB,mCAAkC,GAAAC,IAAK,uBAAQ;EAChF,CAAC,GAEDF,EAAA,CAAG,oCAAqB;IACtBD,MAAA,CAAOE,uBAAA,CAAwB,6BAAAC,IAAA,eAAsC;EAAA,IACnEF,EAAA;IACFD,MAAA,CAAAE,uBAAA,mCAAAC,IAAA;EACF,CAAC,GAEDF,EAAA,CAAG,6CAA4C;IAC7CD,MAAA,CAAOE,uBAAA,CAAwB,4BAA2B,CAAE,EAAAC,IAAK,oBAAc;EACjF,CAAC,GAEDF,EAAA,CAAG,kCAA0B;IAC3BD,MAAA,CAAOE,uBAAA,CAAwB,0BAAAC,IAAA,CAA+B,UAAG;EAAA,IAC/DJ,QAAA;IACFE,EAAA;MAGF,IAAGI,MAAA,GAAAH,uBAAiC,6BAAM;MACxCF,MAAO,CAAAK,MAAA,EAAAF,IAAA,eAAwB,GAAAH,MAAA,CAAAK,MAAA,EAAAC,GAAA,CAAAH,IAA+B;IAAA,EAC5D,EAAAF,EAAA;MACFD,MAAA,CAAAE,uBAAA,+BAAAC,IAAA;IACD,EAED,EAAAF,EAAG,6CAA0C;MAC3C,IAAAI,MAAO,GAAAH,uBAAwB,kBAAwB,CAAE;MAG3DF,MAAA,CAAAK,MAAS,EAAAF,IAAA,QAAAH,MAAA,CAAAK,MAAA,EAAAC,GAAkC,CAAAH,IAAM;IAI/C,IAAGF,EAAA,gCAAmC,cAAM;MAC1CD,MAAM,CAAAE,uBAAS,iBAAwB,GAAAC,IAAA;IACvC;EACqC,EACvC,EAACJ,QAEE,yCAA0C;IAC3CE,EAAA,4BAAO,cAAwB;MAChCD,MAEE,CAAAE,uBAAA,uBAAsC;QACvCK,KAAM;MACN,IAAAJ,IAAO,aAAa;IAEtB,CAAC,GAEDF,EAAA,CAAG,gEAAuC;MACxCD,MAAA,CAAOE,uBAAA,CAAwB,yCAA2B;QAC3DM,QAAA;QAGHC,SAAS;MACP,CAAG,GAAAN,IAAA,yBAA6B;IAC9B;EAA4E,IAAAJ,QAC1E;IAAAE,EACF;MACDD,MAEE;QAGD,OAAAE,uBAAA;MAAA,EACE,CAAAQ,OAAA,2BAAwB;IAA2C,IAAAT,EACjE,yCAAU;MAAAD,MACV,CAAAE,uBAAW,2BAAAC,IAAA;IAAA;EACZ;AAC4B","ignoreList":[]}
@@ -5,7 +5,13 @@ import {
5
5
  import * as React from "react";
6
6
  import { SafeAreaView } from "react-native-safe-area-context";
7
7
  import { useFilterScreenChildren } from "../layouts/withLayoutContext";
8
+ import {
9
+ findNearestNotFoundRoute,
10
+ findRouteNodeByPath,
11
+ useNotFoundState
12
+ } from "../notFoundState";
8
13
  import { useContextKey } from "../router/Route";
14
+ import { routeNode as globalRouteNode } from "../router/router";
9
15
  import { registerProtectedRoutes, unregisterProtectedRoutes } from "../router/router";
10
16
  import { useSortedScreens, getQualifiedRouteComponent } from "../router/useScreens";
11
17
  import { Screen } from "./Screen";
@@ -96,7 +102,16 @@ function useNavigatorContext() {
96
102
  return context;
97
103
  }
98
104
  function useSlot() {
99
- const context = useNavigatorContext(), { state, descriptorsRef } = context, current = state.routes.find((route, i) => state.index === i);
105
+ const context = useNavigatorContext(), { state, descriptorsRef } = context, notFoundState = useNotFoundState();
106
+ if (notFoundState) {
107
+ const notFoundRouteNode = notFoundState.notFoundRouteNode || findRouteNodeByPath(notFoundState.notFoundPath, globalRouteNode) || findNearestNotFoundRoute(notFoundState.originalPath, globalRouteNode);
108
+ if (notFoundRouteNode) {
109
+ const NotFoundComponent = getQualifiedRouteComponent(notFoundRouteNode);
110
+ return /* @__PURE__ */ jsx(NotFoundComponent, { route: { params: {} } }, "one-not-found-inline");
111
+ }
112
+ return null;
113
+ }
114
+ const current = state.routes.find((route, i) => state.index === i);
100
115
  if (!current)
101
116
  return null;
102
117
  const renderedElement = descriptorsRef.current[current.key]?.render() ?? null;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/views/Navigator.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -2,7 +2,9 @@ import { StackRouter, useNavigationBuilder } from "@react-navigation/native";
2
2
  import * as React from "react";
3
3
  import { SafeAreaView } from "react-native-safe-area-context";
4
4
  import { useFilterScreenChildren } from "../layouts/withLayoutContext.mjs";
5
+ import { findNearestNotFoundRoute, findRouteNodeByPath, useNotFoundState } from "../notFoundState.mjs";
5
6
  import { useContextKey } from "../router/Route.mjs";
7
+ import { routeNode as globalRouteNode } from "../router/router.mjs";
6
8
  import { registerProtectedRoutes, unregisterProtectedRoutes } from "../router/router.mjs";
7
9
  import { useSortedScreens, getQualifiedRouteComponent } from "../router/useScreens.mjs";
8
10
  import { Screen } from "./Screen.mjs";
@@ -107,7 +109,20 @@ function useSlot() {
107
109
  state,
108
110
  descriptorsRef
109
111
  } = context,
110
- current = state.routes.find((route, i) => state.index === i);
112
+ notFoundState = useNotFoundState();
113
+ if (notFoundState) {
114
+ const notFoundRouteNode = notFoundState.notFoundRouteNode || findRouteNodeByPath(notFoundState.notFoundPath, globalRouteNode) || findNearestNotFoundRoute(notFoundState.originalPath, globalRouteNode);
115
+ if (notFoundRouteNode) {
116
+ const NotFoundComponent = getQualifiedRouteComponent(notFoundRouteNode);
117
+ return /* @__PURE__ */jsx(NotFoundComponent, {
118
+ route: {
119
+ params: {}
120
+ }
121
+ }, "one-not-found-inline");
122
+ }
123
+ return null;
124
+ }
125
+ const current = state.routes.find((route, i) => state.index === i);
111
126
  if (!current) return null;
112
127
  const renderedElement = descriptorsRef.current[current.key]?.render() ?? null;
113
128
  return renderedElement !== null ? React.cloneElement(renderedElement, {
@@ -1 +1 @@
1
- {"version":3,"names":["StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","useContextKey","registerProtectedRoutes","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","Fragment","jsx","SLOT_STATIC_KEY","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","state","delete","set","forEach","listener","clearAllSlotStates","clear","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","initialRouteName","screenOptions","children","router","contextKey","screens","otherSlot","protectedScreens","isCustomNavigator","sorted","length","QualifiedNavigator","console","warn","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","current","value","useMemo","Provider","useNavigatorContext","context","useContext","Error","useSlot","routes","find","route","i","index","renderedElement","key","render","cloneElement","Slot","memo","props","QualifiedSlot","DefaultNavigator","style","flex","getScopedSlotKey","layoutContextKey","useNamedSlot","scopedKey","slotState","activeRouteKey","isIntercepted","activeRouteNode","Component","params","NamedSlot","name","slotContent"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","routeNode","globalRouteNode","registerProtectedRoutes","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","Fragment","jsx","SLOT_STATIC_KEY","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","state","delete","set","forEach","listener","clearAllSlotStates","clear","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","initialRouteName","screenOptions","children","router","contextKey","screens","otherSlot","protectedScreens","isCustomNavigator","sorted","length","QualifiedNavigator","console","warn","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","current","value","useMemo","Provider","useNavigatorContext","context","useContext","Error","useSlot","notFoundState","notFoundRouteNode","notFoundPath","originalPath","NotFoundComponent","route","params","routes","find","i","index","renderedElement","key","render","cloneElement","Slot","memo","props","QualifiedSlot","DefaultNavigator","style","flex","getScopedSlotKey","layoutContextKey","useNamedSlot","scopedKey","slotState","activeRouteKey","isIntercepted","activeRouteNode","Component","NamedSlot","name","slotContent"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,9 @@ import { StackRouter, useNavigationBuilder } from "@react-navigation/native";
3
3
  import * as React from "react";
4
4
  import { SafeAreaView } from "react-native-safe-area-context";
5
5
  import { useFilterScreenChildren } from "../layouts/withLayoutContext.native.js";
6
+ import { findNearestNotFoundRoute, findRouteNodeByPath, useNotFoundState } from "../notFoundState.native.js";
6
7
  import { useContextKey } from "../router/Route.native.js";
8
+ import { routeNode as globalRouteNode } from "../router/router.native.js";
7
9
  import { registerProtectedRoutes, unregisterProtectedRoutes } from "../router/router.native.js";
8
10
  import { useSortedScreens, getQualifiedRouteComponent } from "../router/useScreens.native.js";
9
11
  import { Screen } from "./Screen.native.js";
@@ -123,9 +125,22 @@ function useSlot() {
123
125
  state,
124
126
  descriptorsRef
125
127
  } = context,
126
- current = state.routes.find(function (route, i) {
127
- return state.index === i;
128
- });
128
+ notFoundState = useNotFoundState();
129
+ if (notFoundState) {
130
+ var notFoundRouteNode = notFoundState.notFoundRouteNode || findRouteNodeByPath(notFoundState.notFoundPath, globalRouteNode) || findNearestNotFoundRoute(notFoundState.originalPath, globalRouteNode);
131
+ if (notFoundRouteNode) {
132
+ var NotFoundComponent = getQualifiedRouteComponent(notFoundRouteNode);
133
+ return /* @__PURE__ */_jsx(NotFoundComponent, {
134
+ route: {
135
+ params: {}
136
+ }
137
+ }, "one-not-found-inline");
138
+ }
139
+ return null;
140
+ }
141
+ var current = state.routes.find(function (route, i) {
142
+ return state.index === i;
143
+ });
129
144
  if (!current) return null;
130
145
  var renderedElement = (_ref = (_descriptorsRef_current_current_key = descriptorsRef.current[current.key]) === null || _descriptorsRef_current_current_key === void 0 ? void 0 : _descriptorsRef_current_current_key.render()) !== null && _ref !== void 0 ? _ref : null;
131
146
  return renderedElement !== null ? /* @__PURE__ */React.cloneElement(renderedElement, {
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","Fragment","_Fragment","StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","useContextKey","registerProtectedRoutes","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","SLOT_STATIC_KEY","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","state","delete","set","forEach","listener","clearAllSlotStates","clear","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","param","initialRouteName","screenOptions","children","router","contextKey","screens","otherSlot","protectedScreens","isCustomNavigator","sorted","length","QualifiedNavigator","console","warn","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","current","value","useMemo","Provider","useNavigatorContext","context","useContext","Error","useSlot","_ref","_descriptorsRef_current_current_key","routes","find","route","i","index","renderedElement","key","render","cloneElement","Slot","memo","props","QualifiedSlot","DefaultNavigator","style","flex","getScopedSlotKey","layoutContextKey","useNamedSlot","scopedKey","slotState","activeRouteKey","isIntercepted","activeRouteNode","Component"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","Fragment","_Fragment","StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","findNearestNotFoundRoute","findRouteNodeByPath","useNotFoundState","useContextKey","routeNode","globalRouteNode","registerProtectedRoutes","unregisterProtectedRoutes","useSortedScreens","getQualifiedRouteComponent","Screen","registerClearSlotStates","registerSetSlotState","SLOT_STATIC_KEY","globalSlotState","Map","slotStateListeners","Set","getSlotState","slotName","get","setSlotState","state","delete","set","forEach","listener","clearAllSlotStates","clear","useSlotStateSubscription","forceUpdate","useReducer","x","useEffect","add","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","param","initialRouteName","screenOptions","children","router","contextKey","screens","otherSlot","protectedScreens","isCustomNavigator","sorted","length","QualifiedNavigator","console","warn","navigation","descriptors","NavigationContent","id","descriptorsRef","useRef","current","value","useMemo","Provider","useNavigatorContext","context","useContext","Error","useSlot","_ref","_descriptorsRef_current_current_key","notFoundState","notFoundRouteNode","notFoundPath","originalPath","NotFoundComponent","route","params","routes","find","i","index","renderedElement","key","render","cloneElement","Slot","memo","props","QualifiedSlot","DefaultNavigator","style","flex","getScopedSlotKey","layoutContextKey","useNamedSlot","scopedKey","slotState","activeRouteKey","isIntercepted","activeRouteNode","Component"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"AACA,SAAAA,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA;AAAA,SAEEC,WAAA,EAAAC,oBAAA;AAAA,OACA,KAAAC,KAAA;AAAA,SACKC,YAAA;AACP,SAAAC,uBAAuB;AACvB,SAASC,wBAAoB,EAAAC,mBAAA,EAAAC,gBAAA;AAC7B,SAASC,aAAA,mCAA+B;AACxC,SAAAC,SAAA,IAAAC,eAAA;AAAA,SACEC,uBAAA,EAAAC,yBAAA;AAAA,SACAC,gBAAA,EAAAC,0BAAA;AAAA,SACAC,MAAA;AAAA,SACKC,uBAAA,EAAAC,oBAAA;AACP,IAAAC,eAAS,wBAAqB;EAAAC,eAAA,sBAAAC,GAAA;EAAAC,kBAAA,sBAAAC,GAAA;AAC9B,SAASC,aAAaC,QAAA;EACtB,OAASL,eAAA,CAAAM,GAAA,CAAAD,QAAyB;AAClC;AACA,SAASE,aAAAF,QAAc,EAAAG,KAAA;EAWvBA,KAAA,KAAS,OAAAR,eAAyB,CAAAS,MAAA,CAAAJ,QAAA,IAAAL,eAA4B,CAAAU,GAAA,CAAAL,QAAA,EAAAG,KAAA,GAAAN,kBAAA,CAAAS,OAAA,WAAAC,QAAA;IA4H1D,OAqOOA,QArOP;EAlIJ;AAwBO;AACL,SAAOC,kBAAgBA,CAAA,EAAI;EAC7Bb,eAAA,CAAAc,KAAA,IAAAZ,kBAAA,CAAAS,OAAA,WAAAC,QAAA;IAEO,OAASA,QAAA;EACV;AAON;AAEOf,uBAAS,CAAAgB,kBAAqB;AACnCf,oBAAgB,CAAAS,YAChB;AACF,SAAAQ,yBAAA;EAGA,OAAAC,WAAA,IAAwBjC,KAAA,CAAAkC,UAAA,WAAkBC,CAAA;IAC1C,OAAAA,CAAA;EAEA;EACEnC,KAAA,CAAMoC,SAAG,aAAe;IAExB,OAAMjB,kBACJ,CAAAkB,GAAA,CAAAJ,WAAmB,GAAI,YAAW;MAEhCd,kBAAmB,CAAAO,MAAO,CAAAO,WAAW;IACvC;EAEJ;AAGO;AAQH,IAAAK,gBAAY,kBAAatC,KAC3B,CAAAuC,aAAA,CAAiB;AAyBZC,OAAA,CAAAC,GAAS,CAAAC,QAAU,sBAAAJ,gBAAA,CAAAK,WAAA;AAAA,SACxBC,UAAAC,KAAA;EACA;MAAAC,gBAAA;MAAAC,aAAA;MAAAC,QAAA;MAAAC;IAAA,IAAAJ,KAAA;IAAAK,UAAA,GAAA5C,aAAA;IAAA;MAAA6C,OAAA;MAAAH,QAAA,EAAAI,SAAA;MAAAC;IAAA,IAAAnD,uBAAA,CAAA8C,QAAA;MACAM,iBAAA;MACAJ;IACF,CAAmB;EACjBzC,uBAAmB,CAAAyC,UAAc,EAG3BG,gBAAA,GAAArD,KAAA,CAAAoC,SAAA;IACJ,OAAA3B,uBAAA,CAAAyC,UAAA,EAAAG,gBAAA;MACA3C,yBAAU,CAAAwC,UAAA;IACV;EACF,IACEA,UAAA,EACAG,gBAAA,CACD;EAID,IAAAE,MAAA,GAAA5C,gBAAwB,CAAAwC,OAAY;IAKhCE;EACF;EAGF,OAAME,MAAA,CAAAC,MAAS,kBAAiB7D,IAAW,CAAC8D,kBAAK;IAEjDX,gBAAY;IAMTC,aAAA;IAAAI,OAAA,EAAAI,MAAA;IAAAL,UACC;IAAAD,MACA;IAAAD,QACA,EAAAI;EAAS,MACTM,OAAA,CAAAC,IAAA,kBAAAT,UAAA;AAAA;AACA,SAECO,mBAAAZ,KAAA;EAAA;MAAAC,gBAAA;MAAAC,aAAA;MAAAC,QAAA;MAAAG,OAAA;MAAAD,UAAA;MAAAD,MAAA,GAAAnD;IAAA,IAAA+C,KAAA;IAAA;MAAApB,KAAA;MAAAmC,UAAA;MAAAC,WAAA;MAAAC;IAAA,IAAA/D,oBAAA,CAAAkD,MAAA;MACH;MAEJc,EAAA,EAAAb,UAAA;MAEAF,QAAS,EAAAG,OAAA;MACPJ,aAAA;MACAD;IACA;IAAAkB,cAAA,GAAAhE,KAAA,CAAAiE,MAAA,CAAAJ,WAAA;EACAG,cAAA,CAAAE,OAAA,GAAAL,WAAA;EACA,IAAAM,KAAA,GAAAnE,KAAA,CAAAoE,OAAA;IACA,OAAS;MAC6DlB,UAAA;MACtEzB,KAAQ;MACNmC,UAAA;MACAI,cAAA;MAAAf;IAAA;EAEM,IACMC,UACV,EAAAzB,KACA,EACFmC,UAAA,EACFX,MAMM,CACN;EAEA,OAAM,eAActD,IAAA,CAAQ2C,gBACnB,CAAA+B,QAAA;IACLF,KAAA;IACAnB,QAAA,iBAAArD,IAAA,CAAAmE,iBAAA;MACAd;IACA;EAAA,EACA;AAAA;AAIJ,SACEsB,oBAAA,EAAC;EAIL,IAAAC,OAAA,GAAAvE,KAAA,CAAAwE,UAAA,CAAAlC,gBAAA;EAEO,KAAAiC,OAAS,EACd,MAAM,IAAAE,KAAU,0DAAiC;EACjD,OAAKF,OAAA;AACH;AAEF,SAAOG,QAAA;EACT,IAAAC,IAAA;IAAAC,mCAAA;IAAAL,OAAA,GAAAD,mBAAA;IAAA;MAAA7C,KAAA;MAAAuC;IAAA,IAAAO,OAAA;IAAAM,aAAA,GAAAxE,gBAAA;EAEO,IAAAwE,aAAmB;IACxB,IAAMC,iBAAU,GAAAD,aACV,CAAAC,iBAAS,IAAA1E,mBACT,CAAAyE,aAAgB,CAAAE,YAAA,EAAiBvE,eAAA,KAAAL,wBAAA,CAAA0E,aAAA,CAAAG,YAAA,EAAAxE,eAAA;IAGvC,IAAIsE,iBAAe;MAKjB,IAAMG,iBAAA,GACJrE,0BAAc,CAAAkE,iBACd;MAGF,OAAI,eAAmBnF,IAAA,CAAAsF,iBAAA;QACrBC,KAAM;UACNC,MAAO;QACT;MAIA,yBAAO;IACT;IAEA,OAAM;EAIN;EACE,IAAAjB,OAAO,GAAAzC,KAAA,CAAA2D,MAAA,CAAAC,IAAA,WAAAH,KAAA,EAAAI,CAAA;IAGT,OAAM7D,KAAA,CAAA8D,KAAA,KAAkBD,CAAA;EAKxB;EAKF,KAAApB,OAAA,EAGO,OAAM,IAAO;EAClB,IAAAsB,eAAmB,IAAAb,IAAA,IAAAC,mCAAc,GAAAZ,cAAA,CAAAE,OAAA,CAAAA,OAAA,CAAAuB,GAAA,eAAAb,mCAAA,uBAAAA,mCAAA,CAAAc,MAAA,gBAAAf,IAAA,cAAAA,IAAA;EAIjC,OAHgBa,eAAM,KAAW,sBAGpBxF,KAAA,CAAA2F,YAAe,CAAAH,eAGxB;IAOLC,GAAA,EAAAzE;EAEM,KAAAwE,eAAS;AACd;AACF,IAAAI,IAAA,kBAAA5F,KAAA,CAAA6F,IAAA,WAAAC,KAAA;EAEO,IAAA5C,UAAS,GAAA5C,aAAmB;IAAAiE,OAAA,GAAAvE,KAAA,CAAAwE,UAAA,CAAAlC,gBAAA;EACjC,OACEiC,OAAA,EAAArB,UAAA,KAACA,UAAA,GAAa,eAAiBvD,IAC7B,CAAAiD,SAAA;IAKN,GAAAkD,KAAA;IAEA9C,QAAU,iBAAOrD,IAAA,CAAAoG,aAAA;EACjB,oBAAuBpG,IAAA,CAAAoG,aAAA;AAGvB;AAUO,SAASA,cAAA;EACd,OAAKrB,OAAA;AAEP;AASO,SAASsB,gBACdA,CAAA;EAIA,sBAAArG,IAAyB,CAAAM,YAAA;IAEzBgG,KAAM;MAGFC,IAAC;IAEH;IAIFlD,QAAI,iBAAUrD,IAAiB,CAAAiD,SAAA;MAC7BI,QAAM,iBAAYrD,IAAA,CAAAoG,aAA2B;IAE7C;EACE;AAAC;AAAAnD,SAEC,CAAAgD,IAAA,GAASA,IAAA;AAA+BhD,SAAA,CAAA4B,UAAA,GAAAF,mBAAA;AAAA1B,SADnC,CAAA/B,MAAU,GAAAA,MAAA;AAAA,SAEjBsF,iBAAA7E,QAAA,EAAA8E,gBAAA;EAEJ,OAAAA,gBAAA,MAAAA,gBAAA,IAAA9E,QAAA,KAAAA,QAAA;AAEA;AACF,SAAA+E,aAAA/E,QAAA,EAAA8E,gBAAA;EAmBOpE,wBAAmB;EACxB,IAAAsE,SAAA,GAAAH,gBAAA,CAAA7E,QAAA,EAAA8E,gBAAA;IAAAG,SAAA,GAAAlF,YAAA,CAAAiF,SAAA;EACA,KAAAC,SAAA,EAAAC,cAAA,KAAAD,SAAA,CAAAE,aAAA,EACA;EACF,IAOGF,SAAA,CAAAG,eAAA;IACD,IAAMC,SAAA,GAAA/F,0BAAiC,CAAA2F,SAAA,CAAgBG,eAAA;IAEvD,OAAI,eACK/G,IAAA,CAAAgH,SAAA;MAKXzB,KAAA","ignoreList":[]}
@@ -141,60 +141,54 @@ function createFileSystemRouterPlugin(options) {
141
141
  (sp) => Object.keys(sp).every((key) => sp[key] === currentParams[key])
142
142
  );
143
143
  }
144
- const is404 = route.isNotFound || !getPageExport(exported) || isMissingSsgSlug || route.type === "ssg" && isDynamicRoute && loaderData === void 0;
145
- if (isMissingSsgSlug || route.type === "ssg" && isDynamicRoute && loaderData === void 0) {
146
- let notFoundExported = {}, notFoundRoutePath = "/+not-found", searchDir = route.file.replace(/\/[^/]+$/, "");
144
+ const is404 = route.isNotFound || !getPageExport(exported) || isMissingSsgSlug;
145
+ let notFoundRoutePath = null;
146
+ if (isMissingSsgSlug) {
147
+ let searchDir = route.file.replace(/^\.\//, "").replace(/\/[^/]+$/, "");
147
148
  for (; ; ) {
148
149
  for (const ext of [".tsx", ".ts", ".jsx", ".js"]) {
149
150
  const candidate = path.join(routerRoot, searchDir, `+not-found${ext}`);
150
151
  try {
151
- if (notFoundExported = await runner.import(candidate), notFoundExported?.default) {
152
+ if ((await runner.import(candidate))?.default) {
152
153
  notFoundRoutePath = searchDir ? `/${searchDir}/+not-found` : "/+not-found";
153
154
  break;
154
155
  }
155
156
  } catch {
156
157
  }
157
158
  }
158
- if (notFoundExported?.default || !searchDir) break;
159
+ if (notFoundRoutePath || !searchDir) break;
159
160
  const parent = searchDir.replace(/\/[^/]+$/, "");
160
161
  parent === searchDir ? searchDir = "" : searchDir = parent;
161
162
  }
162
- if (notFoundExported.default) {
163
- setServerContext({
164
- loaderData: void 0,
165
- loaderProps,
166
- matches: []
167
- });
168
- const notFoundHtml = await render({
169
- mode: "ssg",
170
- loaderData: void 0,
171
- loaderProps,
172
- path: notFoundRoutePath,
173
- preloads,
174
- matches: []
175
- });
176
- return new Response(notFoundHtml, {
177
- status: 404,
178
- headers: { "Content-Type": "text/html" }
179
- });
180
- }
181
- return new Response("<html><body><h1>404 - Not Found</h1></body></html>", {
182
- status: 404,
183
- headers: { "Content-Type": "text/html" }
184
- });
163
+ if (!notFoundRoutePath)
164
+ return new Response(
165
+ "<html><body><h1>404 - Not Found</h1></body></html>",
166
+ {
167
+ status: 404,
168
+ headers: { "Content-Type": "text/html" }
169
+ }
170
+ );
185
171
  }
186
- const html = await render({
172
+ const renderPath = notFoundRoutePath || loaderProps?.path || "/";
173
+ let html = await render({
187
174
  mode: isSpaShell ? "spa-shell" : route.type === "ssg" ? "ssg" : route.type === "ssr" ? "ssr" : "spa",
188
175
  loaderData,
189
176
  loaderProps,
190
- path: loaderProps?.path || "/",
177
+ path: renderPath,
191
178
  preloads,
192
179
  matches
193
180
  });
194
- return is404 ? new Response(html, {
195
- status: 404,
196
- headers: { "Content-Type": "text/html" }
197
- }) : html;
181
+ if (is404) {
182
+ if (notFoundRoutePath) {
183
+ const originalPath = loaderProps?.path || "/", notFoundMarker = `<script>window.__one404={originalPath:${JSON.stringify(originalPath)},notFoundPath:${JSON.stringify(notFoundRoutePath)}}</script>`;
184
+ html = html.includes("</head>") ? html.replace("</head>", `${notFoundMarker}</head>`) : html.replace("<body", `${notFoundMarker}<body`);
185
+ }
186
+ return new Response(html, {
187
+ status: 404,
188
+ headers: { "Content-Type": "text/html" }
189
+ });
190
+ }
191
+ return html;
198
192
  } catch (err) {
199
193
  if (isResponse(err))
200
194
  return err;