one 1.25.6 → 1.25.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 (104) hide show
  1. package/dist/cjs/cli/prebuild.cjs +2 -0
  2. package/dist/cjs/cli/prebuild.native.js +2 -0
  3. package/dist/cjs/cli/prebuild.native.js.map +1 -1
  4. package/dist/cjs/cli/prebuild.test.cjs +45 -0
  5. package/dist/cjs/cli/prebuild.test.native.js +54 -0
  6. package/dist/cjs/cli/prebuild.test.native.js.map +1 -0
  7. package/dist/cjs/createHandleRequest.cjs +5 -1
  8. package/dist/cjs/createHandleRequest.native.js +5 -1
  9. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  10. package/dist/cjs/createHandleRequest.test.cjs +59 -1
  11. package/dist/cjs/createHandleRequest.test.native.js +70 -0
  12. package/dist/cjs/createHandleRequest.test.native.js.map +1 -1
  13. package/dist/cjs/router/diagnoseRouteLoadFailure.cjs +95 -0
  14. package/dist/cjs/router/diagnoseRouteLoadFailure.native.js +202 -0
  15. package/dist/cjs/router/diagnoseRouteLoadFailure.native.js.map +1 -0
  16. package/dist/cjs/router/useViteRoutes.cjs +6 -0
  17. package/dist/cjs/router/useViteRoutes.native.js +6 -0
  18. package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
  19. package/dist/cjs/server/oneServe.cjs +0 -2
  20. package/dist/cjs/server/oneServe.native.js +0 -2
  21. package/dist/cjs/server/oneServe.native.js.map +1 -1
  22. package/dist/cjs/server/workerHandler.cjs +1 -1
  23. package/dist/cjs/server/workerHandler.native.js +1 -1
  24. package/dist/cjs/server/workerHandler.native.js.map +1 -1
  25. package/dist/cjs/server/workerHandler.test.cjs +117 -0
  26. package/dist/cjs/server/workerHandler.test.native.js +137 -0
  27. package/dist/cjs/server/workerHandler.test.native.js.map +1 -0
  28. package/dist/cjs/views/ScrollBehavior.cjs +10 -6
  29. package/dist/cjs/views/ScrollBehavior.native.js +10 -6
  30. package/dist/cjs/views/ScrollBehavior.native.js.map +1 -1
  31. package/dist/cjs/views/ScrollBehavior.test.cjs +132 -0
  32. package/dist/cjs/views/ScrollBehavior.test.native.js +184 -0
  33. package/dist/cjs/views/ScrollBehavior.test.native.js.map +1 -0
  34. package/dist/esm/cli/prebuild.mjs +2 -0
  35. package/dist/esm/cli/prebuild.mjs.map +1 -1
  36. package/dist/esm/cli/prebuild.native.js +2 -0
  37. package/dist/esm/cli/prebuild.native.js.map +1 -1
  38. package/dist/esm/cli/prebuild.test.mjs +46 -0
  39. package/dist/esm/cli/prebuild.test.mjs.map +1 -0
  40. package/dist/esm/cli/prebuild.test.native.js +52 -0
  41. package/dist/esm/cli/prebuild.test.native.js.map +1 -0
  42. package/dist/esm/createHandleRequest.mjs +5 -2
  43. package/dist/esm/createHandleRequest.mjs.map +1 -1
  44. package/dist/esm/createHandleRequest.native.js +5 -2
  45. package/dist/esm/createHandleRequest.native.js.map +1 -1
  46. package/dist/esm/createHandleRequest.test.mjs +59 -1
  47. package/dist/esm/createHandleRequest.test.mjs.map +1 -1
  48. package/dist/esm/createHandleRequest.test.native.js +70 -0
  49. package/dist/esm/createHandleRequest.test.native.js.map +1 -1
  50. package/dist/esm/router/diagnoseRouteLoadFailure.mjs +69 -0
  51. package/dist/esm/router/diagnoseRouteLoadFailure.mjs.map +1 -0
  52. package/dist/esm/router/diagnoseRouteLoadFailure.native.js +173 -0
  53. package/dist/esm/router/diagnoseRouteLoadFailure.native.js.map +1 -0
  54. package/dist/esm/router/useViteRoutes.mjs +6 -0
  55. package/dist/esm/router/useViteRoutes.mjs.map +1 -1
  56. package/dist/esm/router/useViteRoutes.native.js +6 -0
  57. package/dist/esm/router/useViteRoutes.native.js.map +1 -1
  58. package/dist/esm/server/oneServe.mjs +0 -2
  59. package/dist/esm/server/oneServe.mjs.map +1 -1
  60. package/dist/esm/server/oneServe.native.js +0 -2
  61. package/dist/esm/server/oneServe.native.js.map +1 -1
  62. package/dist/esm/server/workerHandler.mjs +2 -2
  63. package/dist/esm/server/workerHandler.mjs.map +1 -1
  64. package/dist/esm/server/workerHandler.native.js +2 -2
  65. package/dist/esm/server/workerHandler.native.js.map +1 -1
  66. package/dist/esm/server/workerHandler.test.mjs +118 -0
  67. package/dist/esm/server/workerHandler.test.mjs.map +1 -0
  68. package/dist/esm/server/workerHandler.test.native.js +135 -0
  69. package/dist/esm/server/workerHandler.test.native.js.map +1 -0
  70. package/dist/esm/views/ScrollBehavior.mjs +10 -6
  71. package/dist/esm/views/ScrollBehavior.mjs.map +1 -1
  72. package/dist/esm/views/ScrollBehavior.native.js +10 -6
  73. package/dist/esm/views/ScrollBehavior.native.js.map +1 -1
  74. package/dist/esm/views/ScrollBehavior.test.mjs +109 -0
  75. package/dist/esm/views/ScrollBehavior.test.mjs.map +1 -0
  76. package/dist/esm/views/ScrollBehavior.test.native.js +158 -0
  77. package/dist/esm/views/ScrollBehavior.test.native.js.map +1 -0
  78. package/package.json +9 -9
  79. package/src/cli/prebuild.test.ts +48 -0
  80. package/src/cli/prebuild.ts +3 -0
  81. package/src/createHandleRequest.test.ts +55 -1
  82. package/src/createHandleRequest.ts +8 -1
  83. package/src/router/diagnoseRouteLoadFailure.ts +108 -0
  84. package/src/router/useViteRoutes.tsx +10 -0
  85. package/src/server/oneServe.ts +0 -2
  86. package/src/server/workerHandler.test.ts +125 -0
  87. package/src/server/workerHandler.ts +3 -2
  88. package/src/views/ScrollBehavior.test.tsx +137 -0
  89. package/src/views/ScrollBehavior.tsx +18 -8
  90. package/types/cli/prebuild.d.ts.map +1 -1
  91. package/types/cli/prebuild.test.d.ts +2 -0
  92. package/types/cli/prebuild.test.d.ts.map +1 -0
  93. package/types/createHandleRequest.d.ts +1 -0
  94. package/types/createHandleRequest.d.ts.map +1 -1
  95. package/types/router/diagnoseRouteLoadFailure.d.ts +14 -0
  96. package/types/router/diagnoseRouteLoadFailure.d.ts.map +1 -0
  97. package/types/router/useViteRoutes.d.ts.map +1 -1
  98. package/types/server/oneServe.d.ts.map +1 -1
  99. package/types/server/workerHandler.d.ts.map +1 -1
  100. package/types/server/workerHandler.test.d.ts +2 -0
  101. package/types/server/workerHandler.test.d.ts.map +1 -0
  102. package/types/views/ScrollBehavior.d.ts.map +1 -1
  103. package/types/views/ScrollBehavior.test.d.ts +2 -0
  104. package/types/views/ScrollBehavior.test.d.ts.map +1 -0
