one 1.19.3 → 1.19.5
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.
- package/dist/cjs/hooks.cjs +3 -5
- package/dist/cjs/hooks.native.js +3 -5
- package/dist/cjs/hooks.native.js.map +1 -1
- package/dist/cjs/router/Route.cjs +2 -1
- package/dist/cjs/router/Route.native.js +2 -1
- package/dist/cjs/router/Route.native.js.map +1 -1
- package/dist/cjs/router/path.cjs +73 -0
- package/dist/cjs/router/path.native.js +98 -0
- package/dist/cjs/router/path.native.js.map +1 -0
- package/dist/cjs/router/path.test.cjs +62 -0
- package/dist/cjs/router/path.test.native.js +65 -0
- package/dist/cjs/router/path.test.native.js.map +1 -0
- package/dist/cjs/router/router.cjs +7 -12
- package/dist/cjs/router/router.native.js +7 -12
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +26 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +26 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.cjs +125 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js +129 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
- package/dist/esm/hooks.mjs +3 -5
- package/dist/esm/hooks.mjs.map +1 -1
- package/dist/esm/hooks.native.js +3 -5
- package/dist/esm/hooks.native.js.map +1 -1
- package/dist/esm/router/Route.mjs +2 -1
- package/dist/esm/router/Route.mjs.map +1 -1
- package/dist/esm/router/Route.native.js +2 -1
- package/dist/esm/router/Route.native.js.map +1 -1
- package/dist/esm/router/path.mjs +42 -0
- package/dist/esm/router/path.mjs.map +1 -0
- package/dist/esm/router/path.native.js +64 -0
- package/dist/esm/router/path.native.js.map +1 -0
- package/dist/esm/router/path.test.mjs +63 -0
- package/dist/esm/router/path.test.mjs.map +1 -0
- package/dist/esm/router/path.test.native.js +63 -0
- package/dist/esm/router/path.test.native.js.map +1 -0
- package/dist/esm/router/router.mjs +4 -10
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +4 -10
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +26 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +26 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs +125 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js +129 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
- package/package.json +9 -9
- package/src/hooks.tsx +9 -9
- package/src/router/Route.tsx +5 -6
- package/src/router/path.test.ts +95 -0
- package/src/router/path.ts +69 -0
- package/src/router/router.ts +5 -20
- package/src/vite/plugins/fileSystemRouterPlugin.test.ts +133 -0
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +29 -1
- package/types/hooks.d.ts.map +1 -1
- package/types/router/Route.d.ts.map +1 -1
- package/types/router/path.d.ts +8 -0
- package/types/router/path.d.ts.map +1 -0
- package/types/router/path.test.d.ts +2 -0
- package/types/router/path.test.d.ts.map +1 -0
- package/types/router/router.d.ts +1 -1
- package/types/router/router.d.ts.map +1 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
|
@@ -42,6 +42,7 @@ import_vitest.vi.mock("vite", async function () {
|
|
|
42
42
|
});
|
|
43
43
|
(0, import_vitest.describe)("createFileSystemRouterPlugin", function () {
|
|
44
44
|
var previousIsVxrnCli = process.env.IS_VXRN_CLI;
|
|
45
|
+
var previousViteEnvironment = process.env.VITE_ENVIRONMENT;
|
|
45
46
|
var previousVxrnPluginConfig;
|
|
46
47
|
var tempRoot;
|
|
47
48
|
(0, import_vitest.beforeEach)(function () {
|
|
@@ -60,6 +61,11 @@ import_vitest.vi.mock("vite", async function () {
|
|
|
60
61
|
} else {
|
|
61
62
|
process.env.IS_VXRN_CLI = previousIsVxrnCli;
|
|
62
63
|
}
|
|
64
|
+
if (previousViteEnvironment === void 0) {
|
|
65
|
+
delete process.env.VITE_ENVIRONMENT;
|
|
66
|
+
} else {
|
|
67
|
+
process.env.VITE_ENVIRONMENT = previousViteEnvironment;
|
|
68
|
+
}
|
|
63
69
|
if (previousVxrnPluginConfig === void 0) {
|
|
64
70
|
delete globalThis.__vxrnPluginConfig__;
|
|
65
71
|
} else {
|
|
@@ -112,5 +118,128 @@ import_vitest.vi.mock("vite", async function () {
|
|
|
112
118
|
await (0, import_vitest.expect)(Promise.resolve(watcherListener("add", import_path.default.join(appDir, "new-route.tsx")))).resolves.toBeUndefined();
|
|
113
119
|
(0, import_vitest.expect)(warn).toHaveBeenCalledWith(import_vitest.expect.stringContaining("[one] Failed to rebuild routes"), import_vitest.expect.any(Error));
|
|
114
120
|
});
|
|
121
|
+
(0, import_vitest.it)("caches dev ssg html until the module runner is invalidated", async function () {
|
|
122
|
+
process.env.VITE_ENVIRONMENT = "ssr";
|
|
123
|
+
tempRoot = (0, import_fs.mkdtempSync)(import_path.default.join((0, import_os.tmpdir)(), "one-router-ssg-cache-"));
|
|
124
|
+
var appDir = import_path.default.join(tempRoot, "app");
|
|
125
|
+
var routeFile = import_path.default.join(appDir, "index+ssg.tsx");
|
|
126
|
+
(0, import_fs.writeFileSync)(import_path.default.join(tempRoot, "package.json"), "{}\n");
|
|
127
|
+
(0, import_fs.mkdirSync)(appDir);
|
|
128
|
+
(0, import_fs.writeFileSync)(routeFile, "export default function Index() { return null }\n");
|
|
129
|
+
var {
|
|
130
|
+
createServerModuleRunner
|
|
131
|
+
} = await import("vite");
|
|
132
|
+
var {
|
|
133
|
+
createFileSystemRouterPlugin
|
|
134
|
+
} = await import("./fileSystemRouterPlugin");
|
|
135
|
+
var {
|
|
136
|
+
virtualEntryId
|
|
137
|
+
} = await import("./virtualEntryConstants");
|
|
138
|
+
var renderCount = 0;
|
|
139
|
+
var render = import_vitest.vi.fn(async function () {
|
|
140
|
+
return `<html><body>${++renderCount}</body></html>`;
|
|
141
|
+
});
|
|
142
|
+
var runner = {
|
|
143
|
+
clearCache: import_vitest.vi.fn(),
|
|
144
|
+
import: import_vitest.vi.fn(async function (id) {
|
|
145
|
+
if (id === virtualEntryId) {
|
|
146
|
+
return {
|
|
147
|
+
default: {
|
|
148
|
+
render
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
if (id === routeFile) {
|
|
153
|
+
return {
|
|
154
|
+
default: function _default() {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
return {};
|
|
160
|
+
})
|
|
161
|
+
};
|
|
162
|
+
import_vitest.vi.mocked(createServerModuleRunner).mockReturnValue(runner);
|
|
163
|
+
var middlewareHandlers = [];
|
|
164
|
+
var watcherListeners = /* @__PURE__ */new Map();
|
|
165
|
+
var server = {
|
|
166
|
+
environments: {
|
|
167
|
+
ssr: {}
|
|
168
|
+
},
|
|
169
|
+
hot: {
|
|
170
|
+
send: import_vitest.vi.fn()
|
|
171
|
+
},
|
|
172
|
+
middlewares: {
|
|
173
|
+
use: import_vitest.vi.fn(function (handler) {
|
|
174
|
+
middlewareHandlers.push(handler);
|
|
175
|
+
})
|
|
176
|
+
},
|
|
177
|
+
watcher: {
|
|
178
|
+
add: import_vitest.vi.fn(),
|
|
179
|
+
addListener: import_vitest.vi.fn(function (event, listener) {
|
|
180
|
+
watcherListeners.set(event, [...(watcherListeners.get(event) || []), listener]);
|
|
181
|
+
}),
|
|
182
|
+
on: import_vitest.vi.fn(function (event, listener) {
|
|
183
|
+
watcherListeners.set(event, [...(watcherListeners.get(event) || []), listener]);
|
|
184
|
+
})
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
var plugin = createFileSystemRouterPlugin({
|
|
188
|
+
router: {
|
|
189
|
+
root: appDir
|
|
190
|
+
},
|
|
191
|
+
server: {
|
|
192
|
+
loggingEnabled: false
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
var installMiddlewares = plugin.configureServer(server);
|
|
196
|
+
installMiddlewares();
|
|
197
|
+
var routeMiddleware = middlewareHandlers.at(-1);
|
|
198
|
+
if (!routeMiddleware) {
|
|
199
|
+
throw new Error("Expected route middleware to be registered");
|
|
200
|
+
}
|
|
201
|
+
var handleRouteRequest = routeMiddleware;
|
|
202
|
+
async function request(pathname) {
|
|
203
|
+
var chunks = [];
|
|
204
|
+
var req = {
|
|
205
|
+
originalUrl: pathname,
|
|
206
|
+
url: pathname,
|
|
207
|
+
headers: {
|
|
208
|
+
host: "localhost"
|
|
209
|
+
},
|
|
210
|
+
method: "GET"
|
|
211
|
+
};
|
|
212
|
+
var res = {
|
|
213
|
+
setHeader: import_vitest.vi.fn(),
|
|
214
|
+
appendHeader: import_vitest.vi.fn(),
|
|
215
|
+
writeHead: import_vitest.vi.fn(),
|
|
216
|
+
write: import_vitest.vi.fn(function (chunk) {
|
|
217
|
+
chunks.push(chunk);
|
|
218
|
+
}),
|
|
219
|
+
end: import_vitest.vi.fn()
|
|
220
|
+
};
|
|
221
|
+
var next = import_vitest.vi.fn(function (error) {
|
|
222
|
+
if (error) {
|
|
223
|
+
throw error;
|
|
224
|
+
}
|
|
225
|
+
throw new Error("Expected One router middleware to handle request");
|
|
226
|
+
});
|
|
227
|
+
await handleRouteRequest(req, res, next);
|
|
228
|
+
(0, import_vitest.expect)(res.end).toHaveBeenCalled();
|
|
229
|
+
return chunks.join("");
|
|
230
|
+
}
|
|
231
|
+
await (0, import_vitest.expect)(request("/")).resolves.toContain("<body>1</body>");
|
|
232
|
+
await (0, import_vitest.expect)(request("/")).resolves.toContain("<body>1</body>");
|
|
233
|
+
(0, import_vitest.expect)(render).toHaveBeenCalledTimes(1);
|
|
234
|
+
var allListeners = watcherListeners.get("all") || [];
|
|
235
|
+
var invalidateRunner = allListeners[0];
|
|
236
|
+
if (!invalidateRunner) {
|
|
237
|
+
throw new Error("Expected runner invalidation listener to be registered");
|
|
238
|
+
}
|
|
239
|
+
invalidateRunner("change", routeFile);
|
|
240
|
+
await (0, import_vitest.expect)(request("/")).resolves.toContain("<body>2</body>");
|
|
241
|
+
(0, import_vitest.expect)(render).toHaveBeenCalledTimes(2);
|
|
242
|
+
(0, import_vitest.expect)(runner.clearCache).toHaveBeenCalledTimes(2);
|
|
243
|
+
});
|
|
115
244
|
});
|
|
116
245
|
//# sourceMappingURL=fileSystemRouterPlugin.test.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["import_fs","require","import_os","import_path","__toESM","import_vitest","vi","mock","actual","importActual","createServerModuleRunner","fn","clearCache","import","describe","previousIsVxrnCli","process","env","IS_VXRN_CLI","previousVxrnPluginConfig","tempRoot","beforeEach","globalThis","__vxrnPluginConfig__","afterEach","rmSync","recursive","force","restoreAllMocks","it","mkdtempSync","default","join","tmpdir","appDir","writeFileSync","mkdirSync","web","defaultRenderMode","createFileSystemRouterPlugin","plugin","router","root","watcherListener","server","environments","ssr","watcher","addListener","event","listener","on","configureServer","expect","toBeDefined","warn","spyOn","console","mockImplementation","Error","Promise","resolve","resolves","toBeUndefined","toHaveBeenCalledWith","stringContaining","any"],"sources":["../../../../src/vite/plugins/fileSystemRouterPlugin.test.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;gBAAA;AACA,IAAAA,SAAA,GAAAC,OAAuB;AACvB,IAAAC,SAAA,GAAAD,OAAiB;AACjB,IAAAE,WAAA,GAAAC,OAAgE,CAAAH,OAAA;AAEhE,IAAAI,aAAG,GAAAJ,OAAK,SAAQ;AACdI,aAAM,CAAAC,EAAA,CAASC,IAAA,OAAM,oBAAG;EACxB,IAAAC,MAAO,SAAAH,aAAA,CAAAC,EAAA,CAAAG,YAAA;EAAA,OACF;IACH,GAAAD,MAAA;IAAuCE,wBACzB,EAAAL,aAAM,CAAAC,EAAA,CAAAK,EAAA;MAClB;QACAC,UAAA,EAAAP,aAAA,CAAAC,EAAA,CAAAK,EAAA;QACJE,MAAA,EAAAR,aAAA,CAAAC,EAAA,CAAAK,EAAA;MACD;
|
|
1
|
+
{"version":3,"names":["import_fs","require","import_os","import_path","__toESM","import_vitest","vi","mock","actual","importActual","createServerModuleRunner","fn","clearCache","import","describe","previousIsVxrnCli","process","env","IS_VXRN_CLI","previousViteEnvironment","VITE_ENVIRONMENT","previousVxrnPluginConfig","tempRoot","beforeEach","globalThis","__vxrnPluginConfig__","afterEach","rmSync","recursive","force","restoreAllMocks","it","mkdtempSync","default","join","tmpdir","appDir","writeFileSync","mkdirSync","web","defaultRenderMode","createFileSystemRouterPlugin","plugin","router","root","watcherListener","server","environments","ssr","watcher","addListener","event","listener","on","configureServer","expect","toBeDefined","warn","spyOn","console","mockImplementation","Error","Promise","resolve","resolves","toBeUndefined","toHaveBeenCalledWith","stringContaining","any","routeFile","virtualEntryId","renderCount","render","runner","id","_default","mocked","mockReturnValue","middlewareHandlers","watcherListeners","Map","hot","send","middlewares","use","handler","push","add","set","get","loggingEnabled","installMiddlewares","routeMiddleware","at","handleRouteRequest","request","pathname","chunks","req","originalUrl","url","headers","host","method","res","setHeader","appendHeader","writeHead","write","chunk","end","next","error","toHaveBeenCalled"],"sources":["../../../../src/vite/plugins/fileSystemRouterPlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/hooks.mjs
CHANGED
|
@@ -2,6 +2,7 @@ import React, { createContext, useContext } from "react";
|
|
|
2
2
|
import { router } from "./router/imperative-api.mjs";
|
|
3
3
|
import { RouteParamsContext, useRouteNode } from "./router/Route.mjs";
|
|
4
4
|
import { mergeDynamicParams } from "./router/params.mjs";
|
|
5
|
+
import { getPathnameWithRecoveredDynamicSegment, normalizeRoutePathname } from "./router/path.mjs";
|
|
5
6
|
import { RouteInfoContext } from "./router/RouteInfoContext.mjs";
|
|
6
7
|
import { navigationRef, useStoreRootState, useStoreRouteInfo } from "./router/router.mjs";
|
|
7
8
|
import { getServerContext } from "./vite/one-server-only.mjs";
|
|
@@ -36,14 +37,11 @@ function usePathname() {
|
|
|
36
37
|
try {
|
|
37
38
|
const ctx = getServerContext();
|
|
38
39
|
if (ctx?.loaderProps?.path) {
|
|
39
|
-
return
|
|
40
|
+
return normalizeRoutePathname(ctx.loaderProps.path);
|
|
40
41
|
}
|
|
41
42
|
} catch {}
|
|
42
43
|
}
|
|
43
|
-
return
|
|
44
|
-
}
|
|
45
|
-
function stripTrailingSlash(path) {
|
|
46
|
-
return path.length > 1 && path.endsWith("/") ? path.slice(0, -1) : path;
|
|
44
|
+
return getPathnameWithRecoveredDynamicSegment(routeInfoPathname);
|
|
47
45
|
}
|
|
48
46
|
function useActiveParams() {
|
|
49
47
|
return useRouteInfo().params;
|
package/dist/esm/hooks.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useContext","router","RouteParamsContext","useRouteNode","mergeDynamicParams","RouteInfoContext","navigationRef","useStoreRootState","useStoreRouteInfo","getServerContext","useRootNavigationState","useRouteInfo","routeInfoFromContext","routeInfoFromRootState","routeNode","type","useNavigationContainerRef","FrozeContext","useRouter","useUnstableGlobalHref","unstable_globalHref","useSegments","segments","usePathname","routeInfoPathname","pathname","import","meta","env","SSR","ctx","loaderProps","path","
|
|
1
|
+
{"version":3,"names":["React","createContext","useContext","router","RouteParamsContext","useRouteNode","mergeDynamicParams","getPathnameWithRecoveredDynamicSegment","normalizeRoutePathname","RouteInfoContext","navigationRef","useStoreRootState","useStoreRouteInfo","getServerContext","useRootNavigationState","useRouteInfo","routeInfoFromContext","routeInfoFromRootState","routeNode","type","useNavigationContainerRef","FrozeContext","useRouter","useUnstableGlobalHref","unstable_globalHref","useSegments","segments","usePathname","routeInfoPathname","pathname","import","meta","env","SSR","ctx","loaderProps","path","useActiveParams","params","useLocalSearchParams","useParams","useGlobalSearchParams","contextParams","routeInfoParams","useMemo","dynamic","Object","fromEntries","entries","filter","_","value","map","key","Array","isArray","v","decodeURIComponent","ReadOnlyURLSearchParams","URLSearchParams","set","_name","_value","Error","append","delete","useSearchParams","global","globalRef","useRef","process","NODE_ENV","current","console","warn","flatMap","String"],"sources":["../../src/hooks.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/hooks.native.js
CHANGED
|
@@ -2,6 +2,7 @@ import React, { createContext, useContext } from "react";
|
|
|
2
2
|
import { router } from "./router/imperative-api.native.js";
|
|
3
3
|
import { RouteParamsContext, useRouteNode } from "./router/Route.native.js";
|
|
4
4
|
import { mergeDynamicParams } from "./router/params.native.js";
|
|
5
|
+
import { getPathnameWithRecoveredDynamicSegment, normalizeRoutePathname } from "./router/path.native.js";
|
|
5
6
|
import { RouteInfoContext } from "./router/RouteInfoContext.native.js";
|
|
6
7
|
import { navigationRef, useStoreRootState, useStoreRouteInfo } from "./router/router.native.js";
|
|
7
8
|
import { getServerContext } from "./vite/one-server-only.native.js";
|
|
@@ -155,14 +156,11 @@ function usePathname() {
|
|
|
155
156
|
var _ctx_loaderProps;
|
|
156
157
|
var ctx = getServerContext();
|
|
157
158
|
if (ctx === null || ctx === void 0 ? void 0 : (_ctx_loaderProps = ctx.loaderProps) === null || _ctx_loaderProps === void 0 ? void 0 : _ctx_loaderProps.path) {
|
|
158
|
-
return
|
|
159
|
+
return normalizeRoutePathname(ctx.loaderProps.path);
|
|
159
160
|
}
|
|
160
161
|
} catch (unused) {}
|
|
161
162
|
}
|
|
162
|
-
return
|
|
163
|
-
}
|
|
164
|
-
function stripTrailingSlash(path) {
|
|
165
|
-
return path.length > 1 && path.endsWith("/") ? path.slice(0, -1) : path;
|
|
163
|
+
return getPathnameWithRecoveredDynamicSegment(routeInfoPathname);
|
|
166
164
|
}
|
|
167
165
|
function useActiveParams() {
|
|
168
166
|
return useRouteInfo().params;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useContext","router","RouteParamsContext","useRouteNode","mergeDynamicParams","RouteInfoContext","navigationRef","useStoreRootState","useStoreRouteInfo","getServerContext","_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","value","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","obj","Symbol","_wrap_native_super","_cache","Map","wrapNativeSuper","has","get","set","Wrapper"],"sources":["../../src/hooks.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,IAASC,aAAA,EAAeC,UAAA,QAAkB;AAEjD,SAASC,MAAA,QAAc;AACvB,SAASC,kBAAA,EAAoBC,YAAA,QAAoB;AACjD,SAASC,kBAAA,QAA0B;AACnC,
|
|
1
|
+
{"version":3,"names":["React","createContext","useContext","router","RouteParamsContext","useRouteNode","mergeDynamicParams","getPathnameWithRecoveredDynamicSegment","normalizeRoutePathname","RouteInfoContext","navigationRef","useStoreRootState","useStoreRouteInfo","getServerContext","_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","value","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","obj","Symbol","_wrap_native_super","_cache","Map","wrapNativeSuper","has","get","set","Wrapper"],"sources":["../../src/hooks.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ import { findFocusedRoute } from "../fork/findFocusedRoute.mjs";
|
|
|
3
3
|
import { getResolvedLinking } from "./linkingConfig.mjs";
|
|
4
4
|
import { getContextKey } from "./matchers.mjs";
|
|
5
5
|
import { mergeDynamicParams } from "./params.mjs";
|
|
6
|
+
import { getPathWithRecoveredDynamicSegment } from "./path.mjs";
|
|
6
7
|
import { routeInfo } from "./router.mjs";
|
|
7
8
|
import { RouteInfoContextProvider } from "./RouteInfoContext.mjs";
|
|
8
9
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -24,7 +25,7 @@ function useContextKey() {
|
|
|
24
25
|
function getParamsFromCurrentUrl(route) {
|
|
25
26
|
const linking = getResolvedLinking();
|
|
26
27
|
if (!linking?.getStateFromPath) return void 0;
|
|
27
|
-
const path = routeInfo?.unstable_globalHref
|
|
28
|
+
const path = getPathWithRecoveredDynamicSegment([routeInfo?.unstable_globalHref, route?.path]);
|
|
28
29
|
if (!path) return void 0;
|
|
29
30
|
const state = linking.getStateFromPath(path, linking.config);
|
|
30
31
|
if (!state) return void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useContext","findFocusedRoute","getResolvedLinking","getContextKey","mergeDynamicParams","routeInfo","RouteInfoContextProvider","jsx","RouteParamsContext","CurrentRouteContext","process","env","NODE_ENV","displayName","useRouteNode","useContextKey","node","Error","contextKey","getParamsFromCurrentUrl","route","linking","getStateFromPath","path","unstable_globalHref","
|
|
1
|
+
{"version":3,"names":["React","createContext","useContext","findFocusedRoute","getResolvedLinking","getContextKey","mergeDynamicParams","getPathWithRecoveredDynamicSegment","routeInfo","RouteInfoContextProvider","jsx","RouteParamsContext","CurrentRouteContext","process","env","NODE_ENV","displayName","useRouteNode","useContextKey","node","Error","contextKey","getParamsFromCurrentUrl","route","linking","getStateFromPath","path","unstable_globalHref","state","config","focused","params","Route","children","parentParams","resolvedParams","useMemo","rp","ownParams","dynamic","length","Provider","value"],"sources":["../../../src/router/Route.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,IAASC,aAAA,EAA+BC,UAAA,QAAkB;AACjE,SAASC,gBAAA,QAAwB;AAKjC,SAASC,kBAAA,QAA0B;AACnC,SAASC,aAAA,QAAqB;AAC9B,SAASC,kBAAA,QAA0B;AACnC,SAASC,kCAAA,QAA0C;AACnD,SAASC,SAAA,QAAiB;AAC1B,SAASC,wBAAA,QAAgC;AAmMjC,SAAAC,GAAA;AAtFD,MAAMC,kBAAA,GAAqBV,aAAA,CAEhC,CAAC,CAAC;AAEJ,MAAMW,mBAAA,GAAsBZ,KAAA,CAAMC,aAAA,CAAgC,IAAI;AAEtE,IAAIY,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,cAAc;EACzCH,mBAAA,CAAoBI,WAAA,GAAc;AACpC;AAGO,SAASC,aAAA,EAAiC;EAC/C,OAAOf,UAAA,CAAWU,mBAAmB;AACvC;AAEO,SAASM,cAAA,EAAwB;EACtC,MAAMC,IAAA,GAAOF,YAAA,CAAa;EAC1B,IAAIE,IAAA,IAAQ,MAAM;IAChB,MAAM,IAAIC,KAAA,CAAM,oDAAoD;EACtE;EACA,OAAOf,aAAA,CAAcc,IAAA,CAAKE,UAAU;AACtC;AAWA,SAASC,wBAAwBC,KAAA,EAGG;EAClC,MAAMC,OAAA,GAAUpB,kBAAA,CAAmB;EACnC,IAAI,CAACoB,OAAA,EAASC,gBAAA,EAAkB,OAAO;EACvC,MAAMC,IAAA,GAAOnB,kCAAA,CAAmC,CAC9CC,SAAA,EAAWmB,mBAAA,EACXJ,KAAA,EAAOG,IAAA,CACR;EACD,IAAI,CAACA,IAAA,EAAM,OAAO;EAClB,MAAME,KAAA,GAAQJ,OAAA,CAAQC,gBAAA,CAAiBC,IAAA,EAAMF,OAAA,CAAQK,MAAM;EAC3D,IAAI,CAACD,KAAA,EAAO,OAAO;EACnB,MAAME,OAAA,GAAU3B,gBAAA,CAAiByB,KAAK;EACtC,OAAOE,OAAA,EAASC,MAAA;AAClB;AAGO,SAASC,MAAM;EACpBC,QAAA;EACAd,IAAA;EACAI;AACF,GAOG;EACD,MAAMW,YAAA,GAAehC,UAAA,CAAWS,kBAAkB;EAUlD,MAAMwB,cAAA,GAAiBnC,KAAA,CAAMoC,OAAA,CAAQ,MAAM;IACzC,MAAMC,EAAA,GAAKd,KAAA,EAAOQ,MAAA;IAClB,MAAMO,SAAA,GAAYnB,IAAA,CAAKoB,OAAA,EAASC,MAAA,GAC5BlC,kBAAA,CAAmB+B,EAAA,EAAIlB,IAAA,CAAKoB,OAAA,EAASjB,uBAAA,CAAwBC,KAAK,CAAC,IACnEc,EAAA;IAEJ,IAAI,CAACH,YAAA,EAAc,OAAOI,SAAA;IAC1B,IAAI,CAACA,SAAA,EAAW,OAAOJ,YAAA;IACvB,OAAO;MAAE,GAAGA,YAAA;MAAc,GAAGI;IAAU;EACzC,GAAG,CAACnB,IAAA,EAAMe,YAAA,EAAcX,KAAA,EAAOf,SAAA,EAAWmB,mBAAmB,CAAC;EAE9D,OACE,eAAAjB,GAAA,CAACC,kBAAA,CAAmB8B,QAAA,EAAnB;IAA4BC,KAAA,EAAOP,cAAA;IAClCF,QAAA,iBAAAvB,GAAA,CAACE,mBAAA,CAAoB6B,QAAA,EAApB;MAA6BC,KAAA,EAAOvB,IAAA;MACnCc,QAAA,iBAAAvB,GAAA,CAACD,wBAAA;QAA0BwB;MAAA,CAAS;IAAA,CACtC;EAAA,CACF;AAEJ","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ import { findFocusedRoute } from "../fork/findFocusedRoute.native.js";
|
|
|
4
4
|
import { getResolvedLinking } from "./linkingConfig.native.js";
|
|
5
5
|
import { getContextKey } from "./matchers.native.js";
|
|
6
6
|
import { mergeDynamicParams } from "./params.native.js";
|
|
7
|
+
import { getPathWithRecoveredDynamicSegment } from "./path.native.js";
|
|
7
8
|
import { routeInfo } from "./router.native.js";
|
|
8
9
|
import { RouteInfoContextProvider } from "./RouteInfoContext.native.js";
|
|
9
10
|
var RouteParamsContext = /* @__PURE__ */createContext({});
|
|
@@ -24,7 +25,7 @@ function useContextKey() {
|
|
|
24
25
|
function getParamsFromCurrentUrl(route) {
|
|
25
26
|
var linking = getResolvedLinking();
|
|
26
27
|
if (!(linking === null || linking === void 0 ? void 0 : linking.getStateFromPath)) return void 0;
|
|
27
|
-
var path = (routeInfo === null || routeInfo === void 0 ? void 0 : routeInfo.unstable_globalHref
|
|
28
|
+
var path = getPathWithRecoveredDynamicSegment([routeInfo === null || routeInfo === void 0 ? void 0 : routeInfo.unstable_globalHref, route === null || route === void 0 ? void 0 : route.path]);
|
|
28
29
|
if (!path) return void 0;
|
|
29
30
|
var state = linking.getStateFromPath(path, linking.config);
|
|
30
31
|
if (!state) return void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","React","createContext","useContext","findFocusedRoute","getResolvedLinking","getContextKey","mergeDynamicParams","routeInfo","RouteInfoContextProvider","RouteParamsContext","CurrentRouteContext","process","env","NODE_ENV","displayName","useRouteNode","useContextKey","node","Error","contextKey","getParamsFromCurrentUrl","route","linking","getStateFromPath","path","unstable_globalHref","
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","React","createContext","useContext","findFocusedRoute","getResolvedLinking","getContextKey","mergeDynamicParams","getPathWithRecoveredDynamicSegment","routeInfo","RouteInfoContextProvider","RouteParamsContext","CurrentRouteContext","process","env","NODE_ENV","displayName","useRouteNode","useContextKey","node","Error","contextKey","getParamsFromCurrentUrl","route","linking","getStateFromPath","path","unstable_globalHref","state","config","focused","params","Route","param","children","parentParams","resolvedParams","useMemo","_node_dynamic","rp","ownParams","dynamic","length"],"sources":["../../../src/router/Route.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAOA,GAAA,IAASC,IAAA,2BAA+B;AAC/C,OAAAC,KAAS,IAAAC,aAAA,EAAAC,UAAwB;AAKjC,SAASC,gBAAA,4CAA0B;AACnC,SAASC,kBAAA,QAAqB;AAC9B,SAASC,aAAA,8BAA0B;AACnC,SAASC,kBAAA;AACT,SAASC,kCAAiB;AAC1B,SAASC,SAAA;AAmMD,SAAAC,wBAAA;AAtFD,IAAAC,kBAAM,kBAEXT,aAAE;AAEJ,IAAAU,mBAAM,kBAA4BX,KAAA,CAAgCC,aAAI;AAEtE,IAAIW,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,cAAc;EACzCH,mBAAA,CAAoBI,WAAA,GAAc;AACpC;AAGO,SAASC,aAAA,EAAiC;EAC/C,OAAOd,UAAA,CAAWS,mBAAmB;AACvC;AAEO,SAASM,cAAA,EAAwB;EACtC,IAAAC,IAAM,GAAAF,YAAO;EACb,IAAIE,IAAA,IAAQ,MAAM;IAChB,MAAM,IAAIC,KAAA,CAAM,oDAAoD;EACtE;EACA,OAAOd,aAAA,CAAca,IAAA,CAAKE,UAAU;AACtC;AAWA,SAASC,wBAAwBC,KAAA,EAGG;EAClC,IAAAC,OAAM,GAAAnB,kBAAU;EAChB,IAAI,EAACmB,OAAA,KAAS,QAAAA,OAAkB,UAAO,aAAAA,OAAA,CAAAC,gBAAA;EACvC,IAAAC,IAAM,GAAAlB,kCAAO,EACXC,SAAA,KAAW,QAAAA,SAAA,uBAAAA,SAAA,CAAAkB,mBAAA,EACXJ,KAAA,KAAO,QAAAA,KAAA,uBAAAA,KAAA,CAAAG,IAAA,CACR;EACD,IAAI,CAACA,IAAA,EAAM,OAAO;EAClB,IAAAE,KAAM,GAAAJ,OAAQ,CAAAC,gBAAQ,CAAAC,IAAiB,EAAAF,OAAM,CAAAK,MAAQ;EACrD,IAAI,CAACD,KAAA,EAAO,OAAO;EACnB,IAAAE,OAAM,GAAA1B,gBAAU,CAAAwB,KAAiB;EACjC,OAAOE,OAAA,KAAS,QAAAA,OAAA,uBAAAA,OAAA,CAAAC,MAAA;AAClB;AAGO,SAASC,MAAMC,KAAA;EACpB;IAAAC,QAAA;IAAAf,IAAA;IAAAI;EAAA,IAAAU,KAAA;EACA,IAAAE,YAAA,GAAAhC,UAAA,CAAAQ,kBAAA;EACA,IAAAyB,cAAA,GAAAnC,KAAA,CAAAoC,OAAA;IAQC,IAAAC,aAAA;IACD,IAAMC,EAAA,GAAAhB,KAAA,KAAe,QAAAA,KAAW,mBAAkB,IAAAA,KAAA,CAAAQ,MAAA;IAUlD,IAAMS,SAAA,KAAAF,aAAuB,GAAAnB,IAAQ,CAAAsB,OAAM,cAAAH,aAAA,uBAAAA,aAAA,CAAAI,MAAA,IAAAnC,kBAAA,CAAAgC,EAAA,EAAApB,IAAA,CAAAsB,OAAA,EAAAnB,uBAAA,CAAAC,KAAA,KAAAgB,EAAA;IACzC,KAAAJ,YAAW,EAAO,OAAAK,SAAA;IAClB,KAAAA,SAAM,SAAiBL,YAAS;IAIhC,OAAK;MACL,GAAKA,YAAW;MAChB,GAAAK;IACF,CAAG;EAEH,IAOFrB,IAAA,E","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { stripBaseUrl } from "../fork/getStateFromPath-mods.mjs";
|
|
2
|
+
function stripPathSuffix(path) {
|
|
3
|
+
const queryIndex = path.indexOf("?");
|
|
4
|
+
const hashIndex = path.indexOf("#");
|
|
5
|
+
let end = path.length;
|
|
6
|
+
if (queryIndex >= 0) end = Math.min(end, queryIndex);
|
|
7
|
+
if (hashIndex >= 0) end = Math.min(end, hashIndex);
|
|
8
|
+
return path.slice(0, end);
|
|
9
|
+
}
|
|
10
|
+
function stripTrailingSlash(pathname) {
|
|
11
|
+
return pathname.length > 1 && pathname.endsWith("/") ? pathname.slice(0, -1) : pathname;
|
|
12
|
+
}
|
|
13
|
+
function normalizeRoutePathname(pathname) {
|
|
14
|
+
return stripTrailingSlash(stripBaseUrl(stripPathSuffix(pathname)));
|
|
15
|
+
}
|
|
16
|
+
function hasLostDynamicSegment(path) {
|
|
17
|
+
return stripPathSuffix(path).split("/").includes("undefined");
|
|
18
|
+
}
|
|
19
|
+
function getSafeWindowPathname() {
|
|
20
|
+
if (typeof window === "undefined" || !window.location || typeof window.location.pathname !== "string") {
|
|
21
|
+
return void 0;
|
|
22
|
+
}
|
|
23
|
+
return window.location.pathname;
|
|
24
|
+
}
|
|
25
|
+
function getSafeWindowPath() {
|
|
26
|
+
const pathname = getSafeWindowPathname();
|
|
27
|
+
if (pathname === void 0) return void 0;
|
|
28
|
+
return pathname + (window.location.search || "");
|
|
29
|
+
}
|
|
30
|
+
function getPathWithRecoveredDynamicSegment(paths, fallbackPath = getSafeWindowPath()) {
|
|
31
|
+
for (const path of paths) {
|
|
32
|
+
if (path !== void 0 && !hasLostDynamicSegment(path)) {
|
|
33
|
+
return path;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return fallbackPath;
|
|
37
|
+
}
|
|
38
|
+
function getPathnameWithRecoveredDynamicSegment(pathname, fallbackPath = getSafeWindowPath()) {
|
|
39
|
+
return normalizeRoutePathname(getPathWithRecoveredDynamicSegment([pathname], fallbackPath) ?? pathname);
|
|
40
|
+
}
|
|
41
|
+
export { getPathWithRecoveredDynamicSegment, getPathnameWithRecoveredDynamicSegment, getSafeWindowPath, getSafeWindowPathname, hasLostDynamicSegment, normalizeRoutePathname, stripTrailingSlash };
|
|
42
|
+
//# sourceMappingURL=path.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["stripBaseUrl","stripPathSuffix","path","queryIndex","indexOf","hashIndex","end","length","Math","min","slice","stripTrailingSlash","pathname","endsWith","normalizeRoutePathname","hasLostDynamicSegment","split","includes","getSafeWindowPathname","window","location","getSafeWindowPath","search","getPathWithRecoveredDynamicSegment","paths","fallbackPath","getPathnameWithRecoveredDynamicSegment"],"sources":["../../../src/router/path.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,QAAoB;AAE7B,SAASC,gBAAgBC,IAAA,EAAsB;EAC7C,MAAMC,UAAA,GAAaD,IAAA,CAAKE,OAAA,CAAQ,GAAG;EACnC,MAAMC,SAAA,GAAYH,IAAA,CAAKE,OAAA,CAAQ,GAAG;EAClC,IAAIE,GAAA,GAAMJ,IAAA,CAAKK,MAAA;EAEf,IAAIJ,UAAA,IAAc,GAAGG,GAAA,GAAME,IAAA,CAAKC,GAAA,CAAIH,GAAA,EAAKH,UAAU;EACnD,IAAIE,SAAA,IAAa,GAAGC,GAAA,GAAME,IAAA,CAAKC,GAAA,CAAIH,GAAA,EAAKD,SAAS;EAEjD,OAAOH,IAAA,CAAKQ,KAAA,CAAM,GAAGJ,GAAG;AAC1B;AAEO,SAASK,mBAAmBC,QAAA,EAA0B;EAC3D,OAAOA,QAAA,CAASL,MAAA,GAAS,KAAKK,QAAA,CAASC,QAAA,CAAS,GAAG,IAAID,QAAA,CAASF,KAAA,CAAM,GAAG,EAAE,IAAIE,QAAA;AACjF;AAEO,SAASE,uBAAuBF,QAAA,EAA0B;EAC/D,OAAOD,kBAAA,CAAmBX,YAAA,CAAaC,eAAA,CAAgBW,QAAQ,CAAC,CAAC;AACnE;AAGO,SAASG,sBAAsBb,IAAA,EAAuB;EAC3D,OAAOD,eAAA,CAAgBC,IAAI,EAAEc,KAAA,CAAM,GAAG,EAAEC,QAAA,CAAS,WAAW;AAC9D;AAKO,SAASC,sBAAA,EAA4C;EAC1D,IACE,OAAOC,MAAA,KAAW,eAClB,CAACA,MAAA,CAAOC,QAAA,IACR,OAAOD,MAAA,CAAOC,QAAA,CAASR,QAAA,KAAa,UACpC;IACA,OAAO;EACT;EACA,OAAOO,MAAA,CAAOC,QAAA,CAASR,QAAA;AACzB;AAEO,SAASS,kBAAA,EAAwC;EACtD,MAAMT,QAAA,GAAWM,qBAAA,CAAsB;EACvC,IAAIN,QAAA,KAAa,QAAW,OAAO;EACnC,OAAOA,QAAA,IAAYO,MAAA,CAAOC,QAAA,CAASE,MAAA,IAAU;AAC/C;AAEO,SAASC,mCACdC,KAAA,EACAC,YAAA,GAAeJ,iBAAA,CAAkB,GACb;EAGpB,WAAWnB,IAAA,IAAQsB,KAAA,EAAO;IACxB,IAAItB,IAAA,KAAS,UAAa,CAACa,qBAAA,CAAsBb,IAAI,GAAG;MACtD,OAAOA,IAAA;IACT;EACF;EAEA,OAAOuB,YAAA;AACT;AAEO,SAASC,uCACdd,QAAA,EACAa,YAAA,GAAeJ,iBAAA,CAAkB,GACzB;EACR,OAAOP,sBAAA,CACLS,kCAAA,CAAmC,CAACX,QAAQ,GAAGa,YAAY,KAAKb,QAClE;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { stripBaseUrl } from "../fork/getStateFromPath-mods.native.js";
|
|
2
|
+
function stripPathSuffix(path) {
|
|
3
|
+
var queryIndex = path.indexOf("?");
|
|
4
|
+
var hashIndex = path.indexOf("#");
|
|
5
|
+
var end = path.length;
|
|
6
|
+
if (queryIndex >= 0) end = Math.min(end, queryIndex);
|
|
7
|
+
if (hashIndex >= 0) end = Math.min(end, hashIndex);
|
|
8
|
+
return path.slice(0, end);
|
|
9
|
+
}
|
|
10
|
+
function stripTrailingSlash(pathname) {
|
|
11
|
+
return pathname.length > 1 && pathname.endsWith("/") ? pathname.slice(0, -1) : pathname;
|
|
12
|
+
}
|
|
13
|
+
function normalizeRoutePathname(pathname) {
|
|
14
|
+
return stripTrailingSlash(stripBaseUrl(stripPathSuffix(pathname)));
|
|
15
|
+
}
|
|
16
|
+
function hasLostDynamicSegment(path) {
|
|
17
|
+
return stripPathSuffix(path).split("/").includes("undefined");
|
|
18
|
+
}
|
|
19
|
+
function getSafeWindowPathname() {
|
|
20
|
+
if (typeof window === "undefined" || !window.location || typeof window.location.pathname !== "string") {
|
|
21
|
+
return void 0;
|
|
22
|
+
}
|
|
23
|
+
return window.location.pathname;
|
|
24
|
+
}
|
|
25
|
+
function getSafeWindowPath() {
|
|
26
|
+
var pathname = getSafeWindowPathname();
|
|
27
|
+
if (pathname === void 0) return void 0;
|
|
28
|
+
return pathname + (window.location.search || "");
|
|
29
|
+
}
|
|
30
|
+
function getPathWithRecoveredDynamicSegment(paths) {
|
|
31
|
+
var fallbackPath = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : getSafeWindowPath();
|
|
32
|
+
var _iteratorNormalCompletion = true,
|
|
33
|
+
_didIteratorError = false,
|
|
34
|
+
_iteratorError = void 0;
|
|
35
|
+
try {
|
|
36
|
+
for (var _iterator = paths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
37
|
+
var path = _step.value;
|
|
38
|
+
if (path !== void 0 && !hasLostDynamicSegment(path)) {
|
|
39
|
+
return path;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
} catch (err) {
|
|
43
|
+
_didIteratorError = true;
|
|
44
|
+
_iteratorError = err;
|
|
45
|
+
} finally {
|
|
46
|
+
try {
|
|
47
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
48
|
+
_iterator.return();
|
|
49
|
+
}
|
|
50
|
+
} finally {
|
|
51
|
+
if (_didIteratorError) {
|
|
52
|
+
throw _iteratorError;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return fallbackPath;
|
|
57
|
+
}
|
|
58
|
+
function getPathnameWithRecoveredDynamicSegment(pathname) {
|
|
59
|
+
var fallbackPath = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : getSafeWindowPath();
|
|
60
|
+
var _getPathWithRecoveredDynamicSegment;
|
|
61
|
+
return normalizeRoutePathname((_getPathWithRecoveredDynamicSegment = getPathWithRecoveredDynamicSegment([pathname], fallbackPath)) !== null && _getPathWithRecoveredDynamicSegment !== void 0 ? _getPathWithRecoveredDynamicSegment : pathname);
|
|
62
|
+
}
|
|
63
|
+
export { getPathWithRecoveredDynamicSegment, getPathnameWithRecoveredDynamicSegment, getSafeWindowPath, getSafeWindowPathname, hasLostDynamicSegment, normalizeRoutePathname, stripTrailingSlash };
|
|
64
|
+
//# sourceMappingURL=path.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["stripBaseUrl","stripPathSuffix","path","queryIndex","indexOf","hashIndex","end","length","Math","min","slice","stripTrailingSlash","pathname","endsWith","normalizeRoutePathname","hasLostDynamicSegment","split","includes","getSafeWindowPathname","window","location","getSafeWindowPath","search","getPathWithRecoveredDynamicSegment","paths","fallbackPath","arguments","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","value","err"],"sources":["../../../src/router/path.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,QAAoB;AAE7B,SAASC,gBAAgBC,IAAA,EAAsB;EAC7C,IAAAC,UAAM,GAAAD,IAAa,CAAAE,OAAK,IAAQ;EAChC,IAAAC,SAAM,GAAAH,IAAY,CAAAE,OAAK,IAAQ;EAC/B,IAAIE,GAAA,GAAMJ,IAAA,CAAKK,MAAA;EAEf,IAAIJ,UAAA,IAAc,GAAGG,GAAA,GAAME,IAAA,CAAKC,GAAA,CAAIH,GAAA,EAAKH,UAAU;EACnD,IAAIE,SAAA,IAAa,GAAGC,GAAA,GAAME,IAAA,CAAKC,GAAA,CAAIH,GAAA,EAAKD,SAAS;EAEjD,OAAOH,IAAA,CAAKQ,KAAA,CAAM,GAAGJ,GAAG;AAC1B;AAEO,SAASK,mBAAmBC,QAAA,EAA0B;EAC3D,OAAOA,QAAA,CAASL,MAAA,GAAS,KAAKK,QAAA,CAASC,QAAA,CAAS,GAAG,IAAID,QAAA,CAASF,KAAA,CAAM,GAAG,EAAE,IAAIE,QAAA;AACjF;AAEO,SAASE,uBAAuBF,QAAA,EAA0B;EAC/D,OAAOD,kBAAA,CAAmBX,YAAA,CAAaC,eAAA,CAAgBW,QAAQ,CAAC,CAAC;AACnE;AAGO,SAASG,sBAAsBb,IAAA,EAAuB;EAC3D,OAAOD,eAAA,CAAgBC,IAAI,EAAEc,KAAA,CAAM,GAAG,EAAEC,QAAA,CAAS,WAAW;AAC9D;AAKO,SAASC,sBAAA,EAA4C;EAC1D,IACE,OAAOC,MAAA,KAAW,eAClB,CAACA,MAAA,CAAOC,QAAA,IACR,OAAOD,MAAA,CAAOC,QAAA,CAASR,QAAA,KAAa,UACpC;IACA,OAAO;EACT;EACA,OAAOO,MAAA,CAAOC,QAAA,CAASR,QAAA;AACzB;AAEO,SAASS,kBAAA,EAAwC;EACtD,IAAAT,QAAM,GAAAM,qBAAW;EACjB,IAAIN,QAAA,KAAa,QAAW,OAAO;EACnC,OAAOA,QAAA,IAAYO,MAAA,CAAOC,QAAA,CAASE,MAAA,IAAU;AAC/C;AAEO,SAASC,mCACdC,KAAA,EACA;EAIA,IAAAC,YAAW,GAAQC,SAAO,CAAAnB,MAAA,QAAAmB,SAAA,iBAAAA,SAAA,MAAAL,iBAAA;EACxB,IAAAM,yBAA2B;IAAAC,iBAA6B;IAAAC,cAAA;EACtD;IACF,SAAAC,SAAA,GAAAN,KAAA,CAAAO,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;MACF,IAAAzB,IAAA,GAAA+B,KAAA,CAAAG,KAAA;MAEA,IAAOlC,IAAA,gBAAAa,qBAAA,CAAAb,IAAA;QACT,OAAAA,IAAA;MAEO;IAIL;EAAO,EACL,OAAAmC,GAAA;IACFT,iBAAA;IACFC,cAAA,GAAAQ,GAAA","ignoreList":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
2
|
+
import { getPathWithRecoveredDynamicSegment, getPathnameWithRecoveredDynamicSegment, hasLostDynamicSegment, normalizeRoutePathname } from "./path.mjs";
|
|
3
|
+
const originalBaseUrl = process.env.EXPO_BASE_URL;
|
|
4
|
+
const originalNodeEnv = process.env.NODE_ENV;
|
|
5
|
+
afterEach(() => {
|
|
6
|
+
if (originalBaseUrl === void 0) {
|
|
7
|
+
delete process.env.EXPO_BASE_URL;
|
|
8
|
+
} else {
|
|
9
|
+
process.env.EXPO_BASE_URL = originalBaseUrl;
|
|
10
|
+
}
|
|
11
|
+
if (originalNodeEnv === void 0) {
|
|
12
|
+
delete process.env.NODE_ENV;
|
|
13
|
+
} else {
|
|
14
|
+
process.env.NODE_ENV = originalNodeEnv;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
describe("hasLostDynamicSegment", () => {
|
|
18
|
+
it('detects a literal "undefined" segment', () => {
|
|
19
|
+
expect(hasLostDynamicSegment("/p/undefined")).toBe(true);
|
|
20
|
+
expect(hasLostDynamicSegment("/users/undefined/posts")).toBe(true);
|
|
21
|
+
expect(hasLostDynamicSegment("/undefined")).toBe(true);
|
|
22
|
+
});
|
|
23
|
+
it('does not match "undefined" inside another segment', () => {
|
|
24
|
+
expect(hasLostDynamicSegment("/p/undefined-things")).toBe(false);
|
|
25
|
+
expect(hasLostDynamicSegment("/p/notundefined")).toBe(false);
|
|
26
|
+
expect(hasLostDynamicSegment("/p/foo-undefined-bar")).toBe(false);
|
|
27
|
+
});
|
|
28
|
+
it("ignores search and hash values", () => {
|
|
29
|
+
expect(hasLostDynamicSegment("/p/undefined?tab=profile")).toBe(true);
|
|
30
|
+
expect(hasLostDynamicSegment("/p/mai1015?x=undefined")).toBe(false);
|
|
31
|
+
expect(hasLostDynamicSegment("/p/mai1015#undefined")).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
describe("normalizeRoutePathname", () => {
|
|
35
|
+
it("strips search, hash, and trailing slash", () => {
|
|
36
|
+
expect(normalizeRoutePathname("/p/mai1015/?tab=profile#top")).toBe("/p/mai1015");
|
|
37
|
+
expect(normalizeRoutePathname("/")).toBe("/");
|
|
38
|
+
});
|
|
39
|
+
it("strips the production base url", () => {
|
|
40
|
+
process.env.NODE_ENV = "production";
|
|
41
|
+
process.env.EXPO_BASE_URL = "/expo/prefix";
|
|
42
|
+
expect(normalizeRoutePathname("/expo/prefix/p/mai1015?tab=profile")).toBe("/p/mai1015");
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe("getPathWithRecoveredDynamicSegment", () => {
|
|
46
|
+
it("uses the first uncorrupted candidate path", () => {
|
|
47
|
+
expect(getPathWithRecoveredDynamicSegment(["/p/undefined", "/p/mai1015?tab=profile"], "/p/browser?tab=profile")).toBe("/p/mai1015?tab=profile");
|
|
48
|
+
});
|
|
49
|
+
it("keeps an empty uncorrupted candidate path", () => {
|
|
50
|
+
expect(getPathWithRecoveredDynamicSegment([""], "/browser")).toBe("");
|
|
51
|
+
});
|
|
52
|
+
it("falls back when every candidate path is corrupted", () => {
|
|
53
|
+
expect(getPathWithRecoveredDynamicSegment(["/p/undefined"], "/p/browser?tab=profile")).toBe("/p/browser?tab=profile");
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe("getPathnameWithRecoveredDynamicSegment", () => {
|
|
57
|
+
it("normalizes the recovered browser pathname", () => {
|
|
58
|
+
process.env.NODE_ENV = "production";
|
|
59
|
+
process.env.EXPO_BASE_URL = "/expo/prefix";
|
|
60
|
+
expect(getPathnameWithRecoveredDynamicSegment("/p/undefined", "/expo/prefix/p/mai1015?tab=profile")).toBe("/p/mai1015");
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=path.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["afterEach","describe","expect","it","getPathWithRecoveredDynamicSegment","getPathnameWithRecoveredDynamicSegment","hasLostDynamicSegment","normalizeRoutePathname","originalBaseUrl","process","env","EXPO_BASE_URL","originalNodeEnv","NODE_ENV","toBe"],"sources":["../../../src/router/path.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
2
|
+
import { getPathWithRecoveredDynamicSegment, getPathnameWithRecoveredDynamicSegment, hasLostDynamicSegment, normalizeRoutePathname } from "./path.native.js";
|
|
3
|
+
var originalBaseUrl = process.env.EXPO_BASE_URL;
|
|
4
|
+
var originalNodeEnv = process.env.NODE_ENV;
|
|
5
|
+
afterEach(function () {
|
|
6
|
+
if (originalBaseUrl === void 0) {
|
|
7
|
+
delete process.env.EXPO_BASE_URL;
|
|
8
|
+
} else {
|
|
9
|
+
process.env.EXPO_BASE_URL = originalBaseUrl;
|
|
10
|
+
}
|
|
11
|
+
if (originalNodeEnv === void 0) {
|
|
12
|
+
delete process.env.NODE_ENV;
|
|
13
|
+
} else {
|
|
14
|
+
process.env.NODE_ENV = originalNodeEnv;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
describe("hasLostDynamicSegment", function () {
|
|
18
|
+
it('detects a literal "undefined" segment', function () {
|
|
19
|
+
expect(hasLostDynamicSegment("/p/undefined")).toBe(true);
|
|
20
|
+
expect(hasLostDynamicSegment("/users/undefined/posts")).toBe(true);
|
|
21
|
+
expect(hasLostDynamicSegment("/undefined")).toBe(true);
|
|
22
|
+
});
|
|
23
|
+
it('does not match "undefined" inside another segment', function () {
|
|
24
|
+
expect(hasLostDynamicSegment("/p/undefined-things")).toBe(false);
|
|
25
|
+
expect(hasLostDynamicSegment("/p/notundefined")).toBe(false);
|
|
26
|
+
expect(hasLostDynamicSegment("/p/foo-undefined-bar")).toBe(false);
|
|
27
|
+
});
|
|
28
|
+
it("ignores search and hash values", function () {
|
|
29
|
+
expect(hasLostDynamicSegment("/p/undefined?tab=profile")).toBe(true);
|
|
30
|
+
expect(hasLostDynamicSegment("/p/mai1015?x=undefined")).toBe(false);
|
|
31
|
+
expect(hasLostDynamicSegment("/p/mai1015#undefined")).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
describe("normalizeRoutePathname", function () {
|
|
35
|
+
it("strips search, hash, and trailing slash", function () {
|
|
36
|
+
expect(normalizeRoutePathname("/p/mai1015/?tab=profile#top")).toBe("/p/mai1015");
|
|
37
|
+
expect(normalizeRoutePathname("/")).toBe("/");
|
|
38
|
+
});
|
|
39
|
+
it("strips the production base url", function () {
|
|
40
|
+
process.env.NODE_ENV = "production";
|
|
41
|
+
process.env.EXPO_BASE_URL = "/expo/prefix";
|
|
42
|
+
expect(normalizeRoutePathname("/expo/prefix/p/mai1015?tab=profile")).toBe("/p/mai1015");
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe("getPathWithRecoveredDynamicSegment", function () {
|
|
46
|
+
it("uses the first uncorrupted candidate path", function () {
|
|
47
|
+
expect(getPathWithRecoveredDynamicSegment(["/p/undefined", "/p/mai1015?tab=profile"], "/p/browser?tab=profile")).toBe("/p/mai1015?tab=profile");
|
|
48
|
+
});
|
|
49
|
+
it("keeps an empty uncorrupted candidate path", function () {
|
|
50
|
+
expect(getPathWithRecoveredDynamicSegment([""], "/browser")).toBe("");
|
|
51
|
+
});
|
|
52
|
+
it("falls back when every candidate path is corrupted", function () {
|
|
53
|
+
expect(getPathWithRecoveredDynamicSegment(["/p/undefined"], "/p/browser?tab=profile")).toBe("/p/browser?tab=profile");
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe("getPathnameWithRecoveredDynamicSegment", function () {
|
|
57
|
+
it("normalizes the recovered browser pathname", function () {
|
|
58
|
+
process.env.NODE_ENV = "production";
|
|
59
|
+
process.env.EXPO_BASE_URL = "/expo/prefix";
|
|
60
|
+
expect(getPathnameWithRecoveredDynamicSegment("/p/undefined", "/expo/prefix/p/mai1015?tab=profile")).toBe("/p/mai1015");
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=path.test.native.js.map
|