@budarin/use-route 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +4 -0
  2. package/demo/dist/assets/index-CehTkyXl.css +1 -0
  3. package/demo/dist/assets/index-wDy-y7oj.js +49 -0
  4. package/demo/dist/index.html +13 -0
  5. package/demo/index.html +12 -0
  6. package/demo/node_modules/.bin/tsc +21 -0
  7. package/demo/node_modules/.bin/tsserver +21 -0
  8. package/demo/node_modules/.bin/vite +21 -0
  9. package/demo/node_modules/.vite/deps/@budarin_use-route.js +372 -0
  10. package/demo/node_modules/.vite/deps/@budarin_use-route.js.map +7 -0
  11. package/demo/node_modules/.vite/deps/_metadata.json +52 -0
  12. package/demo/node_modules/.vite/deps/chunk-4BQM3FN6.js +278 -0
  13. package/demo/node_modules/.vite/deps/chunk-4BQM3FN6.js.map +7 -0
  14. package/demo/node_modules/.vite/deps/chunk-DBBEQ5LR.js +1028 -0
  15. package/demo/node_modules/.vite/deps/chunk-DBBEQ5LR.js.map +7 -0
  16. package/demo/node_modules/.vite/deps/package.json +3 -0
  17. package/demo/node_modules/.vite/deps/react-dom.js +5 -0
  18. package/demo/node_modules/.vite/deps/react-dom.js.map +7 -0
  19. package/demo/node_modules/.vite/deps/react-dom_client.js +20215 -0
  20. package/demo/node_modules/.vite/deps/react-dom_client.js.map +7 -0
  21. package/demo/node_modules/.vite/deps/react.js +4 -0
  22. package/demo/node_modules/.vite/deps/react.js.map +7 -0
  23. package/demo/node_modules/.vite/deps/react_jsx-dev-runtime.js +276 -0
  24. package/demo/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +7 -0
  25. package/demo/node_modules/.vite/deps/react_jsx-runtime.js +287 -0
  26. package/demo/node_modules/.vite/deps/react_jsx-runtime.js.map +7 -0
  27. package/demo/package.json +23 -0
  28. package/demo/src/App.tsx +139 -0
  29. package/demo/src/components/Link.tsx +24 -0
  30. package/demo/src/index.css +160 -0
  31. package/demo/src/main.tsx +10 -0
  32. package/demo/src/pages/BaseDemo.tsx +39 -0
  33. package/demo/src/pages/CustomMatcher.tsx +45 -0
  34. package/demo/src/pages/History.tsx +36 -0
  35. package/demo/src/pages/Home.tsx +38 -0
  36. package/demo/src/pages/Posts.tsx +40 -0
  37. package/demo/src/pages/PushReplace.tsx +43 -0
  38. package/demo/src/pages/UserProfile.tsx +33 -0
  39. package/demo/src/pages/Users.tsx +24 -0
  40. package/demo/tsconfig.tsbuildinfo +1 -0
  41. package/demo/vite.config.ts +6 -0
  42. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="ru">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>@budarin/use-route — демо</title>