@@ -0,0 +1,118 @@
1
+ import { afterEach, describe, expect, it, vi } from "vitest";
2
+ import { createWorkerHandler } from "./workerHandler.mjs";
3
+ const pageRoute = {
4
+ file: "app/some-page.tsx",
5
+ page: "/some-page",
6
+ namedRegex: "^/some-page(?:/)?$",
7
+ urlPath: "/some-page",
8
+ urlCleanPath: "/some-page",
9
+ routeKeys: {},
10
+ type: "ssr",
11
+ middlewares: []
12
+ };
13
+ const apiRoute = {
14
+ file: "app/api/status+api.ts",
15
+ page: "/api/status",
16
+ namedRegex: "^/api/status(?:/)?$",
17
+ urlPath: "/api/status",
18
+ urlCleanPath: "/api/status",
19
+ routeKeys: {},
20
+ type: "api",
21
+ middlewares: []
22
+ };
23
+ const buildInfo = {
24
+ constants: {
25
+ CACHE_KEY: "test"
26
+ },
27
+ routeToBuildInfo: {
28
+ [pageRoute.file]: {
29
+ type: "ssr",
30
+ path: pageRoute.page,
31
+ routeFile: pageRoute.file,
32
+ middlewares: [],
33
+ preloadPath: "",
34
+ cssPreloadPath: "",
35
+ loaderPath: "",
36
+ cleanPath: pageRoute.page,
37
+ htmlPath: "",
38
+ clientJsPath: "",
39
+ serverJsPath: "",
40
+ params: {},
41
+ preloads: [],
42
+ css: [],
43
+ layoutCSS: []
44
+ }
45
+ },
46
+ pathToRoute: {},
47
+ routeMap: {},
48
+ manifest: {
49
+ pageRoutes: [pageRoute],
50
+ apiRoutes: [apiRoute],
51
+ allRoutes: [pageRoute, apiRoute]
52
+ },
53
+ preloads: {},
54
+ cssPreloads: {},
55
+ loaders: {}
56
+ };
57
+ const lazyRoutes = {
58
+ serverEntry: async () => ({
59
+ default: {
60
+ render: () => "<html></html>"
61
+ }
62
+ }),
63
+ pages: {
64
+ [pageRoute.file]: async () => ({})
65
+ },
66
+ api: {
67
+ [apiRoute.page]: async () => ({
68
+ HEAD: () => new Response(null, {
69
+ status: 204
70
+ })
71
+ })
72
+ },
73
+ middlewares: {}
74
+ };
75
+ function createHandler() {
76
+ vi.stubEnv("ONE_BUFFERED_SSR", "1");
77
+ return createWorkerHandler({
78
+ oneOptions: {
79
+ web: {
80
+ defaultRenderMode: "ssr"
81
+ }
82
+ },
83
+ buildInfo,
84
+ lazyRoutes
85
+ }).handleRequest;
86
+ }
87
+ afterEach(() => {
88
+ vi.unstubAllEnvs();
89
+ });
90
+ describe("createWorkerHandler", () => {
91
+ it("answers HEAD page requests exactly like GET", async () => {
92
+ const handleRequest = createHandler();
93
+ const get = await handleRequest(new Request("https://example.com/some-page"));
94
+ const head = await handleRequest(new Request("https://example.com/some-page", {
95
+ method: "HEAD"
96
+ }));
97
+ if (!(get instanceof Response) || !(head instanceof Response)) {
98
+ throw new Error("expected both GET and HEAD to return a Response");
99
+ }
100
+ expect(get.status).toBe(200);
101
+ expect(head.status).toBe(get.status);
102
+ expect(head.headers.get("content-type")).toBe(get.headers.get("content-type"));
103
+ });
104
+ it("does not route POST requests to page handlers", async () => {
105
+ const response = await createHandler()(new Request("https://example.com/some-page", {
106
+ method: "POST"
107
+ }));
108
+ expect(response).toBeNull();
109
+ });
110
+ it("continues routing HEAD requests to API handlers", async () => {
111
+ const response = await createHandler()(new Request("https://example.com/api/status", {
112
+ method: "HEAD"
113
+ }));
114
+ expect(response).toBeInstanceOf(Response);
115
+ expect(response?.status).toBe(204);
116
+ });
117
+ });
118
+ //# sourceMappingURL=workerHandler.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["afterEach","describe","expect","it","vi","createWorkerHandler","pageRoute","file","page","namedRegex","urlPath","urlCleanPath","routeKeys","type","middlewares","apiRoute","buildInfo","constants","CACHE_KEY","routeToBuildInfo","path","routeFile","preloadPath","cssPreloadPath","loaderPath","cleanPath","htmlPath","clientJsPath","serverJsPath","params","preloads","css","layoutCSS","pathToRoute","routeMap","manifest","pageRoutes","apiRoutes","allRoutes","cssPreloads","loaders","lazyRoutes","serverEntry","default","render","pages","api","HEAD","Response","status","createHandler","stubEnv","oneOptions","web","defaultRenderMode","handleRequest","unstubAllEnvs","get","Request","head","method","Error","toBe","headers","response","toBeNull","toBeInstanceOf"],"sources":["../../../src/server/workerHandler.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAEpD,SAASC,mBAAA,QAA4C;AAErD,MAAMC,SAAA,GAAY;EAChBC,IAAA,EAAM;EACNC,IAAA,EAAM;EACNC,UAAA,EAAY;EACZC,OAAA,EAAS;EACTC,YAAA,EAAc;EACdC,SAAA,EAAW,CAAC;EACZC,IAAA,EAAM;EACNC,WAAA,EAAa;AACf;AAEA,MAAMC,QAAA,GAAW;EACfR,IAAA,EAAM;EACNC,IAAA,EAAM;EACNC,UAAA,EAAY;EACZC,OAAA,EAAS;EACTC,YAAA,EAAc;EACdC,SAAA,EAAW,CAAC;EACZC,IAAA,EAAM;EACNC,WAAA,EAAa;AACf;AAEA,MAAME,SAAA,GAAY;EAChBC,SAAA,EAAW;IAAEC,SAAA,EAAW;EAAO;EAC/BC,gBAAA,EAAkB;IAChB,CAACb,SAAA,CAAUC,IAAI,GAAG;MAChBM,IAAA,EAAM;MACNO,IAAA,EAAMd,SAAA,CAAUE,IAAA;MAChBa,SAAA,EAAWf,SAAA,CAAUC,IAAA;MACrBO,WAAA,EAAa,EAAC;MACdQ,WAAA,EAAa;MACbC,cAAA,EAAgB;MAChBC,UAAA,EAAY;MACZC,SAAA,EAAWnB,SAAA,CAAUE,IAAA;MACrBkB,QAAA,EAAU;MACVC,YAAA,EAAc;MACdC,YAAA,EAAc;MACdC,MAAA,EAAQ,CAAC;MACTC,QAAA,EAAU,EAAC;MACXC,GAAA,EAAK,EAAC;MACNC,SAAA,EAAW;IACb;EACF;EACAC,WAAA,EAAa,CAAC;EACdC,QAAA,EAAU,CAAC;EACXC,QAAA,EAAU;IACRC,UAAA,EAAY,CAAC9B,SAAS;IACtB+B,SAAA,EAAW,CAACtB,QAAQ;IACpBuB,SAAA,EAAW,CAAChC,SAAA,EAAWS,QAAQ;EACjC;EACAe,QAAA,EAAU,CAAC;EACXS,WAAA,EAAa,CAAC;EACdC,OAAA,EAAS,CAAC;AACZ;AAEA,MAAMC,UAAA,GAAa;EACjBC,WAAA,EAAa,MAAAA,CAAA,MAAa;IACxBC,OAAA,EAAS;MACPC,MAAA,EAAQA,CAAA,KAAM;IAChB;EACF;EACAC,KAAA,EAAO;IACL,CAACvC,SAAA,CAAUC,IAAI,GAAG,aAAa,CAAC;EAClC;EACAuC,GAAA,EAAK;IACH,CAAC/B,QAAA,CAASP,IAAI,GAAG,aAAa;MAC5BuC,IAAA,EAAMA,CAAA,KAAM,IAAIC,QAAA,CAAS,MAAM;QAAEC,MAAA,EAAQ;MAAI,CAAC;IAChD;EACF;EACAnC,WAAA,EAAa,CAAC;AAChB;AAEA,SAASoC,cAAA,EAAgB;EACvB9C,EAAA,CAAG+C,OAAA,CAAQ,oBAAoB,GAAG;EAClC,OAAO9C,mBAAA,CAAoB;IACzB+C,UAAA,EAAY;MAAEC,GAAA,EAAK;QAAEC,iBAAA,EAAmB;MAAM;IAAE;IAChDtC,SAAA;IACAyB;EACF,CAAC,EAAEc,aAAA;AACL;AAEAvD,SAAA,CAAU,MAAM;EACdI,EAAA,CAAGoD,aAAA,CAAc;AACnB,CAAC;AAEDvD,QAAA,CAAS,uBAAuB,MAAM;EACpCE,EAAA,CAAG,+CAA+C,YAAY;IAC5D,MAAMoD,aAAA,GAAgBL,aAAA,CAAc;IACpC,MAAMO,GAAA,GAAM,MAAMF,aAAA,CAAc,IAAIG,OAAA,CAAQ,+BAA+B,CAAC;IAC5E,MAAMC,IAAA,GAAO,MAAMJ,aAAA,CACjB,IAAIG,OAAA,CAAQ,iCAAiC;MAAEE,MAAA,EAAQ;IAAO,CAAC,CACjE;IAEA,IAAI,EAAEH,GAAA,YAAeT,QAAA,KAAa,EAAEW,IAAA,YAAgBX,QAAA,GAAW;MAC7D,MAAM,IAAIa,KAAA,CAAM,iDAAiD;IACnE;IAIA3D,MAAA,CAAOuD,GAAA,CAAIR,MAAM,EAAEa,IAAA,CAAK,GAAG;IAC3B5D,MAAA,CAAOyD,IAAA,CAAKV,MAAM,EAAEa,IAAA,CAAKL,GAAA,CAAIR,MAAM;IACnC/C,MAAA,CAAOyD,IAAA,CAAKI,OAAA,CAAQN,GAAA,CAAI,cAAc,CAAC,EAAEK,IAAA,CAAKL,GAAA,CAAIM,OAAA,CAAQN,GAAA,CAAI,cAAc,CAAC;EAC/E,CAAC;EAEDtD,EAAA,CAAG,iDAAiD,YAAY;IAC9D,MAAM6D,QAAA,GAAW,MAAMd,aAAA,CAAc,EACnC,IAAIQ,OAAA,CAAQ,iCAAiC;MAAEE,MAAA,EAAQ;IAAO,CAAC,CACjE;IAEA1D,MAAA,CAAO8D,QAAQ,EAAEC,QAAA,CAAS;EAC5B,CAAC;EAED9D,EAAA,CAAG,mDAAmD,YAAY;IAChE,MAAM6D,QAAA,GAAW,MAAMd,aAAA,CAAc,EACnC,IAAIQ,OAAA,CAAQ,kCAAkC;MAAEE,MAAA,EAAQ;IAAO,CAAC,CAClE;IAEA1D,MAAA,CAAO8D,QAAQ,EAAEE,cAAA,CAAelB,QAAQ;IACxC9C,MAAA,CAAO8D,QAAA,EAAUf,MAAM,EAAEa,IAAA,CAAK,GAAG;EACnC,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,135 @@
1
+ import { afterEach, describe, expect, it, vi } from "vitest";
2
+ import { createWorkerHandler } from "./workerHandler.native.js";
3
+ function _instanceof(left, right) {
4
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
5
+ return !!right[Symbol.hasInstance](left);
6
+ } else {
7
+ return left instanceof right;
8
+ }
9
+ }
10
+ var pageRoute = {
11
+ file: "app/some-page.tsx",
12
+ page: "/some-page",
13
+ namedRegex: "^/some-page(?:/)?$",
14
+ urlPath: "/some-page",
15
+ urlCleanPath: "/some-page",
16
+ routeKeys: {},
17
+ type: "ssr",
18
+ middlewares: []
19
+ };
20
+ var apiRoute = {
21
+ file: "app/api/status+api.ts",
22
+ page: "/api/status",
23
+ namedRegex: "^/api/status(?:/)?$",
24
+ urlPath: "/api/status",
25
+ urlCleanPath: "/api/status",
26
+ routeKeys: {},
27
+ type: "api",
28
+ middlewares: []
29
+ };
30
+ var buildInfo = {
31
+ constants: {
32
+ CACHE_KEY: "test"
33
+ },
34
+ routeToBuildInfo: {
35
+ [pageRoute.file]: {
36
+ type: "ssr",
37
+ path: pageRoute.page,
38
+ routeFile: pageRoute.file,
39
+ middlewares: [],
40
+ preloadPath: "",
41
+ cssPreloadPath: "",
42
+ loaderPath: "",
43
+ cleanPath: pageRoute.page,
44
+ htmlPath: "",
45
+ clientJsPath: "",
46
+ serverJsPath: "",
47
+ params: {},
48
+ preloads: [],
49
+ css: [],
50
+ layoutCSS: []
51
+ }
52
+ },
53
+ pathToRoute: {},
54
+ routeMap: {},
55
+ manifest: {
56
+ pageRoutes: [pageRoute],
57
+ apiRoutes: [apiRoute],
58
+ allRoutes: [pageRoute, apiRoute]
59
+ },
60
+ preloads: {},
61
+ cssPreloads: {},
62
+ loaders: {}
63
+ };
64
+ var lazyRoutes = {
65
+ serverEntry: async function () {
66
+ return {
67
+ default: {
68
+ render: function () {
69
+ return "<html></html>";
70
+ }
71
+ }
72
+ };
73
+ },
74
+ pages: {
75
+ [pageRoute.file]: async function () {
76
+ return {};
77
+ }
78
+ },
79
+ api: {
80
+ [apiRoute.page]: async function () {
81
+ return {
82
+ HEAD: function () {
83
+ return new Response(null, {
84
+ status: 204
85
+ });
86
+ }
87
+ };
88
+ }
89
+ },
90
+ middlewares: {}
91
+ };
92
+ function createHandler() {
93
+ vi.stubEnv("ONE_BUFFERED_SSR", "1");
94
+ return createWorkerHandler({
95
+ oneOptions: {
96
+ web: {
97
+ defaultRenderMode: "ssr"
98
+ }
99
+ },
100
+ buildInfo,
101
+ lazyRoutes
102
+ }).handleRequest;
103
+ }
104
+ afterEach(function () {
105
+ vi.unstubAllEnvs();
106
+ });
107
+ describe("createWorkerHandler", function () {
108
+ it("answers HEAD page requests exactly like GET", async function () {
109
+ var handleRequest = createHandler();
110
+ var get = await handleRequest(new Request("https://example.com/some-page"));
111
+ var head = await handleRequest(new Request("https://example.com/some-page", {
112
+ method: "HEAD"
113
+ }));
114
+ if (!_instanceof(get, Response) || !_instanceof(head, Response)) {
115
+ throw new Error("expected both GET and HEAD to return a Response");
116
+ }
117
+ expect(get.status).toBe(200);
118
+ expect(head.status).toBe(get.status);
119
+ expect(head.headers.get("content-type")).toBe(get.headers.get("content-type"));
120
+ });
121
+ it("does not route POST requests to page handlers", async function () {
122
+ var response = await createHandler()(new Request("https://example.com/some-page", {
123
+ method: "POST"
124
+ }));
125
+ expect(response).toBeNull();
126
+ });
127
+ it("continues routing HEAD requests to API handlers", async function () {
128
+ var response = await createHandler()(new Request("https://example.com/api/status", {
129
+ method: "HEAD"
130
+ }));
131
+ expect(response).toBeInstanceOf(Response);
132
+ expect(response === null || response === void 0 ? void 0 : response.status).toBe(204);
133
+ });
134
+ });
135
+ //# sourceMappingURL=workerHandler.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["afterEach","describe","expect","it","vi","createWorkerHandler","_instanceof","left","right","Symbol","hasInstance","pageRoute","file","page","namedRegex","urlPath","urlCleanPath","routeKeys","type","middlewares","apiRoute","buildInfo","constants","CACHE_KEY","routeToBuildInfo","path","routeFile","preloadPath","cssPreloadPath","loaderPath","cleanPath","htmlPath","clientJsPath","serverJsPath","params","preloads","css","layoutCSS","pathToRoute","routeMap","manifest","pageRoutes","apiRoutes","allRoutes","cssPreloads","loaders","lazyRoutes","serverEntry","default","render","pages","api","HEAD","Response","status","createHandler","stubEnv","oneOptions","web","defaultRenderMode","handleRequest"],"sources":["../../../src/server/workerHandler.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAEpD,SAASC,mBAAA,QAA4C;AAErD,SAAMC,WAAYA,CAAAC,IAAA,EAAAC,KAAA;EAChB,IAAAA,KAAM,mBAAAC,MAAA,oBAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IACN,OAAM,EAAAF,KAAA,CAAAC,MAAA,CAAAC,WAAA,EAAAH,IAAA;EACN;IACA,OAASA,IAAA,YAAAC,KAAA;EACT;AAAc;AACF,IACZG,SAAM;EACNC,IAAA,qBAAc;EAChBC,IAAA;EAEAC,UAAM,sBAAW;EACfC,OAAM;EACNC,YAAM;EACNC,SAAA,GAAY;EACZC,IAAA,OAAS;EACTC,WAAA;AAAc;AACF,IACZC,QAAM;EACNR,IAAA,yBAAc;EAChBC,IAAA;EAEAC,UAAM,uBAAY;EAChBC,OAAA,eAAa;EACbC,YAAA,eAAkB;EAAAC,SACf,IAAU;EAAOC,IAChB,OAAM;EAAAC,WACA;AAAU;AACK,IAAAE,SACrB;EAAcC,SACd;IAAaC,SACb;EAAgB;EACJC,gBACD;IAAU,CAAAb,SACrB,CAAAC,IAAU;MACVM,IAAA;MACAO,IAAA,EAAAd,SAAc,CAAAE,IAAA;MACda,SAAS,EAAAf,SAAA,CAAAC,IAAA;MACTO,WAAW;MACXQ,WAAM;MACNC,cAAY;MACdC,UAAA;MACFC,SAAA,EAAAnB,SAAA,CAAAE,IAAA;MACAkB,QAAA,EAAc;MACdC,YAAW;MACXC,YAAU;MACRC,MAAA,IAAY;MACZC,QAAA,EAAY;MACZC,GAAA;MACFC,SAAA;IACA;EACA;EACAC,WAAU;EACZC,QAAA;EAEAC,QAAM;IACJC,UAAA,EAAa,CACX9B,SAAS;IAET+B,SAAA,GACFtB,QAAA,CACA;IACEuB,SAAC,EAAU,CACbhC,SAAA,EACAS,QAAK;EAC2B;EACkBe,QAChD;EACFS,WAAA;EACAC,OAAA;AACF;AAEA,IAAAC,UAAS;EACPC,WAAW,iBAAAA,CAAA;IACX,OAAO;MACLC,OAAA;QACAC,MAAA,WAAAA,CAAA;UACA;QACC;MACL;IAEA;EACE;EACDC,KAAA;IAED,CAAAvC,SAAS,CAAAC,IAAA,qBAA6B;MACjC;IACD;EACA;EACAuC,GAAA;IAAmB,CAAA/B,QACb,CAAAP,IAAQ;MACd;QAEIuC,IAAE,WAAAA,CAAA,EAAe;UACnB,OAAU,IAAAC,QAAM;YAClBC,MAAA;UAIA,CAAO;QACP;MACA;IACD;EAED;EACEnC,WAAM;AAA+B;AAC4B,SACjEoC,cAAA;EAEAnD,EAAA,CAAAoD,OAAO,mBAAmB;EAC5B,OAACnD,mBAAA;IAEDoD,UAAG;MACDC,GAAA,EAAM;QACJC,iBAAY;MACd;IAEA;IACAtC,SAAO;IACRyB;EACF,GAAAc,aAAA","ignoreList":[]}
@@ -5,7 +5,6 @@ const KEY = "one-sr";
5
5
  const GROUP_KEY = "one-sr-groups";
