@plumile/router 0.1.28 → 0.1.30

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 (41) hide show
  1. package/README.md +9 -126
  2. package/lib/esm/builder.d.ts.map +1 -1
  3. package/lib/esm/builder.js +1 -1
  4. package/lib/esm/errors/HttpRedirect.d.ts.map +1 -1
  5. package/lib/esm/errors/HttpRedirect.js +1 -1
  6. package/lib/esm/errors/index.js +1 -1
  7. package/lib/esm/routing/createRouter.d.ts +4 -8
  8. package/lib/esm/routing/createRouter.d.ts.map +1 -1
  9. package/lib/esm/routing/createRouter.js +4 -371
  10. package/lib/esm/routing/useAllQuery.d.ts.map +1 -1
  11. package/lib/esm/routing/useAllQuery.js +1 -1
  12. package/lib/esm/routing/useFilterDiagnostics.d.ts.map +1 -1
  13. package/lib/esm/routing/useFilterDiagnostics.js +1 -1
  14. package/lib/esm/routing/useFilters.d.ts +5 -0
  15. package/lib/esm/routing/useFilters.d.ts.map +1 -1
  16. package/lib/esm/routing/useFilters.js +4 -1
  17. package/lib/esm/routing/useNavigate.d.ts.map +1 -1
  18. package/lib/esm/routing/useNavigate.js +1 -1
  19. package/lib/esm/routing/useQuery.d.ts.map +1 -1
  20. package/lib/esm/routing/useQuery.js +1 -1
  21. package/lib/esm/routing/useQueryState.d.ts.map +1 -1
  22. package/lib/esm/routing/useQueryState.js +1 -1
  23. package/lib/esm/tools/buildCombinedSearch.d.ts.map +1 -1
  24. package/lib/esm/tools/buildCombinedSearch.js +1 -1
  25. package/lib/esm/tools.d.ts.map +1 -1
  26. package/lib/esm/tools.js +1 -1
  27. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  28. package/lib/types/builder.d.ts.map +1 -1
  29. package/lib/types/errors/HttpRedirect.d.ts.map +1 -1
  30. package/lib/types/routing/createRouter.d.ts +4 -8
  31. package/lib/types/routing/createRouter.d.ts.map +1 -1
  32. package/lib/types/routing/useAllQuery.d.ts.map +1 -1
  33. package/lib/types/routing/useFilterDiagnostics.d.ts.map +1 -1
  34. package/lib/types/routing/useFilters.d.ts +5 -0
  35. package/lib/types/routing/useFilters.d.ts.map +1 -1
  36. package/lib/types/routing/useNavigate.d.ts.map +1 -1
  37. package/lib/types/routing/useQuery.d.ts.map +1 -1
  38. package/lib/types/routing/useQueryState.d.ts.map +1 -1
  39. package/lib/types/tools/buildCombinedSearch.d.ts.map +1 -1
  40. package/lib/types/tools.d.ts.map +1 -1
  41. 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
 
@@ -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=
@@ -3,12 +3,8 @@ export type CreateRouterReturn<R extends AnyRoute[]> = {
3
3
  cleanup: () => void;
4
4
  context: RoutingContextType<any> & PreparedAccess<R>;
5
5
  };
6
- export default function createRouter<R extends AnyRoute[]>(routes: [...R] | AnyRoute[], opts?: {
7
- devtools?: boolean | {
8
- global?: boolean;
9
- panel?: boolean;
10
- shortcut?: string;
11
- collapsed?: boolean;
12
- };
13
- }): CreateRouterReturn<R extends AnyRoute[] ? R : AnyRoute[]>;
6
+ export type CreateRouterOptions = {
7
+ debug?: boolean;
8
+ };
9
+ export default function createRouter<R extends AnyRoute[]>(routes: [...R] | AnyRoute[], options?: CreateRouterOptions): CreateRouterReturn<R extends AnyRoute[] ? R : AnyRoute[]>;
14
10
  //# sourceMappingURL=createRouter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/createRouter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,kBAAkB,EAElB,QAAQ,EACR,cAAc,EAEf,MAAM,aAAa,CAAC;AAKrB,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI;IAErD,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;AAqCF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,CAAC,SAAS,QAAQ,EAAE,EACvD,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,EAC3B,IAAI,GAAE;IACJ,QAAQ,CAAC,EACL,OAAO,GACP;QACE,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACF,GACL,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,CA6sB3D"}
1
+ {"version":3,"file":"createRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/createRouter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,kBAAkB,EAElB,QAAQ,EACR,cAAc,EAEf,MAAM,aAAa,CAAC;AAKrB,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI;IAErD,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;AAwCF,MAAM,MAAM,mBAAmB,GAAG;IAKhC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,CAAC,SAAS,QAAQ,EAAE,EACvD,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,EAC3B,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,CA8T3D"}