@plumile/router 0.1.28 → 0.1.31
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/README.md +9 -126
- package/lib/esm/ResourcePage.d.ts +1 -0
- package/lib/esm/ResourcePage.d.ts.map +1 -1
- package/lib/esm/ResourcePage.js +4 -1
- package/lib/esm/builder.d.ts.map +1 -1
- package/lib/esm/builder.js +1 -1
- package/lib/esm/errors/HttpRedirect.d.ts.map +1 -1
- package/lib/esm/errors/HttpRedirect.js +1 -1
- package/lib/esm/errors/index.js +1 -1
- package/lib/esm/history/BrowserHistory.d.ts +7 -2
- package/lib/esm/history/BrowserHistory.d.ts.map +1 -1
- package/lib/esm/history/BrowserHistory.js +96 -18
- package/lib/esm/history/types.d.ts +8 -1
- package/lib/esm/history/types.d.ts.map +1 -1
- package/lib/esm/history/types.js +1 -1
- package/lib/esm/routing/Link.d.ts.map +1 -1
- package/lib/esm/routing/Link.js +16 -1
- package/lib/esm/routing/createRouter.d.ts +5 -9
- package/lib/esm/routing/createRouter.d.ts.map +1 -1
- package/lib/esm/routing/createRouter.js +354 -382
- package/lib/esm/routing/useAllQuery.d.ts.map +1 -1
- package/lib/esm/routing/useAllQuery.js +1 -1
- package/lib/esm/routing/useFilterDiagnostics.d.ts.map +1 -1
- package/lib/esm/routing/useFilterDiagnostics.js +1 -1
- package/lib/esm/routing/useFilters.d.ts +5 -0
- package/lib/esm/routing/useFilters.d.ts.map +1 -1
- package/lib/esm/routing/useFilters.js +4 -1
- package/lib/esm/routing/useNavigate.d.ts.map +1 -1
- package/lib/esm/routing/useNavigate.js +1 -1
- package/lib/esm/routing/useQuery.d.ts.map +1 -1
- package/lib/esm/routing/useQuery.js +1 -1
- package/lib/esm/routing/useQueryState.d.ts.map +1 -1
- package/lib/esm/routing/useQueryState.js +1 -1
- package/lib/esm/tools/buildCombinedSearch.d.ts.map +1 -1
- package/lib/esm/tools/buildCombinedSearch.js +1 -1
- package/lib/esm/tools.d.ts +6 -2
- package/lib/esm/tools.d.ts.map +1 -1
- package/lib/esm/tools.js +47 -2
- package/lib/esm/types.d.ts +47 -0
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +28 -2
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/ResourcePage.d.ts +1 -0
- package/lib/types/ResourcePage.d.ts.map +1 -1
- package/lib/types/builder.d.ts.map +1 -1
- package/lib/types/errors/HttpRedirect.d.ts.map +1 -1
- package/lib/types/history/BrowserHistory.d.ts +7 -2
- package/lib/types/history/BrowserHistory.d.ts.map +1 -1
- package/lib/types/history/types.d.ts +8 -1
- package/lib/types/history/types.d.ts.map +1 -1
- package/lib/types/routing/Link.d.ts.map +1 -1
- package/lib/types/routing/createRouter.d.ts +5 -9
- package/lib/types/routing/createRouter.d.ts.map +1 -1
- package/lib/types/routing/useAllQuery.d.ts.map +1 -1
- package/lib/types/routing/useFilterDiagnostics.d.ts.map +1 -1
- package/lib/types/routing/useFilters.d.ts +5 -0
- package/lib/types/routing/useFilters.d.ts.map +1 -1
- package/lib/types/routing/useNavigate.d.ts.map +1 -1
- package/lib/types/routing/useQuery.d.ts.map +1 -1
- package/lib/types/routing/useQueryState.d.ts.map +1 -1
- package/lib/types/tools/buildCombinedSearch.d.ts.map +1 -1
- package/lib/types/tools.d.ts +6 -2
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/types.d.ts +47 -0
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -39,8 +39,9 @@ This package is ESM-only. If your tooling expects CommonJS, enable ESM support (
|
|
|
39
39
|
|
|
40
40
|
- Getting started: [docs/index.md](../../docs/index.md)
|
|
41
41
|
- Relay integration walkthrough: [docs/router-relay.md](../../docs/router-relay.md)
|
|
42
|
-
- Devtools: [docs/devtools.md](../../docs/devtools.md)
|
|
43
42
|
- Examples: [EXAMPLES.md](./EXAMPLES.md)
|
|
43
|
+
- Migration strategies: [MIGRATION.md](./MIGRATION.md)
|
|
44
|
+
- DevTools extension usage: [docs/router-devtools-extension.md](../../docs/router-devtools-extension.md)
|
|
44
45
|
|
|
45
46
|
## Quick Start
|
|
46
47
|
|
|
@@ -135,29 +136,20 @@ function Navigation() {
|
|
|
135
136
|
| `useFilters(schema)` | `(schema) => [filters, actions]` | Read/mutate filters derived from the given schema; actions include `set`, `remove`, `merge`, `clear`. | `const [filters, actions] = useFilters(productFilters); actions.set('price', 'gt', 10);` |
|
|
136
137
|
| `useQuery()` | `() => Record<string, string | string[]>` | Raw query aggregation (legacy/simple use). | `const query = useQuery();` |
|
|
137
138
|
| `useQueryState(key, opts?)` | `(key, options?) => [value, setValue]` | Two-way binding for a single query parameter with default/replace options. | `const [page, setPage] = useQueryState('page', { defaultValue: 1 });` |
|
|
138
|
-
| `useFilterDiagnostics()` | `() => Diagnostic[]` | Surface parsing issues (unknown field/operator) for UI or
|
|
139
|
+
| `useFilterDiagnostics()` | `() => Diagnostic[]` | Surface parsing issues (unknown field/operator) for UI display or logging. | `const diagnostics = useFilterDiagnostics();` |
|
|
139
140
|
| `useAllQuery(opts?)` | `(options?) => QueryLike` | Access filters + raw query merged together, useful for debugging or incremental migrations. | `const all = useAllQuery();` |
|
|
140
141
|
|
|
141
|
-
## Devtools Overview
|
|
142
|
-
|
|
143
|
-
- Enable via `createRouter(routes, { devtools: { panel: true, global: true } })` (defaults: global on in dev, panel off).
|
|
144
|
-
- Global helper: `window.__PLUMILE_ROUTER__?.get()` returns the current route entry (filters, query, prepared data).
|
|
145
|
-
- Panel overlay toggled with `Alt+Shift+R` (configurable via `devtools.shortcut`).
|
|
146
|
-
- Use `subscribe` to watch navigation changes for logging or live debugging.
|
|
147
|
-
|
|
148
142
|
## API Reference
|
|
149
143
|
|
|
150
144
|
### Core Components
|
|
151
145
|
|
|
152
|
-
#### `createRouter(routes: Route[]
|
|
146
|
+
#### `createRouter(routes: Route[])`
|
|
153
147
|
|
|
154
148
|
Creates a router instance with the given route configuration.
|
|
155
149
|
|
|
156
150
|
**Parameters:**
|
|
157
151
|
|
|
158
152
|
- `routes`: Array of route definitions
|
|
159
|
-
- `options?`: Optional object
|
|
160
|
-
- `devtools?: boolean` Force enable/disable the global inspector. Defaults to enabled when `NODE_ENV !== 'production'`, disabled otherwise.
|
|
161
153
|
|
|
162
154
|
**Returns:**
|
|
163
155
|
|
|
@@ -374,126 +366,17 @@ const search = buildCombinedSearch({
|
|
|
374
366
|
|
|
375
367
|
Guideline: If you need to derive lightweight projections (e.g. `const { page } = typed`), you can still destructure; but avoid spreading into a new object if you rely on reference equality downstream.
|
|
376
368
|
|
|
377
|
-
####
|
|
369
|
+
#### Inspection & Debugging
|
|
378
370
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
Optionally you can enable an in‑page overlay panel for quick visual inspection:
|
|
371
|
+
Activez le bridge de debug en développement avec l’option `debug` :
|
|
382
372
|
|
|
383
373
|
```ts
|
|
384
|
-
createRouter(routes, {
|
|
385
|
-
devtools: { panel: true, global: true, shortcut: 'Alt+Shift+R' },
|
|
386
|
-
});
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
Devtools option forms:
|
|
390
|
-
|
|
391
|
-
- `devtools: true | false` (boolean) – legacy form, controls global only.
|
|
392
|
-
- `devtools: { global?: boolean; panel?: boolean; shortcut?: string }` – granular.
|
|
393
|
-
- `global` (default: NODE_ENV !== 'production') exposes `window.__PLUMILE_ROUTER__`.
|
|
394
|
-
- `panel` (default: false) mounts an overlay; closed with the close button or page reload.
|
|
395
|
-
- `shortcut` (default: `Alt+Shift+R`) toggles panel visibility.
|
|
396
|
-
|
|
397
|
-
The panel displays current path+search, variables, raw query aggregation, active schema, and parsed filters. It is intentionally framework‑agnostic (no React runtime cost) and uses a shadow root to minimize style collisions.
|
|
398
|
-
|
|
399
|
-
```js
|
|
400
|
-
window.__PLUMILE_ROUTER__.get(); // current RouteEntry
|
|
401
|
-
const unsub = window.__PLUMILE_ROUTER__.subscribe((entry) => {
|
|
402
|
-
console.log('filters', entry.filters);
|
|
403
|
-
});
|
|
404
|
-
```
|
|
405
|
-
|
|
406
|
-
This lets you introspect parsed queries & variables without adding debug code. Neither global nor panel is present in production unless explicitly forced with `devtools: { global: true, panel: true }` (discouraged).
|
|
407
|
-
|
|
408
|
-
##### Detailed Usage
|
|
409
|
-
|
|
410
|
-
The global is intentionally tiny to avoid coupling and bundle weight. It only appears when the devtools flag resolves truthy:
|
|
411
|
-
|
|
412
|
-
1. Explicit: `createRouter(routes, { devtools: true })`
|
|
413
|
-
2. Implicit heuristic: `NODE_ENV !== 'production'`
|
|
414
|
-
3. Disabled explicitly: `createRouter(routes, { devtools: false })`
|
|
415
|
-
|
|
416
|
-
Always guard in snippets that might be copied to production code:
|
|
417
|
-
|
|
418
|
-
```js
|
|
419
|
-
if (window.__PLUMILE_ROUTER__) {
|
|
420
|
-
console.log(window.__PLUMILE_ROUTER__.get());
|
|
421
|
-
}
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
`get()` returns the current `RouteEntry` (simplified shape):
|
|
425
|
-
|
|
426
|
-
```ts
|
|
427
|
-
type RouteEntry = {
|
|
428
|
-
location: Location; // window.location snapshot
|
|
429
|
-
route: { match; params; path } | null; // current matched route (or null)
|
|
430
|
-
preparedMatch: { routes: { prepared; render?; resourcePage? }[]; match }; // internal prepared tree
|
|
431
|
-
forceRerender: boolean; // indicates forced re-render situations
|
|
432
|
-
rawSearch: string; // '?page=2&price.gt=10'
|
|
433
|
-
query: Record<string, string | string[]>; // raw aggregated query params (for legacy/simple access)
|
|
434
|
-
filters: Record<string, any>; // unified parsed filters (implicit eq)
|
|
435
|
-
activeQuerySchema?: any; // active deepest schema (when present)
|
|
436
|
-
};
|
|
374
|
+
createRouter(routes, { debug: true });
|
|
437
375
|
```
|
|
438
376
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
1. Log every navigation with filters & params:
|
|
442
|
-
|
|
443
|
-
```js
|
|
444
|
-
const dev = window.__PLUMILE_ROUTER__;
|
|
445
|
-
if (dev) {
|
|
446
|
-
const off = dev.subscribe((e) => {
|
|
447
|
-
console.log('[router]', e.location.pathname + e.location.search, {
|
|
448
|
-
vars: e.route?.params,
|
|
449
|
-
filters: e.filters,
|
|
450
|
-
});
|
|
451
|
-
});
|
|
452
|
-
// later: off();
|
|
453
|
-
}
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
2. Inspect prepared data for the deepest route (last element):
|
|
457
|
-
|
|
458
|
-
```js
|
|
459
|
-
const entry = window.__PLUMILE_ROUTER__?.get();
|
|
460
|
-
const deepest = entry?.preparedMatch.routes.at(-1);
|
|
461
|
-
deepest?.prepared; // Prepared data returned by deepest prepare()
|
|
462
|
-
```
|
|
463
|
-
|
|
464
|
-
3. Quick diff watcher for query changes only:
|
|
465
|
-
|
|
466
|
-
```js
|
|
467
|
-
let last = window.__PLUMILE_ROUTER__?.get().rawSearch;
|
|
468
|
-
const off = window.__PLUMILE_ROUTER__?.subscribe((e) => {
|
|
469
|
-
if (e.rawSearch !== last) {
|
|
470
|
-
console.log('query changed', last, '=>', e.rawSearch, e.filters);
|
|
471
|
-
last = e.rawSearch;
|
|
472
|
-
}
|
|
473
|
-
});
|
|
474
|
-
```
|
|
475
|
-
|
|
476
|
-
4. Measuring parse performance (rough dev-only micro‑benchmark):
|
|
477
|
-
|
|
478
|
-
```js
|
|
479
|
-
const { get } = window.__PLUMILE_ROUTER__;
|
|
480
|
-
const before = performance.now();
|
|
481
|
-
for (let i = 0; i < 200; i++) get().filters; // use cache; ensures no GC
|
|
482
|
-
console.log('elapsed ms', performance.now() - before);
|
|
483
|
-
```
|
|
484
|
-
|
|
485
|
-
5. Safe optional chaining helper (copy/paste):
|
|
486
|
-
|
|
487
|
-
```js
|
|
488
|
-
const R = window.__PLUMILE_ROUTER__;
|
|
489
|
-
R && R.subscribe((e) => console.debug('[filters]', e.filters));
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
Unsubscribing: every `subscribe` returns a disposer function. Always call it if you set up long‑lived listeners in a debugging session to avoid memory leaks during hot reloads.
|
|
493
|
-
|
|
494
|
-
Extending: if you need more (e.g. trigger navigations) you can wrap `createRouter` in your app and attach additional methods to `window.__PLUMILE_ROUTER__` (e.g. `navigate: context.navigate`) — omitted by default to avoid accidental production reliance.
|
|
377
|
+
Cela expose `window.__PLUMILE_ROUTER__` avec `get()` et `subscribe()` (non présent en production).
|
|
495
378
|
|
|
496
|
-
|
|
379
|
+
Pour l’inspection visuelle (timeline, filtres, prepared data), installez la Plumile Router DevTools extension (voir [docs/router-devtools-extension.md](../../docs/router-devtools-extension.md)).
|
|
497
380
|
|
|
498
381
|
### Unified Query Schema & useFilters (Integration with @plumile/filter-query)
|
|
499
382
|
|
|
@@ -8,6 +8,7 @@ export declare class ResourcePage {
|
|
|
8
8
|
constructor(loader: ResourcePageLoader, moduleId: string);
|
|
9
9
|
load(): Promise<ResourcePageReturn>;
|
|
10
10
|
get(): ResourcePageReturn | undefined;
|
|
11
|
+
getModuleId(): string;
|
|
11
12
|
read(): ResourcePageReturn | Promise<ResourcePageReturn> | Error;
|
|
12
13
|
private __load;
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourcePage.d.ts","sourceRoot":"","sources":["../../src/ResourcePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA2BzE,qBAAa,YAAY;IAEvB,OAAO,CAAC,OAAO,CAAe;IAG9B,OAAO,CAAC,QAAQ,CAAqB;IAGrC,OAAO,CAAC,SAAS,CAAqC;IAGtD,OAAO,CAAC,QAAQ,CAA4B;
|
|
1
|
+
{"version":3,"file":"ResourcePage.d.ts","sourceRoot":"","sources":["../../src/ResourcePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA2BzE,qBAAa,YAAY;IAEvB,OAAO,CAAC,OAAO,CAAe;IAG9B,OAAO,CAAC,QAAQ,CAAqB;IAGrC,OAAO,CAAC,SAAS,CAAqC;IAGtD,OAAO,CAAC,QAAQ,CAA4B;IAG5C,OAAO,CAAC,UAAU,CAAS;gBAQR,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM;IAclD,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA8BzC,GAAG,IAAI,kBAAkB,GAAG,SAAS;IAWrC,WAAW,IAAI,MAAM;IAerB,IAAI,IAAI,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,KAAK;YAkBzD,MAAM;CAKrB;AAsBD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,GACzB,YAAY,GAAG,IAAI,CAOrB"}
|
package/lib/esm/ResourcePage.js
CHANGED
|
@@ -37,6 +37,9 @@ export class ResourcePage {
|
|
|
37
37
|
}
|
|
38
38
|
return undefined;
|
|
39
39
|
}
|
|
40
|
+
getModuleId() {
|
|
41
|
+
return this.__moduleId;
|
|
42
|
+
}
|
|
40
43
|
read() {
|
|
41
44
|
if (this.__result != null) {
|
|
42
45
|
return this.__result;
|
|
@@ -61,4 +64,4 @@ export function getResourcePage(moduleId, loader) {
|
|
|
61
64
|
}
|
|
62
65
|
return resource;
|
|
63
66
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VQYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Jlc291cmNlUGFnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7QUFtQnhELE1BQU0sT0FBTyxZQUFZO0lBRWYsT0FBTyxDQUFlO0lBR3RCLFFBQVEsQ0FBcUI7SUFHN0IsU0FBUyxDQUFxQztJQUc5QyxRQUFRLENBQTRCO0lBR3BDLFVBQVUsQ0FBUztJQVEzQixZQUFtQixNQUEwQixFQUFFLFFBQWdCO1FBQzdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFRTSxLQUFLLENBQUMsSUFBSTtRQUNmLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDN0IsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDcEIsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUU7aUJBQ3BCLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUVmLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFHM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQzFCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7Z0JBQ3ZCLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBU00sR0FBRztRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFLTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBYU0sSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDckIsQ0FBQzthQUFNLENBQUM7WUFFTixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFPTyxLQUFLLENBQUMsTUFBTTtRQUNsQixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztRQUVsQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUFzQkQsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsUUFBZ0IsRUFDaEIsTUFBMEI7SUFFMUIsSUFBSSxRQUFRLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNyQixRQUFRLEdBQUcsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVBhZ2VMb2FkZXIsIFJlc291cmNlUGFnZVJldHVybiB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKipcbiAqIEEgY2FjaGUgb2YgcmVzb3VyY2VzIHRvIGF2b2lkIGxvYWRpbmcgdGhlIHNhbWUgbW9kdWxlIHR3aWNlLiBUaGlzIGlzIGltcG9ydGFudFxuICogYmVjYXVzZSBXZWJwYWNrIGR5bmFtaWMgaW1wb3J0cyBvbmx5IGV4cG9zZSBhbiBhc3luY2hyb25vdXMgQVBJIGZvciBsb2FkaW5nXG4gKiBtb2R1bGVzLCBzbyB0byBiZSBhYmxlIHRvIGFjY2VzcyBhbHJlYWR5LWxvYWRlZCBtb2R1bGVzIHN5bmNocm9ub3VzbHkgd2VcbiAqIG11c3QgaGF2ZSBzdG9yZWQgdGhlIHByZXZpb3VzIHJlc3VsdCBzb21ld2hlcmUuXG4gKi9cbmNvbnN0IHJlc291cmNlUGFnZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBSZXNvdXJjZVBhZ2U+KCk7XG5cbi8qKlxuICogQSByZXNvdXJjZSBtYW5hZ2VyIGZvciBsYXp5LWxvYWRlZCBSZWFjdCBjb21wb25lbnRzIHdpdGggU3VzcGVuc2UgaW50ZWdyYXRpb24uXG4gKiBUaGlzIGNsYXNzIGhhbmRsZXMgdGhlIGxvYWRpbmcgc3RhdGUsIGNhY2hpbmcsIGFuZCBTdXNwZW5zZSBpbnRlZ3JhdGlvbiBmb3JcbiAqIGR5bmFtaWNhbGx5IGltcG9ydGVkIGNvbXBvbmVudHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlc291cmNlID0gbmV3IFJlc291cmNlUGFnZShcbiAqICAgKCkgPT4gaW1wb3J0KCcuL015Q29tcG9uZW50JyksXG4gKiAgICdNeUNvbXBvbmVudCdcbiAqICk7XG4gKlxuICogLy8gSW4gYSBSZWFjdCBjb21wb25lbnQgd2l0aCBTdXNwZW5zZSBib3VuZGFyeTpcbiAqIGNvbnN0IENvbXBvbmVudCA9IHJlc291cmNlLnJlYWQoKTtcbiAqIHJldHVybiA8Q29tcG9uZW50IC8+O1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVBhZ2Uge1xuICAvKiogRXJyb3Igc3RhdGUgaWYgdGhlIHJlc291cmNlIGZhaWxlZCB0byBsb2FkICovXG4gIHByaXZhdGUgX19lcnJvcjogRXJyb3IgfCBudWxsO1xuXG4gIC8qKiBGdW5jdGlvbiB0byBsb2FkIHRoZSByZXNvdXJjZSAqL1xuICBwcml2YXRlIF9fbG9hZGVyOiBSZXNvdXJjZVBhZ2VMb2FkZXI7XG5cbiAgLyoqIFByb21pc2UgcmVwcmVzZW50aW5nIHRoZSBsb2FkaW5nIHN0YXRlICovXG4gIHByaXZhdGUgX19wcm9taXNlOiBQcm9taXNlPFJlc291cmNlUGFnZVJldHVybj4gfCBudWxsO1xuXG4gIC8qKiBUaGUgbG9hZGVkIHJlc291cmNlIHJlc3VsdCAqL1xuICBwcml2YXRlIF9fcmVzdWx0OiBSZXNvdXJjZVBhZ2VSZXR1cm4gfCBudWxsO1xuXG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyByZXNvdXJjZSAqL1xuICBwcml2YXRlIF9fbW9kdWxlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBSZXNvdXJjZVBhZ2UgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBsb2FkZXIgLSBGdW5jdGlvbiB0aGF0IHJldHVybnMgYSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29tcG9uZW50XG4gICAqIEBwYXJhbSBtb2R1bGVJZCAtIFVuaXF1ZSBpZGVudGlmaWVyIGZvciBjYWNoaW5nIHB1cnBvc2VzXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IobG9hZGVyOiBSZXNvdXJjZVBhZ2VMb2FkZXIsIG1vZHVsZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fZXJyb3IgPSBudWxsO1xuICAgIHRoaXMuX19sb2FkZXIgPSBsb2FkZXI7XG4gICAgdGhpcy5fX21vZHVsZUlkID0gbW9kdWxlSWQ7XG4gICAgdGhpcy5fX3Byb21pc2UgPSBudWxsO1xuICAgIHRoaXMuX19yZXN1bHQgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSByZXNvdXJjZSBpZiBub3QgYWxyZWFkeSBsb2FkZWQgb3IgbG9hZGluZy5cbiAgICogVGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBzYWZlbHkgLSBpdCB3aWxsIHJldHVybiB0aGUgc2FtZSBwcm9taXNlLlxuICAgKlxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGxvYWRlZCBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkKCk6IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPiB7XG4gICAgbGV0IHByb21pc2UgPSB0aGlzLl9fcHJvbWlzZTtcbiAgICBpZiAocHJvbWlzZSA9PSBudWxsKSB7XG4gICAgICBwcm9taXNlID0gdGhpcy5fX2xvYWQoKVxuICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgICAgICAgICBpZiAocmVzdWx0LmRlZmF1bHQgIT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmRlZmF1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX19yZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuX19lcnJvciA9IGVycm9yO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuX19wcm9taXNlID0gcHJvbWlzZTtcbiAgICB9XG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbG9hZGVkIGNvbXBvbmVudCBpZiBhdmFpbGFibGUsIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAqIFRoaXMgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGNoZWNrIGlmIHRoZSBjb21wb25lbnQgaXMgYWxyZWFkeSBsb2FkZWRcbiAgICogd2l0aG91dCB0cmlnZ2VyaW5nIGEgbG9hZCBvciB0aHJvd2luZyBhbiBlcnJvci5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGxvYWRlZCBjb21wb25lbnQgb3IgdW5kZWZpbmVkIGlmIG5vdCB5ZXQgbG9hZGVkXG4gICAqL1xuICBwdWJsaWMgZ2V0KCk6IFJlc291cmNlUGFnZVJldHVybiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuX19yZXN1bHQgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX19yZXN1bHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBtb2R1bGUgaWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXNvdXJjZSAoZGVidWcgaGVscGVyKS5cbiAgICovXG4gIHB1YmxpYyBnZXRNb2R1bGVJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9fbW9kdWxlSWQ7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgdGhlIHJlc291cmNlIHdpdGggUmVhY3QgU3VzcGVuc2UgaW50ZWdyYXRpb24uXG4gICAqIFRoaXMgaXMgdGhlIGtleSBtZXRob2QgZm9yIGludGVncmF0aW5nIHdpdGggUmVhY3QgU3VzcGVuc2U6XG4gICAqIC0gUmV0dXJucyB0aGUgY29tcG9uZW50IGlmIGxvYWRlZFxuICAgKiAtIFRocm93cyBhbiBlcnJvciBpZiBsb2FkaW5nIGZhaWxlZFxuICAgKiAtIFRocm93cyBhIFByb21pc2UgaWYgc3RpbGwgbG9hZGluZyAoU3VzcGVuc2Ugd2lsbCBjYXRjaCB0aGlzKVxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbG9hZGVkIGNvbXBvbmVudFxuICAgKiBAdGhyb3dzIFByb21pc2Ugd2hlbiBsb2FkaW5nIChjYXVnaHQgYnkgU3VzcGVuc2UpXG4gICAqIEB0aHJvd3MgRXJyb3Igd2hlbiBsb2FkaW5nIGZhaWxlZFxuICAgKi9cbiAgcHVibGljIHJlYWQoKTogUmVzb3VyY2VQYWdlUmV0dXJuIHwgUHJvbWlzZTxSZXNvdXJjZVBhZ2VSZXR1cm4+IHwgRXJyb3Ige1xuICAgIGlmICh0aGlzLl9fcmVzdWx0ICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLl9fcmVzdWx0O1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9fZXJyb3IgIT0gbnVsbCkge1xuICAgICAgdGhyb3cgdGhpcy5fX2Vycm9yO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L29ubHktdGhyb3ctZXJyb3JcbiAgICAgIHRocm93IHRoaXMuX19wcm9taXNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBtZXRob2QgdG8gZXhlY3V0ZSB0aGUgbG9hZGVyIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29tcG9uZW50XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIF9fbG9hZCgpOiBQcm9taXNlPFJlc291cmNlUGFnZVJldHVybj4ge1xuICAgIGNvbnN0IHsgX19sb2FkZXI6IGxvYWRlciB9ID0gdGhpcztcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobG9hZGVyKCkpO1xuICB9XG59XG5cbi8qKlxuICogRmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgb3IgcmV0cmlldmUgYSBjYWNoZWQgUmVzb3VyY2VQYWdlIGluc3RhbmNlLlxuICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIGEgc2luZ2xldG9uIHBhdHRlcm4gcGVyIG1vZHVsZUlkIHRvIGVuc3VyZSB0aGF0XG4gKiB0aGUgc2FtZSBjb21wb25lbnQgaXMgbm90IGxvYWRlZCBtdWx0aXBsZSB0aW1lcy5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlSWQgLSBHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlIHVzZWQgZm9yIGNhY2hpbmdcbiAqIEBwYXJhbSBsb2FkZXIgLSBGdW5jdGlvbiB0aGF0IHJldHVybnMgYSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29tcG9uZW50XG4gKiBAcmV0dXJucyBSZXNvdXJjZVBhZ2UgaW5zdGFuY2UgKGNhY2hlZCBpZiBwcmV2aW91c2x5IGNyZWF0ZWQpXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhIHJlc291cmNlIGZvciBsYXp5IGxvYWRpbmdcbiAqIGNvbnN0IHJlc291cmNlID0gZ2V0UmVzb3VyY2VQYWdlKCdVc2VyUHJvZmlsZScsICgpID0+IGltcG9ydCgnLi9Vc2VyUHJvZmlsZScpKTtcbiAqIHJlc291cmNlLmxvYWQoKTtcbiAqXG4gKiAvLyBJbiBhIFJlYWN0IGNvbXBvbmVudCB3aXRoIFN1c3BlbnNlIGJvdW5kYXJ5OlxuICogY29uc3QgVXNlclByb2ZpbGUgPSByZXNvdXJjZS5yZWFkKCk7XG4gKiByZXR1cm4gPFVzZXJQcm9maWxlIHVzZXJJZD17dXNlcklkfSAvPjtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VQYWdlKFxuICBtb2R1bGVJZDogc3RyaW5nLFxuICBsb2FkZXI6IFJlc291cmNlUGFnZUxvYWRlcixcbik6IFJlc291cmNlUGFnZSB8IG51bGwge1xuICBsZXQgcmVzb3VyY2UgPSByZXNvdXJjZVBhZ2VNYXAuZ2V0KG1vZHVsZUlkKTtcbiAgaWYgKHJlc291cmNlID09IG51bGwpIHtcbiAgICByZXNvdXJjZSA9IG5ldyBSZXNvdXJjZVBhZ2UobG9hZGVyLCBtb2R1bGVJZCk7XG4gICAgcmVzb3VyY2VQYWdlTWFwLnNldChtb2R1bGVJZCwgcmVzb3VyY2UpO1xuICB9XG4gIHJldHVybiByZXNvdXJjZTtcbn1cbiJdfQ==
|
package/lib/esm/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAS,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ5E,qBAAa,SAAS,CAAC,OAAO,SAAS,SAAS;IAEvC,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,QAAQ,EAAE,CAAC;IAGnB,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAGtC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAOR,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;CAOlD;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAS,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ5E,qBAAa,SAAS,CAAC,OAAO,SAAS,SAAS;IAEvC,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,QAAQ,EAAE,CAAC;IAGnB,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAGtC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAOR,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;CAOlD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAGxE;AASD,wBAAgB,UAAU,CACxB,WAAW,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,EACpC,YAAY,GAAE,QAAQ,EAAO,EAC7B,MAAM,SAAK,GACV,SAAS,CAAC,SAAS,CAAC,EAAE,CA8DxB;AAOD,wBAAgB,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,CAE3E"}
|
package/lib/esm/builder.js
CHANGED
|
@@ -68,4 +68,4 @@ export function buildRoute(routeConfig, parentRoutes = [], prefix = '') {
|
|
|
68
68
|
export function buildRoutes(routeConfig) {
|
|
69
69
|
return buildRoute(routeConfig);
|
|
70
70
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQXNDLE1BQU0sZ0JBQWdCLENBQUM7QUFVM0UsTUFBTSxPQUFPLFNBQVM7SUFFYixJQUFJLENBQVM7SUFHYixNQUFNLENBQWE7SUFHbkIsYUFBYSxDQUF5QjtJQUd0QyxVQUFVLENBQVU7SUFPM0IsWUFBbUIsS0FBOEI7UUFDL0MsTUFBTSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFHRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQTBCO0lBRW5ELE9BQVEsS0FBa0IsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDO0FBQ3hDLENBQUM7QUFTRCxNQUFNLFVBQVUsVUFBVSxDQUN4QixXQUFvQyxFQUNwQyxlQUEyQixFQUFFLEVBQzdCLE1BQU0sR0FBRyxFQUFFO0lBRVgsTUFBTSxVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUU5QyxLQUFLLE1BQU0sS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbEUsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQTZCLENBQUM7UUFFbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0MsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZFLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztZQUUzQixTQUFTO1FBQ1gsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxFQUFFO1lBQ3pDLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFFMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsVUFBVSxHQUFHLEdBQUcsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksU0FBUyxDQUFDO2dCQUNaLElBQUk7Z0JBQ0osVUFBVTtnQkFDVixhQUFhO2dCQUNiLE1BQU0sRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFlO2FBQ3hDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksU0FBUyxDQUFDO2dCQUNaLElBQUk7Z0JBQ0osYUFBYTtnQkFDYixNQUFNLEVBQUUsQ0FBQyxHQUFHLFlBQVksRUFBRSxLQUFLLENBQWU7YUFDL0MsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFPRCxNQUFNLFVBQVUsV0FBVyxDQUFDLFdBQXVCO0lBQ2pELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXRjaCwgdHlwZSBNYXRjaEZ1bmN0aW9uLCB0eXBlIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGVJbnB1dCwgUmVkaXJlY3QsIFJvdXRlLCBBbnlSb3V0ZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBmbGF0dGVuZWQgcm91dGUgd2l0aCBhIGNvbXBpbGVkIG1hdGNoIGZ1bmN0aW9uLlxuICogVGhpcyBpcyBhbiBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiB1c2VkIGJ5IHRoZSByb3V0ZXIgdG8gZWZmaWNpZW50bHkgbWF0Y2ggVVJMcy5cbiAqXG4gKiBAdGVtcGxhdGUgVFBhcmFtcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IGNsYXNzIEZsYXRSb3V0ZTxUUGFyYW1zIGV4dGVuZHMgUGFyYW1EYXRhPiB7XG4gIC8qKiBUaGUgVVJMIHBhdGggcGF0dGVybiBmb3IgdGhpcyByb3V0ZSAqL1xuICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuXG4gIC8qKiBOZXN0ZWQgcm91dGVzIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIHdpdGhpbiB0aGlzIHJvdXRlICovXG4gIHB1YmxpYyByb3V0ZXM6IEFueVJvdXRlW107XG5cbiAgLyoqIENvbXBpbGVkIGZ1bmN0aW9uIHRvIG1hdGNoIFVSTCBwYXRocyBhZ2FpbnN0IHRoaXMgcm91dGUgcGF0dGVybiAqL1xuICBwdWJsaWMgbWF0Y2hGdW5jdGlvbjogTWF0Y2hGdW5jdGlvbjxUUGFyYW1zPjtcblxuICAvKiogT3B0aW9uYWwgcmVkaXJlY3QgZGVzdGluYXRpb24gaWYgdGhpcyByb3V0ZSBzaG91bGQgcmVkaXJlY3QgKi9cbiAgcHVibGljIHJlZGlyZWN0VG8/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgRmxhdFJvdXRlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gaW5wdXQgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgZmxhdCByb3V0ZVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGlucHV0OiBGbGF0Um91dGVJbnB1dDxUUGFyYW1zPikge1xuICAgIGNvbnN0IHsgbWF0Y2hGdW5jdGlvbiwgcGF0aCwgcmVkaXJlY3RUbywgcm91dGVzIH0gPSBpbnB1dDtcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIHRoaXMucmVkaXJlY3RUbyA9IHJlZGlyZWN0VG87XG4gICAgdGhpcy5yb3V0ZXMgPSByb3V0ZXM7XG4gICAgdGhpcy5tYXRjaEZ1bmN0aW9uID0gbWF0Y2hGdW5jdGlvbjtcbiAgfVxufVxuXG4vKiogTmFycm93IGEgcm91dGUgY29uZmlndXJhdGlvbiB0byBhIHJlZGlyZWN0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3Qocm91dGU6IEFueVJvdXRlIHwgUmVkaXJlY3QpOiByb3V0ZSBpcyBSZWRpcmVjdCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gIHJldHVybiAocm91dGUgYXMgUmVkaXJlY3QpLnRvICE9IG51bGw7XG59XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgZmxhdHRlbnMgbmVzdGVkIHJvdXRlIGRlZmluaXRpb25zIGludG8gYEZsYXRSb3V0ZWAgZW50cmllcy5cbiAqXG4gKiBAcGFyYW0gcm91dGVDb25maWcgLSBSb3V0ZSBvciByZWRpcmVjdCBkZWZpbml0aW9ucyB0byBwcm9jZXNzLlxuICogQHBhcmFtIHBhcmVudFJvdXRlcyAtIEFjY3VtdWxhdGVkIHBhcmVudCByb3V0ZXMgZm9yIG5lc3RpbmcgY29udGV4dC5cbiAqIEBwYXJhbSBwcmVmaXggLSBDdXJyZW50IHBhdGggcHJlZml4IHByb3BhZ2F0ZWQgZnJvbSBwYXJlbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRSb3V0ZShcbiAgcm91dGVDb25maWc6IChBbnlSb3V0ZSB8IFJlZGlyZWN0KVtdLFxuICBwYXJlbnRSb3V0ZXM6IEFueVJvdXRlW10gPSBbXSxcbiAgcHJlZml4ID0gJycsXG4pOiBGbGF0Um91dGU8UGFyYW1EYXRhPltdIHtcbiAgY29uc3QgZmxhdFJvdXRlczogRmxhdFJvdXRlPFBhcmFtRGF0YT5bXSA9IFtdO1xuXG4gIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVDb25maWcpIHtcbiAgICBjb25zdCBwYXJ0cyA9IFtdO1xuICAgIGlmIChwcmVmaXggIT09ICcnKSB7XG4gICAgICBwYXJ0cy5wdXNoKHByZWZpeCk7XG4gICAgfVxuICAgIGlmIChyb3V0ZS5wYXRoICE9IG51bGwgJiYgcm91dGUucGF0aCAhPT0gJycgJiYgcm91dGUucGF0aCAhPT0gJy8nKSB7XG4gICAgICBsZXQgbm9ybWFsaXplZCA9IHJvdXRlLnBhdGg7XG4gICAgICBpZiAobm9ybWFsaXplZC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQuc2xpY2UoMSk7XG4gICAgICB9XG4gICAgICBwYXJ0cy5wdXNoKG5vcm1hbGl6ZWQpO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1BhdGggPSBwYXJ0cy5qb2luKCcvJyk7XG5cbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSByb3V0ZSBhcyBSb3V0ZTxhbnksIGFueSwgYW55PjtcblxuICAgIGlmICghaXNSZWRpcmVjdChyb3V0ZSkgJiYgY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgY29uc3Qgcm91dGVzID0gYnVpbGRSb3V0ZShjaGlsZHJlbiwgWy4uLnBhcmVudFJvdXRlcywgcm91dGVdLCBuZXdQYXRoKTtcbiAgICAgIGZsYXRSb3V0ZXMucHVzaCguLi5yb3V0ZXMpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnRpbnVlXG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaEZ1bmN0aW9uID0gbWF0Y2goYC8ke25ld1BhdGh9YCwge1xuICAgICAgdHJhaWxpbmc6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgbGV0IHBhdGggPSBuZXdQYXRoO1xuICAgIGlmICghbmV3UGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgIHBhdGggPSBgLyR7bmV3UGF0aH1gO1xuICAgIH1cblxuICAgIGlmIChpc1JlZGlyZWN0KHJvdXRlKSkge1xuICAgICAgbGV0IHJlZGlyZWN0VG8gPSByb3V0ZS50bztcblxuICAgICAgaWYgKCFyZWRpcmVjdFRvLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICByZWRpcmVjdFRvID0gYCR7cGF0aH0vJHtyZWRpcmVjdFRvfWA7XG4gICAgICB9XG4gICAgICBmbGF0Um91dGVzLnB1c2goXG4gICAgICAgIG5ldyBGbGF0Um91dGUoe1xuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgcmVkaXJlY3RUbyxcbiAgICAgICAgICBtYXRjaEZ1bmN0aW9uLFxuICAgICAgICAgIHJvdXRlczogWy4uLnBhcmVudFJvdXRlc10gYXMgQW55Um91dGVbXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGF0Um91dGVzLnB1c2goXG4gICAgICAgIG5ldyBGbGF0Um91dGUoe1xuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgbWF0Y2hGdW5jdGlvbixcbiAgICAgICAgICByb3V0ZXM6IFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlXSBhcyBBbnlSb3V0ZVtdLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZsYXRSb3V0ZXM7XG59XG5cbi8qKlxuICogVG9wLWxldmVsIGNvbnZlbmllbmNlIHRvIGZsYXR0ZW4gYSByb3V0ZSBjb25maWd1cmF0aW9uIGludG8gYEZsYXRSb3V0ZWBzLlxuICpcbiAqIEBwYXJhbSByb3V0ZUNvbmZpZyAtIFJvdXRlIGRlZmluaXRpb25zIHRvIGZsYXR0ZW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJvdXRlcyhyb3V0ZUNvbmZpZzogQW55Um91dGVbXSk6IEZsYXRSb3V0ZTxQYXJhbURhdGE+W10ge1xuICByZXR1cm4gYnVpbGRSb3V0ZShyb3V0ZUNvbmZpZyk7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpRedirect.d.ts","sourceRoot":"","sources":["../../../src/errors/HttpRedirect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HttpRedirect.d.ts","sourceRoot":"","sources":["../../../src/errors/HttpRedirect.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK;IAEtC,UAAU,EAAE,MAAM,CAAC;IAGnB,UAAU,EAAE,MAAM,CAAC;gBAQP,UAAU,EAAE,MAAM,EAAE,UAAU,SAAM;CAUxD"}
|
|
@@ -8,4 +8,4 @@ export default class HttpRedirect extends Error {
|
|
|
8
8
|
Object.setPrototypeOf(this, HttpRedirect.prototype);
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlZGlyZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Vycm9ycy9IdHRwUmVkaXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxDQUFDLE9BQU8sT0FBTyxZQUFhLFNBQVEsS0FBSztJQUV0QyxVQUFVLENBQVM7SUFHbkIsVUFBVSxDQUFTO0lBUTFCLFlBQW1CLFVBQWtCLEVBQUUsVUFBVSxHQUFHLEdBQUc7UUFDckQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXRCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBSTdCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogRXJyb3IgdGhhdCBzaWduYWxzIGFuIEhUVFAgcmVkaXJlY3QgZnJvbSByb3V0ZSBsb2dpYy4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEh0dHBSZWRpcmVjdCBleHRlbmRzIEVycm9yIHtcbiAgLyoqIFRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gKi9cbiAgcHVibGljIHJlZGlyZWN0VG86IHN0cmluZztcblxuICAvKiogSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlZGlyZWN0ICgzMDEsIDMwMiwgZXRjLikgKi9cbiAgcHVibGljIHN0YXR1c0NvZGU6IG51bWJlcjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBIdHRwUmVkaXJlY3QgZXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSByZWRpcmVjdFRvIC0gVGhlIFVSTCB0byByZWRpcmVjdCB0b1xuICAgKiBAcGFyYW0gc3RhdHVzQ29kZSAtIEhUVFAgc3RhdHVzIGNvZGUgKGRlZmF1bHRzIHRvIDMwMiBmb3IgdGVtcG9yYXJ5IHJlZGlyZWN0KVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHJlZGlyZWN0VG86IHN0cmluZywgc3RhdHVzQ29kZSA9IDMwMikge1xuICAgIHN1cGVyKCdIdHRwUmVkaXJlY3QnKTtcblxuICAgIHRoaXMucmVkaXJlY3RUbyA9IHJlZGlyZWN0VG87XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcblxuICAgIC8vIEZpeCBmb3IgaW5zdGFuY2VvZiBidWcgaW4gVHlwZVNjcmlwdDpcbiAgICAvLyBodHRwczovL3d3dy5kYW5ueWd1by5jb20vYmxvZy9ob3ctdG8tZml4LWluc3RhbmNlb2Ytbm90LXdvcmtpbmctZm9yLWN1c3RvbS1lcnJvcnMtaW4tdHlwZXNjcmlwdC9cbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSHR0cFJlZGlyZWN0LnByb3RvdHlwZSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/esm/errors/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { default as HttpRedirect } from './HttpRedirect.js';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUmUtZXhwb3J0IG9mIHRoZSBIdHRwUmVkaXJlY3QgZXJyb3IgaGVscGVyLiAqL1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIdHRwUmVkaXJlY3QgfSBmcm9tICcuL0h0dHBSZWRpcmVjdC5qcyc7XG4iXX0=
|
|
@@ -2,6 +2,9 @@ import type { History, HistoryListener, HistoryLocation } from './types.js';
|
|
|
2
2
|
export declare function createPath(location: HistoryLocation): string;
|
|
3
3
|
export default class BrowserHistory implements History {
|
|
4
4
|
private __listeners;
|
|
5
|
+
private __pendingDebugContext;
|
|
6
|
+
private __historyIndex;
|
|
7
|
+
private __currentIndex;
|
|
5
8
|
constructor();
|
|
6
9
|
get location(): Location;
|
|
7
10
|
init(): void;
|
|
@@ -9,8 +12,10 @@ export default class BrowserHistory implements History {
|
|
|
9
12
|
push(location: HistoryLocation): void;
|
|
10
13
|
unsubscribe(listener: HistoryListener): void;
|
|
11
14
|
subscribe(listener: HistoryListener): () => void;
|
|
12
|
-
private
|
|
13
|
-
private
|
|
15
|
+
private __notify;
|
|
16
|
+
private __consumePendingDebugContext;
|
|
14
17
|
private __subscribe;
|
|
18
|
+
private __handlePopstate;
|
|
19
|
+
private __ensureStateIndex;
|
|
15
20
|
}
|
|
16
21
|
//# sourceMappingURL=BrowserHistory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserHistory.d.ts","sourceRoot":"","sources":["../../../src/history/BrowserHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"BrowserHistory.d.ts","sourceRoot":"","sources":["../../../src/history/BrowserHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAC;AAQpB,wBAAgB,UAAU,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAI5D;AAOD,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,OAAO;IAEpD,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,qBAAqB,CAAoC;IAEjE,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,cAAc,CAAK;;IAgB3B,IAAW,QAAQ,IAAI,QAAQ,CAU9B;IAKM,IAAI,IAAI,IAAI;IAUZ,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IA+BpC,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAiCrC,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAY5C,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAYvD,OAAO,CAAC,QAAQ,CAQd;IAEF,OAAO,CAAC,4BAA4B;IAYpC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB,CA2BtB;IAEF,OAAO,CAAC,kBAAkB;CA2B3B"}
|
|
@@ -4,8 +4,12 @@ export function createPath(location) {
|
|
|
4
4
|
}
|
|
5
5
|
export default class BrowserHistory {
|
|
6
6
|
__listeners = [];
|
|
7
|
+
__pendingDebugContext = null;
|
|
8
|
+
__historyIndex = 0;
|
|
9
|
+
__currentIndex = 0;
|
|
7
10
|
constructor() {
|
|
8
11
|
this.init();
|
|
12
|
+
this.__ensureStateIndex();
|
|
9
13
|
}
|
|
10
14
|
get location() {
|
|
11
15
|
return {
|
|
@@ -18,14 +22,40 @@ export default class BrowserHistory {
|
|
|
18
22
|
this.__subscribe();
|
|
19
23
|
}
|
|
20
24
|
set(location) {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
const { debugContext, ...rest } = location;
|
|
26
|
+
const path = createPath(rest);
|
|
27
|
+
if (debugContext !== undefined) {
|
|
28
|
+
this.__pendingDebugContext = {
|
|
29
|
+
...debugContext,
|
|
30
|
+
historyIndex: this.__currentIndex,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.__pendingDebugContext = { historyIndex: this.__currentIndex };
|
|
35
|
+
}
|
|
36
|
+
window.history.replaceState({
|
|
37
|
+
__plumileRouterIndex: this.__currentIndex,
|
|
38
|
+
}, '', path);
|
|
39
|
+
this.__notify(true);
|
|
24
40
|
}
|
|
25
41
|
push(location) {
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
this.
|
|
42
|
+
const { debugContext, ...rest } = location;
|
|
43
|
+
const path = createPath(rest);
|
|
44
|
+
this.__historyIndex += 1;
|
|
45
|
+
this.__currentIndex = this.__historyIndex;
|
|
46
|
+
if (debugContext !== undefined) {
|
|
47
|
+
this.__pendingDebugContext = {
|
|
48
|
+
...debugContext,
|
|
49
|
+
historyIndex: this.__currentIndex,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.__pendingDebugContext = { historyIndex: this.__currentIndex };
|
|
54
|
+
}
|
|
55
|
+
window.history.pushState({
|
|
56
|
+
__plumileRouterIndex: this.__currentIndex,
|
|
57
|
+
}, '', path);
|
|
58
|
+
this.__notify(false);
|
|
29
59
|
}
|
|
30
60
|
unsubscribe(listener) {
|
|
31
61
|
this.__listeners = this.__listeners.filter((item) => {
|
|
@@ -38,24 +68,72 @@ export default class BrowserHistory {
|
|
|
38
68
|
this.unsubscribe(listener);
|
|
39
69
|
};
|
|
40
70
|
}
|
|
41
|
-
|
|
71
|
+
__notify = (forceRerender) => {
|
|
42
72
|
setTimeout(() => {
|
|
43
73
|
const { location } = this;
|
|
74
|
+
const context = this.__consumePendingDebugContext();
|
|
44
75
|
this.__listeners.forEach((listener) => {
|
|
45
|
-
listener(location,
|
|
46
|
-
});
|
|
47
|
-
}, 0);
|
|
48
|
-
};
|
|
49
|
-
__doFire = (forceRerender = false) => {
|
|
50
|
-
setTimeout(() => {
|
|
51
|
-
const { location } = this;
|
|
52
|
-
this.__listeners.forEach((listener) => {
|
|
53
|
-
listener(location, forceRerender);
|
|
76
|
+
listener(location, forceRerender, context);
|
|
54
77
|
});
|
|
55
78
|
}, 0);
|
|
56
79
|
};
|
|
80
|
+
__consumePendingDebugContext() {
|
|
81
|
+
if (this.__pendingDebugContext == null) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
const context = this.__pendingDebugContext;
|
|
85
|
+
this.__pendingDebugContext = null;
|
|
86
|
+
return context;
|
|
87
|
+
}
|
|
57
88
|
__subscribe() {
|
|
58
|
-
window.addEventListener('popstate', this.
|
|
89
|
+
window.addEventListener('popstate', this.__handlePopstate);
|
|
90
|
+
}
|
|
91
|
+
__handlePopstate = (event) => {
|
|
92
|
+
let origin;
|
|
93
|
+
let historyIndex;
|
|
94
|
+
const state = event.state;
|
|
95
|
+
if (state != null && typeof state.__plumileRouterIndex === 'number') {
|
|
96
|
+
historyIndex = state.__plumileRouterIndex;
|
|
97
|
+
if (historyIndex < this.__currentIndex) {
|
|
98
|
+
origin = 'popstate-back';
|
|
99
|
+
}
|
|
100
|
+
else if (historyIndex > this.__currentIndex) {
|
|
101
|
+
origin = 'popstate-forward';
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
origin = 'popstate-unknown';
|
|
105
|
+
}
|
|
106
|
+
this.__currentIndex = historyIndex;
|
|
107
|
+
if (historyIndex > this.__historyIndex) {
|
|
108
|
+
this.__historyIndex = historyIndex;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
origin = 'external';
|
|
113
|
+
}
|
|
114
|
+
this.__pendingDebugContext = {
|
|
115
|
+
origin,
|
|
116
|
+
trigger: 'popstate',
|
|
117
|
+
historyIndex,
|
|
118
|
+
};
|
|
119
|
+
this.__notify(false);
|
|
120
|
+
};
|
|
121
|
+
__ensureStateIndex() {
|
|
122
|
+
const state = window.history.state;
|
|
123
|
+
if (state != null && typeof state.__plumileRouterIndex === 'number') {
|
|
124
|
+
this.__currentIndex = state.__plumileRouterIndex;
|
|
125
|
+
this.__historyIndex = state.__plumileRouterIndex;
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const { pathname, search, hash } = window.location;
|
|
129
|
+
let targetUrl = `${pathname}${search}${hash}`;
|
|
130
|
+
if (typeof window.location.href === 'string' &&
|
|
131
|
+
window.location.href !== '') {
|
|
132
|
+
targetUrl = window.location.href;
|
|
133
|
+
}
|
|
134
|
+
window.history.replaceState({
|
|
135
|
+
__plumileRouterIndex: this.__currentIndex,
|
|
136
|
+
}, '', targetUrl);
|
|
59
137
|
}
|
|
60
138
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvd3Nlckhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGlzdG9yeS9Ccm93c2VySGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQXlCO0lBQ2xELE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXRELE9BQU8sR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFPRCxNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFFekIsV0FBVyxHQUFzQixFQUFFLENBQUM7SUFLNUM7UUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBUUQsSUFBVyxRQUFRO1FBSWpCLE9BQU87WUFFTCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDOUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtTQUNKLENBQUM7SUFDM0IsQ0FBQztJQUtNLElBQUk7UUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQVFNLEdBQUcsQ0FBQyxRQUF5QjtRQUNsQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFRTSxJQUFJLENBQUMsUUFBeUI7UUFDbkMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFPTSxXQUFXLENBQUMsUUFBeUI7UUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xELE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFRTSxTQUFTLENBQUMsUUFBeUI7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsT0FBTyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQztJQUNKLENBQUM7SUFNTyxNQUFNLEdBQUcsR0FBUyxFQUFFO1FBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3BDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDLENBQUM7SUFPTSxRQUFRLEdBQUcsQ0FBQyxhQUFhLEdBQUcsS0FBSyxFQUFFLEVBQUU7UUFDM0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDcEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUMsQ0FBQztJQUtNLFdBQVc7UUFDakIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBIaXN0b3J5LCBIaXN0b3J5TGlzdGVuZXIsIEhpc3RvcnlMb2NhdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjb21wbGV0ZSBVUkwgcGF0aCBmcm9tIGEgSGlzdG9yeUxvY2F0aW9uIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gbG9jYXRpb24gLSBMb2NhdGlvbiBvYmplY3QgY29udGFpbmluZyBwYXRobmFtZSwgc2VhcmNoLCBhbmQgaGFzaFxuICogQHJldHVybnMgQ29tcGxldGUgcGF0aCBzdHJpbmcgY29tYmluaW5nIGFsbCBjb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYXRoKGxvY2F0aW9uOiBIaXN0b3J5TG9jYXRpb24pOiBzdHJpbmcge1xuICBjb25zdCB7IHBhdGhuYW1lLCBzZWFyY2ggPSAnJywgaGFzaCA9ICcnIH0gPSBsb2NhdGlvbjtcblxuICByZXR1cm4gYCR7cGF0aG5hbWV9JHtzZWFyY2h9JHtoYXNofWA7XG59XG5cbi8qKlxuICogQnJvd3NlciBoaXN0b3J5IGltcGxlbWVudGF0aW9uIHVzaW5nIHRoZSBIVE1MNSBIaXN0b3J5IEFQSS5cbiAqIE1hbmFnZXMgYnJvd3NlciBuYXZpZ2F0aW9uIHN0YXRlIGFuZCBwcm92aWRlcyBhIGNvbnNpc3RlbnQgaW50ZXJmYWNlXG4gKiBmb3IgcHJvZ3JhbW1hdGljIG5hdmlnYXRpb24gYW5kIGxvY2F0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCcm93c2VySGlzdG9yeSBpbXBsZW1lbnRzIEhpc3Rvcnkge1xuICAvKiogQXJyYXkgb2YgbGlzdGVuZXJzIGZvciBsb2NhdGlvbiBjaGFuZ2VzICovXG4gIHByaXZhdGUgX19saXN0ZW5lcnM6IEhpc3RvcnlMaXN0ZW5lcltdID0gW107XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQnJvd3Nlckhpc3RvcnkgaW5zdGFuY2UgYW5kIGluaXRpYWxpemVzIGV2ZW50IGxpc3RlbmVycy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGJyb3dzZXIgbG9jYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgd2luZG93LmxvY2F0aW9uIG9iamVjdFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgcHVibGljIGdldCBsb2NhdGlvbigpOiBMb2NhdGlvbiB7XG4gICAgLy8gU29tZSB0ZXN0IERPTSBlbnZpcm9ubWVudHMgKGUuZy4gaGFwcHktZG9tKSBleHBvc2Ugbm9uLWVudW1lcmFibGVcbiAgICAvLyBMb2NhdGlvbiBwcm9wZXJ0aWVzIHNvIGEgc2ltcGxlIHNwcmVhZCByZXR1cm5zIGFuIGVtcHR5IG9iamVjdC5cbiAgICAvLyBSZXR1cm4gYW4gZXhwbGljaXQgcGxhaW4gb2JqZWN0IHdpdGggdGhlIGZpZWxkcyB3ZSByZWx5IG9uLlxuICAgIHJldHVybiB7XG4gICAgICAvLyBwYXRobmFtZS9zZWFyY2gvaGFzaCBhcmUgc3VmZmljaWVudCBmb3Igb3VyIHJvdXRlciBsb2dpY1xuICAgICAgcGF0aG5hbWU6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxcbiAgICAgIHNlYXJjaDogd2luZG93LmxvY2F0aW9uLnNlYXJjaCxcbiAgICAgIGhhc2g6IHdpbmRvdy5sb2NhdGlvbi5oYXNoLFxuICAgIH0gYXMgdW5rbm93biBhcyBMb2NhdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgaGlzdG9yeSBpbnN0YW5jZSBieSBzZXR0aW5nIHVwIGV2ZW50IGxpc3RlbmVycy5cbiAgICovXG4gIHB1YmxpYyBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX19zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyB0aGUgY3VycmVudCBoaXN0b3J5IGVudHJ5IHdpdGggYSBuZXcgbG9jYXRpb24uXG4gICAqIFRoaXMgdXBkYXRlcyB0aGUgVVJMIHdpdGhvdXQgY3JlYXRpbmcgYSBuZXcgaGlzdG9yeSBlbnRyeS5cbiAgICpcbiAgICogQHBhcmFtIGxvY2F0aW9uIC0gTmV3IGxvY2F0aW9uIHRvIHNldFxuICAgKi9cbiAgcHVibGljIHNldChsb2NhdGlvbjogSGlzdG9yeUxvY2F0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgcGF0aCA9IGNyZWF0ZVBhdGgobG9jYXRpb24pO1xuXG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCAnJywgcGF0aCk7XG4gICAgdGhpcy5fX2RvRmlyZSh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gYSBuZXcgbG9jYXRpb24gYnkgcHVzaGluZyBhIG5ldyBoaXN0b3J5IGVudHJ5LlxuICAgKiBUaGlzIGNyZWF0ZXMgYSBuZXcgZW50cnkgaW4gdGhlIGJyb3dzZXIncyBoaXN0b3J5IHN0YWNrLlxuICAgKlxuICAgKiBAcGFyYW0gbG9jYXRpb24gLSBMb2NhdGlvbiB0byBuYXZpZ2F0ZSB0b1xuICAgKi9cbiAgcHVibGljIHB1c2gobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IHBhdGggPSBjcmVhdGVQYXRoKGxvY2F0aW9uKTtcblxuICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwgJycsIHBhdGgpO1xuICAgIHRoaXMuX19maXJlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGxpc3RlbmVyIGZyb20gdGhlIGhpc3RvcnkgY2hhbmdlIG5vdGlmaWNhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBsaXN0ZW5lciAtIExpc3RlbmVyIGZ1bmN0aW9uIHRvIHJlbW92ZVxuICAgKi9cbiAgcHVibGljIHVuc3Vic2NyaWJlKGxpc3RlbmVyOiBIaXN0b3J5TGlzdGVuZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9fbGlzdGVuZXJzID0gdGhpcy5fX2xpc3RlbmVycy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBpdGVtICE9PSBsaXN0ZW5lcjtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmVzIHRvIGhpc3RvcnkgY2hhbmdlcy5cbiAgICpcbiAgICogQHBhcmFtIGxpc3RlbmVyIC0gRnVuY3Rpb24gdG8gY2FsbCB3aGVuIGxvY2F0aW9uIGNoYW5nZXNcbiAgICogQHJldHVybnMgVW5zdWJzY3JpYmUgZnVuY3Rpb25cbiAgICovXG4gIHB1YmxpYyBzdWJzY3JpYmUobGlzdGVuZXI6IEhpc3RvcnlMaXN0ZW5lcik6ICgpID0+IHZvaWQge1xuICAgIHRoaXMuX19saXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUobGlzdGVuZXIpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTm90aWZpZXMgYWxsIGxpc3RlbmVycyBvZiBhIGxvY2F0aW9uIGNoYW5nZS5cbiAgICogVXNlcyBzZXRUaW1lb3V0IHRvIGVuc3VyZSB0aGUgbm90aWZpY2F0aW9uIGhhcHBlbnMgYWZ0ZXIgdGhlIGN1cnJlbnQgZXhlY3V0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBfX2ZpcmUgPSAoKTogdm9pZCA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCB7IGxvY2F0aW9uIH0gPSB0aGlzO1xuICAgICAgdGhpcy5fX2xpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4ge1xuICAgICAgICBsaXN0ZW5lcihsb2NhdGlvbiwgZmFsc2UpO1xuICAgICAgfSk7XG4gICAgfSwgMCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIGFsbCBsaXN0ZW5lcnMgb2YgYSBsb2NhdGlvbiBjaGFuZ2Ugd2l0aCBvcHRpb25hbCBmb3JjZSByZXJlbmRlci5cbiAgICpcbiAgICogQHBhcmFtIGZvcmNlUmVyZW5kZXIgLSBXaGV0aGVyIHRvIGZvcmNlIGEgcmUtcmVuZGVyXG4gICAqL1xuICBwcml2YXRlIF9fZG9GaXJlID0gKGZvcmNlUmVyZW5kZXIgPSBmYWxzZSkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgeyBsb2NhdGlvbiB9ID0gdGhpcztcbiAgICAgIHRoaXMuX19saXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IHtcbiAgICAgICAgbGlzdGVuZXIobG9jYXRpb24sIGZvcmNlUmVyZW5kZXIpO1xuICAgICAgfSk7XG4gICAgfSwgMCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIHBvcHN0YXRlIGV2ZW50IGxpc3RlbmVyIGZvciBicm93c2VyIGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBfX3N1YnNjcmliZSgpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLl9fZmlyZSk7XG4gIH1cbn1cbiJdfQ==
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvd3Nlckhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGlzdG9yeS9Ccm93c2VySGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQXlCO0lBQ2xELE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXRELE9BQU8sR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFPRCxNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFFekIsV0FBVyxHQUFzQixFQUFFLENBQUM7SUFFcEMscUJBQXFCLEdBQStCLElBQUksQ0FBQztJQUV6RCxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBRW5CLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFLM0I7UUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBUUQsSUFBVyxRQUFRO1FBSWpCLE9BQU87WUFFTCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDOUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtTQUNKLENBQUM7SUFDM0IsQ0FBQztJQUtNLElBQUk7UUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQVFNLEdBQUcsQ0FBQyxRQUF5QjtRQUNsQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsUUFFakMsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QixJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FB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QUFJLEtBQUssSUFBSSxJQUFJLElBQUksT0FBTyxLQUFLLENBQUMsb0JBQW9CLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUM7WUFDakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUM7WUFDakQsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ25ELElBQUksU0FBUyxHQUFHLEdBQUcsUUFBUSxHQUFHLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUNFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUN4QyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQzNCLENBQUM7WUFDRCxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbkMsQ0FBQztRQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUN6QjtZQUNFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxjQUFjO1NBQzFDLEVBQ0QsRUFBRSxFQUNGLFNBQVMsQ0FDVixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBIaXN0b3J5LFxuICBIaXN0b3J5RGVidWdDb250ZXh0LFxuICBIaXN0b3J5TGlzdGVuZXIsXG4gIEhpc3RvcnlMb2NhdGlvbixcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbXBsZXRlIFVSTCBwYXRoIGZyb20gYSBIaXN0b3J5TG9jYXRpb24gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBsb2NhdGlvbiAtIExvY2F0aW9uIG9iamVjdCBjb250YWluaW5nIHBhdGhuYW1lLCBzZWFyY2gsIGFuZCBoYXNoXG4gKiBAcmV0dXJucyBDb21wbGV0ZSBwYXRoIHN0cmluZyBjb21iaW5pbmcgYWxsIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGgobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbik6IHN0cmluZyB7XG4gIGNvbnN0IHsgcGF0aG5hbWUsIHNlYXJjaCA9ICcnLCBoYXNoID0gJycgfSA9IGxvY2F0aW9uO1xuXG4gIHJldHVybiBgJHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YDtcbn1cblxuLyoqXG4gKiBCcm93c2VyIGhpc3RvcnkgaW1wbGVtZW50YXRpb24gdXNpbmcgdGhlIEhUTUw1IEhpc3RvcnkgQVBJLlxuICogTWFuYWdlcyBicm93c2VyIG5hdmlnYXRpb24gc3RhdGUgYW5kIHByb3ZpZGVzIGEgY29uc2lzdGVudCBpbnRlcmZhY2VcbiAqIGZvciBwcm9ncmFtbWF0aWMgbmF2aWdhdGlvbiBhbmQgbG9jYXRpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJyb3dzZXJIaXN0b3J5IGltcGxlbWVudHMgSGlzdG9yeSB7XG4gIC8qKiBBcnJheSBvZiBsaXN0ZW5lcnMgZm9yIGxvY2F0aW9uIGNoYW5nZXMgKi9cbiAgcHJpdmF0ZSBfX2xpc3RlbmVyczogSGlzdG9yeUxpc3RlbmVyW10gPSBbXTtcbiAgLyoqIERlYnVnIG1ldGFkYXRhIGNhcHR1cmVkIGZvciB0aGUgbmV4dCBub3RpZmljYXRpb24gKi9cbiAgcHJpdmF0ZSBfX3BlbmRpbmdEZWJ1Z0NvbnRleHQ6IEhpc3RvcnlEZWJ1Z0NvbnRleHQgfCBudWxsID0gbnVsbDtcbiAgLyoqIE1vbm90b25pYyBjb3VudGVyIGF0dGFjaGVkIHRvIHB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUgKi9cbiAgcHJpdmF0ZSBfX2hpc3RvcnlJbmRleCA9IDA7XG4gIC8qKiBDdXJyZW50IGluZGV4IHJlcHJlc2VudGluZyB0aGUgYWN0aXZlIGVudHJ5ICovXG4gIHByaXZhdGUgX19jdXJyZW50SW5kZXggPSAwO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEJyb3dzZXJIaXN0b3J5IGluc3RhbmNlIGFuZCBpbml0aWFsaXplcyBldmVudCBsaXN0ZW5lcnMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gICAgdGhpcy5fX2Vuc3VyZVN0YXRlSW5kZXgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGJyb3dzZXIgbG9jYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgd2luZG93LmxvY2F0aW9uIG9iamVjdFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgcHVibGljIGdldCBsb2NhdGlvbigpOiBMb2NhdGlvbiB7XG4gICAgLy8gU29tZSB0ZXN0IERPTSBlbnZpcm9ubWVudHMgKGUuZy4gaGFwcHktZG9tKSBleHBvc2Ugbm9uLWVudW1lcmFibGVcbiAgICAvLyBMb2NhdGlvbiBwcm9wZXJ0aWVzIHNvIGEgc2ltcGxlIHNwcmVhZCByZXR1cm5zIGFuIGVtcHR5IG9iamVjdC5cbiAgICAvLyBSZXR1cm4gYW4gZXhwbGljaXQgcGxhaW4gb2JqZWN0IHdpdGggdGhlIGZpZWxkcyB3ZSByZWx5IG9uLlxuICAgIHJldHVybiB7XG4gICAgICAvLyBwYXRobmFtZS9zZWFyY2gvaGFzaCBhcmUgc3VmZmljaWVudCBmb3Igb3VyIHJvdXRlciBsb2dpY1xuICAgICAgcGF0aG5hbWU6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxcbiAgICAgIHNlYXJjaDogd2luZG93LmxvY2F0aW9uLnNlYXJjaCxcbiAgICAgIGhhc2g6IHdpbmRvdy5sb2NhdGlvbi5oYXNoLFxuICAgIH0gYXMgdW5rbm93biBhcyBMb2NhdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgaGlzdG9yeSBpbnN0YW5jZSBieSBzZXR0aW5nIHVwIGV2ZW50IGxpc3RlbmVycy5cbiAgICovXG4gIHB1YmxpYyBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX19zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyB0aGUgY3VycmVudCBoaXN0b3J5IGVudHJ5IHdpdGggYSBuZXcgbG9jYXRpb24uXG4gICAqIFRoaXMgdXBkYXRlcyB0aGUgVVJMIHdpdGhvdXQgY3JlYXRpbmcgYSBuZXcgaGlzdG9yeSBlbnRyeS5cbiAgICpcbiAgICogQHBhcmFtIGxvY2F0aW9uIC0gTmV3IGxvY2F0aW9uIHRvIHNldFxuICAgKi9cbiAgcHVibGljIHNldChsb2NhdGlvbjogSGlzdG9yeUxvY2F0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgeyBkZWJ1Z0NvbnRleHQsIC4uLnJlc3QgfSA9IGxvY2F0aW9uIGFzIEhpc3RvcnlMb2NhdGlvbiAmIHtcbiAgICAgIGRlYnVnQ29udGV4dD86IEhpc3RvcnlEZWJ1Z0NvbnRleHQ7XG4gICAgfTtcbiAgICBjb25zdCBwYXRoID0gY3JlYXRlUGF0aChyZXN0KTtcblxuICAgIGlmIChkZWJ1Z0NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSB7XG4gICAgICAgIC4uLmRlYnVnQ29udGV4dCxcbiAgICAgICAgaGlzdG9yeUluZGV4OiB0aGlzLl9fY3VycmVudEluZGV4LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSB7IGhpc3RvcnlJbmRleDogdGhpcy5fX2N1cnJlbnRJbmRleCB9O1xuICAgIH1cblxuICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShcbiAgICAgIHtcbiAgICAgICAgX19wbHVtaWxlUm91dGVySW5kZXg6IHRoaXMuX19jdXJyZW50SW5kZXgsXG4gICAgICB9LFxuICAgICAgJycsXG4gICAgICBwYXRoLFxuICAgICk7XG4gICAgdGhpcy5fX25vdGlmeSh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gYSBuZXcgbG9jYXRpb24gYnkgcHVzaGluZyBhIG5ldyBoaXN0b3J5IGVudHJ5LlxuICAgKiBUaGlzIGNyZWF0ZXMgYSBuZXcgZW50cnkgaW4gdGhlIGJyb3dzZXIncyBoaXN0b3J5IHN0YWNrLlxuICAgKlxuICAgKiBAcGFyYW0gbG9jYXRpb24gLSBMb2NhdGlvbiB0byBuYXZpZ2F0ZSB0b1xuICAgKi9cbiAgcHVibGljIHB1c2gobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IHsgZGVidWdDb250ZXh0LCAuLi5yZXN0IH0gPSBsb2NhdGlvbiBhcyBIaXN0b3J5TG9jYXRpb24gJiB7XG4gICAgICBkZWJ1Z0NvbnRleHQ/OiBIaXN0b3J5RGVidWdDb250ZXh0O1xuICAgIH07XG4gICAgY29uc3QgcGF0aCA9IGNyZWF0ZVBhdGgocmVzdCk7XG5cbiAgICB0aGlzLl9faGlzdG9yeUluZGV4ICs9IDE7XG4gICAgdGhpcy5fX2N1cnJlbnRJbmRleCA9IHRoaXMuX19oaXN0b3J5SW5kZXg7XG5cbiAgICBpZiAoZGVidWdDb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX19wZW5kaW5nRGVidWdDb250ZXh0ID0ge1xuICAgICAgICAuLi5kZWJ1Z0NvbnRleHQsXG4gICAgICAgIGhpc3RvcnlJbmRleDogdGhpcy5fX2N1cnJlbnRJbmRleCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX19wZW5kaW5nRGVidWdDb250ZXh0ID0geyBoaXN0b3J5SW5kZXg6IHRoaXMuX19jdXJyZW50SW5kZXggfTtcbiAgICB9XG5cbiAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoXG4gICAgICB7XG4gICAgICAgIF9fcGx1bWlsZVJvdXRlckluZGV4OiB0aGlzLl9fY3VycmVudEluZGV4LFxuICAgICAgfSxcbiAgICAgICcnLFxuICAgICAgcGF0aCxcbiAgICApO1xuICAgIHRoaXMuX19ub3RpZnkoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBsaXN0ZW5lciBmcm9tIHRoZSBoaXN0b3J5IGNoYW5nZSBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gbGlzdGVuZXIgLSBMaXN0ZW5lciBmdW5jdGlvbiB0byByZW1vdmVcbiAgICovXG4gIHB1YmxpYyB1bnN1YnNjcmliZShsaXN0ZW5lcjogSGlzdG9yeUxpc3RlbmVyKTogdm9pZCB7XG4gICAgdGhpcy5fX2xpc3RlbmVycyA9IHRoaXMuX19saXN0ZW5lcnMuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gaXRlbSAhPT0gbGlzdGVuZXI7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byBoaXN0b3J5IGNoYW5nZXMuXG4gICAqXG4gICAqIEBwYXJhbSBsaXN0ZW5lciAtIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBsb2NhdGlvbiBjaGFuZ2VzXG4gICAqIEByZXR1cm5zIFVuc3Vic2NyaWJlIGZ1bmN0aW9uXG4gICAqL1xuICBwdWJsaWMgc3Vic2NyaWJlKGxpc3RlbmVyOiBIaXN0b3J5TGlzdGVuZXIpOiAoKSA9PiB2b2lkIHtcbiAgICB0aGlzLl9fbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlKGxpc3RlbmVyKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIGFsbCBsaXN0ZW5lcnMgb2YgYSBsb2NhdGlvbiBjaGFuZ2UuXG4gICAqXG4gICAqIFVzZXMgc2V0VGltZW91dCB0byBlbnN1cmUgdGhlIG5vdGlmaWNhdGlvbiBoYXBwZW5zIGFmdGVyIHRoZSBjdXJyZW50IGV4ZWN1dGlvbi5cbiAgICovXG4gIHByaXZhdGUgX19ub3RpZnkgPSAoZm9yY2VSZXJlbmRlcjogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgeyBsb2NhdGlvbiB9ID0gdGhpcztcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9fY29uc3VtZVBlbmRpbmdEZWJ1Z0NvbnRleHQoKTtcbiAgICAgIHRoaXMuX19saXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IHtcbiAgICAgICAgbGlzdGVuZXIobG9jYXRpb24sIGZvcmNlUmVyZW5kZXIsIGNvbnRleHQpO1xuICAgICAgfSk7XG4gICAgfSwgMCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfX2NvbnN1bWVQZW5kaW5nRGVidWdDb250ZXh0KCk6IEhpc3RvcnlEZWJ1Z0NvbnRleHQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLl9fcGVuZGluZ0RlYnVnQ29udGV4dCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQ7XG4gICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSBudWxsO1xuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIHBvcHN0YXRlIGV2ZW50IGxpc3RlbmVyIGZvciBicm93c2VyIGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBfX3N1YnNjcmliZSgpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLl9faGFuZGxlUG9wc3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfX2hhbmRsZVBvcHN0YXRlID0gKGV2ZW50OiBQb3BTdGF0ZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgbGV0IG9yaWdpbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBoaXN0b3J5SW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBzdGF0ZSA9IGV2ZW50LnN0YXRlIGFzIHsgX19wbHVtaWxlUm91dGVySW5kZXg/OiBudW1iZXIgfSB8IG51bGw7XG4gICAgaWYgKHN0YXRlICE9IG51bGwgJiYgdHlwZW9mIHN0YXRlLl9fcGx1bWlsZVJvdXRlckluZGV4ID09PSAnbnVtYmVyJykge1xuICAgICAgaGlzdG9yeUluZGV4ID0gc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXg7XG4gICAgICBpZiAoaGlzdG9yeUluZGV4IDwgdGhpcy5fX2N1cnJlbnRJbmRleCkge1xuICAgICAgICBvcmlnaW4gPSAncG9wc3RhdGUtYmFjayc7XG4gICAgICB9IGVsc2UgaWYgKGhpc3RvcnlJbmRleCA+IHRoaXMuX19jdXJyZW50SW5kZXgpIHtcbiAgICAgICAgb3JpZ2luID0gJ3BvcHN0YXRlLWZvcndhcmQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3JpZ2luID0gJ3BvcHN0YXRlLXVua25vd24nO1xuICAgICAgfVxuICAgICAgdGhpcy5fX2N1cnJlbnRJbmRleCA9IGhpc3RvcnlJbmRleDtcbiAgICAgIGlmIChoaXN0b3J5SW5kZXggPiB0aGlzLl9faGlzdG9yeUluZGV4KSB7XG4gICAgICAgIHRoaXMuX19oaXN0b3J5SW5kZXggPSBoaXN0b3J5SW5kZXg7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG9yaWdpbiA9ICdleHRlcm5hbCc7XG4gICAgfVxuXG4gICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSB7XG4gICAgICBvcmlnaW4sXG4gICAgICB0cmlnZ2VyOiAncG9wc3RhdGUnLFxuICAgICAgaGlzdG9yeUluZGV4LFxuICAgIH07XG4gICAgdGhpcy5fX25vdGlmeShmYWxzZSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfX2Vuc3VyZVN0YXRlSW5kZXgoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB3aW5kb3cuaGlzdG9yeS5zdGF0ZSBhcyB7XG4gICAgICBfX3BsdW1pbGVSb3V0ZXJJbmRleD86IG51bWJlcjtcbiAgICB9IHwgbnVsbDtcbiAgICBpZiAoc3RhdGUgIT0gbnVsbCAmJiB0eXBlb2Ygc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXggPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLl9fY3VycmVudEluZGV4ID0gc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXg7XG4gICAgICB0aGlzLl9faGlzdG9yeUluZGV4ID0gc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXg7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBwYXRobmFtZSwgc2VhcmNoLCBoYXNoIH0gPSB3aW5kb3cubG9jYXRpb247XG4gICAgbGV0IHRhcmdldFVybCA9IGAke3BhdGhuYW1lfSR7c2VhcmNofSR7aGFzaH1gO1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiB3aW5kb3cubG9jYXRpb24uaHJlZiA9PT0gJ3N0cmluZycgJiZcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmICE9PSAnJ1xuICAgICkge1xuICAgICAgdGFyZ2V0VXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgfVxuXG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKFxuICAgICAge1xuICAgICAgICBfX3BsdW1pbGVSb3V0ZXJJbmRleDogdGhpcy5fX2N1cnJlbnRJbmRleCxcbiAgICAgIH0sXG4gICAgICAnJyxcbiAgICAgIHRhcmdldFVybCxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type HistoryDebugContext = {
|
|
2
|
+
origin?: string;
|
|
3
|
+
trigger?: string;
|
|
4
|
+
historyIndex?: number;
|
|
5
|
+
};
|
|
6
|
+
export type HistoryListener = (location: Location, forceRerender: boolean, debugContext?: HistoryDebugContext) => void;
|
|
2
7
|
export type HistoryLocation = {
|
|
3
8
|
hash?: string;
|
|
4
9
|
pathname: string;
|
|
5
10
|
search?: string;
|
|
11
|
+
debugContext?: HistoryDebugContext;
|
|
6
12
|
};
|
|
7
13
|
export interface History {
|
|
8
14
|
init: () => void;
|
|
9
15
|
subscribe: (listener: HistoryListener) => () => void;
|
|
10
16
|
push: (location: HistoryLocation) => void;
|
|
17
|
+
set: (location: HistoryLocation) => void;
|
|
11
18
|
}
|
|
12
19
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/history/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,eAAe,GAAG,CAC5B,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/history/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,OAAO,EACtB,YAAY,CAAC,EAAE,mBAAmB,KAC/B,IAAI,CAAC;AAMV,MAAM,MAAM,eAAe,GAAG;IAE5B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAMF,MAAM,WAAW,OAAO;IAEtB,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,MAAM,IAAI,CAAC;IAErD,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IAE1C,GAAG,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CAC1C"}
|
package/lib/esm/history/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGlzdG9yeS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgaGlzdG9yeSBjaGFuZ2VzLlxuICogQ2FsbGVkIHdoZW5ldmVyIHRoZSBicm93c2VyIGxvY2F0aW9uIGNoYW5nZXMuXG4gKlxuICogQHBhcmFtIGxvY2F0aW9uIC0gVGhlIG5ldyBicm93c2VyIGxvY2F0aW9uXG4gKiBAcGFyYW0gZm9yY2VSZXJlbmRlciAtIFdoZXRoZXIgdG8gZm9yY2UgYSByZS1yZW5kZXIgZXZlbiBpZiB0aGUgcGF0aCBpcyB0aGUgc2FtZVxuICovXG5leHBvcnQgdHlwZSBIaXN0b3J5RGVidWdDb250ZXh0ID0ge1xuICBvcmlnaW4/OiBzdHJpbmc7XG4gIHRyaWdnZXI/OiBzdHJpbmc7XG4gIGhpc3RvcnlJbmRleD86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEhpc3RvcnlMaXN0ZW5lciA9IChcbiAgbG9jYXRpb246IExvY2F0aW9uLFxuICBmb3JjZVJlcmVuZGVyOiBib29sZWFuLFxuICBkZWJ1Z0NvbnRleHQ/OiBIaXN0b3J5RGVidWdDb250ZXh0LFxuKSA9PiB2b2lkO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBsb2NhdGlvbiBmb3IgaGlzdG9yeSBuYXZpZ2F0aW9uLlxuICogVGhpcyBpcyBhIHN1YnNldCBvZiB0aGUgYnJvd3NlcidzIExvY2F0aW9uIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IHR5cGUgSGlzdG9yeUxvY2F0aW9uID0ge1xuICAvKiogVVJMIGhhc2ggKGZyYWdtZW50IGlkZW50aWZpZXIpICovXG4gIGhhc2g/OiBzdHJpbmc7XG4gIC8qKiBVUkwgcGF0aG5hbWUgKi9cbiAgcGF0aG5hbWU6IHN0cmluZztcbiAgLyoqIFVSTCBzZWFyY2ggcGFyYW1ldGVycyAqL1xuICBzZWFyY2g/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBkZWJ1ZyBtZXRhZGF0YSBwcm9wYWdhdGVkIHRocm91Z2ggbmF2aWdhdGlvbiBldmVudHMgKi9cbiAgZGVidWdDb250ZXh0PzogSGlzdG9yeURlYnVnQ29udGV4dDtcbn07XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBoaXN0b3J5IG1hbmFnZW1lbnQgaW1wbGVtZW50YXRpb25zLlxuICogUHJvdmlkZXMgbWV0aG9kcyBmb3IgbmF2aWdhdGlvbiBhbmQgbGlzdGVuaW5nIHRvIGxvY2F0aW9uIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9yeSB7XG4gIC8qKiBJbml0aWFsaXplIHRoZSBoaXN0b3J5IGluc3RhbmNlICovXG4gIGluaXQ6ICgpID0+IHZvaWQ7XG4gIC8qKiBTdWJzY3JpYmUgdG8gbG9jYXRpb24gY2hhbmdlcyAqL1xuICBzdWJzY3JpYmU6IChsaXN0ZW5lcjogSGlzdG9yeUxpc3RlbmVyKSA9PiAoKSA9PiB2b2lkO1xuICAvKiogTmF2aWdhdGUgdG8gYSBuZXcgbG9jYXRpb24gKi9cbiAgcHVzaDogKGxvY2F0aW9uOiBIaXN0b3J5TG9jYXRpb24pID0+IHZvaWQ7XG4gIC8qKiBSZXBsYWNlIHRoZSBjdXJyZW50IGhpc3RvcnkgZW50cnkgKi9cbiAgc2V0OiAobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbikgPT4gdm9pZDtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/routing/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,yBAAyB,EAE9B,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/routing/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,yBAAyB,EAE9B,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAc3E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAmBT;AAKD,KAAK,KAAK,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAE7E,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,EAAE,SAAS,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAErD,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAErD,WAAW,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAEzD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAE9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAyBF,QAAA,MAAM,IAAI,0GAsLR,CAAC;AAEH,eAAe,IAAI,CAAC"}
|