@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.
Files changed (66) hide show
  1. package/README.md +9 -126
  2. package/lib/esm/ResourcePage.d.ts +1 -0
  3. package/lib/esm/ResourcePage.d.ts.map +1 -1
  4. package/lib/esm/ResourcePage.js +4 -1
  5. package/lib/esm/builder.d.ts.map +1 -1
  6. package/lib/esm/builder.js +1 -1
  7. package/lib/esm/errors/HttpRedirect.d.ts.map +1 -1
  8. package/lib/esm/errors/HttpRedirect.js +1 -1
  9. package/lib/esm/errors/index.js +1 -1
  10. package/lib/esm/history/BrowserHistory.d.ts +7 -2
  11. package/lib/esm/history/BrowserHistory.d.ts.map +1 -1
  12. package/lib/esm/history/BrowserHistory.js +96 -18
  13. package/lib/esm/history/types.d.ts +8 -1
  14. package/lib/esm/history/types.d.ts.map +1 -1
  15. package/lib/esm/history/types.js +1 -1
  16. package/lib/esm/routing/Link.d.ts.map +1 -1
  17. package/lib/esm/routing/Link.js +16 -1
  18. package/lib/esm/routing/createRouter.d.ts +5 -9
  19. package/lib/esm/routing/createRouter.d.ts.map +1 -1
  20. package/lib/esm/routing/createRouter.js +354 -382
  21. package/lib/esm/routing/useAllQuery.d.ts.map +1 -1
  22. package/lib/esm/routing/useAllQuery.js +1 -1
  23. package/lib/esm/routing/useFilterDiagnostics.d.ts.map +1 -1
  24. package/lib/esm/routing/useFilterDiagnostics.js +1 -1
  25. package/lib/esm/routing/useFilters.d.ts +5 -0
  26. package/lib/esm/routing/useFilters.d.ts.map +1 -1
  27. package/lib/esm/routing/useFilters.js +4 -1
  28. package/lib/esm/routing/useNavigate.d.ts.map +1 -1
  29. package/lib/esm/routing/useNavigate.js +1 -1
  30. package/lib/esm/routing/useQuery.d.ts.map +1 -1
  31. package/lib/esm/routing/useQuery.js +1 -1
  32. package/lib/esm/routing/useQueryState.d.ts.map +1 -1
  33. package/lib/esm/routing/useQueryState.js +1 -1
  34. package/lib/esm/tools/buildCombinedSearch.d.ts.map +1 -1
  35. package/lib/esm/tools/buildCombinedSearch.js +1 -1
  36. package/lib/esm/tools.d.ts +6 -2
  37. package/lib/esm/tools.d.ts.map +1 -1
  38. package/lib/esm/tools.js +47 -2
  39. package/lib/esm/types.d.ts +47 -0
  40. package/lib/esm/types.d.ts.map +1 -1
  41. package/lib/esm/types.js +28 -2
  42. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  43. package/lib/types/ResourcePage.d.ts +1 -0
  44. package/lib/types/ResourcePage.d.ts.map +1 -1
  45. package/lib/types/builder.d.ts.map +1 -1
  46. package/lib/types/errors/HttpRedirect.d.ts.map +1 -1
  47. package/lib/types/history/BrowserHistory.d.ts +7 -2
  48. package/lib/types/history/BrowserHistory.d.ts.map +1 -1
  49. package/lib/types/history/types.d.ts +8 -1
  50. package/lib/types/history/types.d.ts.map +1 -1
  51. package/lib/types/routing/Link.d.ts.map +1 -1
  52. package/lib/types/routing/createRouter.d.ts +5 -9
  53. package/lib/types/routing/createRouter.d.ts.map +1 -1
  54. package/lib/types/routing/useAllQuery.d.ts.map +1 -1
  55. package/lib/types/routing/useFilterDiagnostics.d.ts.map +1 -1
  56. package/lib/types/routing/useFilters.d.ts +5 -0
  57. package/lib/types/routing/useFilters.d.ts.map +1 -1
  58. package/lib/types/routing/useNavigate.d.ts.map +1 -1
  59. package/lib/types/routing/useQuery.d.ts.map +1 -1
  60. package/lib/types/routing/useQueryState.d.ts.map +1 -1
  61. package/lib/types/tools/buildCombinedSearch.d.ts.map +1 -1
  62. package/lib/types/tools.d.ts +6 -2
  63. package/lib/types/tools.d.ts.map +1 -1
  64. package/lib/types/types.d.ts +47 -0
  65. package/lib/types/types.d.ts.map +1 -1
  66. 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 devtools overlays. | `const diagnostics = useFilterDiagnostics();` |
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[], options?)`
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
- #### Devtools / Inspection
369
+ #### Inspection & Debugging
378
370
 
379
- In development (`NODE_ENV !== 'production'` by default, or when `createRouter(..., { devtools: true })` is passed), the router exposes a lightweight global inspector.
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
- Common console patterns:
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
- Production: the symbol is not defined; accessing it will yield `undefined`. Never ship logic depending on it; keep usage inside `if (process.env.NODE_ENV !== 'production')` blocks or guarded optional checks.
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;IAI5C,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;IAmBrC,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"}
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"}
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VQYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Jlc291cmNlUGFnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7QUFtQnhELE1BQU0sT0FBTyxZQUFZO0lBRWYsT0FBTyxDQUFlO0lBR3RCLFFBQVEsQ0FBcUI7SUFHN0IsU0FBUyxDQUFxQztJQUc5QyxRQUFRLENBQTRCO0lBSXBDLFVBQVUsQ0FBUztJQVEzQixZQUFtQixNQUEwQixFQUFFLFFBQWdCO1FBQzdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFRTSxLQUFLLENBQUMsSUFBSTtRQUNmLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDN0IsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDcEIsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUU7aUJBQ3BCLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUVmLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFHM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQzFCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7Z0JBQ3ZCLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBU00sR0FBRztRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFhTSxJQUFJO1FBQ1QsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNyQixDQUFDO2FBQU0sQ0FBQztZQUVOLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQU9PLEtBQUssQ0FBQyxNQUFNO1FBQ2xCLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRWxDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQXNCRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixRQUFnQixFQUNoQixNQUEwQjtJQUUxQixJQUFJLFFBQVEsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JCLFFBQVEsR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlc291cmNlUGFnZUxvYWRlciwgUmVzb3VyY2VQYWdlUmV0dXJuIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogQSBjYWNoZSBvZiByZXNvdXJjZXMgdG8gYXZvaWQgbG9hZGluZyB0aGUgc2FtZSBtb2R1bGUgdHdpY2UuIFRoaXMgaXMgaW1wb3J0YW50XG4gKiBiZWNhdXNlIFdlYnBhY2sgZHluYW1pYyBpbXBvcnRzIG9ubHkgZXhwb3NlIGFuIGFzeW5jaHJvbm91cyBBUEkgZm9yIGxvYWRpbmdcbiAqIG1vZHVsZXMsIHNvIHRvIGJlIGFibGUgdG8gYWNjZXNzIGFscmVhZHktbG9hZGVkIG1vZHVsZXMgc3luY2hyb25vdXNseSB3ZVxuICogbXVzdCBoYXZlIHN0b3JlZCB0aGUgcHJldmlvdXMgcmVzdWx0IHNvbWV3aGVyZS5cbiAqL1xuY29uc3QgcmVzb3VyY2VQYWdlTWFwID0gbmV3IE1hcDxzdHJpbmcsIFJlc291cmNlUGFnZT4oKTtcblxuLyoqXG4gKiBBIHJlc291cmNlIG1hbmFnZXIgZm9yIGxhenktbG9hZGVkIFJlYWN0IGNvbXBvbmVudHMgd2l0aCBTdXNwZW5zZSBpbnRlZ3JhdGlvbi5cbiAqIFRoaXMgY2xhc3MgaGFuZGxlcyB0aGUgbG9hZGluZyBzdGF0ZSwgY2FjaGluZywgYW5kIFN1c3BlbnNlIGludGVncmF0aW9uIGZvclxuICogZHluYW1pY2FsbHkgaW1wb3J0ZWQgY29tcG9uZW50cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVzb3VyY2UgPSBuZXcgUmVzb3VyY2VQYWdlKFxuICogICAoKSA9PiBpbXBvcnQoJy4vTXlDb21wb25lbnQnKSxcbiAqICAgJ015Q29tcG9uZW50J1xuICogKTtcbiAqXG4gKiAvLyBJbiBhIFJlYWN0IGNvbXBvbmVudCB3aXRoIFN1c3BlbnNlIGJvdW5kYXJ5OlxuICogY29uc3QgQ29tcG9uZW50ID0gcmVzb3VyY2UucmVhZCgpO1xuICogcmV0dXJuIDxDb21wb25lbnQgLz47XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc291cmNlUGFnZSB7XG4gIC8qKiBFcnJvciBzdGF0ZSBpZiB0aGUgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQgKi9cbiAgcHJpdmF0ZSBfX2Vycm9yOiBFcnJvciB8IG51bGw7XG5cbiAgLyoqIEZ1bmN0aW9uIHRvIGxvYWQgdGhlIHJlc291cmNlICovXG4gIHByaXZhdGUgX19sb2FkZXI6IFJlc291cmNlUGFnZUxvYWRlcjtcblxuICAvKiogUHJvbWlzZSByZXByZXNlbnRpbmcgdGhlIGxvYWRpbmcgc3RhdGUgKi9cbiAgcHJpdmF0ZSBfX3Byb21pc2U6IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPiB8IG51bGw7XG5cbiAgLyoqIFRoZSBsb2FkZWQgcmVzb3VyY2UgcmVzdWx0ICovXG4gIHByaXZhdGUgX19yZXN1bHQ6IFJlc291cmNlUGFnZVJldHVybiB8IG51bGw7XG5cbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIHJlc291cmNlICovXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IE9LXG4gIHByaXZhdGUgX19tb2R1bGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFJlc291cmNlUGFnZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGxvYWRlciAtIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjb21wb25lbnRcbiAgICogQHBhcmFtIG1vZHVsZUlkIC0gVW5pcXVlIGlkZW50aWZpZXIgZm9yIGNhY2hpbmcgcHVycG9zZXNcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihsb2FkZXI6IFJlc291cmNlUGFnZUxvYWRlciwgbW9kdWxlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuX19lcnJvciA9IG51bGw7XG4gICAgdGhpcy5fX2xvYWRlciA9IGxvYWRlcjtcbiAgICB0aGlzLl9fbW9kdWxlSWQgPSBtb2R1bGVJZDtcbiAgICB0aGlzLl9fcHJvbWlzZSA9IG51bGw7XG4gICAgdGhpcy5fX3Jlc3VsdCA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHJlc291cmNlIGlmIG5vdCBhbHJlYWR5IGxvYWRlZCBvciBsb2FkaW5nLlxuICAgKiBUaGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHNhZmVseSAtIGl0IHdpbGwgcmV0dXJuIHRoZSBzYW1lIHByb21pc2UuXG4gICAqXG4gICAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgbG9hZGVkIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvYWQoKTogUHJvbWlzZTxSZXNvdXJjZVBhZ2VSZXR1cm4+IHtcbiAgICBsZXQgcHJvbWlzZSA9IHRoaXMuX19wcm9taXNlO1xuICAgIGlmIChwcm9taXNlID09IG51bGwpIHtcbiAgICAgIHByb21pc2UgPSB0aGlzLl9fbG9hZCgpXG4gICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBPS1xuICAgICAgICAgIGlmIChyZXN1bHQuZGVmYXVsdCAhPSBudWxsKSB7XG4gICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBPS1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuZGVmYXVsdDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fX3Jlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5fX2Vycm9yID0gZXJyb3I7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5fX3Byb21pc2UgPSBwcm9taXNlO1xuICAgIH1cbiAgICByZXR1cm4gcHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsb2FkZWQgY29tcG9uZW50IGlmIGF2YWlsYWJsZSwgdW5kZWZpbmVkIG90aGVyd2lzZS5cbiAgICogVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgdG8gY2hlY2sgaWYgdGhlIGNvbXBvbmVudCBpcyBhbHJlYWR5IGxvYWRlZFxuICAgKiB3aXRob3V0IHRyaWdnZXJpbmcgYSBsb2FkIG9yIHRocm93aW5nIGFuIGVycm9yLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbG9hZGVkIGNvbXBvbmVudCBvciB1bmRlZmluZWQgaWYgbm90IHlldCBsb2FkZWRcbiAgICovXG4gIHB1YmxpYyBnZXQoKTogUmVzb3VyY2VQYWdlUmV0dXJuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5fX3Jlc3VsdCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fX3Jlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIHRoZSByZXNvdXJjZSB3aXRoIFJlYWN0IFN1c3BlbnNlIGludGVncmF0aW9uLlxuICAgKiBUaGlzIGlzIHRoZSBrZXkgbWV0aG9kIGZvciBpbnRlZ3JhdGluZyB3aXRoIFJlYWN0IFN1c3BlbnNlOlxuICAgKiAtIFJldHVybnMgdGhlIGNvbXBvbmVudCBpZiBsb2FkZWRcbiAgICogLSBUaHJvd3MgYW4gZXJyb3IgaWYgbG9hZGluZyBmYWlsZWRcbiAgICogLSBUaHJvd3MgYSBQcm9taXNlIGlmIHN0aWxsIGxvYWRpbmcgKFN1c3BlbnNlIHdpbGwgY2F0Y2ggdGhpcylcbiAgICpcbiAgICogQHJldHVybnMgVGhlIGxvYWRlZCBjb21wb25lbnRcbiAgICogQHRocm93cyBQcm9taXNlIHdoZW4gbG9hZGluZyAoY2F1Z2h0IGJ5IFN1c3BlbnNlKVxuICAgKiBAdGhyb3dzIEVycm9yIHdoZW4gbG9hZGluZyBmYWlsZWRcbiAgICovXG4gIHB1YmxpYyByZWFkKCk6IFJlc291cmNlUGFnZVJldHVybiB8IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPiB8IEVycm9yIHtcbiAgICBpZiAodGhpcy5fX3Jlc3VsdCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fX3Jlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fX2Vycm9yICE9IG51bGwpIHtcbiAgICAgIHRocm93IHRoaXMuX19lcnJvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9vbmx5LXRocm93LWVycm9yXG4gICAgICB0aHJvdyB0aGlzLl9fcHJvbWlzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIGV4ZWN1dGUgdGhlIGxvYWRlciBmdW5jdGlvbi5cbiAgICpcbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBfX2xvYWQoKTogUHJvbWlzZTxSZXNvdXJjZVBhZ2VSZXR1cm4+IHtcbiAgICBjb25zdCB7IF9fbG9hZGVyOiBsb2FkZXIgfSA9IHRoaXM7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGxvYWRlcigpKTtcbiAgfVxufVxuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIG9yIHJldHJpZXZlIGEgY2FjaGVkIFJlc291cmNlUGFnZSBpbnN0YW5jZS5cbiAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyBhIHNpbmdsZXRvbiBwYXR0ZXJuIHBlciBtb2R1bGVJZCB0byBlbnN1cmUgdGhhdFxuICogdGhlIHNhbWUgY29tcG9uZW50IGlzIG5vdCBsb2FkZWQgbXVsdGlwbGUgdGltZXMuXG4gKlxuICogQHBhcmFtIG1vZHVsZUlkIC0gR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSB1c2VkIGZvciBjYWNoaW5nXG4gKiBAcGFyYW0gbG9hZGVyIC0gRnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNvbXBvbmVudFxuICogQHJldHVybnMgUmVzb3VyY2VQYWdlIGluc3RhbmNlIChjYWNoZWQgaWYgcHJldmlvdXNseSBjcmVhdGVkKVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDcmVhdGUgYSByZXNvdXJjZSBmb3IgbGF6eSBsb2FkaW5nXG4gKiBjb25zdCByZXNvdXJjZSA9IGdldFJlc291cmNlUGFnZSgnVXNlclByb2ZpbGUnLCAoKSA9PiBpbXBvcnQoJy4vVXNlclByb2ZpbGUnKSk7XG4gKiByZXNvdXJjZS5sb2FkKCk7XG4gKlxuICogLy8gSW4gYSBSZWFjdCBjb21wb25lbnQgd2l0aCBTdXNwZW5zZSBib3VuZGFyeTpcbiAqIGNvbnN0IFVzZXJQcm9maWxlID0gcmVzb3VyY2UucmVhZCgpO1xuICogcmV0dXJuIDxVc2VyUHJvZmlsZSB1c2VySWQ9e3VzZXJJZH0gLz47XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlUGFnZShcbiAgbW9kdWxlSWQ6IHN0cmluZyxcbiAgbG9hZGVyOiBSZXNvdXJjZVBhZ2VMb2FkZXIsXG4pOiBSZXNvdXJjZVBhZ2UgfCBudWxsIHtcbiAgbGV0IHJlc291cmNlID0gcmVzb3VyY2VQYWdlTWFwLmdldChtb2R1bGVJZCk7XG4gIGlmIChyZXNvdXJjZSA9PSBudWxsKSB7XG4gICAgcmVzb3VyY2UgPSBuZXcgUmVzb3VyY2VQYWdlKGxvYWRlciwgbW9kdWxlSWQpO1xuICAgIHJlc291cmNlUGFnZU1hcC5zZXQobW9kdWxlSWQsIHJlc291cmNlKTtcbiAgfVxuICByZXR1cm4gcmVzb3VyY2U7XG59XG4iXX0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VQYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Jlc291cmNlUGFnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7QUFtQnhELE1BQU0sT0FBTyxZQUFZO0lBRWYsT0FBTyxDQUFlO0lBR3RCLFFBQVEsQ0FBcUI7SUFHN0IsU0FBUyxDQUFxQztJQUc5QyxRQUFRLENBQTRCO0lBR3BDLFVBQVUsQ0FBUztJQVEzQixZQUFtQixNQUEwQixFQUFFLFFBQWdCO1FBQzdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFRTSxLQUFLLENBQUMsSUFBSTtRQUNmLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDN0IsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDcEIsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUU7aUJBQ3BCLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUVmLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFHM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQzFCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7Z0JBQ3ZCLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBU00sR0FBRztRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFLTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBYU0sSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDckIsQ0FBQzthQUFNLENBQUM7WUFFTixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFPTyxLQUFLLENBQUMsTUFBTTtRQUNsQixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztRQUVsQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUFzQkQsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsUUFBZ0IsRUFDaEIsTUFBMEI7SUFFMUIsSUFBSSxRQUFRLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNyQixRQUFRLEdBQUcsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVBhZ2VMb2FkZXIsIFJlc291cmNlUGFnZVJldHVybiB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKipcbiAqIEEgY2FjaGUgb2YgcmVzb3VyY2VzIHRvIGF2b2lkIGxvYWRpbmcgdGhlIHNhbWUgbW9kdWxlIHR3aWNlLiBUaGlzIGlzIGltcG9ydGFudFxuICogYmVjYXVzZSBXZWJwYWNrIGR5bmFtaWMgaW1wb3J0cyBvbmx5IGV4cG9zZSBhbiBhc3luY2hyb25vdXMgQVBJIGZvciBsb2FkaW5nXG4gKiBtb2R1bGVzLCBzbyB0byBiZSBhYmxlIHRvIGFjY2VzcyBhbHJlYWR5LWxvYWRlZCBtb2R1bGVzIHN5bmNocm9ub3VzbHkgd2VcbiAqIG11c3QgaGF2ZSBzdG9yZWQgdGhlIHByZXZpb3VzIHJlc3VsdCBzb21ld2hlcmUuXG4gKi9cbmNvbnN0IHJlc291cmNlUGFnZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBSZXNvdXJjZVBhZ2U+KCk7XG5cbi8qKlxuICogQSByZXNvdXJjZSBtYW5hZ2VyIGZvciBsYXp5LWxvYWRlZCBSZWFjdCBjb21wb25lbnRzIHdpdGggU3VzcGVuc2UgaW50ZWdyYXRpb24uXG4gKiBUaGlzIGNsYXNzIGhhbmRsZXMgdGhlIGxvYWRpbmcgc3RhdGUsIGNhY2hpbmcsIGFuZCBTdXNwZW5zZSBpbnRlZ3JhdGlvbiBmb3JcbiAqIGR5bmFtaWNhbGx5IGltcG9ydGVkIGNvbXBvbmVudHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlc291cmNlID0gbmV3IFJlc291cmNlUGFnZShcbiAqICAgKCkgPT4gaW1wb3J0KCcuL015Q29tcG9uZW50JyksXG4gKiAgICdNeUNvbXBvbmVudCdcbiAqICk7XG4gKlxuICogLy8gSW4gYSBSZWFjdCBjb21wb25lbnQgd2l0aCBTdXNwZW5zZSBib3VuZGFyeTpcbiAqIGNvbnN0IENvbXBvbmVudCA9IHJlc291cmNlLnJlYWQoKTtcbiAqIHJldHVybiA8Q29tcG9uZW50IC8+O1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVBhZ2Uge1xuICAvKiogRXJyb3Igc3RhdGUgaWYgdGhlIHJlc291cmNlIGZhaWxlZCB0byBsb2FkICovXG4gIHByaXZhdGUgX19lcnJvcjogRXJyb3IgfCBudWxsO1xuXG4gIC8qKiBGdW5jdGlvbiB0byBsb2FkIHRoZSByZXNvdXJjZSAqL1xuICBwcml2YXRlIF9fbG9hZGVyOiBSZXNvdXJjZVBhZ2VMb2FkZXI7XG5cbiAgLyoqIFByb21pc2UgcmVwcmVzZW50aW5nIHRoZSBsb2FkaW5nIHN0YXRlICovXG4gIHByaXZhdGUgX19wcm9taXNlOiBQcm9taXNlPFJlc291cmNlUGFnZVJldHVybj4gfCBudWxsO1xuXG4gIC8qKiBUaGUgbG9hZGVkIHJlc291cmNlIHJlc3VsdCAqL1xuICBwcml2YXRlIF9fcmVzdWx0OiBSZXNvdXJjZVBhZ2VSZXR1cm4gfCBudWxsO1xuXG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyByZXNvdXJjZSAqL1xuICBwcml2YXRlIF9fbW9kdWxlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBSZXNvdXJjZVBhZ2UgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBsb2FkZXIgLSBGdW5jdGlvbiB0aGF0IHJldHVybnMgYSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29tcG9uZW50XG4gICAqIEBwYXJhbSBtb2R1bGVJZCAtIFVuaXF1ZSBpZGVudGlmaWVyIGZvciBjYWNoaW5nIHB1cnBvc2VzXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IobG9hZGVyOiBSZXNvdXJjZVBhZ2VMb2FkZXIsIG1vZHVsZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fZXJyb3IgPSBudWxsO1xuICAgIHRoaXMuX19sb2FkZXIgPSBsb2FkZXI7XG4gICAgdGhpcy5fX21vZHVsZUlkID0gbW9kdWxlSWQ7XG4gICAgdGhpcy5fX3Byb21pc2UgPSBudWxsO1xuICAgIHRoaXMuX19yZXN1bHQgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSByZXNvdXJjZSBpZiBub3QgYWxyZWFkeSBsb2FkZWQgb3IgbG9hZGluZy5cbiAgICogVGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBzYWZlbHkgLSBpdCB3aWxsIHJldHVybiB0aGUgc2FtZSBwcm9taXNlLlxuICAgKlxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGxvYWRlZCBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkKCk6IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPiB7XG4gICAgbGV0IHByb21pc2UgPSB0aGlzLl9fcHJvbWlzZTtcbiAgICBpZiAocHJvbWlzZSA9PSBudWxsKSB7XG4gICAgICBwcm9taXNlID0gdGhpcy5fX2xvYWQoKVxuICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgICAgICAgICBpZiAocmVzdWx0LmRlZmF1bHQgIT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmRlZmF1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX19yZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuX19lcnJvciA9IGVycm9yO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuX19wcm9taXNlID0gcHJvbWlzZTtcbiAgICB9XG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbG9hZGVkIGNvbXBvbmVudCBpZiBhdmFpbGFibGUsIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAqIFRoaXMgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGNoZWNrIGlmIHRoZSBjb21wb25lbnQgaXMgYWxyZWFkeSBsb2FkZWRcbiAgICogd2l0aG91dCB0cmlnZ2VyaW5nIGEgbG9hZCBvciB0aHJvd2luZyBhbiBlcnJvci5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGxvYWRlZCBjb21wb25lbnQgb3IgdW5kZWZpbmVkIGlmIG5vdCB5ZXQgbG9hZGVkXG4gICAqL1xuICBwdWJsaWMgZ2V0KCk6IFJlc291cmNlUGFnZVJldHVybiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuX19yZXN1bHQgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX19yZXN1bHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBtb2R1bGUgaWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXNvdXJjZSAoZGVidWcgaGVscGVyKS5cbiAgICovXG4gIHB1YmxpYyBnZXRNb2R1bGVJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9fbW9kdWxlSWQ7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgdGhlIHJlc291cmNlIHdpdGggUmVhY3QgU3VzcGVuc2UgaW50ZWdyYXRpb24uXG4gICAqIFRoaXMgaXMgdGhlIGtleSBtZXRob2QgZm9yIGludGVncmF0aW5nIHdpdGggUmVhY3QgU3VzcGVuc2U6XG4gICAqIC0gUmV0dXJucyB0aGUgY29tcG9uZW50IGlmIGxvYWRlZFxuICAgKiAtIFRocm93cyBhbiBlcnJvciBpZiBsb2FkaW5nIGZhaWxlZFxuICAgKiAtIFRocm93cyBhIFByb21pc2UgaWYgc3RpbGwgbG9hZGluZyAoU3VzcGVuc2Ugd2lsbCBjYXRjaCB0aGlzKVxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbG9hZGVkIGNvbXBvbmVudFxuICAgKiBAdGhyb3dzIFByb21pc2Ugd2hlbiBsb2FkaW5nIChjYXVnaHQgYnkgU3VzcGVuc2UpXG4gICAqIEB0aHJvd3MgRXJyb3Igd2hlbiBsb2FkaW5nIGZhaWxlZFxuICAgKi9cbiAgcHVibGljIHJlYWQoKTogUmVzb3VyY2VQYWdlUmV0dXJuIHwgUHJvbWlzZTxSZXNvdXJjZVBhZ2VSZXR1cm4+IHwgRXJyb3Ige1xuICAgIGlmICh0aGlzLl9fcmVzdWx0ICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLl9fcmVzdWx0O1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9fZXJyb3IgIT0gbnVsbCkge1xuICAgICAgdGhyb3cgdGhpcy5fX2Vycm9yO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L29ubHktdGhyb3ctZXJyb3JcbiAgICAgIHRocm93IHRoaXMuX19wcm9taXNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBtZXRob2QgdG8gZXhlY3V0ZSB0aGUgbG9hZGVyIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29tcG9uZW50XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIF9fbG9hZCgpOiBQcm9taXNlPFJlc291cmNlUGFnZVJldHVybj4ge1xuICAgIGNvbnN0IHsgX19sb2FkZXI6IGxvYWRlciB9ID0gdGhpcztcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobG9hZGVyKCkpO1xuICB9XG59XG5cbi8qKlxuICogRmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgb3IgcmV0cmlldmUgYSBjYWNoZWQgUmVzb3VyY2VQYWdlIGluc3RhbmNlLlxuICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIGEgc2luZ2xldG9uIHBhdHRlcm4gcGVyIG1vZHVsZUlkIHRvIGVuc3VyZSB0aGF0XG4gKiB0aGUgc2FtZSBjb21wb25lbnQgaXMgbm90IGxvYWRlZCBtdWx0aXBsZSB0aW1lcy5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlSWQgLSBHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlIHVzZWQgZm9yIGNhY2hpbmdcbiAqIEBwYXJhbSBsb2FkZXIgLSBGdW5jdGlvbiB0aGF0IHJldHVybnMgYSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29tcG9uZW50XG4gKiBAcmV0dXJucyBSZXNvdXJjZVBhZ2UgaW5zdGFuY2UgKGNhY2hlZCBpZiBwcmV2aW91c2x5IGNyZWF0ZWQpXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhIHJlc291cmNlIGZvciBsYXp5IGxvYWRpbmdcbiAqIGNvbnN0IHJlc291cmNlID0gZ2V0UmVzb3VyY2VQYWdlKCdVc2VyUHJvZmlsZScsICgpID0+IGltcG9ydCgnLi9Vc2VyUHJvZmlsZScpKTtcbiAqIHJlc291cmNlLmxvYWQoKTtcbiAqXG4gKiAvLyBJbiBhIFJlYWN0IGNvbXBvbmVudCB3aXRoIFN1c3BlbnNlIGJvdW5kYXJ5OlxuICogY29uc3QgVXNlclByb2ZpbGUgPSByZXNvdXJjZS5yZWFkKCk7XG4gKiByZXR1cm4gPFVzZXJQcm9maWxlIHVzZXJJZD17dXNlcklkfSAvPjtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VQYWdlKFxuICBtb2R1bGVJZDogc3RyaW5nLFxuICBsb2FkZXI6IFJlc291cmNlUGFnZUxvYWRlcixcbik6IFJlc291cmNlUGFnZSB8IG51bGwge1xuICBsZXQgcmVzb3VyY2UgPSByZXNvdXJjZVBhZ2VNYXAuZ2V0KG1vZHVsZUlkKTtcbiAgaWYgKHJlc291cmNlID09IG51bGwpIHtcbiAgICByZXNvdXJjZSA9IG5ldyBSZXNvdXJjZVBhZ2UobG9hZGVyLCBtb2R1bGVJZCk7XG4gICAgcmVzb3VyY2VQYWdlTWFwLnNldChtb2R1bGVJZCwgcmVzb3VyY2UpO1xuICB9XG4gIHJldHVybiByZXNvdXJjZTtcbn1cbiJdfQ==
@@ -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;AAQD,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAGxE;AAYD,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;AASD,wBAAgB,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,CAE3E"}
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"}
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQXNDLE1BQU0sZ0JBQWdCLENBQUM7QUFVM0UsTUFBTSxPQUFPLFNBQVM7SUFFYixJQUFJLENBQVM7SUFHYixNQUFNLENBQWE7SUFHbkIsYUFBYSxDQUF5QjtJQUd0QyxVQUFVLENBQVU7SUFPM0IsWUFBbUIsS0FBOEI7UUFDL0MsTUFBTSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFRRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQTBCO0lBRW5ELE9BQVEsS0FBa0IsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDO0FBQ3hDLENBQUM7QUFZRCxNQUFNLFVBQVUsVUFBVSxDQUN4QixXQUFvQyxFQUNwQyxlQUEyQixFQUFFLEVBQzdCLE1BQU0sR0FBRyxFQUFFO0lBRVgsTUFBTSxVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUU5QyxLQUFLLE1BQU0sS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbEUsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQTZCLENBQUM7UUFFbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0MsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZFLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztZQUUzQixTQUFTO1FBQ1gsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxFQUFFO1lBQ3pDLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFFMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsVUFBVSxHQUFHLEdBQUcsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksU0FBUyxDQUFDO2dCQUNaLElBQUk7Z0JBQ0osVUFBVTtnQkFDVixhQUFhO2dCQUNiLE1BQU0sRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFlO2FBQ3hDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksU0FBUyxDQUFDO2dCQUNaLElBQUk7Z0JBQ0osYUFBYTtnQkFDYixNQUFNLEVBQUUsQ0FBQyxHQUFHLFlBQVksRUFBRSxLQUFLLENBQWU7YUFDL0MsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFTRCxNQUFNLFVBQVUsV0FBVyxDQUFDLFdBQXVCO0lBQ2pELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXRjaCwgdHlwZSBNYXRjaEZ1bmN0aW9uLCB0eXBlIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGVJbnB1dCwgUmVkaXJlY3QsIFJvdXRlLCBBbnlSb3V0ZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBmbGF0dGVuZWQgcm91dGUgd2l0aCBhIGNvbXBpbGVkIG1hdGNoIGZ1bmN0aW9uLlxuICogVGhpcyBpcyBhbiBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiB1c2VkIGJ5IHRoZSByb3V0ZXIgdG8gZWZmaWNpZW50bHkgbWF0Y2ggVVJMcy5cbiAqXG4gKiBAdGVtcGxhdGUgVFBhcmFtcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IGNsYXNzIEZsYXRSb3V0ZTxUUGFyYW1zIGV4dGVuZHMgUGFyYW1EYXRhPiB7XG4gIC8qKiBUaGUgVVJMIHBhdGggcGF0dGVybiBmb3IgdGhpcyByb3V0ZSAqL1xuICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuXG4gIC8qKiBOZXN0ZWQgcm91dGVzIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIHdpdGhpbiB0aGlzIHJvdXRlICovXG4gIHB1YmxpYyByb3V0ZXM6IEFueVJvdXRlW107XG5cbiAgLyoqIENvbXBpbGVkIGZ1bmN0aW9uIHRvIG1hdGNoIFVSTCBwYXRocyBhZ2FpbnN0IHRoaXMgcm91dGUgcGF0dGVybiAqL1xuICBwdWJsaWMgbWF0Y2hGdW5jdGlvbjogTWF0Y2hGdW5jdGlvbjxUUGFyYW1zPjtcblxuICAvKiogT3B0aW9uYWwgcmVkaXJlY3QgZGVzdGluYXRpb24gaWYgdGhpcyByb3V0ZSBzaG91bGQgcmVkaXJlY3QgKi9cbiAgcHVibGljIHJlZGlyZWN0VG8/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgRmxhdFJvdXRlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gaW5wdXQgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgZmxhdCByb3V0ZVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGlucHV0OiBGbGF0Um91dGVJbnB1dDxUUGFyYW1zPikge1xuICAgIGNvbnN0IHsgbWF0Y2hGdW5jdGlvbiwgcGF0aCwgcmVkaXJlY3RUbywgcm91dGVzIH0gPSBpbnB1dDtcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIHRoaXMucmVkaXJlY3RUbyA9IHJlZGlyZWN0VG87XG4gICAgdGhpcy5yb3V0ZXMgPSByb3V0ZXM7XG4gICAgdGhpcy5tYXRjaEZ1bmN0aW9uID0gbWF0Y2hGdW5jdGlvbjtcbiAgfVxufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSByb3V0ZSBjb25maWd1cmF0aW9uIGlzIGEgcmVkaXJlY3QuXG4gKlxuICogQHBhcmFtIHJvdXRlIC0gUm91dGUgb3IgcmVkaXJlY3QgY29uZmlndXJhdGlvbiB0byBjaGVja1xuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgcm91dGUgaXMgYSByZWRpcmVjdCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1JlZGlyZWN0KHJvdXRlOiBBbnlSb3V0ZSB8IFJlZGlyZWN0KTogcm91dGUgaXMgUmVkaXJlY3Qge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICByZXR1cm4gKHJvdXRlIGFzIFJlZGlyZWN0KS50byAhPSBudWxsO1xufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGJ1aWxkcyBhIGZsYXQgbGlzdCBvZiByb3V0ZXMgZnJvbSBhIG5lc3RlZCByb3V0ZSBjb25maWd1cmF0aW9uLlxuICogVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgdGhlIHJvdXRlIHRyZWUgYW5kIGNyZWF0ZXMgRmxhdFJvdXRlIGluc3RhbmNlcyB3aXRoXG4gKiBjb21waWxlZCBwYXRoIG1hdGNoZXJzIGZvciBlZmZpY2llbnQgVVJMIG1hdGNoaW5nLlxuICpcbiAqIEBwYXJhbSByb3V0ZUNvbmZpZyAtIEFycmF5IG9mIHJvdXRlIG9yIHJlZGlyZWN0IGNvbmZpZ3VyYXRpb25zXG4gKiBAcGFyYW0gcGFyZW50Um91dGVzIC0gUGFyZW50IHJvdXRlcyBpbiB0aGUgY3VycmVudCBwYXRoIChmb3IgbmVzdGVkIHJvdXRlcylcbiAqIEBwYXJhbSBwcmVmaXggLSBVUkwgcHJlZml4IGZyb20gcGFyZW50IHJvdXRlc1xuICogQHJldHVybnMgQXJyYXkgb2YgZmxhdHRlbmVkIHJvdXRlcyByZWFkeSBmb3IgbWF0Y2hpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUm91dGUoXG4gIHJvdXRlQ29uZmlnOiAoQW55Um91dGUgfCBSZWRpcmVjdClbXSxcbiAgcGFyZW50Um91dGVzOiBBbnlSb3V0ZVtdID0gW10sXG4gIHByZWZpeCA9ICcnLFxuKTogRmxhdFJvdXRlPFBhcmFtRGF0YT5bXSB7XG4gIGNvbnN0IGZsYXRSb3V0ZXM6IEZsYXRSb3V0ZTxQYXJhbURhdGE+W10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHJvdXRlIG9mIHJvdXRlQ29uZmlnKSB7XG4gICAgY29uc3QgcGFydHMgPSBbXTtcbiAgICBpZiAocHJlZml4ICE9PSAnJykge1xuICAgICAgcGFydHMucHVzaChwcmVmaXgpO1xuICAgIH1cbiAgICBpZiAocm91dGUucGF0aCAhPSBudWxsICYmIHJvdXRlLnBhdGggIT09ICcnICYmIHJvdXRlLnBhdGggIT09ICcvJykge1xuICAgICAgbGV0IG5vcm1hbGl6ZWQgPSByb3V0ZS5wYXRoO1xuICAgICAgaWYgKG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnNsaWNlKDEpO1xuICAgICAgfVxuICAgICAgcGFydHMucHVzaChub3JtYWxpemVkKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdQYXRoID0gcGFydHMuam9pbignLycpO1xuXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gcm91dGUgYXMgUm91dGU8YW55LCBhbnksIGFueT47XG5cbiAgICBpZiAoIWlzUmVkaXJlY3Qocm91dGUpICYmIGNoaWxkcmVuICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHJvdXRlcyA9IGJ1aWxkUm91dGUoY2hpbGRyZW4sIFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlXSwgbmV3UGF0aCk7XG4gICAgICBmbGF0Um91dGVzLnB1c2goLi4ucm91dGVzKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250aW51ZVxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hGdW5jdGlvbiA9IG1hdGNoKGAvJHtuZXdQYXRofWAsIHtcbiAgICAgIHRyYWlsaW5nOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIGxldCBwYXRoID0gbmV3UGF0aDtcbiAgICBpZiAoIW5ld1BhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICBwYXRoID0gYC8ke25ld1BhdGh9YDtcbiAgICB9XG5cbiAgICBpZiAoaXNSZWRpcmVjdChyb3V0ZSkpIHtcbiAgICAgIGxldCByZWRpcmVjdFRvID0gcm91dGUudG87XG5cbiAgICAgIGlmICghcmVkaXJlY3RUby5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgcmVkaXJlY3RUbyA9IGAke3BhdGh9LyR7cmVkaXJlY3RUb31gO1xuICAgICAgfVxuICAgICAgZmxhdFJvdXRlcy5wdXNoKFxuICAgICAgICBuZXcgRmxhdFJvdXRlKHtcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJlZGlyZWN0VG8sXG4gICAgICAgICAgbWF0Y2hGdW5jdGlvbixcbiAgICAgICAgICByb3V0ZXM6IFsuLi5wYXJlbnRSb3V0ZXNdIGFzIEFueVJvdXRlW10sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmxhdFJvdXRlcy5wdXNoKFxuICAgICAgICBuZXcgRmxhdFJvdXRlKHtcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIG1hdGNoRnVuY3Rpb24sXG4gICAgICAgICAgcm91dGVzOiBbLi4ucGFyZW50Um91dGVzLCByb3V0ZV0gYXMgQW55Um91dGVbXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmbGF0Um91dGVzO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIGZsYXQgcm91dGUgbGlzdCBmcm9tIHRoZSBnaXZlbiByb3V0ZSBjb25maWd1cmF0aW9uLlxuICogVGhpcyBpcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3Igcm91dGUgYnVpbGRpbmcuXG4gKlxuICogQHBhcmFtIHJvdXRlQ29uZmlnIC0gQXJyYXkgb2Ygcm91dGUgY29uZmlndXJhdGlvbnMgdG8gZmxhdHRlblxuICogQHJldHVybnMgQXJyYXkgb2YgZmxhdHRlbmVkIHJvdXRlcyByZWFkeSBmb3IgbWF0Y2hpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUm91dGVzKHJvdXRlQ29uZmlnOiBBbnlSb3V0ZVtdKTogRmxhdFJvdXRlPFBhcmFtRGF0YT5bXSB7XG4gIHJldHVybiBidWlsZFJvdXRlKHJvdXRlQ29uZmlnKTtcbn1cbiJdfQ==
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":"AAkBA,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"}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlZGlyZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Vycm9ycy9IdHRwUmVkaXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBLE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBYSxTQUFRLEtBQUs7SUFFdEMsVUFBVSxDQUFTO0lBR25CLFVBQVUsQ0FBUztJQVExQixZQUFtQixVQUFrQixFQUFFLFVBQVUsR0FBRyxHQUFHO1FBQ3JELEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV0QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUk3QixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXN0b20gZXJyb3IgY2xhc3MgZm9yIGhhbmRsaW5nIEhUVFAgcmVkaXJlY3RzIGluIHRoZSByb3V0ZXIuXG4gKiBUaGlzIGVycm9yIGNhbiBiZSB0aHJvd24gZHVyaW5nIHJvdXRlIHByZXBhcmF0aW9uIG9yIHJlbmRlcmluZyB0byB0cmlnZ2VyXG4gKiBhIHJlZGlyZWN0IHRvIGEgZGlmZmVyZW50IFVSTC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4gYSByb3V0ZSBwcmVwYXJlIGZ1bmN0aW9uXG4gKiBpZiAoIXVzZXIuaXNBdXRoZW50aWNhdGVkKSB7XG4gKiAgIHRocm93IG5ldyBIdHRwUmVkaXJlY3QoJy9sb2dpbicsIDMwMik7XG4gKiB9XG4gKlxuICogLy8gSW4gYSByb3V0ZSByZW5kZXIgZnVuY3Rpb25cbiAqIGlmICghdXNlci5oYXNQZXJtaXNzaW9uKSB7XG4gKiAgIHRocm93IG5ldyBIdHRwUmVkaXJlY3QoJy91bmF1dGhvcml6ZWQnLCA0MDMpO1xuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEh0dHBSZWRpcmVjdCBleHRlbmRzIEVycm9yIHtcbiAgLyoqIFRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gKi9cbiAgcHVibGljIHJlZGlyZWN0VG86IHN0cmluZztcblxuICAvKiogSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlZGlyZWN0ICgzMDEsIDMwMiwgZXRjLikgKi9cbiAgcHVibGljIHN0YXR1c0NvZGU6IG51bWJlcjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBIdHRwUmVkaXJlY3QgZXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSByZWRpcmVjdFRvIC0gVGhlIFVSTCB0byByZWRpcmVjdCB0b1xuICAgKiBAcGFyYW0gc3RhdHVzQ29kZSAtIEhUVFAgc3RhdHVzIGNvZGUgKGRlZmF1bHRzIHRvIDMwMiBmb3IgdGVtcG9yYXJ5IHJlZGlyZWN0KVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHJlZGlyZWN0VG86IHN0cmluZywgc3RhdHVzQ29kZSA9IDMwMikge1xuICAgIHN1cGVyKCdIdHRwUmVkaXJlY3QnKTtcblxuICAgIHRoaXMucmVkaXJlY3RUbyA9IHJlZGlyZWN0VG87XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcblxuICAgIC8vIEZpeCBmb3IgaW5zdGFuY2VvZiBidWcgaW4gVHlwZVNjcmlwdDpcbiAgICAvLyBodHRwczovL3d3dy5kYW5ueWd1by5jb20vYmxvZy9ob3ctdG8tZml4LWluc3RhbmNlb2Ytbm90LXdvcmtpbmctZm9yLWN1c3RvbS1lcnJvcnMtaW4tdHlwZXNjcmlwdC9cbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSHR0cFJlZGlyZWN0LnByb3RvdHlwZSk7XG4gIH1cbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlZGlyZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Vycm9ycy9IdHRwUmVkaXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxDQUFDLE9BQU8sT0FBTyxZQUFhLFNBQVEsS0FBSztJQUV0QyxVQUFVLENBQVM7SUFHbkIsVUFBVSxDQUFTO0lBUTFCLFlBQW1CLFVBQWtCLEVBQUUsVUFBVSxHQUFHLEdBQUc7UUFDckQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXRCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBSTdCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogRXJyb3IgdGhhdCBzaWduYWxzIGFuIEhUVFAgcmVkaXJlY3QgZnJvbSByb3V0ZSBsb2dpYy4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEh0dHBSZWRpcmVjdCBleHRlbmRzIEVycm9yIHtcbiAgLyoqIFRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gKi9cbiAgcHVibGljIHJlZGlyZWN0VG86IHN0cmluZztcblxuICAvKiogSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlZGlyZWN0ICgzMDEsIDMwMiwgZXRjLikgKi9cbiAgcHVibGljIHN0YXR1c0NvZGU6IG51bWJlcjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBIdHRwUmVkaXJlY3QgZXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSByZWRpcmVjdFRvIC0gVGhlIFVSTCB0byByZWRpcmVjdCB0b1xuICAgKiBAcGFyYW0gc3RhdHVzQ29kZSAtIEhUVFAgc3RhdHVzIGNvZGUgKGRlZmF1bHRzIHRvIDMwMiBmb3IgdGVtcG9yYXJ5IHJlZGlyZWN0KVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHJlZGlyZWN0VG86IHN0cmluZywgc3RhdHVzQ29kZSA9IDMwMikge1xuICAgIHN1cGVyKCdIdHRwUmVkaXJlY3QnKTtcblxuICAgIHRoaXMucmVkaXJlY3RUbyA9IHJlZGlyZWN0VG87XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcblxuICAgIC8vIEZpeCBmb3IgaW5zdGFuY2VvZiBidWcgaW4gVHlwZVNjcmlwdDpcbiAgICAvLyBodHRwczovL3d3dy5kYW5ueWd1by5jb20vYmxvZy9ob3ctdG8tZml4LWluc3RhbmNlb2Ytbm90LXdvcmtpbmctZm9yLWN1c3RvbS1lcnJvcnMtaW4tdHlwZXNjcmlwdC9cbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSHR0cFJlZGlyZWN0LnByb3RvdHlwZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export { default as HttpRedirect } from './HttpRedirect.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBIVFRQIHJlZGlyZWN0IGVycm9yIGNsYXNzIGZvciBoYW5kbGluZyByb3V0ZSByZWRpcmVjdHNcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSHR0cFJlZGlyZWN0IH0gZnJvbSAnLi9IdHRwUmVkaXJlY3QuanMnO1xuIl19
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 __fire;
13
- private __doFire;
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,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQ5E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAI5D;AAOD,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,OAAO;IAEpD,OAAO,CAAC,WAAW,CAAyB;;IAe5C,IAAW,QAAQ,IAAI,QAAQ,CAU9B;IAKM,IAAI,IAAI,IAAI;IAUZ,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAapC,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAYrC,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAY5C,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAWvD,OAAO,CAAC,MAAM,CAOZ;IAOF,OAAO,CAAC,QAAQ,CAOd;IAKF,OAAO,CAAC,WAAW;CAGpB"}
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 path = createPath(location);
22
- window.history.replaceState({}, '', path);
23
- this.__doFire(true);
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 path = createPath(location);
27
- window.history.pushState({}, '', path);
28
- this.__fire();
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
- __fire = () => {
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, false);
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.__fire);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvd3Nlckhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGlzdG9yeS9Ccm93c2VySGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQXlCO0lBQ2xELE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXRELE9BQU8sR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFPRCxNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFFekIsV0FBVyxHQUFzQixFQUFFLENBQUM7SUFFcEMscUJBQXFCLEdBQStCLElBQUksQ0FBQztJQUV6RCxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBRW5CLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFLM0I7UUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBUUQsSUFBVyxRQUFRO1FBSWpCLE9BQU87WUFFTCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDOUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtTQUNKLENBQUM7SUFDM0IsQ0FBQztJQUtNLElBQUk7UUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQVFNLEdBQUcsQ0FBQyxRQUF5QjtRQUNsQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsUUFFakMsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QixJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMscUJBQXFCLEdBQUc7Z0JBQzNCLEdBQUcsWUFBWTtnQkFDZixZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWM7YUFDbEMsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyRSxDQUFDO1FBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQ3pCO1lBQ0Usb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDMUMsRUFDRCxFQUFFLEVBQ0YsSUFBSSxDQUNMLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFRTSxJQUFJLENBQUMsUUFBeUI7UUFDbkMsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLFFBRWpDLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBRTFDLElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxxQkFBcUIsR0FBRztnQkFDM0IsR0FBRyxZQUFZO2dCQUNmLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYzthQUNsQyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JFLENBQUM7UUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDdEI7WUFDRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsY0FBYztTQUMxQyxFQUNELEVBQUUsRUFDRixJQUFJLENBQ0wsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQU9NLFdBQVcsQ0FBQyxRQUF5QjtRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEQsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVFNLFNBQVMsQ0FBQyxRQUF5QjtRQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxPQUFPLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQU9PLFFBQVEsR0FBRyxDQUFDLGFBQXNCLEVBQVEsRUFBRTtRQUNsRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztZQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNwQyxRQUFRLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUMsQ0FBQztJQUVNLDRCQUE0QjtRQUNsQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQzNDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDbEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUtPLFdBQVc7UUFDakIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFvQixFQUFRLEVBQUU7UUFDeEQsSUFBSSxNQUEwQixDQUFDO1FBQy9CLElBQUksWUFBZ0MsQ0FBQztRQUNyQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBaUQsQ0FBQztRQUN0RSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksT0FBTyxLQUFLLENBQUMsb0JBQW9CLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEUsWUFBWSxHQUFHLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztZQUMxQyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sR0FBRyxlQUFlLENBQUM7WUFDM0IsQ0FBQztpQkFBTSxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzlDLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQztZQUM5QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxHQUFHLGtCQUFrQixDQUFDO1lBQzlCLENBQUM7WUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQztZQUNuQyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxVQUFVLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksQ0FBQyxxQkFBcUIsR0FBRztZQUMzQixNQUFNO1lBQ04sT0FBTyxFQUFFLFVBQVU7WUFDbkIsWUFBWTtTQUNiLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztJQUVNLGtCQUFrQjtRQUN4QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBRXJCLENBQUM7UUFDVCxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksT0FBTyxLQUFLLENBQUMsb0JBQW9CLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUM7WUFDakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUM7WUFDakQsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ25ELElBQUksU0FBUyxHQUFHLEdBQUcsUUFBUSxHQUFHLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUNFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUN4QyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQzNCLENBQUM7WUFDRCxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbkMsQ0FBQztRQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUN6QjtZQUNFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxjQUFjO1NBQzFDLEVBQ0QsRUFBRSxFQUNGLFNBQVMsQ0FDVixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBIaXN0b3J5LFxuICBIaXN0b3J5RGVidWdDb250ZXh0LFxuICBIaXN0b3J5TGlzdGVuZXIsXG4gIEhpc3RvcnlMb2NhdGlvbixcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbXBsZXRlIFVSTCBwYXRoIGZyb20gYSBIaXN0b3J5TG9jYXRpb24gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBsb2NhdGlvbiAtIExvY2F0aW9uIG9iamVjdCBjb250YWluaW5nIHBhdGhuYW1lLCBzZWFyY2gsIGFuZCBoYXNoXG4gKiBAcmV0dXJucyBDb21wbGV0ZSBwYXRoIHN0cmluZyBjb21iaW5pbmcgYWxsIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGgobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbik6IHN0cmluZyB7XG4gIGNvbnN0IHsgcGF0aG5hbWUsIHNlYXJjaCA9ICcnLCBoYXNoID0gJycgfSA9IGxvY2F0aW9uO1xuXG4gIHJldHVybiBgJHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YDtcbn1cblxuLyoqXG4gKiBCcm93c2VyIGhpc3RvcnkgaW1wbGVtZW50YXRpb24gdXNpbmcgdGhlIEhUTUw1IEhpc3RvcnkgQVBJLlxuICogTWFuYWdlcyBicm93c2VyIG5hdmlnYXRpb24gc3RhdGUgYW5kIHByb3ZpZGVzIGEgY29uc2lzdGVudCBpbnRlcmZhY2VcbiAqIGZvciBwcm9ncmFtbWF0aWMgbmF2aWdhdGlvbiBhbmQgbG9jYXRpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJyb3dzZXJIaXN0b3J5IGltcGxlbWVudHMgSGlzdG9yeSB7XG4gIC8qKiBBcnJheSBvZiBsaXN0ZW5lcnMgZm9yIGxvY2F0aW9uIGNoYW5nZXMgKi9cbiAgcHJpdmF0ZSBfX2xpc3RlbmVyczogSGlzdG9yeUxpc3RlbmVyW10gPSBbXTtcbiAgLyoqIERlYnVnIG1ldGFkYXRhIGNhcHR1cmVkIGZvciB0aGUgbmV4dCBub3RpZmljYXRpb24gKi9cbiAgcHJpdmF0ZSBfX3BlbmRpbmdEZWJ1Z0NvbnRleHQ6IEhpc3RvcnlEZWJ1Z0NvbnRleHQgfCBudWxsID0gbnVsbDtcbiAgLyoqIE1vbm90b25pYyBjb3VudGVyIGF0dGFjaGVkIHRvIHB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUgKi9cbiAgcHJpdmF0ZSBfX2hpc3RvcnlJbmRleCA9IDA7XG4gIC8qKiBDdXJyZW50IGluZGV4IHJlcHJlc2VudGluZyB0aGUgYWN0aXZlIGVudHJ5ICovXG4gIHByaXZhdGUgX19jdXJyZW50SW5kZXggPSAwO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEJyb3dzZXJIaXN0b3J5IGluc3RhbmNlIGFuZCBpbml0aWFsaXplcyBldmVudCBsaXN0ZW5lcnMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gICAgdGhpcy5fX2Vuc3VyZVN0YXRlSW5kZXgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGJyb3dzZXIgbG9jYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgd2luZG93LmxvY2F0aW9uIG9iamVjdFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgcHVibGljIGdldCBsb2NhdGlvbigpOiBMb2NhdGlvbiB7XG4gICAgLy8gU29tZSB0ZXN0IERPTSBlbnZpcm9ubWVudHMgKGUuZy4gaGFwcHktZG9tKSBleHBvc2Ugbm9uLWVudW1lcmFibGVcbiAgICAvLyBMb2NhdGlvbiBwcm9wZXJ0aWVzIHNvIGEgc2ltcGxlIHNwcmVhZCByZXR1cm5zIGFuIGVtcHR5IG9iamVjdC5cbiAgICAvLyBSZXR1cm4gYW4gZXhwbGljaXQgcGxhaW4gb2JqZWN0IHdpdGggdGhlIGZpZWxkcyB3ZSByZWx5IG9uLlxuICAgIHJldHVybiB7XG4gICAgICAvLyBwYXRobmFtZS9zZWFyY2gvaGFzaCBhcmUgc3VmZmljaWVudCBmb3Igb3VyIHJvdXRlciBsb2dpY1xuICAgICAgcGF0aG5hbWU6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxcbiAgICAgIHNlYXJjaDogd2luZG93LmxvY2F0aW9uLnNlYXJjaCxcbiAgICAgIGhhc2g6IHdpbmRvdy5sb2NhdGlvbi5oYXNoLFxuICAgIH0gYXMgdW5rbm93biBhcyBMb2NhdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgaGlzdG9yeSBpbnN0YW5jZSBieSBzZXR0aW5nIHVwIGV2ZW50IGxpc3RlbmVycy5cbiAgICovXG4gIHB1YmxpYyBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX19zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyB0aGUgY3VycmVudCBoaXN0b3J5IGVudHJ5IHdpdGggYSBuZXcgbG9jYXRpb24uXG4gICAqIFRoaXMgdXBkYXRlcyB0aGUgVVJMIHdpdGhvdXQgY3JlYXRpbmcgYSBuZXcgaGlzdG9yeSBlbnRyeS5cbiAgICpcbiAgICogQHBhcmFtIGxvY2F0aW9uIC0gTmV3IGxvY2F0aW9uIHRvIHNldFxuICAgKi9cbiAgcHVibGljIHNldChsb2NhdGlvbjogSGlzdG9yeUxvY2F0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgeyBkZWJ1Z0NvbnRleHQsIC4uLnJlc3QgfSA9IGxvY2F0aW9uIGFzIEhpc3RvcnlMb2NhdGlvbiAmIHtcbiAgICAgIGRlYnVnQ29udGV4dD86IEhpc3RvcnlEZWJ1Z0NvbnRleHQ7XG4gICAgfTtcbiAgICBjb25zdCBwYXRoID0gY3JlYXRlUGF0aChyZXN0KTtcblxuICAgIGlmIChkZWJ1Z0NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSB7XG4gICAgICAgIC4uLmRlYnVnQ29udGV4dCxcbiAgICAgICAgaGlzdG9yeUluZGV4OiB0aGlzLl9fY3VycmVudEluZGV4LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSB7IGhpc3RvcnlJbmRleDogdGhpcy5fX2N1cnJlbnRJbmRleCB9O1xuICAgIH1cblxuICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShcbiAgICAgIHtcbiAgICAgICAgX19wbHVtaWxlUm91dGVySW5kZXg6IHRoaXMuX19jdXJyZW50SW5kZXgsXG4gICAgICB9LFxuICAgICAgJycsXG4gICAgICBwYXRoLFxuICAgICk7XG4gICAgdGhpcy5fX25vdGlmeSh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gYSBuZXcgbG9jYXRpb24gYnkgcHVzaGluZyBhIG5ldyBoaXN0b3J5IGVudHJ5LlxuICAgKiBUaGlzIGNyZWF0ZXMgYSBuZXcgZW50cnkgaW4gdGhlIGJyb3dzZXIncyBoaXN0b3J5IHN0YWNrLlxuICAgKlxuICAgKiBAcGFyYW0gbG9jYXRpb24gLSBMb2NhdGlvbiB0byBuYXZpZ2F0ZSB0b1xuICAgKi9cbiAgcHVibGljIHB1c2gobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IHsgZGVidWdDb250ZXh0LCAuLi5yZXN0IH0gPSBsb2NhdGlvbiBhcyBIaXN0b3J5TG9jYXRpb24gJiB7XG4gICAgICBkZWJ1Z0NvbnRleHQ/OiBIaXN0b3J5RGVidWdDb250ZXh0O1xuICAgIH07XG4gICAgY29uc3QgcGF0aCA9IGNyZWF0ZVBhdGgocmVzdCk7XG5cbiAgICB0aGlzLl9faGlzdG9yeUluZGV4ICs9IDE7XG4gICAgdGhpcy5fX2N1cnJlbnRJbmRleCA9IHRoaXMuX19oaXN0b3J5SW5kZXg7XG5cbiAgICBpZiAoZGVidWdDb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX19wZW5kaW5nRGVidWdDb250ZXh0ID0ge1xuICAgICAgICAuLi5kZWJ1Z0NvbnRleHQsXG4gICAgICAgIGhpc3RvcnlJbmRleDogdGhpcy5fX2N1cnJlbnRJbmRleCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX19wZW5kaW5nRGVidWdDb250ZXh0ID0geyBoaXN0b3J5SW5kZXg6IHRoaXMuX19jdXJyZW50SW5kZXggfTtcbiAgICB9XG5cbiAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoXG4gICAgICB7XG4gICAgICAgIF9fcGx1bWlsZVJvdXRlckluZGV4OiB0aGlzLl9fY3VycmVudEluZGV4LFxuICAgICAgfSxcbiAgICAgICcnLFxuICAgICAgcGF0aCxcbiAgICApO1xuICAgIHRoaXMuX19ub3RpZnkoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBsaXN0ZW5lciBmcm9tIHRoZSBoaXN0b3J5IGNoYW5nZSBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gbGlzdGVuZXIgLSBMaXN0ZW5lciBmdW5jdGlvbiB0byByZW1vdmVcbiAgICovXG4gIHB1YmxpYyB1bnN1YnNjcmliZShsaXN0ZW5lcjogSGlzdG9yeUxpc3RlbmVyKTogdm9pZCB7XG4gICAgdGhpcy5fX2xpc3RlbmVycyA9IHRoaXMuX19saXN0ZW5lcnMuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gaXRlbSAhPT0gbGlzdGVuZXI7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byBoaXN0b3J5IGNoYW5nZXMuXG4gICAqXG4gICAqIEBwYXJhbSBsaXN0ZW5lciAtIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBsb2NhdGlvbiBjaGFuZ2VzXG4gICAqIEByZXR1cm5zIFVuc3Vic2NyaWJlIGZ1bmN0aW9uXG4gICAqL1xuICBwdWJsaWMgc3Vic2NyaWJlKGxpc3RlbmVyOiBIaXN0b3J5TGlzdGVuZXIpOiAoKSA9PiB2b2lkIHtcbiAgICB0aGlzLl9fbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlKGxpc3RlbmVyKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIGFsbCBsaXN0ZW5lcnMgb2YgYSBsb2NhdGlvbiBjaGFuZ2UuXG4gICAqXG4gICAqIFVzZXMgc2V0VGltZW91dCB0byBlbnN1cmUgdGhlIG5vdGlmaWNhdGlvbiBoYXBwZW5zIGFmdGVyIHRoZSBjdXJyZW50IGV4ZWN1dGlvbi5cbiAgICovXG4gIHByaXZhdGUgX19ub3RpZnkgPSAoZm9yY2VSZXJlbmRlcjogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgeyBsb2NhdGlvbiB9ID0gdGhpcztcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9fY29uc3VtZVBlbmRpbmdEZWJ1Z0NvbnRleHQoKTtcbiAgICAgIHRoaXMuX19saXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IHtcbiAgICAgICAgbGlzdGVuZXIobG9jYXRpb24sIGZvcmNlUmVyZW5kZXIsIGNvbnRleHQpO1xuICAgICAgfSk7XG4gICAgfSwgMCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfX2NvbnN1bWVQZW5kaW5nRGVidWdDb250ZXh0KCk6IEhpc3RvcnlEZWJ1Z0NvbnRleHQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLl9fcGVuZGluZ0RlYnVnQ29udGV4dCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQ7XG4gICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSBudWxsO1xuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIHBvcHN0YXRlIGV2ZW50IGxpc3RlbmVyIGZvciBicm93c2VyIGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBfX3N1YnNjcmliZSgpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLl9faGFuZGxlUG9wc3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfX2hhbmRsZVBvcHN0YXRlID0gKGV2ZW50OiBQb3BTdGF0ZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgbGV0IG9yaWdpbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBoaXN0b3J5SW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBzdGF0ZSA9IGV2ZW50LnN0YXRlIGFzIHsgX19wbHVtaWxlUm91dGVySW5kZXg/OiBudW1iZXIgfSB8IG51bGw7XG4gICAgaWYgKHN0YXRlICE9IG51bGwgJiYgdHlwZW9mIHN0YXRlLl9fcGx1bWlsZVJvdXRlckluZGV4ID09PSAnbnVtYmVyJykge1xuICAgICAgaGlzdG9yeUluZGV4ID0gc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXg7XG4gICAgICBpZiAoaGlzdG9yeUluZGV4IDwgdGhpcy5fX2N1cnJlbnRJbmRleCkge1xuICAgICAgICBvcmlnaW4gPSAncG9wc3RhdGUtYmFjayc7XG4gICAgICB9IGVsc2UgaWYgKGhpc3RvcnlJbmRleCA+IHRoaXMuX19jdXJyZW50SW5kZXgpIHtcbiAgICAgICAgb3JpZ2luID0gJ3BvcHN0YXRlLWZvcndhcmQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3JpZ2luID0gJ3BvcHN0YXRlLXVua25vd24nO1xuICAgICAgfVxuICAgICAgdGhpcy5fX2N1cnJlbnRJbmRleCA9IGhpc3RvcnlJbmRleDtcbiAgICAgIGlmIChoaXN0b3J5SW5kZXggPiB0aGlzLl9faGlzdG9yeUluZGV4KSB7XG4gICAgICAgIHRoaXMuX19oaXN0b3J5SW5kZXggPSBoaXN0b3J5SW5kZXg7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG9yaWdpbiA9ICdleHRlcm5hbCc7XG4gICAgfVxuXG4gICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSB7XG4gICAgICBvcmlnaW4sXG4gICAgICB0cmlnZ2VyOiAncG9wc3RhdGUnLFxuICAgICAgaGlzdG9yeUluZGV4LFxuICAgIH07XG4gICAgdGhpcy5fX25vdGlmeShmYWxzZSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfX2Vuc3VyZVN0YXRlSW5kZXgoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB3aW5kb3cuaGlzdG9yeS5zdGF0ZSBhcyB7XG4gICAgICBfX3BsdW1pbGVSb3V0ZXJJbmRleD86IG51bWJlcjtcbiAgICB9IHwgbnVsbDtcbiAgICBpZiAoc3RhdGUgIT0gbnVsbCAmJiB0eXBlb2Ygc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXggPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLl9fY3VycmVudEluZGV4ID0gc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXg7XG4gICAgICB0aGlzLl9faGlzdG9yeUluZGV4ID0gc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXg7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBwYXRobmFtZSwgc2VhcmNoLCBoYXNoIH0gPSB3aW5kb3cubG9jYXRpb247XG4gICAgbGV0IHRhcmdldFVybCA9IGAke3BhdGhuYW1lfSR7c2VhcmNofSR7aGFzaH1gO1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiB3aW5kb3cubG9jYXRpb24uaHJlZiA9PT0gJ3N0cmluZycgJiZcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmICE9PSAnJ1xuICAgICkge1xuICAgICAgdGFyZ2V0VXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgfVxuXG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKFxuICAgICAge1xuICAgICAgICBfX3BsdW1pbGVSb3V0ZXJJbmRleDogdGhpcy5fX2N1cnJlbnRJbmRleCxcbiAgICAgIH0sXG4gICAgICAnJyxcbiAgICAgIHRhcmdldFVybCxcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,12 +1,19 @@
1
- export type HistoryListener = (location: Location, forceRerender: boolean) => void;
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,KACnB,IAAI,CAAC;AAMV,MAAM,MAAM,eAAe,GAAG;IAE5B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,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;CAC3C"}
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"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGlzdG9yeS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgaGlzdG9yeSBjaGFuZ2VzLlxuICogQ2FsbGVkIHdoZW5ldmVyIHRoZSBicm93c2VyIGxvY2F0aW9uIGNoYW5nZXMuXG4gKlxuICogQHBhcmFtIGxvY2F0aW9uIC0gVGhlIG5ldyBicm93c2VyIGxvY2F0aW9uXG4gKiBAcGFyYW0gZm9yY2VSZXJlbmRlciAtIFdoZXRoZXIgdG8gZm9yY2UgYSByZS1yZW5kZXIgZXZlbiBpZiB0aGUgcGF0aCBpcyB0aGUgc2FtZVxuICovXG5leHBvcnQgdHlwZSBIaXN0b3J5TGlzdGVuZXIgPSAoXG4gIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgZm9yY2VSZXJlbmRlcjogYm9vbGVhbixcbikgPT4gdm9pZDtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbG9jYXRpb24gZm9yIGhpc3RvcnkgbmF2aWdhdGlvbi5cbiAqIFRoaXMgaXMgYSBzdWJzZXQgb2YgdGhlIGJyb3dzZXIncyBMb2NhdGlvbiBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCB0eXBlIEhpc3RvcnlMb2NhdGlvbiA9IHtcbiAgLyoqIFVSTCBoYXNoIChmcmFnbWVudCBpZGVudGlmaWVyKSAqL1xuICBoYXNoPzogc3RyaW5nO1xuICAvKiogVVJMIHBhdGhuYW1lICovXG4gIHBhdGhuYW1lOiBzdHJpbmc7XG4gIC8qKiBVUkwgc2VhcmNoIHBhcmFtZXRlcnMgKi9cbiAgc2VhcmNoPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIGhpc3RvcnkgbWFuYWdlbWVudCBpbXBsZW1lbnRhdGlvbnMuXG4gKiBQcm92aWRlcyBtZXRob2RzIGZvciBuYXZpZ2F0aW9uIGFuZCBsaXN0ZW5pbmcgdG8gbG9jYXRpb24gY2hhbmdlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIaXN0b3J5IHtcbiAgLyoqIEluaXRpYWxpemUgdGhlIGhpc3RvcnkgaW5zdGFuY2UgKi9cbiAgaW5pdDogKCkgPT4gdm9pZDtcbiAgLyoqIFN1YnNjcmliZSB0byBsb2NhdGlvbiBjaGFuZ2VzICovXG4gIHN1YnNjcmliZTogKGxpc3RlbmVyOiBIaXN0b3J5TGlzdGVuZXIpID0+ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBhIG5ldyBsb2NhdGlvbiAqL1xuICBwdXNoOiAobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbikgPT4gdm9pZDtcbn1cbiJdfQ==
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;AAa3E,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,0GAuJR,CAAC;AAEH,eAAe,IAAI,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"}