6
6
  const getState = () => JSON.parse(sessionStorage.getItem(KEY) || "{}");
7
7
  const getGroupState = () => JSON.parse(sessionStorage.getItem(GROUP_KEY) || "{}");
8
- let isFirstLoad = true;
9
8
  let activeGroups = /* @__PURE__ */new Set();
10
9
  function registerScrollGroup(groupId) {
11
10
  activeGroups.add(groupId);
@@ -16,7 +15,7 @@ function registerScrollGroup(groupId) {
16
15
  function getGroupKey(pathname) {
17
16
  let longestMatch = null;
18
17
  for (const group of activeGroups) {
19
- if (pathname.startsWith(group) && (!longestMatch || group.length > longestMatch.length)) {
18
+ if ((pathname === group || pathname.startsWith(`${group}/`)) && (!longestMatch || group.length > longestMatch.length)) {
20
19
  longestMatch = group;
21
20
  }
22
21
  }
@@ -72,6 +71,9 @@ function configure(props) {
72
71
  return;
73
72
  }
74
73
  disable?.();
74
+ const initialLocation = `${window.location.pathname}${window.location.search}${window.location.hash}`;
75
+ let isFirstStateChange = true;
76
+ previousPathname = window.location.pathname;
75
77
  const popStateController = new AbortController();
76
78
  window.addEventListener("popstate", () => {
77
79
  didPop = true;
@@ -85,10 +87,12 @@ function configure(props) {
85
87
  }
86
88
  });
87
89
  const disposeOnRootState = subscribeToRootState(state => {
88
- if (isFirstLoad) {
89
- isFirstLoad = false;
90
- previousPathname = window.location.pathname;
91
- return;
90
+ if (isFirstStateChange) {
91
+ isFirstStateChange = false;
92
+ const currentLocation = `${window.location.pathname}${window.location.search}${window.location.hash}`;
93
+ if (currentLocation === initialLocation) {
94
+ return;
95
+ }
92
96
  }
93
97
  if (state.linkOptions?.scroll === false) {
94
98
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","setLastAction","subscribeToLoadingState","subscribeToRootState","KEY","GROUP_KEY","getState","JSON","parse","sessionStorage","getItem","getGroupState","isFirstLoad","activeGroups","Set","registerScrollGroup","groupId","add","delete","getGroupKey","pathname","longestMatch","group","startsWith","length","restorePosition","positions","saved","window","location","setTimeout","scrollTo","error","console","removeItem","restoreGroupPosition","didPop","previousPathname","rememberScrollPosition","state","scrollY","setItem","stringify","groupKey","groupState","disable","configure","props","addEventListener","popStateController","AbortController","signal","disposeOnLoadState","disposeOnRootState","linkOptions","scroll","hash","currentPathname","scrollToHash","prevGroup","currentGroup","scrollGroup","abort","id","slice","el","document","getElementById","scrollIntoView","behavior","ScrollBehavior","process","env","VITE_ENVIRONMENT"],"sources":["../../../src/views/ScrollBehavior.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","setLastAction","subscribeToLoadingState","subscribeToRootState","KEY","GROUP_KEY","getState","JSON","parse","sessionStorage","getItem","getGroupState","activeGroups","Set","registerScrollGroup","groupId","add","delete","getGroupKey","pathname","longestMatch","group","startsWith","length","restorePosition","positions","saved","window","location","setTimeout","scrollTo","error","console","removeItem","restoreGroupPosition","didPop","previousPathname","rememberScrollPosition","state","scrollY","setItem","stringify","groupKey","groupState","disable","configure","props","addEventListener","initialLocation","search","hash","isFirstStateChange","popStateController","AbortController","signal","disposeOnLoadState","disposeOnRootState","currentLocation","linkOptions","scroll","currentPathname","scrollToHash","prevGroup","currentGroup","scrollGroup","abort","id","slice","el","document","getElementById","scrollIntoView","behavior","ScrollBehavior","process","env","VITE_ENVIRONMENT"],"sources":["../../../src/views/ScrollBehavior.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,6 @@ var getState = function () {
9
9
  var getGroupState = function () {
10
10
  return JSON.parse(sessionStorage.getItem(GROUP_KEY) || "{}");
11
11
  };
12
- var isFirstLoad = true;
13
12
  var activeGroups = /* @__PURE__ */new Set();
14
13
  function registerScrollGroup(groupId) {
15
14
  activeGroups.add(groupId);
@@ -25,7 +24,7 @@ function getGroupKey(pathname) {
25
24
  try {
26
25
  for (var _iterator = activeGroups[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
27
26
  var group = _step.value;
28
- if (pathname.startsWith(group) && (!longestMatch || group.length > longestMatch.length)) {
27
+ if ((pathname === group || pathname.startsWith(`${group}/`)) && (!longestMatch || group.length > longestMatch.length)) {
29
28
  longestMatch = group;
30
29
  }
31
30
  }
@@ -95,6 +94,9 @@ function configure(props) {
95
94
  return;
96
95
  }
97
96
  disable === null || disable === void 0 ? void 0 : disable();
97
+ var initialLocation = `${window.location.pathname}${window.location.search}${window.location.hash}`;
98
+ var isFirstStateChange = true;
99
+ previousPathname = window.location.pathname;
98
100
  var popStateController = new AbortController();
99
101
  window.addEventListener("popstate", function () {
100
102
  didPop = true;
@@ -109,10 +111,12 @@ function configure(props) {
109
111
  });
110
112
  var disposeOnRootState = subscribeToRootState(function (state) {
111
113
  var _state_linkOptions;
112
- if (isFirstLoad) {
113
- isFirstLoad = false;
114
- previousPathname = window.location.pathname;
115
- return;
114
+ if (isFirstStateChange) {
115
+ isFirstStateChange = false;
116
+ var currentLocation = `${window.location.pathname}${window.location.search}${window.location.hash}`;
117
+ if (currentLocation === initialLocation) {
118
+ return;
119
+ }
116
120
  }
117
121
  if (((_state_linkOptions = state.linkOptions) === null || _state_linkOptions === void 0 ? void 0 : _state_linkOptions.scroll) === false) {
118
122
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","setLastAction","subscribeToLoadingState","subscribeToRootState","KEY","GROUP_KEY","getState","JSON","parse","sessionStorage","getItem","getGroupState","isFirstLoad","activeGroups","Set","registerScrollGroup","groupId","add","delete","getGroupKey","pathname","longestMatch","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","group","value","startsWith","length","err","return","restorePosition","positions","saved","window","location","setTimeout","scrollTo","error","console","removeItem","restoreGroupPosition","didPop","previousPathname","rememberScrollPosition","state","scrollY","setItem","stringify","groupKey","groupState","disable","configure","props","addEventListener","popStateController","AbortController","signal","disposeOnLoadState","disposeOnRootState","_state_linkOptions","linkOptions","scroll","hash","currentPathname","scrollToHash","_state_linkOptions1","prevGroup","currentGroup","scrollGroup","abort"],"sources":["../../../src/views/ScrollBehavior.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","setLastAction","subscribeToLoadingState","subscribeToRootState","KEY","GROUP_KEY","getState","JSON","parse","sessionStorage","getItem","getGroupState","activeGroups","Set","registerScrollGroup","groupId","add","delete","getGroupKey","pathname","longestMatch","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","group","value","startsWith","length","err","return","restorePosition","positions","saved","window","location","setTimeout","scrollTo","error","console","removeItem","restoreGroupPosition","didPop","previousPathname","rememberScrollPosition","state","scrollY","setItem","stringify","groupKey","groupState","disable","configure","props","addEventListener","initialLocation","search","hash","isFirstStateChange","popStateController","AbortController","signal","disposeOnLoadState","disposeOnRootState","_state_linkOptions","currentLocation","linkOptions","scroll","currentPathname","scrollToHash","_state_linkOptions1","prevGroup","currentGroup","scrollGroup","abort"],"sources":["../../../src/views/ScrollBehavior.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,109 @@
1
+ import TestRenderer, { act } from "react-test-renderer";
2
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
3
+ import { registerScrollGroup, ScrollBehavior } from "./ScrollBehavior.mjs";
4
+ import { jsx } from "react/jsx-runtime";
5
+ const subscriptions = vi.hoisted(() => ({
6
+ loading: void 0,
7
+ root: void 0
8
+ }));
9
+ vi.mock("../router/lastAction", () => ({
10
+ setLastAction: vi.fn()
11
+ }));
12
+ vi.mock("../router/router", () => ({
13
+ subscribeToLoadingState: subscriber => {
14
+ subscriptions.loading = subscriber;
15
+ return () => {
16
+ subscriptions.loading = void 0;
17
+ };
18
+ },
19
+ subscribeToRootState: subscriber => {
20
+ subscriptions.root = subscriber;
21
+ return () => {
22
+ subscriptions.root = void 0;
23
+ };
24
+ }
25
+ }));
26
+ globalThis.IS_REACT_ACT_ENVIRONMENT = true;
27
+ let renderer;
28
+ let location;
29
+ let scrollTo;
30
+ beforeEach(() => {
31
+ process.env.VITE_ENVIRONMENT = "client";
32
+ location = {
33
+ pathname: "/",
34
+ search: "",
35
+ hash: ""
36
+ };
37
+ scrollTo = vi.fn();
38
+ const windowMock = Object.assign(new EventTarget(), {
39
+ location,
40
+ scrollTo,
41
+ scrollY: 500
42
+ });
43
+ const storage = /* @__PURE__ */new Map();
44
+ vi.stubGlobal("window", windowMock);
45
+ vi.stubGlobal("document", {
46
+ getElementById: vi.fn()
47
+ });
48
+ vi.stubGlobal("sessionStorage", {
49
+ getItem: key => storage.get(key) ?? null,
50
+ setItem: (key, value) => storage.set(key, value),
51
+ removeItem: key => storage.delete(key)
52
+ });
53
+ act(() => {
54
+ renderer = TestRenderer.create(/* @__PURE__ */jsx(ScrollBehavior, {}));
55
+ });
56
+ });
57
+ afterEach(() => {
58
+ act(() => renderer?.unmount());
59
+ renderer = void 0;
60
+ vi.useRealTimers();
61
+ vi.unstubAllGlobals();
62
+ delete process.env.VITE_ENVIRONMENT;
63
+ });
64
+ describe("ScrollBehavior initial navigation", () => {
65
+ it("does not scroll when the navigator publishes its initial state after mount", () => {
66
+ act(() => subscriptions.root?.({}));
67
+ expect(scrollTo).not.toHaveBeenCalled();
68
+ });
69
+ it("scrolls to the top when the first state notification is a real navigation", () => {
70
+ location.pathname = "/compat/react-native-gesture-handler";
71
+ act(() => subscriptions.root?.({}));
72
+ expect(scrollTo).toHaveBeenCalledWith(0, 0);
73
+ });
74
+ it("handles a query change as a first navigation", () => {
75
+ location.search = "?platform=ios";
76
+ act(() => subscriptions.root?.({}));
77
+ expect(scrollTo).toHaveBeenCalledWith(0, 0);
78
+ });
79
+ });
80
+ describe("ScrollBehavior groups", () => {
81
+ it("preserves position between routes in the same group", () => {
82
+ vi.useFakeTimers();
83
+ const unregister = registerScrollGroup("/compat/react-native-gesture-handler");
84
+ act(() => subscriptions.root?.({}));
85
+ location.pathname = "/compat/react-native-gesture-handler";
86
+ act(() => subscriptions.root?.({}));
87
+ scrollTo.mockClear();
88
+ act(() => subscriptions.loading?.("loading"));
89
+ location.pathname = "/compat/react-native-gesture-handler/pan-gesture";
90
+ act(() => subscriptions.root?.({}));
91
+ vi.runAllTimers();
92
+ expect(scrollTo).toHaveBeenCalledWith(0, 500);
93
+ unregister();
94
+ vi.useRealTimers();
95
+ });
96
+ it("does not match a different route whose slug has the same prefix", () => {
97
+ const unregister = registerScrollGroup("/compat/react-native");
98
+ act(() => subscriptions.root?.({}));
99
+ location.pathname = "/compat/react-native/core";
100
+ act(() => subscriptions.root?.({}));
101
+ scrollTo.mockClear();
102
+ act(() => subscriptions.loading?.("loading"));
103
+ location.pathname = "/compat/react-native-gesture-handler";
104
+ act(() => subscriptions.root?.({}));
105
+ expect(scrollTo).toHaveBeenCalledWith(0, 0);
106
+ unregister();
107
+ });
108
+ });
109
+ //# sourceMappingURL=ScrollBehavior.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TestRenderer","act","afterEach","beforeEach","describe","expect","it","vi","registerScrollGroup","ScrollBehavior","jsx","subscriptions","hoisted","loading","root","mock","setLastAction","fn","subscribeToLoadingState","subscriber","subscribeToRootState","globalThis","IS_REACT_ACT_ENVIRONMENT","renderer","location","scrollTo","process","env","VITE_ENVIRONMENT","pathname","search","hash","windowMock","Object","assign","EventTarget","scrollY","storage","Map","stubGlobal","getElementById","getItem","key","get","setItem","value","set","removeItem","delete","create","unmount","useRealTimers","unstubAllGlobals","not","toHaveBeenCalled","toHaveBeenCalledWith","useFakeTimers","unregister","mockClear","runAllTimers"],"sources":["../../../src/views/ScrollBehavior.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}