7
+ <script type="module" crossorigin src="/assets/index-wDy-y7oj.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-CehTkyXl.css">
9
+ </head>
10
+ <body>
11
+ <div id="root"></div>
12
+ </body>
13
+ </html>
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+ <html lang="ru">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>@budarin/use-route — демо</title>
7
+ </head>
8
+ <body>
9
+ <div id="root"></div>
10
+ <script type="module" src="/src/main.tsx"></script>
11
+ </body>
12
+ </html>
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsc" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/vite@6.4.1/node_modules/vite/bin/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/vite@6.4.1/node_modules/vite/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/vite@6.4.1/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/vite@6.4.1/node_modules/vite/bin/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/vite@6.4.1/node_modules/vite/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/vite@6.4.1/node_modules:/Users/vadim_budarin/projects/use-route/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
19
+ else
20
+ exec node "$basedir/../vite/bin/vite.js" "$@"
21
+ fi
@@ -0,0 +1,372 @@
1
+ import {
2
+ __toESM,
3
+ require_react
4
+ } from "./chunk-DBBEQ5LR.js";
5
+
6
+ // ../node_modules/.pnpm/@budarin+use-route@1.0.0/node_modules/@budarin/use-route/dist/types.js
7
+ var routerConfig = {
8
+ urlCacheLimit: 50
9
+ };
10
+ function configureRouter(config) {
11
+ routerConfig = { ...routerConfig, ...config };
12
+ }
13
+ function getRouterConfig() {
14
+ return routerConfig;
15
+ }
16
+ function getLogger() {
17
+ return routerConfig.logger ?? console;
18
+ }
19
+
20
+ // ../node_modules/.pnpm/@budarin+use-route@1.0.0/node_modules/@budarin/use-route/dist/index.js
21
+ var import_react = __toESM(require_react());
22
+ var isBrowser = typeof window !== "undefined";
23
+ function isValidUrl(url) {
24
+ if (!url || typeof url !== "string")
25
+ return false;
26
+ if (url.startsWith("/") || !url.includes(":"))
27
+ return true;
28
+ try {
29
+ const parsed = new URL(url);
30
+ return parsed.protocol === "http:" || parsed.protocol === "https:";
31
+ } catch {
32
+ return false;
33
+ }
34
+ }
35
+ function testPattern(compiled, pathname) {
36
+ return compiled.test({ pathname });
37
+ }
38
+ function pathnameWithoutBase(pathname, base) {
39
+ if (!base || base === "/")
40
+ return pathname;
41
+ if (pathname === base || pathname.startsWith(base + "/")) {
42
+ return pathname === base ? "/" : pathname.slice(base.length);
43
+ }
44
+ return pathname;
45
+ }
46
+ var URL_CACHE = /* @__PURE__ */ new Map();
47
+ function getCachedParsedUrl(urlStr) {
48
+ const cache = URL_CACHE;
49
+ const existing = cache.get(urlStr);
50
+ if (existing !== void 0) {
51
+ cache.delete(urlStr);
52
+ cache.set(urlStr, existing);
53
+ return existing;
54
+ }
55
+ const base = isBrowser ? window.location.origin : "http://localhost";
56
+ try {
57
+ const parsed = new URL(urlStr, base);
58
+ const limit = getRouterConfig().urlCacheLimit;
59
+ if (cache.size >= limit) {
60
+ const firstKey = cache.keys().next().value;
61
+ if (firstKey !== void 0)
62
+ cache.delete(firstKey);
63
+ }
64
+ cache.set(urlStr, parsed);
65
+ return parsed;
66
+ } catch (error) {
67
+ getLogger().warn("[useRoute] Invalid URL:", urlStr, error);
68
+ try {
69
+ return new URL("/", base);
70
+ } catch {
71
+ return new URL("http://localhost/");
72
+ }
73
+ }
74
+ }
75
+ var DEFAULT_SNAPSHOT = {
76
+ currentKey: "",
77
+ canGoBackFlag: false,
78
+ canGoForwardFlag: false,
79
+ entriesKeys: [],
80
+ urlStr: "/",
81
+ pathname: "/",
82
+ searchParams: new URLSearchParams()
83
+ };
84
+ function getNavigation() {
85
+ return typeof window !== "undefined" && "navigation" in window ? window.navigation : void 0;
86
+ }
87
+ function computeNavigationSnapshot(nav) {
88
+ var _a, _b;
89
+ if (!nav)
90
+ return DEFAULT_SNAPSHOT;
91
+ const urlStr = ((_a = nav.currentEntry) == null ? void 0 : _a.url) ?? (isBrowser ? window.location.href : "/");
92
+ const parsed = getCachedParsedUrl(urlStr);
93
+ return {
94
+ currentKey: ((_b = nav.currentEntry) == null ? void 0 : _b.key) ?? "",
95
+ canGoBackFlag: !!nav.canGoBack,
96
+ canGoForwardFlag: !!nav.canGoForward,
97
+ entriesKeys: nav.entries().map((e) => e.key) ?? [],
98
+ urlStr,
99
+ pathname: parsed.pathname,
100
+ searchParams: parsed.searchParams
101
+ };
102
+ }
103
+ var sharedSnapshot = null;
104
+ var storeCallbacks = /* @__PURE__ */ new Set();
105
+ var unsubscribeNavigation = null;
106
+ function subscribeToNavigation(callback) {
107
+ storeCallbacks.add(callback);
108
+ if (storeCallbacks.size === 1) {
109
+ const nav = getNavigation();
110
+ if (nav) {
111
+ const listener = () => {
112
+ sharedSnapshot = computeNavigationSnapshot(nav);
113
+ storeCallbacks.forEach((cb) => cb());
114
+ };
115
+ nav.addEventListener("navigate", listener);
116
+ nav.addEventListener("currententrychange", listener);
117
+ unsubscribeNavigation = () => {
118
+ nav.removeEventListener("navigate", listener);
119
+ nav.removeEventListener("currententrychange", listener);
120
+ };
121
+ }
122
+ }
123
+ return () => {
124
+ storeCallbacks.delete(callback);
125
+ if (storeCallbacks.size === 0) {
126
+ if (unsubscribeNavigation) {
127
+ unsubscribeNavigation();
128
+ unsubscribeNavigation = null;
129
+ }
130
+ sharedSnapshot = null;
131
+ noNavSnapshot = null;
132
+ noNavSnapshotUrl = null;
133
+ }
134
+ };
135
+ }
136
+ var noNavSnapshot = null;
137
+ var noNavSnapshotUrl = null;
138
+ function getNavigationSnapshot() {
139
+ if (sharedSnapshot !== null)
140
+ return sharedSnapshot;
141
+ const nav = getNavigation();
142
+ if (nav) {
143
+ sharedSnapshot = computeNavigationSnapshot(nav);
144
+ return sharedSnapshot;
145
+ }
146
+ const urlStr = isBrowser ? window.location.href : getRouterConfig().initialLocation ?? "/";
147
+ if (noNavSnapshot !== null && noNavSnapshotUrl === urlStr)
148
+ return noNavSnapshot;
149
+ const parsed = getCachedParsedUrl(urlStr);
150
+ noNavSnapshotUrl = urlStr;
151
+ noNavSnapshot = {
152
+ ...DEFAULT_SNAPSHOT,
153
+ urlStr,
154
+ pathname: parsed.pathname,
155
+ searchParams: parsed.searchParams
156
+ };
157
+ return noNavSnapshot;
158
+ }
159
+ var lastEntriesKeysRef = null;
160
+ var lastKeyToIndexMap = null;
161
+ function getKeyToIndexMap(entriesKeys) {
162
+ if (entriesKeys === lastEntriesKeysRef && lastKeyToIndexMap !== null) {
163
+ return lastKeyToIndexMap;
164
+ }
165
+ lastEntriesKeysRef = entriesKeys;
166
+ const map = /* @__PURE__ */ new Map();
167
+ entriesKeys.forEach((key, index) => map.set(key, index));
168
+ lastKeyToIndexMap = map;
169
+ return map;
170
+ }
171
+ var PATTERN_CACHE = /* @__PURE__ */ new Map();
172
+ function getCompiledPattern(pattern) {
173
+ let compiled = PATTERN_CACHE.get(pattern);
174
+ if (!compiled) {
175
+ compiled = new URLPattern({ pathname: pattern });
176
+ PATTERN_CACHE.set(pattern, compiled);
177
+ }
178
+ return compiled;
179
+ }
180
+ function parseParamsFromCompiled(compiled, pathname) {
181
+ const match = compiled.exec({ pathname });
182
+ const groups = (match == null ? void 0 : match.pathname.groups) ?? {};
183
+ return Object.fromEntries(Object.entries(groups).filter(([key]) => !/^\d+$/.test(key)));
184
+ }
185
+ function clearRouterCaches() {
186
+ PATTERN_CACHE.clear();
187
+ URL_CACHE.clear();
188
+ lastEntriesKeysRef = null;
189
+ lastKeyToIndexMap = null;
190
+ noNavSnapshot = null;
191
+ noNavSnapshotUrl = null;
192
+ }
193
+ function useRoute(patternOrOptions, optionsParam) {
194
+ let pattern;
195
+ let options;
196
+ if (arguments.length === 1 && typeof patternOrOptions === "object" && patternOrOptions !== null && typeof patternOrOptions !== "function") {
197
+ options = patternOrOptions;
198
+ pattern = void 0;
199
+ } else {
200
+ pattern = patternOrOptions;
201
+ options = optionsParam;
202
+ }
203
+ const navigation = getNavigation();
204
+ const rawState = (0, import_react.useSyncExternalStore)(subscribeToNavigation, getNavigationSnapshot, () => DEFAULT_SNAPSHOT);
205
+ const keyToIndexMap = getKeyToIndexMap(rawState.entriesKeys);
206
+ const effectiveBase = (options == null ? void 0 : options.base) ?? getRouterConfig().base;
207
+ const routerState = (0, import_react.useMemo)(() => {
208
+ const { urlStr, pathname: rawPathname, searchParams } = rawState;
209
+ const pathname = pathnameWithoutBase(rawPathname, effectiveBase);
210
+ let matched;
211
+ let params = {};
212
+ if (pattern) {
213
+ if (typeof pattern === "function") {
214
+ const result = pattern(pathname);
215
+ matched = result.matched;
216
+ params = result.params;
217
+ } else {
218
+ const compiled = getCompiledPattern(pattern);
219
+ const patternMatched = testPattern(compiled, pathname);
220
+ matched = patternMatched;
221
+ params = patternMatched ? parseParamsFromCompiled(compiled, pathname) : {};
222
+ }
223
+ }
224
+ const historyIndex = keyToIndexMap.get(rawState.currentKey) ?? -1;
225
+ return {
226
+ location: urlStr,
227
+ pathname,
228
+ searchParams,
229
+ params,
230
+ historyIndex,
231
+ matched,
232
+ _entriesKeys: rawState.entriesKeys
233
+ };
234
+ }, [
235
+ rawState.currentKey,
236
+ rawState.entriesKeys,
237
+ rawState.urlStr,
238
+ rawState.pathname,
239
+ rawState.searchParams,
240
+ pattern,
241
+ effectiveBase
242
+ ]);
243
+ const navigate = (0, import_react.useCallback)(async (to, navOptions = {}) => {
244
+ let targetUrl = typeof to === "string" ? to : to.toString();
245
+ const baseForCall = navOptions.base !== void 0 ? navOptions.base === "" || navOptions.base === "/" ? void 0 : navOptions.base : effectiveBase;
246
+ if (baseForCall && baseForCall !== "/" && typeof to === "string" && to.startsWith("/") && !to.startsWith("//") && !to.includes(":")) {
247
+ targetUrl = baseForCall + (to === "/" ? "" : to);
248
+ }
249
+ if (!isValidUrl(targetUrl)) {
250
+ getLogger().warn("[useRoute] Invalid URL rejected:", targetUrl);
251
+ return;
252
+ }
253
+ if (!navigation) {
254
+ return;
255
+ }
256
+ const defaultHistory = getRouterConfig().defaultHistory ?? "auto";
257
+ const navigationOpts = {
258
+ state: navOptions.state,
259
+ history: navOptions.history ?? defaultHistory
260
+ };
261
+ try {
262
+ await navigation.navigate(targetUrl, navigationOpts);
263
+ } catch (error) {
264
+ getLogger().error("[useRoute] Navigation error:", error);
265
+ }
266
+ }, [navigation, effectiveBase]);
267
+ const back = (0, import_react.useCallback)(() => {
268
+ try {
269
+ if (navigation)
270
+ navigation.back();
271
+ } catch (error) {
272
+ getLogger().error("[useRoute] Back navigation error:", error);
273
+ }
274
+ }, [navigation]);
275
+ const forward = (0, import_react.useCallback)(() => {
276
+ try {
277
+ if (navigation)
278
+ navigation.forward();
279
+ } catch (error) {
280
+ getLogger().error("[useRoute] Forward navigation error:", error);
281
+ }
282
+ }, [navigation]);
283
+ const canGoBack = (0, import_react.useCallback)((steps = 1) => {
284
+ if (!Number.isFinite(steps) || steps < 0 || steps > Number.MAX_SAFE_INTEGER) {
285
+ return false;
286
+ }
287
+ if (!navigation || routerState._entriesKeys.length === 0) {
288
+ return false;
289
+ }
290
+ const idx = routerState.historyIndex;
291
+ if (idx === -1)
292
+ return false;
293
+ return idx - steps >= 0;
294
+ }, [navigation, routerState._entriesKeys.length, routerState.historyIndex]);
295
+ const canGoForward = (0, import_react.useCallback)((steps = 1) => {
296
+ if (!Number.isFinite(steps) || steps < 0 || steps > Number.MAX_SAFE_INTEGER) {
297
+ return false;
298
+ }
299
+ if (!navigation || routerState._entriesKeys.length === 0) {
300
+ return false;
301
+ }
302
+ const idx = routerState.historyIndex;
303
+ if (idx === -1)
304
+ return false;
305
+ return idx + steps < routerState._entriesKeys.length;
306
+ }, [navigation, routerState._entriesKeys.length, routerState.historyIndex]);
307
+ const go = (0, import_react.useCallback)((delta) => {
308
+ if (delta === Infinity || delta === -Infinity) {
309
+ getLogger().warn("[useRoute] Delta value too large:", delta);
310
+ return;
311
+ }
312
+ if (!Number.isFinite(delta) || delta === 0)
313
+ return;
314
+ if (delta > Number.MAX_SAFE_INTEGER || delta < -Number.MAX_SAFE_INTEGER) {
315
+ getLogger().warn("[useRoute] Delta value too large:", delta);
316
+ return;
317
+ }
318
+ try {
319
+ if (navigation && routerState._entriesKeys.length > 0) {
320
+ const idx = routerState.historyIndex;
321
+ if (idx === -1)
322
+ return;
323
+ const targetIdx = idx + delta;
324
+ if (targetIdx < 0 || targetIdx >= routerState._entriesKeys.length) {
325
+ return;
326
+ }
327
+ const targetKey = routerState._entriesKeys[targetIdx];
328
+ if (targetKey === void 0)
329
+ return;
330
+ navigation.traverseTo(targetKey);
331
+ }
332
+ } catch (error) {
333
+ getLogger().error("[useRoute] Go navigation error:", error);
334
+ }
335
+ }, [navigation, routerState._entriesKeys, routerState.historyIndex]);
336
+ const replace = (0, import_react.useCallback)((to, options2) => navigate(to, { ...options2, history: "replace" }), [navigate]);
337
+ return (0, import_react.useMemo)(() => ({
338
+ navigate,
339
+ back,
340
+ forward,
341
+ go,
342
+ replace,
343
+ canGoBack,
344
+ canGoForward,
345
+ location: routerState.location,
346
+ pathname: routerState.pathname,
347
+ searchParams: routerState.searchParams,
348
+ params: routerState.params,
349
+ historyIndex: routerState.historyIndex,
350
+ matched: routerState.matched
351
+ }), [
352
+ navigate,
353
+ back,
354
+ forward,
355
+ go,
356
+ replace,
357
+ canGoBack,
358
+ canGoForward,
359
+ routerState.location,
360
+ routerState.pathname,
361
+ routerState.searchParams,
362
+ routerState.params,
363
+ routerState.historyIndex,
364
+ routerState.matched
365
+ ]);
366
+ }
367
+ export {
368
+ clearRouterCaches,
369
+ configureRouter,
370
+ useRoute
371
+ };
372
+ //# sourceMappingURL=@budarin_use-route.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../node_modules/.pnpm/@budarin+use-route@1.0.0/node_modules/@budarin/use-route/src/types.ts", "../../../../node_modules/.pnpm/@budarin+use-route@1.0.0/node_modules/@budarin/use-route/src/index.ts"],
4
+ "sourcesContent": [null, null],
5
+ "mappings": "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",
6
+ "names": ["options"]
7
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "hash": "d6ae17ed",
3
+ "configHash": "78b6e680",
4
+ "lockfileHash": "0edc57b6",
5
+ "browserHash": "3e0fee8b",
6
+ "optimized": {
7
+ "react": {
8
+ "src": "../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js",
9
+ "file": "react.js",
10
+ "fileHash": "147056f0",
11
+ "needsInterop": true
12
+ },
13
+ "react-dom": {
14
+ "src": "../../../../node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/index.js",
15
+ "file": "react-dom.js",
16
+ "fileHash": "1a63b35f",
17
+ "needsInterop": true
18
+ },
19
+ "react/jsx-dev-runtime": {
20
+ "src": "../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-dev-runtime.js",
21
+ "file": "react_jsx-dev-runtime.js",
22
+ "fileHash": "f9db9fd6",
23
+ "needsInterop": true
24
+ },
25
+ "react/jsx-runtime": {
26
+ "src": "../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-runtime.js",
27
+ "file": "react_jsx-runtime.js",
28
+ "fileHash": "46a4d782",
29
+ "needsInterop": true
30
+ },
31
+ "@budarin/use-route": {
32
+ "src": "../../../../node_modules/.pnpm/@budarin+use-route@1.0.0/node_modules/@budarin/use-route/dist/index.js",
33
+ "file": "@budarin_use-route.js",
34
+ "fileHash": "0d24d9d3",
35
+ "needsInterop": false
36
+ },
37
+ "react-dom/client": {
38
+ "src": "../../../../node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.js",
39
+ "file": "react-dom_client.js",
40
+ "fileHash": "8c65db05",
41
+ "needsInterop": true
42
+ }
43
+ },
44
+ "chunks": {
45
+ "chunk-4BQM3FN6": {
46
+ "file": "chunk-4BQM3FN6.js"
47
+ },
48
+ "chunk-DBBEQ5LR": {
49
+ "file": "chunk-DBBEQ5LR.js"
50
+ }
51
+ }
52
+ }