@plumile/router 0.1.20 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -24
- package/lib/esm/routing/Link.js +2 -2
- package/lib/esm/routing/createRouter.d.ts.map +1 -1
- package/lib/esm/routing/createRouter.js +23 -56
- package/lib/esm/routing/useFilters.d.ts +2 -15
- package/lib/esm/routing/useFilters.d.ts.map +1 -1
- package/lib/esm/routing/useFilters.js +13 -34
- package/lib/esm/tools/buildCombinedSearch.d.ts +1 -1
- package/lib/esm/tools/buildCombinedSearch.d.ts.map +1 -1
- package/lib/esm/tools/buildCombinedSearch.js +4 -4
- package/lib/esm/type-tests/useFilters-typed.test-d.d.ts +2 -0
- package/lib/esm/type-tests/useFilters-typed.test-d.d.ts.map +1 -0
- package/lib/esm/type-tests/useFilters-typed.test-d.js +33 -0
- package/lib/esm/types.d.ts +41 -17
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/routing/createRouter.d.ts.map +1 -1
- package/lib/types/routing/useFilters.d.ts +2 -15
- package/lib/types/routing/useFilters.d.ts.map +1 -1
- package/lib/types/tools/buildCombinedSearch.d.ts +1 -1
- package/lib/types/tools/buildCombinedSearch.d.ts.map +1 -1
- package/lib/types/type-tests/useFilters-typed.test-d.d.ts +2 -0
- package/lib/types/type-tests/useFilters-typed.test-d.d.ts.map +1 -0
- package/lib/types/types.d.ts +41 -17
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -262,16 +262,22 @@ const routes = [
|
|
|
262
262
|
];
|
|
263
263
|
```
|
|
264
264
|
|
|
265
|
-
### Accessing Filters
|
|
265
|
+
### Accessing Filters (Strongly Typed)
|
|
266
|
+
|
|
267
|
+
`useFilters` now requires the schema as a mandatory argument (dynamic discovery was removed). It returns a tuple `[filters, actions]` where `filters` is fully inferred from the provided schema and `actions` are strongly typed mutation helpers.
|
|
266
268
|
|
|
267
269
|
```tsx
|
|
268
270
|
import { useFilters } from '@plumile/router';
|
|
271
|
+
import { productFilters } from './schemas'; // assume you exported the schema above
|
|
269
272
|
|
|
270
273
|
function List() {
|
|
271
|
-
const [filters,
|
|
272
|
-
//
|
|
273
|
-
|
|
274
|
-
|
|
274
|
+
const [filters, { set, remove, merge, clear }] = useFilters(productFilters);
|
|
275
|
+
// All operators/values are type‑checked against the schema
|
|
276
|
+
set('price', 'gt', 10); // => ?price.gt=10
|
|
277
|
+
set('page', 'eq', 2); // => ?page=2 (page normalization will clamp <1 to 1)
|
|
278
|
+
remove('price', 'gt'); // remove only that operator
|
|
279
|
+
merge({ price: { between: [10, 20] }, title: { contains: 'ultra' } });
|
|
280
|
+
clear(); // remove all active filters
|
|
275
281
|
return null;
|
|
276
282
|
}
|
|
277
283
|
```
|
|
@@ -311,20 +317,21 @@ Filters cache: repeated navigations with semantically identical search strings r
|
|
|
311
317
|
</Link>
|
|
312
318
|
```
|
|
313
319
|
|
|
314
|
-
Renders
|
|
320
|
+
Renders: `/products?page=1&price.gt=10`.
|
|
315
321
|
|
|
316
322
|
### Manual Serialization Example
|
|
317
323
|
|
|
318
324
|
If you need to build a URL outside of navigation (e.g. constructing a sitemap entry):
|
|
319
325
|
|
|
320
326
|
```ts
|
|
321
|
-
import buildCombinedSearch from '@plumile/router
|
|
327
|
+
import { buildCombinedSearch } from '@plumile/router';
|
|
328
|
+
// or: import buildCombinedSearch from '@plumile/router/lib/esm/routing/tools/buildCombinedSearch.js';
|
|
322
329
|
|
|
323
330
|
const search = buildCombinedSearch({
|
|
324
331
|
filters: { page: { eq: 1 }, price: { gt: 10 } },
|
|
325
|
-
|
|
332
|
+
querySchema: productFilters,
|
|
326
333
|
});
|
|
327
|
-
//
|
|
334
|
+
// => '?page=1&price.gt=10'
|
|
328
335
|
```
|
|
329
336
|
|
|
330
337
|
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.
|
|
@@ -473,11 +480,11 @@ export const routes = [
|
|
|
473
480
|
];
|
|
474
481
|
|
|
475
482
|
function Items() {
|
|
476
|
-
const [filters, { set, remove, clear, merge }] = useFilters();
|
|
477
|
-
set('price', 'gt', 10);
|
|
478
|
-
set('page', 'eq', 2);
|
|
479
|
-
remove('price', 'gt');
|
|
480
|
-
merge(
|
|
483
|
+
const [filters, { set, remove, clear, merge }] = useFilters(querySchema);
|
|
484
|
+
set('price', 'gt', 10); // => ?price.gt=10
|
|
485
|
+
set('page', 'eq', 2); // => ?page=2
|
|
486
|
+
remove('price', 'gt'); // remove only that operator
|
|
487
|
+
merge({ price: { between: [10, 20] } }); // descriptor-array form removed; use object patch
|
|
481
488
|
clear();
|
|
482
489
|
return null;
|
|
483
490
|
}
|
|
@@ -485,6 +492,19 @@ function Items() {
|
|
|
485
492
|
|
|
486
493
|
`navigate({ filters })` is available for programmatic updates. Serialization order: schema field keys first, then any extra non‑schema keys (if present). Operators follow deterministic ordering from `@plumile/filter-query`.
|
|
487
494
|
|
|
495
|
+
#### Typed Actions Cheat‑Sheet
|
|
496
|
+
|
|
497
|
+
```ts
|
|
498
|
+
const [filters, a] = useFilters(querySchema);
|
|
499
|
+
a.set('price', 'in', [10, 20, 30]); // array operators allowed when schema supports it
|
|
500
|
+
a.set('title', 'contains', 'ultra');
|
|
501
|
+
a.remove('price', 'in'); // remove only that operator
|
|
502
|
+
a.merge({ page: { eq: 3 }, price: { gt: 50 } }); // deep merge per field
|
|
503
|
+
a.clear(); // wipe everything (noop if already empty)
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
Navigation is skipped automatically if the structural filters object doesn't change (shallow compare) to avoid redundant history entries.
|
|
507
|
+
|
|
488
508
|
Diagnostics (unknown field/operator, invalid values, etc.) are accessible via `useFilterDiagnostics()`.
|
|
489
509
|
|
|
490
510
|
### ESLint Rule: no-direct-window-location-search
|
|
@@ -536,26 +556,34 @@ with:
|
|
|
536
556
|
const query = useQuery(); // raw key=value aggregation (simple); prefer useFilters() for structured access.
|
|
537
557
|
```
|
|
538
558
|
|
|
539
|
-
### Migration Guide (Legacy DSL → Unified Filters)
|
|
559
|
+
### Migration Guide (Legacy DSL → Unified Filters + Typed Hook Update)
|
|
540
560
|
|
|
541
561
|
1. Remove legacy imports of `q`, `parseTypedQuery`, `buildSearch`.
|
|
542
|
-
2. Define a schema with `defineSchema` from `@plumile/filter-query` and attach as `querySchema
|
|
543
|
-
3. Replace (removed) `useTypedQuery()` usages with `useFilters()
|
|
544
|
-
4. Update navigation: `navigate({ filters: { page: { eq: 2 } } })
|
|
562
|
+
2. Define a schema with `defineSchema` from `@plumile/filter-query` and attach as `querySchema` on the route needing filters.
|
|
563
|
+
3. Replace (removed) `useTypedQuery()` usages with `useFilters(querySchema)` (schema argument now mandatory – breaking change vs earlier experimental auto‑discovery version).
|
|
564
|
+
4. Update navigation: `navigate({ filters: { page: { eq: 2 } } })` (unchanged pattern).
|
|
545
565
|
5. Update links: `<Link to="/x" filters={{ page: { eq: 2 } }} />`.
|
|
546
|
-
6.
|
|
547
|
-
7.
|
|
566
|
+
6. Replace any previous `merge([{ field, op, value }])` descriptor array calls with `merge({ field: { op: value } })` object patches.
|
|
567
|
+
7. Page defaults / normalization: rely on built-in clamp (`page < 1 -> 1`).
|
|
568
|
+
8. Remove any type tests referencing the DSL; rely on schema inference from `defineSchema`.
|
|
569
|
+
9. If you manually used `buildCombinedSearch({ schema })`, rename the option to `querySchema`.
|
|
548
570
|
|
|
549
|
-
### Removed APIs
|
|
571
|
+
### Removed & Changed APIs
|
|
550
572
|
|
|
551
|
-
|
|
573
|
+
Removed in favor of the unified model:
|
|
552
574
|
|
|
553
|
-
- `q.*` descriptor DSL (
|
|
575
|
+
- `q.*` descriptor DSL (use `defineSchema`)
|
|
554
576
|
- `parseTypedQuery`
|
|
555
577
|
- `buildSearch` (use `buildCombinedSearch`)
|
|
556
578
|
- `useTypedQuery`
|
|
557
579
|
|
|
558
|
-
|
|
580
|
+
Changed (breaking):
|
|
581
|
+
|
|
582
|
+
- `useFilters()` → `useFilters(schema)` (schema argument required; no dynamic discovery)
|
|
583
|
+
- `merge` action signature: descriptor array → object patch (`merge({ field: { operator: value } })`)
|
|
584
|
+
- `buildCombinedSearch({ schema })` → `buildCombinedSearch({ querySchema })`
|
|
585
|
+
|
|
586
|
+
Use `@plumile/filter-query` for schema definitions and `useFilters(schema)` / `buildCombinedSearch` for runtime access & serialization.
|
|
559
587
|
|
|
560
588
|
### useQueryState Hook
|
|
561
589
|
|
package/lib/esm/routing/Link.js
CHANGED
|
@@ -43,7 +43,7 @@ const Link = forwardRef((props, ref) => {
|
|
|
43
43
|
const entry = router.get();
|
|
44
44
|
return buildCombinedSearch({
|
|
45
45
|
filters: query,
|
|
46
|
-
|
|
46
|
+
querySchema: entry.activeQuerySchema,
|
|
47
47
|
});
|
|
48
48
|
}, [query, router]);
|
|
49
49
|
const initialIsActive = isCurrentPathname(exact, router?.history, pathname);
|
|
@@ -111,4 +111,4 @@ const Link = forwardRef((props, ref) => {
|
|
|
111
111
|
return (_jsx("a", { className: cx(classNames), href: hrefValue, onClick: handleClick, onFocus: onFocus, onMouseDown: handleMouseDown, onMouseEnter: handleMouseEnter, onMouseOver: onMouseOver, ref: ref, target: target, children: children }));
|
|
112
112
|
});
|
|
113
113
|
export default Link;
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL0xpbmsudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQUlaLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0sT0FBTyxDQUFDO0FBSWYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pDLE9BQU8sbUJBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFHakQsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUM7QUFLMUMsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFjLEVBQ2QsT0FBbUMsRUFDbkMsUUFBZ0I7SUFFaEIsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV6RCxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFFOUMsSUFBSSxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBMkRELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBMkIsQ0FBQyxLQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDdEUsTUFB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R0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1FBQ3ZDLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hELE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFdkQsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQ3pCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEQsU0FBUyxHQUFHLEdBQUcsUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLENBQ0wsWUFDRSxTQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUN6QixJQUFJLEVBQUUsU0FBUyxFQUNmLE9BQU8sRUFBRSxXQUFXLEVBQ3BCLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxlQUFlLEVBQzVCLFlBQVksRUFBRSxnQkFBZ0IsRUFDOUIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsR0FBRyxFQUFFLEdBQUcsRUFDUixNQUFNLEVBQUUsTUFBTSxZQUViLFFBQVEsR0FDUCxDQUNMLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILGVBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHR5cGUgSFRNTEF0dHJpYnV0ZUFuY2hvclRhcmdldCxcbiAgdHlwZSBNb3VzZUV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnksIEhpc3RvcnlMb2NhdGlvbiB9IGZyb20gJy4uL2hpc3RvcnkvaW5kZXguanMnO1xuXG5pbXBvcnQgeyBjeCB9IGZyb20gJy4vLi4vdG9vbHMvaW5kZXguanMnO1xuaW1wb3J0IGJ1aWxkQ29tYmluZWRTZWFyY2ggZnJvbSAnLi4vdG9vbHMvYnVpbGRDb21iaW5lZFNlYXJjaC5qcyc7XG5cbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcbi8vIChmaWx0ZXItcXVlcnkgc3RyaW5naWZ5IG5vdCB1c2VkIGhlcmUgYWZ0ZXIgc2ltcGxpZnlpbmcgbWFudWFsIHNlcmlhbGl6YXRpb24pXG5cbmNvbnN0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQgfSA9IFJlYWN0O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBjdXJyZW50IHBhdGhuYW1lIG1hdGNoZXMgdGhlIGdpdmVuIHBhdGhuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDdXJyZW50UGF0aG5hbWUoXG4gIGV4YWN0OiBib29sZWFuLFxuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeSB8IHVuZGVmaW5lZCxcbiAgcGF0aG5hbWU6IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBpZiAoaGlzdG9yeSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgY29uc3QgcmVzb2x2ZWRVcmwgPSBuZXcgVVJMKHBhdGhuYW1lLCBkb2N1bWVudC5sb2NhdGlvbik7XG5cbiAgY29uc3QgcmVzb2x2ZWRQYXRobmFtZSA9IHJlc29sdmVkVXJsLnBhdGhuYW1lO1xuXG4gIGlmIChleGFjdCAmJiBoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lID09PSByZXNvbHZlZFBhdGhuYW1lKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoIWV4YWN0ICYmIGhpc3RvcnkubG9jYXRpb24ucGF0aG5hbWUuc3RhcnRzV2l0aChyZXNvbHZlZFBhdGhuYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgTGluayBjb21wb25lbnQuXG4gKi9cbnR5cGUgUHJvcHM8VFF1ZXJ5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSB7XG4gIC8qKiBDU1MgY2xhc3MgdG8gYXBwbHkgd2hlbiB0aGUgbGluayBpcyBhY3RpdmUgKG1hdGNoZXMgY3VycmVudCByb3V0ZSkgKi9cbiAgYWN0aXZlQ2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgaW5zaWRlIHRoZSBsaW5rICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBCYXNlIENTUyBjbGFzcyBmb3IgdGhlIGxpbmsgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0byB1c2UgZXhhY3QgcGF0aCBtYXRjaGluZyBmb3IgYWN0aXZlIHN0YXRlICovXG4gIGV4YWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gcHJlbG9hZCB0aGUgcm91dGUgd2hlbiBtb3VzZSBlbnRlcnMgdGhlIGxpbmsgKi9cbiAgcHJlbG9hZE9uTW91c2VFbnRlcj86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIHByZWxvYWQgdGhlIHJvdXRlIHdoZW4gbW91c2UgaXMgcHJlc3NlZCBkb3duICovXG4gIHByZWxvYWRPbk1vdXNlRG93bj86IGJvb2xlYW47XG4gIC8qKiBEaXJlY3QgaHJlZiBhdHRyaWJ1dGUgKG92ZXJyaWRlcyAndG8nIHByb3ApICovXG4gIGhyZWY/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBsaW5rIHNob3VsZCBiZSBkaXNhYmxlZCAqL1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqIENsaWNrIGhhbmRsZXIgKi9cbiAgb25DbGljaz86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIEZvY3VzIGhhbmRsZXIgKi9cbiAgb25Gb2N1cz86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIE1vdXNlIG92ZXIgaGFuZGxlciAqL1xuICBvbk1vdXNlT3Zlcj86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIFRhcmdldCBhdHRyaWJ1dGUgZm9yIHRoZSBsaW5rICovXG4gIHRhcmdldD86IEhUTUxBdHRyaWJ1dGVBbmNob3JUYXJnZXQ7XG4gIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGxpbmsgKGNhbiBiZSBzdHJpbmcgcGF0aCBvciBsb2NhdGlvbiBvYmplY3QpICovXG4gIHRvPzogSGlzdG9yeUxvY2F0aW9uIHwgc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcXVlcnkgb2JqZWN0IHRvIHNlcmlhbGl6ZSB1c2luZyBkZXN0aW5hdGlvbiByb3V0ZSBzY2hlbWEgKi9cbiAgcXVlcnk/OiBUUXVlcnk7XG59O1xuXG4vKipcbiAqIE5hdmlnYXRpb24gY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgY2xpZW50LXNpZGUgcm91dGluZyB3aXRoIHByZWxvYWRpbmcgY2FwYWJpbGl0aWVzLlxuICpcbiAqIFRoaXMgY29tcG9uZW50IGludGVncmF0ZXMgd2l0aCB0aGUgcm91dGVyJ3MgUm91dGluZ0NvbnRleHQgdG8gcHJvdmlkZSBzbW9vdGggbmF2aWdhdGlvblxuICogd2l0aCBvcHRpb25hbCBwcmVsb2FkaW5nIG9mIHJvdXRlIGNvbXBvbmVudHMgYW5kIGRhdGEuIEl0IGF1dG9tYXRpY2FsbHkgYXBwbGllcyBhY3RpdmVcbiAqIHN0eWxpbmcgd2hlbiB0aGUgY3VycmVudCByb3V0ZSBtYXRjaGVzIHRoZSBsaW5rJ3MgZGVzdGluYXRpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogLy8gQmFzaWMgdXNhZ2VcbiAqIDxMaW5rIHRvPVwiL3VzZXJzLzEyM1wiPlZpZXcgUHJvZmlsZTwvTGluaz5cbiAqXG4gKiAvLyBXaXRoIGFjdGl2ZSBzdHlsaW5nXG4gKiA8TGluayB0bz1cIi9kYXNoYm9hcmRcIiBhY3RpdmVDbGFzc05hbWU9XCJhY3RpdmVcIiBleGFjdD5cbiAqICAgRGFzaGJvYXJkXG4gKiA8L0xpbms+XG4gKlxuICogLy8gV2l0aCBwcmVsb2FkaW5nIG9uIGhvdmVyXG4gKiA8TGluayB0bz1cIi9oZWF2eS1wYWdlXCIgcHJlbG9hZE9uTW91c2VFbnRlcj5cbiAqICAgSGVhdnkgUGFnZVxuICogPC9MaW5rPlxuICogYGBgXG4gKi9cbmNvbnN0IExpbmsgPSBmb3J3YXJkUmVmPEhUTUxBbmNob3JFbGVtZW50LCBQcm9wcz4oKHByb3BzOiBQcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHJvdXRlciA9IHVzZUNvbnRleHQoUm91dGluZ0NvbnRleHQpO1xuICBjb25zdCB7XG4gICAgYWN0aXZlQ2xhc3NOYW1lLFxuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSxcbiAgICBleGFjdCA9IGZhbHNlLFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBvbkNsaWNrLFxuICAgIG9uRm9jdXMsXG4gICAgb25Nb3VzZU92ZXIsXG4gICAgcHJlbG9hZE9uTW91c2VFbnRlciA9IGZhbHNlLFxuICAgIHByZWxvYWRPbk1vdXNlRG93biA9IHRydWUsXG4gICAgdGFyZ2V0LFxuICAgIHRvLFxuICAgIGhyZWYsXG4gICAgcXVlcnksXG4gIH0gPSBwcm9wcztcblxuICBjb25zdCBwYXRobmFtZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyMnO1xuICAgIH1cblxuICAgIGxldCBuZXdIcmVmID0gaHJlZjtcblxuICAgIGlmIChuZXdIcmVmID09IG51bGwpIHtcbiAgICAgIGlmICh0eXBlb2YgdG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG5ld0hyZWYgPSB0bztcbiAgICAgIH0gZWxzZSBpZiAodG8/LnBhdGhuYW1lICE9IG51bGwpIHtcbiAgICAgICAgbmV3SHJlZiA9IHRvLnBhdGhuYW1lO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5ld0hyZWYgPz89ICcjJztcblxuICAgIHJldHVybiBuZXdIcmVmO1xuICB9LCBbaHJlZiwgaXNEaXNhYmxlZCwgdG9dKTtcblxuICAvLyBSZXNvbHZlIHNlYXJjaCBzdHJpbmcgZnJvbSBwcm92aWRlZCBxdWVyeSB0cmVhdGVkIGFzIGZpbHRlcnMgdy8gYWN0aXZlIHNjaGVtYS5cbiAgY29uc3Qgc2VhcmNoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHF1ZXJ5ID09IG51bGwgfHwgcm91dGVyID09IG51bGwpIHJldHVybiAnJztcbiAgICBjb25zdCBlbnRyeSA9IHJvdXRlci5nZXQoKTtcbiAgICByZXR1cm4gYnVpbGRDb21iaW5lZFNlYXJjaCh7XG4gICAgICBmaWx0ZXJzOiBxdWVyeSBhcyBhbnksXG4gICAgICBmaWx0ZXJTY2hlbWE6IGVudHJ5LmFjdGl2ZVF1ZXJ5U2NoZW1hIGFzIGFueSxcbiAgICB9KTtcbiAgfSwgW3F1ZXJ5LCByb3V0ZXJdKTtcblxuICBjb25zdCBpbml0aWFsSXNBY3RpdmUgPSBpc0N1cnJlbnRQYXRobmFtZShleGFjdCwgcm91dGVyPy5oaXN0b3J5LCBwYXRobmFtZSk7XG4gIGNvbnN0IFtpc0FjdGl2ZSwgc2V0SXNBY3RpdmVdID0gUmVhY3QudXNlU3RhdGUoaW5pdGlhbElzQWN0aXZlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbmV3SXNBY3RpdmUgPSBpc0N1cnJlbnRQYXRobmFtZShleGFjdCwgcm91dGVyPy5oaXN0b3J5LCBwYXRobmFtZSk7XG4gICAgICBzZXRJc0FjdGl2ZShuZXdJc0FjdGl2ZSk7XG4gICAgfTtcblxuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuICgpID0+IHt9O1xuICAgIH1cblxuICAgIHJvdXRlci5oaXN0b3J5LnN1YnNjcmliZShvbkNoYW5nZSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcm91dGVyLmhpc3RvcnkudW5zdWJzY3JpYmUob25DaGFuZ2UpO1xuICAgIH07XG4gIH0sIFtleGFjdCwgcGF0aG5hbWUsIHJvdXRlcl0pO1xuXG4gIGNvbnN0IGNsYXNzTmFtZXMgPSBbY2xhc3NOYW1lXTtcblxuICBpZiAoaXNBY3RpdmUpIHtcbiAgICBjbGFzc05hbWVzLnB1c2goYWN0aXZlQ2xhc3NOYW1lKTtcbiAgfVxuXG4gIC8vIFdoZW4gdGhlIHVzZXIgY2xpY2tzLCBjaGFuZ2Ugcm91dGVcbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoIWlzRGlzYWJsZWQgJiYgdHlwZW9mIG9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb25DbGljayhldmVudCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fFxuICAgICAgICBldmVudC5tZXRhS2V5IHx8XG4gICAgICAgIGV2ZW50LmFsdEtleSB8fFxuICAgICAgICBldmVudC5jdHJsS2V5IHx8XG4gICAgICAgIGV2ZW50LnNoaWZ0S2V5IHx8XG4gICAgICAgIGV2ZW50LmJ1dHRvbiAhPT0gMCB8fFxuICAgICAgICAodGFyZ2V0ICE9IG51bGwgJiYgdGFyZ2V0ICE9PSAnX3NlbGYnKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGlmIChyb3V0ZXIgPT0gbnVsbCB8fCBpc0Rpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcm91dGVyLmhpc3RvcnkucHVzaCh7XG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBzZWFyY2gsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtpc0Rpc2FibGVkLCBvbkNsaWNrLCBwYXRobmFtZSwgcm91dGVyLCB0YXJnZXQsIHNlYXJjaF0sXG4gICk7XG5cbiAgLy8gQ2FsbGJhY2sgdG8gcHJlbG9hZCBqdXN0IHRoZSBjb2RlIGZvciB0aGUgcm91dGU6XG4gIC8vIHdlIHBhc3MgdGhpcyB0byBvbk1vdXNlRW50ZXIsIHdoaWNoIGlzIGEgd2Vha2VyIHNpZ25hbFxuICAvLyB0aGF0IHRoZSB1c2VyICptYXkqIG5hdmlnYXRlIHRvIHRoZSByb3V0ZS5cbiAgY29uc3QgaGFuZGxlTW91c2VFbnRlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwcmVsb2FkT25Nb3VzZUVudGVyKSB7XG4gICAgICByb3V0ZXIucHJlbG9hZChwYXRobmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdXRlci5wcmVsb2FkQ29kZShwYXRobmFtZSk7XG4gICAgfVxuICB9LCBbcm91dGVyLCBpc0Rpc2FibGVkLCBwcmVsb2FkT25Nb3VzZUVudGVyLCBwYXRobmFtZV0pO1xuXG4gIC8vIENhbGxiYWNrIHRvIHByZWxvYWQgdGhlIGNvZGUgYW5kIGRhdGEgZm9yIHRoZSByb3V0ZTpcbiAgLy8gd2UgcGFzcyB0aGlzIHRvIG9uTW91c2VEb3duLCBzaW5jZSB0aGlzIGlzIGEgc3Ryb25nZXJcbiAgLy8gc2lnbmFsIHRoYXQgdGhlIHVzZXIgd2lsbCBsaWtlbHkgY29tcGxldGUgdGhlIG5hdmlnYXRpb25cbiAgY29uc3QgaGFuZGxlTW91c2VEb3duID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCB8fCBpc0Rpc2FibGVkIHx8ICFwcmVsb2FkT25Nb3VzZURvd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcm91dGVyLnByZWxvYWQocGF0aG5hbWUpO1xuICB9LCBbcm91dGVyLCBpc0Rpc2FibGVkLCBwcmVsb2FkT25Nb3VzZURvd24sIHBhdGhuYW1lXSk7XG5cbiAgbGV0IGhyZWZWYWx1ZSA9IHBhdGhuYW1lO1xuICBpZiAodHlwZW9mIHNlYXJjaCA9PT0gJ3N0cmluZycgJiYgc2VhcmNoLmxlbmd0aCA+IDApIHtcbiAgICBocmVmVmFsdWUgPSBgJHtwYXRobmFtZX0ke3NlYXJjaH1gO1xuICB9XG4gIHJldHVybiAoXG4gICAgPGFcbiAgICAgIGNsYXNzTmFtZT17Y3goY2xhc3NOYW1lcyl9XG4gICAgICBocmVmPXtocmVmVmFsdWV9XG4gICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3dufVxuICAgICAgb25Nb3VzZUVudGVyPXtoYW5kbGVNb3VzZUVudGVyfVxuICAgICAgb25Nb3VzZU92ZXI9e29uTW91c2VPdmVyfVxuICAgICAgcmVmPXtyZWZ9XG4gICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9hPlxuICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpbms7XG4iXX0=
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL0xpbmsudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQUlaLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0sT0FBTyxDQUFDO0FBSWYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pDLE9BQU8sbUJBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFHakQsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUM7QUFLMUMsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFjLEVBQ2QsT0FBbUMsRUFDbkMsUUFBZ0I7SUFFaEIsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV6RCxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFFOUMsSUFBSSxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBMkRELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBMkIsQ0FBQyxLQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDdEUsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sRUFDSixlQUFlLEVBQ2YsUUFBUSxFQUNSLFNBQVMsRUFDVCxLQUFLLEdBQUcsS0FBSyxFQUNiLFVBQVUsR0FBRyxLQUFLLEVBQ2xCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsV0FBVyxFQUNYLG1CQUFtQixHQUFHLEtBQUssRUFDM0Isa0JBQWtCLEdBQUcsSUFBSSxFQUN6QixNQUFNLEVBQ04sRUFBRSxFQUNGLElBQUksRUFDSixLQUFLLEdBQ04sR0FBRyxLQUFLLENBQUM7SUFFVixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQzVCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFbkIsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDcEIsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNmLENBQUM7aUJBQU0sSUFBSSxFQUFFLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNoQyxPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxHQUFHLENBQUM7UUFFaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRzNCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDMUIsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDL0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzNCLE9BQU8sbUJBQW1CLENBQUM7WUFDekIsT0FBTyxFQUFFLEtBQVk7WUFDckIsV0FBVyxFQUFFLEtBQUssQ0FBQyxpQkFBd0I7U0FDNUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFcEIsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRWhFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDcEIsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDeEUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQztRQUVGLElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25CLE9BQU8sR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVuQyxPQUFPLEdBQUcsRUFBRTtZQUNWLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUU5QixNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRS9CLElBQUksUUFBUSxFQUFFLENBQUM7UUFDYixVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFHRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQzdCLENBQUMsS0FBb0MsRUFBRSxFQUFFO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDakQsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUNFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDdEIsS0FBSyxDQUFDLE9BQU87WUFDYixLQUFLLENBQUMsTUFBTTtZQUNaLEtBQUssQ0FBQyxPQUFPO1lBQ2IsS0FBSyxDQUFDLFFBQVE7WUFDZCxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDbEIsQ0FBQyxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sS0FBSyxPQUFPLENBQUMsRUFDdEMsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNqQyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2xCLFFBQVE7WUFDUixNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUNELENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FDeEQsQ0FBQztJQUtGLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtRQUN4QyxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7WUFDakMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUt4RCxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1FBQ3ZDLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hELE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFdkQsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQ3pCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEQsU0FBUyxHQUFHLEdBQUcsUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLENBQ0wsWUFDRSxTQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUN6QixJQUFJLEVBQUUsU0FBUyxFQUNmLE9BQU8sRUFBRSxXQUFXLEVBQ3BCLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxlQUFlLEVBQzVCLFlBQVksRUFBRSxnQkFBZ0IsRUFDOUIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsR0FBRyxFQUFFLEdBQUcsRUFDUixNQUFNLEVBQUUsTUFBTSxZQUViLFFBQVEsR0FDUCxDQUNMLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILGVBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHR5cGUgSFRNTEF0dHJpYnV0ZUFuY2hvclRhcmdldCxcbiAgdHlwZSBNb3VzZUV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnksIEhpc3RvcnlMb2NhdGlvbiB9IGZyb20gJy4uL2hpc3RvcnkvaW5kZXguanMnO1xuXG5pbXBvcnQgeyBjeCB9IGZyb20gJy4vLi4vdG9vbHMvaW5kZXguanMnO1xuaW1wb3J0IGJ1aWxkQ29tYmluZWRTZWFyY2ggZnJvbSAnLi4vdG9vbHMvYnVpbGRDb21iaW5lZFNlYXJjaC5qcyc7XG5cbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcbi8vIChmaWx0ZXItcXVlcnkgc3RyaW5naWZ5IG5vdCB1c2VkIGhlcmUgYWZ0ZXIgc2ltcGxpZnlpbmcgbWFudWFsIHNlcmlhbGl6YXRpb24pXG5cbmNvbnN0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQgfSA9IFJlYWN0O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBjdXJyZW50IHBhdGhuYW1lIG1hdGNoZXMgdGhlIGdpdmVuIHBhdGhuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDdXJyZW50UGF0aG5hbWUoXG4gIGV4YWN0OiBib29sZWFuLFxuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeSB8IHVuZGVmaW5lZCxcbiAgcGF0aG5hbWU6IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBpZiAoaGlzdG9yeSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgY29uc3QgcmVzb2x2ZWRVcmwgPSBuZXcgVVJMKHBhdGhuYW1lLCBkb2N1bWVudC5sb2NhdGlvbik7XG5cbiAgY29uc3QgcmVzb2x2ZWRQYXRobmFtZSA9IHJlc29sdmVkVXJsLnBhdGhuYW1lO1xuXG4gIGlmIChleGFjdCAmJiBoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lID09PSByZXNvbHZlZFBhdGhuYW1lKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoIWV4YWN0ICYmIGhpc3RvcnkubG9jYXRpb24ucGF0aG5hbWUuc3RhcnRzV2l0aChyZXNvbHZlZFBhdGhuYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgTGluayBjb21wb25lbnQuXG4gKi9cbnR5cGUgUHJvcHM8VFF1ZXJ5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSB7XG4gIC8qKiBDU1MgY2xhc3MgdG8gYXBwbHkgd2hlbiB0aGUgbGluayBpcyBhY3RpdmUgKG1hdGNoZXMgY3VycmVudCByb3V0ZSkgKi9cbiAgYWN0aXZlQ2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgaW5zaWRlIHRoZSBsaW5rICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBCYXNlIENTUyBjbGFzcyBmb3IgdGhlIGxpbmsgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0byB1c2UgZXhhY3QgcGF0aCBtYXRjaGluZyBmb3IgYWN0aXZlIHN0YXRlICovXG4gIGV4YWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gcHJlbG9hZCB0aGUgcm91dGUgd2hlbiBtb3VzZSBlbnRlcnMgdGhlIGxpbmsgKi9cbiAgcHJlbG9hZE9uTW91c2VFbnRlcj86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIHByZWxvYWQgdGhlIHJvdXRlIHdoZW4gbW91c2UgaXMgcHJlc3NlZCBkb3duICovXG4gIHByZWxvYWRPbk1vdXNlRG93bj86IGJvb2xlYW47XG4gIC8qKiBEaXJlY3QgaHJlZiBhdHRyaWJ1dGUgKG92ZXJyaWRlcyAndG8nIHByb3ApICovXG4gIGhyZWY/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBsaW5rIHNob3VsZCBiZSBkaXNhYmxlZCAqL1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqIENsaWNrIGhhbmRsZXIgKi9cbiAgb25DbGljaz86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIEZvY3VzIGhhbmRsZXIgKi9cbiAgb25Gb2N1cz86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIE1vdXNlIG92ZXIgaGFuZGxlciAqL1xuICBvbk1vdXNlT3Zlcj86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIFRhcmdldCBhdHRyaWJ1dGUgZm9yIHRoZSBsaW5rICovXG4gIHRhcmdldD86IEhUTUxBdHRyaWJ1dGVBbmNob3JUYXJnZXQ7XG4gIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGxpbmsgKGNhbiBiZSBzdHJpbmcgcGF0aCBvciBsb2NhdGlvbiBvYmplY3QpICovXG4gIHRvPzogSGlzdG9yeUxvY2F0aW9uIHwgc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcXVlcnkgb2JqZWN0IHRvIHNlcmlhbGl6ZSB1c2luZyBkZXN0aW5hdGlvbiByb3V0ZSBzY2hlbWEgKi9cbiAgcXVlcnk/OiBUUXVlcnk7XG59O1xuXG4vKipcbiAqIE5hdmlnYXRpb24gY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgY2xpZW50LXNpZGUgcm91dGluZyB3aXRoIHByZWxvYWRpbmcgY2FwYWJpbGl0aWVzLlxuICpcbiAqIFRoaXMgY29tcG9uZW50IGludGVncmF0ZXMgd2l0aCB0aGUgcm91dGVyJ3MgUm91dGluZ0NvbnRleHQgdG8gcHJvdmlkZSBzbW9vdGggbmF2aWdhdGlvblxuICogd2l0aCBvcHRpb25hbCBwcmVsb2FkaW5nIG9mIHJvdXRlIGNvbXBvbmVudHMgYW5kIGRhdGEuIEl0IGF1dG9tYXRpY2FsbHkgYXBwbGllcyBhY3RpdmVcbiAqIHN0eWxpbmcgd2hlbiB0aGUgY3VycmVudCByb3V0ZSBtYXRjaGVzIHRoZSBsaW5rJ3MgZGVzdGluYXRpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogLy8gQmFzaWMgdXNhZ2VcbiAqIDxMaW5rIHRvPVwiL3VzZXJzLzEyM1wiPlZpZXcgUHJvZmlsZTwvTGluaz5cbiAqXG4gKiAvLyBXaXRoIGFjdGl2ZSBzdHlsaW5nXG4gKiA8TGluayB0bz1cIi9kYXNoYm9hcmRcIiBhY3RpdmVDbGFzc05hbWU9XCJhY3RpdmVcIiBleGFjdD5cbiAqICAgRGFzaGJvYXJkXG4gKiA8L0xpbms+XG4gKlxuICogLy8gV2l0aCBwcmVsb2FkaW5nIG9uIGhvdmVyXG4gKiA8TGluayB0bz1cIi9oZWF2eS1wYWdlXCIgcHJlbG9hZE9uTW91c2VFbnRlcj5cbiAqICAgSGVhdnkgUGFnZVxuICogPC9MaW5rPlxuICogYGBgXG4gKi9cbmNvbnN0IExpbmsgPSBmb3J3YXJkUmVmPEhUTUxBbmNob3JFbGVtZW50LCBQcm9wcz4oKHByb3BzOiBQcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHJvdXRlciA9IHVzZUNvbnRleHQoUm91dGluZ0NvbnRleHQpO1xuICBjb25zdCB7XG4gICAgYWN0aXZlQ2xhc3NOYW1lLFxuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSxcbiAgICBleGFjdCA9IGZhbHNlLFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBvbkNsaWNrLFxuICAgIG9uRm9jdXMsXG4gICAgb25Nb3VzZU92ZXIsXG4gICAgcHJlbG9hZE9uTW91c2VFbnRlciA9IGZhbHNlLFxuICAgIHByZWxvYWRPbk1vdXNlRG93biA9IHRydWUsXG4gICAgdGFyZ2V0LFxuICAgIHRvLFxuICAgIGhyZWYsXG4gICAgcXVlcnksXG4gIH0gPSBwcm9wcztcblxuICBjb25zdCBwYXRobmFtZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyMnO1xuICAgIH1cblxuICAgIGxldCBuZXdIcmVmID0gaHJlZjtcblxuICAgIGlmIChuZXdIcmVmID09IG51bGwpIHtcbiAgICAgIGlmICh0eXBlb2YgdG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG5ld0hyZWYgPSB0bztcbiAgICAgIH0gZWxzZSBpZiAodG8/LnBhdGhuYW1lICE9IG51bGwpIHtcbiAgICAgICAgbmV3SHJlZiA9IHRvLnBhdGhuYW1lO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5ld0hyZWYgPz89ICcjJztcblxuICAgIHJldHVybiBuZXdIcmVmO1xuICB9LCBbaHJlZiwgaXNEaXNhYmxlZCwgdG9dKTtcblxuICAvLyBSZXNvbHZlIHNlYXJjaCBzdHJpbmcgZnJvbSBwcm92aWRlZCBxdWVyeSB0cmVhdGVkIGFzIGZpbHRlcnMgdy8gYWN0aXZlIHNjaGVtYS5cbiAgY29uc3Qgc2VhcmNoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHF1ZXJ5ID09IG51bGwgfHwgcm91dGVyID09IG51bGwpIHJldHVybiAnJztcbiAgICBjb25zdCBlbnRyeSA9IHJvdXRlci5nZXQoKTtcbiAgICByZXR1cm4gYnVpbGRDb21iaW5lZFNlYXJjaCh7XG4gICAgICBmaWx0ZXJzOiBxdWVyeSBhcyBhbnksXG4gICAgICBxdWVyeVNjaGVtYTogZW50cnkuYWN0aXZlUXVlcnlTY2hlbWEgYXMgYW55LFxuICAgIH0pO1xuICB9LCBbcXVlcnksIHJvdXRlcl0pO1xuXG4gIGNvbnN0IGluaXRpYWxJc0FjdGl2ZSA9IGlzQ3VycmVudFBhdGhuYW1lKGV4YWN0LCByb3V0ZXI/Lmhpc3RvcnksIHBhdGhuYW1lKTtcbiAgY29uc3QgW2lzQWN0aXZlLCBzZXRJc0FjdGl2ZV0gPSBSZWFjdC51c2VTdGF0ZShpbml0aWFsSXNBY3RpdmUpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBjb25zdCBuZXdJc0FjdGl2ZSA9IGlzQ3VycmVudFBhdGhuYW1lKGV4YWN0LCByb3V0ZXI/Lmhpc3RvcnksIHBhdGhuYW1lKTtcbiAgICAgIHNldElzQWN0aXZlKG5ld0lzQWN0aXZlKTtcbiAgICB9O1xuXG4gICAgaWYgKHJvdXRlciA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgfVxuXG4gICAgcm91dGVyLmhpc3Rvcnkuc3Vic2NyaWJlKG9uQ2hhbmdlKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICByb3V0ZXIuaGlzdG9yeS51bnN1YnNjcmliZShvbkNoYW5nZSk7XG4gICAgfTtcbiAgfSwgW2V4YWN0LCBwYXRobmFtZSwgcm91dGVyXSk7XG5cbiAgY29uc3QgY2xhc3NOYW1lcyA9IFtjbGFzc05hbWVdO1xuXG4gIGlmIChpc0FjdGl2ZSkge1xuICAgIGNsYXNzTmFtZXMucHVzaChhY3RpdmVDbGFzc05hbWUpO1xuICB9XG5cbiAgLy8gV2hlbiB0aGUgdXNlciBjbGlja3MsIGNoYW5nZSByb3V0ZVxuICBjb25zdCBoYW5kbGVDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICAgIGlmICghaXNEaXNhYmxlZCAmJiB0eXBlb2Ygb25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbkNsaWNrKGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBldmVudC5kZWZhdWx0UHJldmVudGVkIHx8XG4gICAgICAgIGV2ZW50Lm1ldGFLZXkgfHxcbiAgICAgICAgZXZlbnQuYWx0S2V5IHx8XG4gICAgICAgIGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgZXZlbnQuc2hpZnRLZXkgfHxcbiAgICAgICAgZXZlbnQuYnV0dG9uICE9PSAwIHx8XG4gICAgICAgICh0YXJnZXQgIT0gbnVsbCAmJiB0YXJnZXQgIT09ICdfc2VsZicpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKHJvdXRlciA9PSBudWxsIHx8IGlzRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByb3V0ZXIuaGlzdG9yeS5wdXNoKHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIHNlYXJjaCxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW2lzRGlzYWJsZWQsIG9uQ2xpY2ssIHBhdGhuYW1lLCByb3V0ZXIsIHRhcmdldCwgc2VhcmNoXSxcbiAgKTtcblxuICAvLyBDYWxsYmFjayB0byBwcmVsb2FkIGp1c3QgdGhlIGNvZGUgZm9yIHRoZSByb3V0ZTpcbiAgLy8gd2UgcGFzcyB0aGlzIHRvIG9uTW91c2VFbnRlciwgd2hpY2ggaXMgYSB3ZWFrZXIgc2lnbmFsXG4gIC8vIHRoYXQgdGhlIHVzZXIgKm1heSogbmF2aWdhdGUgdG8gdGhlIHJvdXRlLlxuICBjb25zdCBoYW5kbGVNb3VzZUVudGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCB8fCBpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByZWxvYWRPbk1vdXNlRW50ZXIpIHtcbiAgICAgIHJvdXRlci5wcmVsb2FkKHBhdGhuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm91dGVyLnByZWxvYWRDb2RlKHBhdGhuYW1lKTtcbiAgICB9XG4gIH0sIFtyb3V0ZXIsIGlzRGlzYWJsZWQsIHByZWxvYWRPbk1vdXNlRW50ZXIsIHBhdGhuYW1lXSk7XG5cbiAgLy8gQ2FsbGJhY2sgdG8gcHJlbG9hZCB0aGUgY29kZSBhbmQgZGF0YSBmb3IgdGhlIHJvdXRlOlxuICAvLyB3ZSBwYXNzIHRoaXMgdG8gb25Nb3VzZURvd24sIHNpbmNlIHRoaXMgaXMgYSBzdHJvbmdlclxuICAvLyBzaWduYWwgdGhhdCB0aGUgdXNlciB3aWxsIGxpa2VseSBjb21wbGV0ZSB0aGUgbmF2aWdhdGlvblxuICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHJvdXRlciA9PSBudWxsIHx8IGlzRGlzYWJsZWQgfHwgIXByZWxvYWRPbk1vdXNlRG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByb3V0ZXIucHJlbG9hZChwYXRobmFtZSk7XG4gIH0sIFtyb3V0ZXIsIGlzRGlzYWJsZWQsIHByZWxvYWRPbk1vdXNlRG93biwgcGF0aG5hbWVdKTtcblxuICBsZXQgaHJlZlZhbHVlID0gcGF0aG5hbWU7XG4gIGlmICh0eXBlb2Ygc2VhcmNoID09PSAnc3RyaW5nJyAmJiBzZWFyY2gubGVuZ3RoID4gMCkge1xuICAgIGhyZWZWYWx1ZSA9IGAke3BhdGhuYW1lfSR7c2VhcmNofWA7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8YVxuICAgICAgY2xhc3NOYW1lPXtjeChjbGFzc05hbWVzKX1cbiAgICAgIGhyZWY9e2hyZWZWYWx1ZX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIG9uTW91c2VEb3duPXtoYW5kbGVNb3VzZURvd259XG4gICAgICBvbk1vdXNlRW50ZXI9e2hhbmRsZU1vdXNlRW50ZXJ9XG4gICAgICBvbk1vdXNlT3Zlcj17b25Nb3VzZU92ZXJ9XG4gICAgICByZWY9e3JlZn1cbiAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2E+XG4gICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgTGluaztcbiJdfQ==
|
|
@@ -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;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD,GACL,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,
|
|
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;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD,GACL,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,CAisB3D"}
|