@fluixi/router 0.1.2-alpha.4 → 1.0.0-alpha.99

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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 Fluixi
3
+ Copyright (c) 2026 Ibrahima Touré
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! @fluixi/router v0.1.2-alpha.4 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/router v1.0.0-alpha.99 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
  "use strict";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -37,15 +37,15 @@ function normalizePath(p) {
37
37
  return p.startsWith("//") ? p.replace(/^\/+/, "/") : p;
38
38
  }
39
39
  function matchPath(pattern, path, exact = false) {
40
- const keys = [];
40
+ const keys2 = [];
41
41
  if (pattern === path) return { params: {}, path };
42
42
  if (!exact && pattern === "/" && path.startsWith("/"))
43
43
  return { params: {}, path: "/" };
44
44
  let regexStr = pattern.replace(/:([a-zA-Z0-9_]+)/g, (_, key) => {
45
- keys.push(key);
45
+ keys2.push(key);
46
46
  return "([^/]+)";
47
47
  }).replace(/\*([a-zA-Z0-9_]*)/g, (_, name) => {
48
- if (name) keys.push(name);
48
+ if (name) keys2.push(name);
49
49
  return "(.*)";
50
50
  });
51
51
  if (!regexStr.startsWith("/")) regexStr = "/" + regexStr;
@@ -54,7 +54,7 @@ function matchPath(pattern, path, exact = false) {
54
54
  const match = path.match(regex);
55
55
  if (!match) return null;
56
56
  const params = {};
57
- keys.forEach((key, i) => {
57
+ keys2.forEach((key, i) => {
58
58
  params[key] = match[i + 1];
59
59
  });
60
60
  return { params, path: match[0] };
@@ -129,6 +129,8 @@ function joinMatched(cumulative, consumed) {
129
129
  }
130
130
 
131
131
  // src/lib/history.ts
132
+ var keys = 0;
133
+ var nextKey = () => `${Date.now().toString(36)}-${(keys++).toString(36)}`;
132
134
  function splitPath(to) {
133
135
  let rest = to;
134
136
  let hash = "";
@@ -147,24 +149,35 @@ function splitPath(to) {
147
149
  }
148
150
  function createMemoryHistory(initial = "/") {
149
151
  let entries = [
150
- { path: initial, state: null }
152
+ { path: initial, state: null, key: nextKey() }
151
153
  ];
152
154
  let index = 0;
155
+ let action = "pop";
153
156
  const listeners = /* @__PURE__ */ new Set();
154
157
  const notify = () => listeners.forEach((l) => l());
155
158
  return {
156
159
  get() {
157
- const { path, state } = entries[index];
158
- return { ...splitPath(path), state };
160
+ const { path, state, key } = entries[index];
161
+ return { ...splitPath(path), state, key, action };
159
162
  },
160
163
  push(to, state = null) {
161
164
  entries = entries.slice(0, index + 1);
162
- entries.push({ path: to, state });
165
+ entries.push({ path: to, state, key: nextKey() });
163
166
  index = entries.length - 1;
167
+ action = "push";
164
168
  notify();
165
169
  },
166
170
  replace(to, state = null) {
167
- entries[index] = { path: to, state };
171
+ entries[index] = { path: to, state, key: nextKey() };
172
+ action = "replace";
173
+ notify();
174
+ },
175
+ /** Back (`-1`) or forward (`1`), as the browser's buttons would. */
176
+ go(delta) {
177
+ const next = index + delta;
178
+ if (next < 0 || next >= entries.length) return;
179
+ index = next;
180
+ action = "pop";
168
181
  notify();
169
182
  },
170
183
  subscribe(onChange) {
@@ -176,20 +189,33 @@ function createMemoryHistory(initial = "/") {
176
189
  function createBrowserHistory() {
177
190
  const w = typeof window !== "undefined" ? window : void 0;
178
191
  const listeners = /* @__PURE__ */ new Set();
192
+ let action = "pop";
179
193
  const notify = () => listeners.forEach((l) => l());
180
- if (w) w.addEventListener("popstate", notify);
194
+ if (w) w.addEventListener("popstate", () => (action = "pop", notify()));
195
+ const wrapped = (value) => typeof value === "object" && value !== null && typeof value.fx === "string";
196
+ const entry = () => {
197
+ const raw = w.history.state;
198
+ if (wrapped(raw)) return raw;
199
+ const keyed = { fx: nextKey(), usr: raw ?? null };
200
+ w.history.replaceState(keyed, "");
201
+ return keyed;
202
+ };
181
203
  return {
204
+ window: w !== void 0,
182
205
  get() {
183
206
  if (!w) return { pathname: "/", search: "", hash: "", state: null };
184
207
  const { pathname, search, hash } = w.location;
185
- return { pathname, search, hash, state: w.history.state ?? null };
208
+ const { fx, usr } = entry();
209
+ return { pathname, search, hash, state: usr, key: fx, action };
186
210
  },
187
211
  push(to, state = null) {
188
- w?.history.pushState(state, "", to);
212
+ w?.history.pushState({ fx: nextKey(), usr: state }, "", to);
213
+ action = "push";
189
214
  notify();
190
215
  },
191
216
  replace(to, state = null) {
192
- w?.history.replaceState(state, "", to);
217
+ w?.history.replaceState({ fx: nextKey(), usr: state }, "", to);
218
+ action = "replace";
193
219
  notify();
194
220
  },
195
221
  subscribe(onChange) {
@@ -233,7 +259,9 @@ function createRouter(config) {
233
259
  search: raw.search,
234
260
  hash: raw.hash,
235
261
  state: raw.state,
236
- query: parseQuery(raw.search)
262
+ query: parseQuery(raw.search),
263
+ ...raw.key !== void 0 ? { key: raw.key } : {},
264
+ ...raw.action !== void 0 ? { action: raw.action } : {}
237
265
  };
238
266
  };
239
267
  const computeMatch = (pathname) => matchRoutes(routes, stripBase(pathname, base));
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @fluixi/router — framework-agnostic router core.
2
+ * @fluixi/router: framework-agnostic router core.
3
3
  *
4
4
  * Routing as pure state: URL → resolved match tree + navigation. No reactivity,
5
5
  * no DOM, no view framework. View adapters subscribe and render the match tree
6
6
  * top-down (see DESIGN.md).
7
7
  */
8
- export type { RouteDefinition, MatchedRoute, RouteMatch, RouterLocation, NavigateOptions, RouterState, HistoryAdapter, Router, RouterConfig, RouteData, } from './lib/types.js';
8
+ export type { RouteDefinition, MatchedRoute, RouteMatch, RouterLocation, HistoryAction, NavigateOptions, RouterState, HistoryAdapter, Router, RouterConfig, RouteData, } from './lib/types.js';
9
9
  export { matchRoutes, matchPath, scoreRoute, rankRoutes } from './lib/match.js';
10
10
  export { createMemoryHistory, createBrowserHistory, splitPath, } from './lib/history.js';
11
11
  export { createRouter } from './lib/router.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,cAAc,EACd,eAAe,EACf,WAAW,EACX,cAAc,EACd,MAAM,EACN,YAAY,EACZ,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,EACX,cAAc,EACd,MAAM,EACN,YAAY,EACZ,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fluixi/router — framework-agnostic router core.
2
+ * @fluixi/router: framework-agnostic router core.
3
3
  *
4
4
  * Routing as pure state: URL → resolved match tree + navigation. No reactivity,
5
5
  * no DOM, no view framework. View adapters subscribe and render the match tree
package/dist/index.mjs CHANGED
@@ -1,19 +1,19 @@
1
- /*! @fluixi/router v0.1.2-alpha.4 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
+ /*! @fluixi/router v1.0.0-alpha.99 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
2
 
3
3
  // src/lib/match.ts
4
4
  function normalizePath(p) {
5
5
  return p.startsWith("//") ? p.replace(/^\/+/, "/") : p;
6
6
  }
7
7
  function matchPath(pattern, path, exact = false) {
8
- const keys = [];
8
+ const keys2 = [];
9
9
  if (pattern === path) return { params: {}, path };
10
10
  if (!exact && pattern === "/" && path.startsWith("/"))
11
11
  return { params: {}, path: "/" };
12
12
  let regexStr = pattern.replace(/:([a-zA-Z0-9_]+)/g, (_, key) => {
13
- keys.push(key);
13
+ keys2.push(key);
14
14
  return "([^/]+)";
15
15
  }).replace(/\*([a-zA-Z0-9_]*)/g, (_, name) => {
16
- if (name) keys.push(name);
16
+ if (name) keys2.push(name);
17
17
  return "(.*)";
18
18
  });
19
19
  if (!regexStr.startsWith("/")) regexStr = "/" + regexStr;
@@ -22,7 +22,7 @@ function matchPath(pattern, path, exact = false) {
22
22
  const match = path.match(regex);
23
23
  if (!match) return null;
24
24
  const params = {};
25
- keys.forEach((key, i) => {
25
+ keys2.forEach((key, i) => {
26
26
  params[key] = match[i + 1];
27
27
  });
28
28
  return { params, path: match[0] };
@@ -97,6 +97,8 @@ function joinMatched(cumulative, consumed) {
97
97
  }
98
98
 
99
99
  // src/lib/history.ts
100
+ var keys = 0;
101
+ var nextKey = () => `${Date.now().toString(36)}-${(keys++).toString(36)}`;
100
102
  function splitPath(to) {
101
103
  let rest = to;
102
104
  let hash = "";
@@ -115,24 +117,35 @@ function splitPath(to) {
115
117
  }
116
118
  function createMemoryHistory(initial = "/") {
117
119
  let entries = [
118
- { path: initial, state: null }
120
+ { path: initial, state: null, key: nextKey() }
119
121
  ];
120
122
  let index = 0;
123
+ let action = "pop";
121
124
  const listeners = /* @__PURE__ */ new Set();
122
125
  const notify = () => listeners.forEach((l) => l());
123
126
  return {
124
127
  get() {
125
- const { path, state } = entries[index];
126
- return { ...splitPath(path), state };
128
+ const { path, state, key } = entries[index];
129
+ return { ...splitPath(path), state, key, action };
127
130
  },
128
131
  push(to, state = null) {
129
132
  entries = entries.slice(0, index + 1);
130
- entries.push({ path: to, state });
133
+ entries.push({ path: to, state, key: nextKey() });
131
134
  index = entries.length - 1;
135
+ action = "push";
132
136
  notify();
133
137
  },
134
138
  replace(to, state = null) {
135
- entries[index] = { path: to, state };
139
+ entries[index] = { path: to, state, key: nextKey() };
140
+ action = "replace";
141
+ notify();
142
+ },
143
+ /** Back (`-1`) or forward (`1`), as the browser's buttons would. */
144
+ go(delta) {
145
+ const next = index + delta;
146
+ if (next < 0 || next >= entries.length) return;
147
+ index = next;
148
+ action = "pop";
136
149
  notify();
137
150
  },
138
151
  subscribe(onChange) {
@@ -144,20 +157,33 @@ function createMemoryHistory(initial = "/") {
144
157
  function createBrowserHistory() {
145
158
  const w = typeof window !== "undefined" ? window : void 0;
146
159
  const listeners = /* @__PURE__ */ new Set();
160
+ let action = "pop";
147
161
  const notify = () => listeners.forEach((l) => l());
148
- if (w) w.addEventListener("popstate", notify);
162
+ if (w) w.addEventListener("popstate", () => (action = "pop", notify()));
163
+ const wrapped = (value) => typeof value === "object" && value !== null && typeof value.fx === "string";
164
+ const entry = () => {
165
+ const raw = w.history.state;
166
+ if (wrapped(raw)) return raw;
167
+ const keyed = { fx: nextKey(), usr: raw ?? null };
168
+ w.history.replaceState(keyed, "");
169
+ return keyed;
170
+ };
149
171
  return {
172
+ window: w !== void 0,
150
173
  get() {
151
174
  if (!w) return { pathname: "/", search: "", hash: "", state: null };
152
175
  const { pathname, search, hash } = w.location;
153
- return { pathname, search, hash, state: w.history.state ?? null };
176
+ const { fx, usr } = entry();
177
+ return { pathname, search, hash, state: usr, key: fx, action };
154
178
  },
155
179
  push(to, state = null) {
156
- w?.history.pushState(state, "", to);
180
+ w?.history.pushState({ fx: nextKey(), usr: state }, "", to);
181
+ action = "push";
157
182
  notify();
158
183
  },
159
184
  replace(to, state = null) {
160
- w?.history.replaceState(state, "", to);
185
+ w?.history.replaceState({ fx: nextKey(), usr: state }, "", to);
186
+ action = "replace";
161
187
  notify();
162
188
  },
163
189
  subscribe(onChange) {
@@ -201,7 +227,9 @@ function createRouter(config) {
201
227
  search: raw.search,
202
228
  hash: raw.hash,
203
229
  state: raw.state,
204
- query: parseQuery(raw.search)
230
+ query: parseQuery(raw.search),
231
+ ...raw.key !== void 0 ? { key: raw.key } : {},
232
+ ...raw.action !== void 0 ? { action: raw.action } : {}
205
233
  };
206
234
  };
207
235
  const computeMatch = (pathname) => matchRoutes(routes, stripBase(pathname, base));
@@ -25,6 +25,8 @@ __export(history_exports, {
25
25
  splitPath: () => splitPath
26
26
  });
27
27
  module.exports = __toCommonJS(history_exports);
28
+ var keys = 0;
29
+ var nextKey = () => `${Date.now().toString(36)}-${(keys++).toString(36)}`;
28
30
  function splitPath(to) {
29
31
  let rest = to;
30
32
  let hash = "";
@@ -43,24 +45,35 @@ function splitPath(to) {
43
45
  }
44
46
  function createMemoryHistory(initial = "/") {
45
47
  let entries = [
46
- { path: initial, state: null }
48
+ { path: initial, state: null, key: nextKey() }
47
49
  ];
48
50
  let index = 0;
51
+ let action = "pop";
49
52
  const listeners = /* @__PURE__ */ new Set();
50
53
  const notify = () => listeners.forEach((l) => l());
51
54
  return {
52
55
  get() {
53
- const { path, state } = entries[index];
54
- return { ...splitPath(path), state };
56
+ const { path, state, key } = entries[index];
57
+ return { ...splitPath(path), state, key, action };
55
58
  },
56
59
  push(to, state = null) {
57
60
  entries = entries.slice(0, index + 1);
58
- entries.push({ path: to, state });
61
+ entries.push({ path: to, state, key: nextKey() });
59
62
  index = entries.length - 1;
63
+ action = "push";
60
64
  notify();
61
65
  },
62
66
  replace(to, state = null) {
63
- entries[index] = { path: to, state };
67
+ entries[index] = { path: to, state, key: nextKey() };
68
+ action = "replace";
69
+ notify();
70
+ },
71
+ /** Back (`-1`) or forward (`1`), as the browser's buttons would. */
72
+ go(delta) {
73
+ const next = index + delta;
74
+ if (next < 0 || next >= entries.length) return;
75
+ index = next;
76
+ action = "pop";
64
77
  notify();
65
78
  },
66
79
  subscribe(onChange) {
@@ -72,20 +85,33 @@ function createMemoryHistory(initial = "/") {
72
85
  function createBrowserHistory() {
73
86
  const w = typeof window !== "undefined" ? window : void 0;
74
87
  const listeners = /* @__PURE__ */ new Set();
88
+ let action = "pop";
75
89
  const notify = () => listeners.forEach((l) => l());
76
- if (w) w.addEventListener("popstate", notify);
90
+ if (w) w.addEventListener("popstate", () => (action = "pop", notify()));
91
+ const wrapped = (value) => typeof value === "object" && value !== null && typeof value.fx === "string";
92
+ const entry = () => {
93
+ const raw = w.history.state;
94
+ if (wrapped(raw)) return raw;
95
+ const keyed = { fx: nextKey(), usr: raw ?? null };
96
+ w.history.replaceState(keyed, "");
97
+ return keyed;
98
+ };
77
99
  return {
100
+ window: w !== void 0,
78
101
  get() {
79
102
  if (!w) return { pathname: "/", search: "", hash: "", state: null };
80
103
  const { pathname, search, hash } = w.location;
81
- return { pathname, search, hash, state: w.history.state ?? null };
104
+ const { fx, usr } = entry();
105
+ return { pathname, search, hash, state: usr, key: fx, action };
82
106
  },
83
107
  push(to, state = null) {
84
- w?.history.pushState(state, "", to);
108
+ w?.history.pushState({ fx: nextKey(), usr: state }, "", to);
109
+ action = "push";
85
110
  notify();
86
111
  },
87
112
  replace(to, state = null) {
88
- w?.history.replaceState(state, "", to);
113
+ w?.history.replaceState({ fx: nextKey(), usr: state }, "", to);
114
+ action = "replace";
89
115
  notify();
90
116
  },
91
117
  subscribe(onChange) {
@@ -12,10 +12,12 @@ export declare function splitPath(to: string): {
12
12
  hash: string;
13
13
  };
14
14
  /**
15
- * In-memory history — for tests and server-side rendering. Holds a stack of
15
+ * In-memory history: for tests and server-side rendering. Holds a stack of
16
16
  * entries; `push`/`replace` mutate it and notify subscribers synchronously.
17
17
  */
18
- export declare function createMemoryHistory(initial?: string): HistoryAdapter;
18
+ export declare function createMemoryHistory(initial?: string): HistoryAdapter & {
19
+ go(delta: number): void;
20
+ };
19
21
  /**
20
22
  * Browser history backed by the History API. `pushState`/`replaceState` do NOT
21
23
  * emit `popstate`, so the adapter keeps its own listener set and notifies on
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/lib/history.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAeA;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,SAAM,GAAG,cAAc,CA4BjE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAyBrD"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/lib/history.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAKhE,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAeA;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,SAAM,GAAG,cAAc,GAAG;IAAE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAuC/F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CA2CrD"}
@@ -4,6 +4,8 @@
4
4
  * The router core depends only on the {@link HistoryAdapter} interface, so it
5
5
  * runs identically in tests/SSR (memory) and the browser (History API).
6
6
  */
7
+ let keys = 0;
8
+ const nextKey = () => `${Date.now().toString(36)}-${(keys++).toString(36)}`;
7
9
  /** Split a full path string into pathname / search / hash. */
8
10
  export function splitPath(to) {
9
11
  let rest = to;
@@ -22,29 +24,41 @@ export function splitPath(to) {
22
24
  return { pathname: rest || '/', search, hash };
23
25
  }
24
26
  /**
25
- * In-memory history — for tests and server-side rendering. Holds a stack of
27
+ * In-memory history: for tests and server-side rendering. Holds a stack of
26
28
  * entries; `push`/`replace` mutate it and notify subscribers synchronously.
27
29
  */
28
30
  export function createMemoryHistory(initial = '/') {
29
31
  let entries = [
30
- { path: initial, state: null },
32
+ { path: initial, state: null, key: nextKey() },
31
33
  ];
32
34
  let index = 0;
35
+ let action = 'pop';
33
36
  const listeners = new Set();
34
37
  const notify = () => listeners.forEach((l) => l());
35
38
  return {
36
39
  get() {
37
- const { path, state } = entries[index];
38
- return { ...splitPath(path), state };
40
+ const { path, state, key } = entries[index];
41
+ return { ...splitPath(path), state, key, action };
39
42
  },
40
43
  push(to, state = null) {
41
44
  entries = entries.slice(0, index + 1);
42
- entries.push({ path: to, state });
45
+ entries.push({ path: to, state, key: nextKey() });
43
46
  index = entries.length - 1;
47
+ action = 'push';
44
48
  notify();
45
49
  },
46
50
  replace(to, state = null) {
47
- entries[index] = { path: to, state };
51
+ entries[index] = { path: to, state, key: nextKey() };
52
+ action = 'replace';
53
+ notify();
54
+ },
55
+ /** Back (`-1`) or forward (`1`), as the browser's buttons would. */
56
+ go(delta) {
57
+ const next = index + delta;
58
+ if (next < 0 || next >= entries.length)
59
+ return;
60
+ index = next;
61
+ action = 'pop';
48
62
  notify();
49
63
  },
50
64
  subscribe(onChange) {
@@ -62,22 +76,39 @@ export function createMemoryHistory(initial = '/') {
62
76
  export function createBrowserHistory() {
63
77
  const w = typeof window !== 'undefined' ? window : undefined;
64
78
  const listeners = new Set();
79
+ let action = 'pop';
65
80
  const notify = () => listeners.forEach((l) => l());
66
81
  if (w)
67
- w.addEventListener('popstate', notify);
82
+ w.addEventListener('popstate', () => ((action = 'pop'), notify()));
83
+ // Each entry's state carries its key beside the app's own state, `{ fx, usr }`, so back
84
+ // and forward can tell which entry they returned to; `get` hands the app its state alone.
85
+ // An entry made outside the router (the first load) gets a key when it is first read.
86
+ const wrapped = (value) => typeof value === 'object' && value !== null && typeof value.fx === 'string';
87
+ const entry = () => {
88
+ const raw = w.history.state;
89
+ if (wrapped(raw))
90
+ return raw;
91
+ const keyed = { fx: nextKey(), usr: raw ?? null };
92
+ w.history.replaceState(keyed, '');
93
+ return keyed;
94
+ };
68
95
  return {
96
+ window: w !== undefined,
69
97
  get() {
70
98
  if (!w)
71
99
  return { pathname: '/', search: '', hash: '', state: null };
72
100
  const { pathname, search, hash } = w.location;
73
- return { pathname, search, hash, state: w.history.state ?? null };
101
+ const { fx, usr } = entry();
102
+ return { pathname, search, hash, state: usr, key: fx, action };
74
103
  },
75
104
  push(to, state = null) {
76
- w?.history.pushState(state, '', to);
105
+ w?.history.pushState({ fx: nextKey(), usr: state }, '', to);
106
+ action = 'push';
77
107
  notify();
78
108
  },
79
109
  replace(to, state = null) {
80
- w?.history.replaceState(state, '', to);
110
+ w?.history.replaceState({ fx: nextKey(), usr: state }, '', to);
111
+ action = 'replace';
81
112
  notify();
82
113
  },
83
114
  subscribe(onChange) {
@@ -1,4 +1,6 @@
1
1
  // src/lib/history.ts
2
+ var keys = 0;
3
+ var nextKey = () => `${Date.now().toString(36)}-${(keys++).toString(36)}`;
2
4
  function splitPath(to) {
3
5
  let rest = to;
4
6
  let hash = "";
@@ -17,24 +19,35 @@ function splitPath(to) {
17
19
  }
18
20
  function createMemoryHistory(initial = "/") {
19
21
  let entries = [
20
- { path: initial, state: null }
22
+ { path: initial, state: null, key: nextKey() }
21
23
  ];
22
24
  let index = 0;
25
+ let action = "pop";
23
26
  const listeners = /* @__PURE__ */ new Set();
24
27
  const notify = () => listeners.forEach((l) => l());
25
28
  return {
26
29
  get() {
27
- const { path, state } = entries[index];
28
- return { ...splitPath(path), state };
30
+ const { path, state, key } = entries[index];
31
+ return { ...splitPath(path), state, key, action };
29
32
  },
30
33
  push(to, state = null) {
31
34
  entries = entries.slice(0, index + 1);
32
- entries.push({ path: to, state });
35
+ entries.push({ path: to, state, key: nextKey() });
33
36
  index = entries.length - 1;
37
+ action = "push";
34
38
  notify();
35
39
  },
36
40
  replace(to, state = null) {
37
- entries[index] = { path: to, state };
41
+ entries[index] = { path: to, state, key: nextKey() };
42
+ action = "replace";
43
+ notify();
44
+ },
45
+ /** Back (`-1`) or forward (`1`), as the browser's buttons would. */
46
+ go(delta) {
47
+ const next = index + delta;
48
+ if (next < 0 || next >= entries.length) return;
49
+ index = next;
50
+ action = "pop";
38
51
  notify();
39
52
  },
40
53
  subscribe(onChange) {
@@ -46,20 +59,33 @@ function createMemoryHistory(initial = "/") {
46
59
  function createBrowserHistory() {
47
60
  const w = typeof window !== "undefined" ? window : void 0;
48
61
  const listeners = /* @__PURE__ */ new Set();
62
+ let action = "pop";
49
63
  const notify = () => listeners.forEach((l) => l());
50
- if (w) w.addEventListener("popstate", notify);
64
+ if (w) w.addEventListener("popstate", () => (action = "pop", notify()));
65
+ const wrapped = (value) => typeof value === "object" && value !== null && typeof value.fx === "string";
66
+ const entry = () => {
67
+ const raw = w.history.state;
68
+ if (wrapped(raw)) return raw;
69
+ const keyed = { fx: nextKey(), usr: raw ?? null };
70
+ w.history.replaceState(keyed, "");
71
+ return keyed;
72
+ };
51
73
  return {
74
+ window: w !== void 0,
52
75
  get() {
53
76
  if (!w) return { pathname: "/", search: "", hash: "", state: null };
54
77
  const { pathname, search, hash } = w.location;
55
- return { pathname, search, hash, state: w.history.state ?? null };
78
+ const { fx, usr } = entry();
79
+ return { pathname, search, hash, state: usr, key: fx, action };
56
80
  },
57
81
  push(to, state = null) {
58
- w?.history.pushState(state, "", to);
82
+ w?.history.pushState({ fx: nextKey(), usr: state }, "", to);
83
+ action = "push";
59
84
  notify();
60
85
  },
61
86
  replace(to, state = null) {
62
- w?.history.replaceState(state, "", to);
87
+ w?.history.replaceState({ fx: nextKey(), usr: state }, "", to);
88
+ action = "replace";
63
89
  notify();
64
90
  },
65
91
  subscribe(onChange) {
@@ -2,7 +2,7 @@
2
2
  * @fileoverview Pure route matching.
3
3
  *
4
4
  * `matchRoutes(routes, pathname)` resolves a pathname to a parent → child
5
- * {@link RouteMatch}. No side effects, no reactivity — same input, same output.
5
+ * {@link RouteMatch}. No side effects, no reactivity, same input, same output.
6
6
  * Ported from the fluixi router's matcher and made framework-agnostic.
7
7
  */
8
8
  import type { RouteDefinition, RouteMatch } from './types.js';
package/dist/lib/match.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * @fileoverview Pure route matching.
3
3
  *
4
4
  * `matchRoutes(routes, pathname)` resolves a pathname to a parent → child
5
- * {@link RouteMatch}. No side effects, no reactivity — same input, same output.
5
+ * {@link RouteMatch}. No side effects, no reactivity, same input, same output.
6
6
  * Ported from the fluixi router's matcher and made framework-agnostic.
7
7
  */
8
8
  /** Normalise accidental double slashes (`//x` → `/x`). */
@@ -81,7 +81,7 @@ export function matchRoutes(routes, pathname) {
81
81
  const params = {};
82
82
  for (const layer of result.layers) {
83
83
  cumulative = normalizePath(joinMatched(cumulative, layer.consumed));
84
- // A layer's `params` is the DELTA it introduces — full-path nested routes
84
+ // A layer's `params` is the DELTA it introduces, full-path nested routes
85
85
  // re-match ancestor params, but those belong to the ancestor layer, not here.
86
86
  const layerParams = {};
87
87
  for (const [k, v] of Object.entries(layer.params)) {
@@ -117,7 +117,7 @@ function matchInto(defs, currentPath) {
117
117
  ],
118
118
  };
119
119
  }
120
- // A layout matched the prefix but no child matched the remainder — keep
120
+ // A layout matched the prefix but no child matched the remainder, keep
121
121
  // searching siblings (this layout is not the right branch).
122
122
  continue;
123
123
  }
@@ -173,7 +173,9 @@ function createRouter(config) {
173
173
  search: raw.search,
174
174
  hash: raw.hash,
175
175
  state: raw.state,
176
- query: parseQuery(raw.search)
176
+ query: parseQuery(raw.search),
177
+ ...raw.key !== void 0 ? { key: raw.key } : {},
178
+ ...raw.action !== void 0 ? { action: raw.action } : {}
177
179
  };
178
180
  };
179
181
  const computeMatch = (pathname) => matchRoutes(routes, stripBase(pathname, base));
@@ -2,7 +2,7 @@
2
2
  * @fileoverview The router state machine.
3
3
  *
4
4
  * Pure: holds the current location + match, recomputes the match on every
5
- * history change, and notifies subscribers. Performs NO rendering — a view
5
+ * history change, and notifies subscribers. Performs NO rendering, a view
6
6
  * adapter subscribes and renders the resolved match tree top-down (see DESIGN.md).
7
7
  */
8
8
  import { splitPath } from './history.js';
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/lib/router.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EAKb,MAAM,YAAY,CAAC;AAiCpB,wBAAgB,YAAY,CAAC,CAAC,GAAG,OAAO,EACtC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GACtB,MAAM,CAAC,CAAC,CAAC,CAuDX;AAED,0DAA0D;AAC1D,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/lib/router.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EAKb,MAAM,YAAY,CAAC;AAiCpB,wBAAgB,YAAY,CAAC,CAAC,GAAG,OAAO,EACtC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GACtB,MAAM,CAAC,CAAC,CAAC,CAyDX;AAED,0DAA0D;AAC1D,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * @fileoverview The router state machine.
3
3
  *
4
4
  * Pure: holds the current location + match, recomputes the match on every
5
- * history change, and notifies subscribers. Performs NO rendering — a view
5
+ * history change, and notifies subscribers. Performs NO rendering, a view
6
6
  * adapter subscribes and renders the resolved match tree top-down (see DESIGN.md).
7
7
  */
8
8
  import { matchRoutes } from './match.js';
@@ -49,6 +49,8 @@ export function createRouter(config) {
49
49
  hash: raw.hash,
50
50
  state: raw.state,
51
51
  query: parseQuery(raw.search),
52
+ ...(raw.key !== undefined ? { key: raw.key } : {}),
53
+ ...(raw.action !== undefined ? { action: raw.action } : {}),
52
54
  };
53
55
  };
54
56
  const computeMatch = (pathname) => matchRoutes(routes, stripBase(pathname, base));
@@ -73,7 +75,7 @@ export function createRouter(config) {
73
75
  navigate(to, options = {}) {
74
76
  const target = withBase(to, base);
75
77
  // The history adapter notifies on push/replace (memory + browser), which
76
- // drives `recompute` via the subscription below — so we must NOT recompute
78
+ // drives `recompute` via the subscription below, so we must NOT recompute
77
79
  // again here or subscribers would fire twice per navigation.
78
80
  if (options.replace)
79
81
  history.replace(target, options.state ?? null);
@@ -146,7 +146,9 @@ function createRouter(config) {
146
146
  search: raw.search,
147
147
  hash: raw.hash,
148
148
  state: raw.state,
149
- query: parseQuery(raw.search)
149
+ query: parseQuery(raw.search),
150
+ ...raw.key !== void 0 ? { key: raw.key } : {},
151
+ ...raw.action !== void 0 ? { action: raw.action } : {}
150
152
  };
151
153
  };
152
154
  const computeMatch = (pathname) => matchRoutes(routes, stripBase(pathname, base));
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @fileoverview Public types for the framework-agnostic router core.
3
3
  *
4
- * The core is generic over the component payload type `C` — it never calls or
4
+ * The core is generic over the component payload type `C`, it never calls or
5
5
  * instantiates a component, it only carries the reference through to the match
6
6
  * result. A view adapter (fluixi, react, …) decides what `C` is and how to
7
7
  * render it. This keeps the core pure and unit-testable with plain values.
@@ -48,7 +48,13 @@ export interface RouterLocation {
48
48
  hash: string;
49
49
  state: unknown;
50
50
  query: Record<string, string>;
51
+ /** Names this history entry, the same when back or forward returns to it. */
52
+ key?: string;
53
+ /** How this location was reached: a new entry, a replaced one, or back/forward. */
54
+ action?: HistoryAction;
51
55
  }
56
+ /** How a history change happened. `pop` is back, forward, or the first load. */
57
+ export type HistoryAction = 'push' | 'replace' | 'pop';
52
58
  /** Options for {@link Router.navigate}. */
53
59
  export interface NavigateOptions {
54
60
  /** Replace the current history entry instead of pushing a new one. */
@@ -69,6 +75,8 @@ export interface HistoryAdapter {
69
75
  search: string;
70
76
  hash: string;
71
77
  state: unknown;
78
+ key?: string;
79
+ action?: HistoryAction;
72
80
  };
73
81
  /** Push a new entry. `to` is a full path (may include search/hash). */
74
82
  push(to: string, state?: unknown): void;
@@ -76,8 +84,10 @@ export interface HistoryAdapter {
76
84
  replace(to: string, state?: unknown): void;
77
85
  /** Subscribe to external navigation (popstate). Returns an unsubscribe fn. */
78
86
  subscribe(onChange: () => void): () => void;
87
+ /** This history is the window's: the router keeps the window's scroll in step with it. */
88
+ readonly window?: boolean;
79
89
  }
80
- /** A router instance — a pure state machine over location + match. */
90
+ /** A router instance: a pure state machine over location + match. */
81
91
  export interface Router<C = unknown> {
82
92
  /** Current snapshot. */
83
93
  state(): RouterState<C>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oFAAoF;AACpF,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC;AAEhC,yDAAyD;AACzD,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,uGAAuG;IACvG,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,yEAAyE;IACzE,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,4DAA4D;IAC5D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,8FAA8F;AAC9F,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,uDAAuD;IACvD,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1B,sFAAsF;IACtF,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,8DAA8D;AAC9D,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,4EAA4E;IAC5E,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;AAEvD,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,gDAAgD;AAChD,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAC7B;AAED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,GAAG,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,aAAa,CAAA;KAAE,CAAC;IAChH,uEAAuE;IACvE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,iCAAiC;IACjC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3C,8EAA8E;IAC9E,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qEAAqE;AACrE,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,OAAO;IACjC,wBAAwB;IACxB,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACjE,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACtD,qEAAqE;IACrE,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9C,2BAA2B;IAC3B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,uCAAuC;AACvC,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,OAAO,EAAE,cAAc,CAAC;IACxB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
package/dist/lib/types.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @fileoverview Public types for the framework-agnostic router core.
3
3
  *
4
- * The core is generic over the component payload type `C` — it never calls or
4
+ * The core is generic over the component payload type `C`, it never calls or
5
5
  * instantiates a component, it only carries the reference through to the match
6
6
  * result. A view adapter (fluixi, react, …) decides what `C` is and how to
7
7
  * render it. This keeps the core pure and unit-testable with plain values.
@@ -1 +1 @@
1
- {"fileNames":["../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.d.ts","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/modules/index.d.ts","../src/lib/types.ts","../src/lib/match.ts","../src/lib/history.ts","../src/lib/router.ts","../src/index.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/globals.global.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/index.d.ts"],"fileIdsList":[[61,107],[64,107],[65,70,98,107],[66,77,78,85,95,106,107],[66,67,77,85,107],[68,107],[69,70,78,86,107],[70,95,103,107],[71,73,77,85,107],[72,107],[73,74,107],[77,107],[75,77,107],[77,78,79,95,106,107],[77,78,79,92,95,98,107],[107,111],[107],[73,77,80,85,95,106,107],[77,78,80,81,85,95,103,106,107],[80,82,95,103,106,107],[61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],[77,83,107],[84,106,107],[73,77,85,95,107],[86,107],[87,107],[64,88,107],[89,105,107,111],[90,107],[91,107],[77,92,93,107],[92,94,107,109],[65,77,95,96,97,98,107],[65,95,97,107],[95,96,107],[98,107],[99,107],[77,101,102,107],[101,102,107],[70,85,95,103,107],[104,107],[85,105,107],[65,80,91,106,107],[70,107],[95,107,108],[107,109],[107,110],[65,70,77,79,88,95,106,107,109,111],[95,107,112],[54,107],[55,56,57,58,59,107],[55,56,107],[55,56,57,58,107],[55,107]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"b8f34dd1757f68e03262b1ca3ddfa668a855b872f8bdd5224d6f993a7b37dc2c","impliedFormat":99},{"version":"86c2e7a253ceb071e1294a494bc808c51b1e31b8ca9b939248003526e45e2c4a","signature":"4d19aa2a9bf11f03350f885799abb2a399e49308ff23582f0bfc7ca3de1ef964","impliedFormat":99},{"version":"4e7b2fb7d220f92841910859386eaa5144d29bcf9da73aa9f38ee9a76a139d5b","signature":"3206bc8f6c9cf553a7bdd45999e405e7e95524558b6516359bd552ad49e02edb","impliedFormat":99},{"version":"616be7cd36a0fa09b88601304a002e2c8e9f15765d033d4eeb5fd263e3460080","signature":"d06367c35e944d602fec4a3bfe3cb00ca44fab949354392add4d6386c620d294","impliedFormat":99},{"version":"a208fe6100f538ef91987a59584c16cd3d9c3cab0ecc94d457a665f14ba0f794","signature":"f0c0df41d93b49b7a7fc3c69f9f2b2f6cfb58e59d8e0869f6bf7bd6a3003b7dd","impliedFormat":99},{"version":"94c2760d3ba05cdd8a0b0c02e70059701e3a1ce611561bb484acc1828dfa8084","signature":"a4766338e78a77ceb79b55f54ad3b9d6d9f0aa3ecea6d6097bbbb671020594a1","impliedFormat":99},{"version":"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","impliedFormat":1},{"version":"a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a","impliedFormat":1},{"version":"f749812878fecfa53cfc13b36e5d35086fb6377983a9df44175da83ccc23af1f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7d2e3fea24c712c99c03ad8f556abedbfe105f87f1be10b95dbd409d24bc05a3","impliedFormat":1},{"version":"211e3f15fbced4ab4be19f49ffa990b9ff20d749d33b65ff753be691e7616239","affectsGlobalScope":true,"impliedFormat":1},{"version":"3719525a8f6ab731e3dfd585d9f87df55ec7d50d461df84f74eb4d68bb165244","impliedFormat":1},{"version":"5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713","impliedFormat":1},{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","impliedFormat":1},{"version":"e596c9bb2f29a2699fdd4ae89139612652245192f67f45617c5a4b20832aaae9","impliedFormat":1},{"version":"bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","impliedFormat":1},{"version":"1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","impliedFormat":1},{"version":"4eaff3d8e10676fd7913d8c108890e71c688e1e7d52f6d1d55c39514f493dc47","impliedFormat":1},{"version":"14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","impliedFormat":1},{"version":"5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea","impliedFormat":1},{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true,"impliedFormat":1},{"version":"00dee7cdca8b8420c47ea4a31a34b8e8294013ebc4f463fd941e867e7bf05029","affectsGlobalScope":true,"impliedFormat":1},{"version":"3256f3cccd578f9e7fe3a28096c505634bebcee8afb738ffa99368e536ca3a0b","impliedFormat":1},{"version":"1c84b46267610a34028edfd0d035509341751262bac1062857f3c8df7aff7153","impliedFormat":1},{"version":"7f138842074d0a40681775af008c8452093b68c383c94de31759e853c6d06b5c","impliedFormat":1},{"version":"a3d541d303ee505053f5dcbf9fafb65cac3d5631037501cd616195863a6c5740","impliedFormat":1},{"version":"8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","impliedFormat":1},{"version":"2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58","impliedFormat":1},{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true,"impliedFormat":1},{"version":"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","impliedFormat":1},{"version":"7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","impliedFormat":1},{"version":"b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30","impliedFormat":1},{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true,"impliedFormat":1},{"version":"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","impliedFormat":1},{"version":"210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","impliedFormat":1},{"version":"36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","impliedFormat":1},{"version":"0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","impliedFormat":1},{"version":"25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","impliedFormat":1},{"version":"4f3fdeba4e28e21aa719c081b8dc8f91d47e12e773389b9d35679c08151c9d37","impliedFormat":1},{"version":"1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","impliedFormat":1},{"version":"69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","impliedFormat":1},{"version":"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","impliedFormat":1},{"version":"23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","impliedFormat":1},{"version":"f69ff39996a61a0dd10f4bce73272b52e8024a4d58b13ab32bf4712909d0a2b7","impliedFormat":1},{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","impliedFormat":1},{"version":"1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","impliedFormat":1},{"version":"3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","impliedFormat":1},{"version":"5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2","impliedFormat":1},{"version":"a73ae8c0e62103bb9e21bb6538700881bf135b9a8b125b857ec68edfa0da4ed3","affectsGlobalScope":true,"impliedFormat":1},{"version":"e1c1b2fbe236bf7ee3e342eeae7e20efb8988a0ac7da1cbbfa2c1f66b76c3423","affectsGlobalScope":true,"impliedFormat":1},{"version":"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","impliedFormat":1},{"version":"0fe8985a28f82c450a04a6edf1279d7181c0893f37da7d2a27f8efd4fd5edb03","impliedFormat":1},{"version":"e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","impliedFormat":1},{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6dd3dba8e665ac43d279e0fdf5219edda0eed69b5e9a5061f46cd6a65c4f7a1","impliedFormat":1}],"root":[[56,60]],"options":{"composite":true,"declarationMap":true,"emitDeclarationOnly":false,"importHelpers":true,"module":199,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./tsconfig.lib.tsbuildinfo"},"referencedMap":[[61,1],[62,1],[64,2],[65,3],[66,4],[67,5],[68,6],[69,7],[70,8],[71,9],[72,10],[73,11],[74,11],[76,12],[75,13],[77,12],[78,14],[79,15],[63,16],[113,17],[80,18],[81,19],[82,20],[114,21],[83,22],[84,23],[85,24],[86,25],[87,26],[88,27],[89,28],[90,29],[91,30],[92,31],[93,31],[94,32],[95,33],[97,34],[96,35],[98,36],[99,37],[100,17],[101,38],[102,39],[103,40],[104,41],[105,42],[106,43],[107,44],[108,45],[109,46],[110,47],[111,48],[112,49],[55,50],[54,17],[52,17],[53,17],[9,17],[10,17],[12,17],[11,17],[2,17],[13,17],[14,17],[15,17],[16,17],[17,17],[18,17],[19,17],[20,17],[3,17],[21,17],[22,17],[4,17],[23,17],[27,17],[24,17],[25,17],[26,17],[28,17],[29,17],[30,17],[5,17],[31,17],[32,17],[33,17],[34,17],[6,17],[38,17],[35,17],[36,17],[37,17],[39,17],[7,17],[40,17],[45,17],[46,17],[41,17],[42,17],[43,17],[44,17],[8,17],[50,17],[47,17],[48,17],[49,17],[1,17],[51,17],[60,51],[58,52],[57,52],[59,53],[56,54]],"latestChangedDtsFile":"./index.d.ts","version":"5.8.3"}
1
+ {"fileNames":["../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.d.ts","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/modules/index.d.ts","../src/lib/types.ts","../src/lib/match.ts","../src/lib/history.ts","../src/lib/router.ts","../src/index.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/globals.global.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/index.d.ts"],"fileIdsList":[[63,109],[66,109],[67,72,100,109],[68,79,80,87,97,108,109],[68,69,79,87,109],[70,109],[71,72,80,88,109],[72,97,105,109],[73,75,79,87,109],[74,109],[75,76,109],[79,109],[77,79,109],[79,80,81,97,108,109],[79,80,81,94,97,100,109],[109,113],[109],[75,79,82,87,97,108,109],[79,80,82,83,87,97,105,108,109],[82,84,97,105,108,109],[63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115],[79,85,109],[86,108,109],[75,79,87,97,109],[88,109],[89,109],[66,90,109],[91,107,109,113],[92,109],[93,109],[79,94,95,109],[94,96,109,111],[67,79,97,98,99,100,109],[67,97,99,109],[97,98,109],[100,109],[101,109],[79,103,104,109],[103,104,109],[72,87,97,105,109],[106,109],[87,107,109],[67,82,93,108,109],[72,109],[97,109,110],[109,111],[109,112],[67,72,79,81,90,97,108,109,111,113],[97,109,114],[56,109],[57,58,59,60,61,109],[57,58,109],[57,58,59,60,109],[57,109]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"b8f34dd1757f68e03262b1ca3ddfa668a855b872f8bdd5224d6f993a7b37dc2c","impliedFormat":99},{"version":"3581ac76ce3f4c014d24295538fd82ff545f1f966d172436f5779d8c803b844b","signature":"71cc20856f3dedd67b99a5ea4a7ae33215d82416c3187188348cafeb0dd0a837","impliedFormat":99},{"version":"6373156d33a2dd39e963c505d5f7ef766fda4bbb90b47bdc472ee419935a9162","signature":"045599ca3d402409abb8021d013bc9d29325941af49b9484ff071c062968d808","impliedFormat":99},{"version":"42b1a3bc3e56266f622f37e2660c82561abd733665524dc6877602b791e46fba","signature":"1fceb6522bcb855055fd98c52b5c6faad96af8725f43a445dcd80094919c1aa9","impliedFormat":99},{"version":"022493a6b47320e934a4a6c772d70d20f73a1d56d554a400aa627ba8c2e1e594","signature":"c90873e959f0f99b4ab8daaf2d8ae05c5ed59b38c7c6e022306d5b5db3dacfac","impliedFormat":99},{"version":"f025e3fbe91a66b676c741f2c8f30710e0490ce59a474a3f8562abae06b38e0c","signature":"a127fc4bd1841874d99f7a5c1c73298eda7026315db50ce07c684122df587e8a","impliedFormat":99},{"version":"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","impliedFormat":1},{"version":"a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a","impliedFormat":1},{"version":"f749812878fecfa53cfc13b36e5d35086fb6377983a9df44175da83ccc23af1f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7d2e3fea24c712c99c03ad8f556abedbfe105f87f1be10b95dbd409d24bc05a3","impliedFormat":1},{"version":"211e3f15fbced4ab4be19f49ffa990b9ff20d749d33b65ff753be691e7616239","affectsGlobalScope":true,"impliedFormat":1},{"version":"3719525a8f6ab731e3dfd585d9f87df55ec7d50d461df84f74eb4d68bb165244","impliedFormat":1},{"version":"5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713","impliedFormat":1},{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","impliedFormat":1},{"version":"e596c9bb2f29a2699fdd4ae89139612652245192f67f45617c5a4b20832aaae9","impliedFormat":1},{"version":"bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","impliedFormat":1},{"version":"1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","impliedFormat":1},{"version":"4eaff3d8e10676fd7913d8c108890e71c688e1e7d52f6d1d55c39514f493dc47","impliedFormat":1},{"version":"14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","impliedFormat":1},{"version":"5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea","impliedFormat":1},{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true,"impliedFormat":1},{"version":"00dee7cdca8b8420c47ea4a31a34b8e8294013ebc4f463fd941e867e7bf05029","affectsGlobalScope":true,"impliedFormat":1},{"version":"3256f3cccd578f9e7fe3a28096c505634bebcee8afb738ffa99368e536ca3a0b","impliedFormat":1},{"version":"1c84b46267610a34028edfd0d035509341751262bac1062857f3c8df7aff7153","impliedFormat":1},{"version":"7f138842074d0a40681775af008c8452093b68c383c94de31759e853c6d06b5c","impliedFormat":1},{"version":"a3d541d303ee505053f5dcbf9fafb65cac3d5631037501cd616195863a6c5740","impliedFormat":1},{"version":"8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","impliedFormat":1},{"version":"2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58","impliedFormat":1},{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true,"impliedFormat":1},{"version":"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","impliedFormat":1},{"version":"7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","impliedFormat":1},{"version":"b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30","impliedFormat":1},{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true,"impliedFormat":1},{"version":"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","impliedFormat":1},{"version":"210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","impliedFormat":1},{"version":"36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","impliedFormat":1},{"version":"0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","impliedFormat":1},{"version":"25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","impliedFormat":1},{"version":"4f3fdeba4e28e21aa719c081b8dc8f91d47e12e773389b9d35679c08151c9d37","impliedFormat":1},{"version":"1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","impliedFormat":1},{"version":"69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","impliedFormat":1},{"version":"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","impliedFormat":1},{"version":"23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","impliedFormat":1},{"version":"f69ff39996a61a0dd10f4bce73272b52e8024a4d58b13ab32bf4712909d0a2b7","impliedFormat":1},{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","impliedFormat":1},{"version":"1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","impliedFormat":1},{"version":"3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","impliedFormat":1},{"version":"5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2","impliedFormat":1},{"version":"a73ae8c0e62103bb9e21bb6538700881bf135b9a8b125b857ec68edfa0da4ed3","affectsGlobalScope":true,"impliedFormat":1},{"version":"e1c1b2fbe236bf7ee3e342eeae7e20efb8988a0ac7da1cbbfa2c1f66b76c3423","affectsGlobalScope":true,"impliedFormat":1},{"version":"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","impliedFormat":1},{"version":"0fe8985a28f82c450a04a6edf1279d7181c0893f37da7d2a27f8efd4fd5edb03","impliedFormat":1},{"version":"e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","impliedFormat":1},{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6dd3dba8e665ac43d279e0fdf5219edda0eed69b5e9a5061f46cd6a65c4f7a1","impliedFormat":1}],"root":[[58,62]],"options":{"composite":true,"declarationMap":true,"emitDeclarationOnly":false,"importHelpers":true,"module":199,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./tsconfig.lib.tsbuildinfo"},"referencedMap":[[63,1],[64,1],[66,2],[67,3],[68,4],[69,5],[70,6],[71,7],[72,8],[73,9],[74,10],[75,11],[76,11],[78,12],[77,13],[79,12],[80,14],[81,15],[65,16],[115,17],[82,18],[83,19],[84,20],[116,21],[85,22],[86,23],[87,24],[88,25],[89,26],[90,27],[91,28],[92,29],[93,30],[94,31],[95,31],[96,32],[97,33],[99,34],[98,35],[100,36],[101,37],[102,17],[103,38],[104,39],[105,40],[106,41],[107,42],[108,43],[109,44],[110,45],[111,46],[112,47],[113,48],[114,49],[57,50],[56,17],[54,17],[55,17],[9,17],[10,17],[12,17],[11,17],[2,17],[13,17],[14,17],[15,17],[16,17],[17,17],[18,17],[19,17],[20,17],[3,17],[21,17],[22,17],[4,17],[23,17],[27,17],[24,17],[25,17],[26,17],[28,17],[29,17],[30,17],[5,17],[31,17],[32,17],[33,17],[34,17],[6,17],[38,17],[35,17],[36,17],[37,17],[39,17],[7,17],[40,17],[45,17],[46,17],[41,17],[42,17],[43,17],[44,17],[8,17],[50,17],[47,17],[48,17],[49,17],[51,17],[1,17],[52,17],[53,17],[62,51],[60,52],[59,52],[61,53],[58,54]],"latestChangedDtsFile":"./index.d.ts","version":"6.0.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluixi/router",
3
- "version": "0.1.2-alpha.4",
3
+ "version": "1.0.0-alpha.99",
4
4
  "description": "Framework-agnostic router core for Fluixi — URL to a resolved match tree + navigation.",
5
5
  "license": "MIT",
6
6
  "author": "Ibrahima Touré",