@plumile/router 0.1.201 → 0.1.205

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 (100) hide show
  1. package/README.md +9 -9
  2. package/lib/esm/builder.d.ts +5 -5
  3. package/lib/esm/builder.d.ts.map +1 -1
  4. package/lib/esm/builder.js +1 -1
  5. package/lib/esm/instrumentation/Instrumentation.d.ts +0 -1
  6. package/lib/esm/instrumentation/Instrumentation.d.ts.map +1 -1
  7. package/lib/esm/instrumentation/Instrumentation.js +1 -1
  8. package/lib/esm/instrumentation/adapters/devtoolsBridge.d.ts +3 -1
  9. package/lib/esm/instrumentation/adapters/devtoolsBridge.d.ts.map +1 -1
  10. package/lib/esm/instrumentation/adapters/devtoolsBridge.js +11 -6
  11. package/lib/esm/internal/routerLoadState.d.ts +10 -0
  12. package/lib/esm/internal/routerLoadState.d.ts.map +1 -0
  13. package/lib/esm/internal/routerLoadState.js +51 -0
  14. package/lib/esm/internal/routerSearchState.d.ts +11 -0
  15. package/lib/esm/internal/routerSearchState.d.ts.map +1 -0
  16. package/lib/esm/internal/routerSearchState.js +15 -0
  17. package/lib/esm/routing/Link.d.ts +0 -2
  18. package/lib/esm/routing/Link.d.ts.map +1 -1
  19. package/lib/esm/routing/Link.js +4 -23
  20. package/lib/esm/routing/RouteComponentWrapper.d.ts +2 -2
  21. package/lib/esm/routing/RouteComponentWrapper.d.ts.map +1 -1
  22. package/lib/esm/routing/RouteComponentWrapper.js +8 -9
  23. package/lib/esm/routing/RouterRenderer.js +9 -9
  24. package/lib/esm/routing/createRouter.d.ts +4 -6
  25. package/lib/esm/routing/createRouter.d.ts.map +1 -1
  26. package/lib/esm/routing/createRouter.js +6 -77
  27. package/lib/esm/routing/createStaticRouter.d.ts +4 -5
  28. package/lib/esm/routing/createStaticRouter.d.ts.map +1 -1
  29. package/lib/esm/routing/createStaticRouter.js +5 -50
  30. package/lib/esm/routing/useFilterDiagnostics.d.ts.map +1 -1
  31. package/lib/esm/routing/useFilterDiagnostics.js +4 -5
  32. package/lib/esm/routing/useFilters.d.ts +0 -5
  33. package/lib/esm/routing/useFilters.d.ts.map +1 -1
  34. package/lib/esm/routing/useFilters.js +8 -33
  35. package/lib/esm/routing/usePathname.d.ts.map +1 -1
  36. package/lib/esm/routing/usePathname.js +2 -5
  37. package/lib/esm/routing/useQueryState.d.ts +0 -1
  38. package/lib/esm/routing/useQueryState.d.ts.map +1 -1
  39. package/lib/esm/routing/useQueryState.js +1 -1
  40. package/lib/esm/tools.d.ts +3 -3
  41. package/lib/esm/tools.d.ts.map +1 -1
  42. package/lib/esm/tools.js +1 -4
  43. package/lib/esm/types.d.ts +3 -13
  44. package/lib/esm/types.d.ts.map +1 -1
  45. package/lib/esm/types.js +1 -1
  46. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  47. package/lib/types/builder.d.ts +5 -5
  48. package/lib/types/builder.d.ts.map +1 -1
  49. package/lib/types/instrumentation/Instrumentation.d.ts +0 -1
  50. package/lib/types/instrumentation/Instrumentation.d.ts.map +1 -1
  51. package/lib/types/instrumentation/adapters/devtoolsBridge.d.ts +3 -1
  52. package/lib/types/instrumentation/adapters/devtoolsBridge.d.ts.map +1 -1
  53. package/lib/types/internal/routerLoadState.d.ts +10 -0
  54. package/lib/types/internal/routerLoadState.d.ts.map +1 -0
  55. package/lib/types/internal/routerSearchState.d.ts +11 -0
  56. package/lib/types/internal/routerSearchState.d.ts.map +1 -0
  57. package/lib/types/routing/Link.d.ts +0 -2
  58. package/lib/types/routing/Link.d.ts.map +1 -1
  59. package/lib/types/routing/RouteComponentWrapper.d.ts +2 -2
  60. package/lib/types/routing/RouteComponentWrapper.d.ts.map +1 -1
  61. package/lib/types/routing/createRouter.d.ts +4 -6
  62. package/lib/types/routing/createRouter.d.ts.map +1 -1
  63. package/lib/types/routing/createStaticRouter.d.ts +4 -5
  64. package/lib/types/routing/createStaticRouter.d.ts.map +1 -1
  65. package/lib/types/routing/useFilterDiagnostics.d.ts.map +1 -1
  66. package/lib/types/routing/useFilters.d.ts +0 -5
  67. package/lib/types/routing/useFilters.d.ts.map +1 -1
  68. package/lib/types/routing/usePathname.d.ts.map +1 -1
  69. package/lib/types/routing/useQueryState.d.ts +0 -1
  70. package/lib/types/routing/useQueryState.d.ts.map +1 -1
  71. package/lib/types/tools.d.ts +3 -3
  72. package/lib/types/tools.d.ts.map +1 -1
  73. package/lib/types/types.d.ts +3 -13
  74. package/lib/types/types.d.ts.map +1 -1
  75. package/package.json +11 -6
  76. package/lib/esm/routing/RouterPrimitives.stories.d.ts +0 -18
  77. package/lib/esm/routing/RouterPrimitives.stories.d.ts.map +0 -1
  78. package/lib/esm/routing/RouterPrimitives.stories.js +0 -90
  79. package/lib/esm/type-tests/navigation-destination.test-d.d.ts +0 -2
  80. package/lib/esm/type-tests/navigation-destination.test-d.d.ts.map +0 -1
  81. package/lib/esm/type-tests/navigation-destination.test-d.js +0 -74
  82. package/lib/esm/type-tests/query-infer.test-d.d.ts +0 -2
  83. package/lib/esm/type-tests/query-infer.test-d.d.ts.map +0 -1
  84. package/lib/esm/type-tests/query-infer.test-d.js +0 -2
  85. package/lib/esm/type-tests/routes-inference.test-d.d.ts +0 -1
  86. package/lib/esm/type-tests/routes-inference.test-d.d.ts.map +0 -1
  87. package/lib/esm/type-tests/routes-inference.test-d.js +0 -2
  88. package/lib/esm/type-tests/useFilters-typed.test-d.d.ts +0 -2
  89. package/lib/esm/type-tests/useFilters-typed.test-d.d.ts.map +0 -1
  90. package/lib/esm/type-tests/useFilters-typed.test-d.js +0 -33
  91. package/lib/types/routing/RouterPrimitives.stories.d.ts +0 -18
  92. package/lib/types/routing/RouterPrimitives.stories.d.ts.map +0 -1
  93. package/lib/types/type-tests/navigation-destination.test-d.d.ts +0 -2
  94. package/lib/types/type-tests/navigation-destination.test-d.d.ts.map +0 -1
  95. package/lib/types/type-tests/query-infer.test-d.d.ts +0 -2
  96. package/lib/types/type-tests/query-infer.test-d.d.ts.map +0 -1
  97. package/lib/types/type-tests/routes-inference.test-d.d.ts +0 -1
  98. package/lib/types/type-tests/routes-inference.test-d.d.ts.map +0 -1
  99. package/lib/types/type-tests/useFilters-typed.test-d.d.ts +0 -2
  100. package/lib/types/type-tests/useFilters-typed.test-d.d.ts.map +0 -1
@@ -1,41 +1,8 @@
1
- import { parse as parseFilters } from '@plumile/filter-query/parse.js';
2
1
  import { buildRoutes } from '../builder.js';
3
2
  import { prepareMatch } from '../tools.js';
4
- import { parseRawQuery } from '../tools/query.js';
5
- import { buildDestinationSearch } from './destination.js';
6
- function buildResolvedLoadState(preparedMatch) {
7
- const activeLoadState = {
8
- status: 'resolved',
9
- pendingCount: 0,
10
- rejectedCount: 0,
11
- version: 0,
12
- };
13
- return {
14
- activeLoadState,
15
- loadState: {
16
- ...activeLoadState,
17
- segments: preparedMatch.segments.map((segment) => {
18
- return {
19
- path: segment.path,
20
- fullPath: segment.fullPath,
21
- segmentIndex: segment.segmentIndex,
22
- prepareStatus: segment.preparedResource?.getStatus() ?? 'idle',
23
- codeStatus: segment.resourcePage?.getStatus() ?? 'idle',
24
- status: 'resolved',
25
- };
26
- }),
27
- },
28
- };
29
- }
30
- function normalizeSearch(search) {
31
- if (search == null || search === '') {
32
- return '';
33
- }
34
- if (search.startsWith('?')) {
35
- return search;
36
- }
37
- return `?${search}`;
38
- }
3
+ import { buildDestinationSearch, normalizeSearch } from './destination.js';
4
+ import { calculateLoadState } from '../internal/routerLoadState.js';
5
+ import { parseSearchState, } from '../internal/routerSearchState.js';
39
6
  function normalizeStaticLocation(location) {
40
7
  let { pathname } = location;
41
8
  if (!pathname.startsWith('/')) {
@@ -62,18 +29,6 @@ function findStaticMatchedRoute(routes, location) {
62
29
  }
63
30
  return null;
64
31
  }
65
- function parseSearchState(search, querySchema) {
66
- const query = parseRawQuery(search);
67
- if (querySchema == null) {
68
- return { query };
69
- }
70
- const parsed = parseFilters(search, querySchema);
71
- return {
72
- query,
73
- filters: parsed.filters,
74
- filterDiagnostics: parsed.diagnostics,
75
- };
76
- }
77
32
  function createStaticRoutingContext(entry, flatRoutes) {
78
33
  return {
79
34
  buildSearch({ pathname, query, filters }) {
@@ -135,7 +90,7 @@ export async function createStaticRouter(routes, options) {
135
90
  await segment.preparedResource?.load();
136
91
  await segment.resourcePage?.load();
137
92
  }));
138
- const { activeLoadState, loadState } = buildResolvedLoadState(preparedMatch);
93
+ const { activeLoadState, loadState } = calculateLoadState(preparedMatch, 0);
139
94
  const entry = {
140
95
  activeQuerySchema,
141
96
  activeLoadState,
@@ -158,4 +113,4 @@ export async function createStaticRouter(routes, options) {
158
113
  };
159
114
  }
160
115
  export default createStaticRouter;
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU3RhdGljUm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRpbmcvY3JlYXRlU3RhdGljUm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLElBQUksWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQTZDMUQsU0FBUyxzQkFBc0IsQ0FDN0IsYUFJa0I7SUFLbEIsTUFBTSxlQUFlLEdBQTBCO1FBQzdDLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLFlBQVksRUFBRSxDQUFDO1FBQ2YsYUFBYSxFQUFFLENBQUM7UUFDaEIsT0FBTyxFQUFFLENBQUM7S0FDWCxDQUFDO0lBQ0YsT0FBTztRQUNMLGVBQWU7UUFDZixTQUFTLEVBQUU7WUFDVCxHQUFHLGVBQWU7WUFDbEIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQy9DLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7b0JBQzFCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtvQkFDbEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxNQUFNO29CQUM5RCxVQUFVLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxNQUFNO29CQUN2RCxNQUFNLEVBQUUsVUFBVTtpQkFDbkIsQ0FBQztZQUNKLENBQUMsQ0FBQztTQUNI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eXBlIERpYWdub3N0aWMgYXMgRmlsdGVyRGlhZ25vc3RpYyB9IGZyb20gJ0BwbHVtaWxlL2ZpbHRlci1xdWVyeS9lcnJvcnMuanMnO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VGaWx0ZXJzIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3BhcnNlLmpzJztcbmltcG9ydCB7IHR5cGUgU2NoZW1hIGFzIEZpbHRlclNjaGVtYSB9IGZyb20gJ0BwbHVtaWxlL2ZpbHRlci1xdWVyeS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHsgYnVpbGRSb3V0ZXMgfSBmcm9tICcuLi9idWlsZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgSGlzdG9yeSwgSGlzdG9yeUxvY2F0aW9uU25hcHNob3QgfSBmcm9tICcuLi9oaXN0b3J5L3R5cGVzLmpzJztcbmltcG9ydCB7IHByZXBhcmVNYXRjaCB9IGZyb20gJy4uL3Rvb2xzLmpzJztcbmltcG9ydCB7IHBhcnNlUmF3UXVlcnkgfSBmcm9tICcuLi90b29scy9xdWVyeS5qcyc7XG5pbXBvcnQgeyBidWlsZERlc3RpbmF0aW9uU2VhcmNoIH0gZnJvbSAnLi9kZXN0aW5hdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEFueVJvdXRlLFxuICBSb3V0ZUVudHJ5LFxuICBSb3V0aW5nQ29udGV4dFR5cGUsXG4gIFVua25vd25GaWx0ZXJzLFxuICBVbmtub3duUXVlcnlTaGFwZSxcbiAgUmF3UXVlcnksXG4gIFJvdXRlckFjdGl2ZUxvYWRTdGF0ZSxcbiAgUm91dGVyTG9hZFN0YXRlLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbnR5cGUgUm91dGVyUXVlcnlTY2hlbWEgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIFN0YXRpY1JvdXRlckxvY2F0aW9uID0ge1xuICBoYXNoPzogc3RyaW5nO1xuICBwYXRobmFtZTogc3RyaW5nO1xuICBzZWFyY2g/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVTdGF0aWNSb3V0ZXJPcHRpb25zPFRDb250ZXh0PiA9IHtcbiAgY29udGV4dD86IFRDb250ZXh0O1xuICBsb2NhdGlvbjogU3RhdGljUm91dGVyTG9jYXRpb247XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVTdGF0aWNSb3V0ZXJSZXR1cm48VENvbnRleHQsIFIgZXh0ZW5kcyBBbnlSb3V0ZVtdPiA9IHtcbiAgY29udGV4dDogUm91dGluZ0NvbnRleHRUeXBlPFxuICAgIFBhcmFtRGF0YSxcbiAgICBSb3V0ZXJRdWVyeVNjaGVtYSxcbiAgICBVbmtub3duUXVlcnlTaGFwZSxcbiAgICBUQ29udGV4dFxuICA+O1xuICBlbnRyeTogUm91dGVFbnRyeTxQYXJhbURhdGEsIFJvdXRlclF1ZXJ5U2NoZW1hLCBUQ29udGV4dD47XG4gIHJvdXRlczogUjtcbn07XG5cbnR5cGUgUGFyc2VkU2VhcmNoU3RhdGUgPSB7XG4gIHF1ZXJ5OiBSYXdRdWVyeTtcbiAgZmlsdGVycz86IFVua25vd25GaWx0ZXJzO1xuICBmaWx0ZXJEaWFnbm9zdGljcz86IEZpbHRlckRpYWdub3N0aWNbXTtcbn07XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gYnVpbGRSZXNvbHZlZExvYWRTdGF0ZTxUQ29udGV4dD4oXG4gIHByZXBhcmVkTWF0Y2g6IFJvdXRlRW50cnk8XG4gICAgUGFyYW1EYXRhLFxuICAgIFJvdXRlclF1ZXJ5U2NoZW1hLFxuICAgIFRDb250ZXh0XG4gID5bJ3ByZXBhcmVkTWF0Y2gnXSxcbik6IHtcbiAgYWN0aXZlTG9hZFN0YXRlOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdGU7XG4gIGxvYWRTdGF0ZTogUm91dGVyTG9hZFN0YXRlO1xufSB7XG4gIGNvbnN0IGFjdGl2ZUxvYWRTdGF0ZTogUm91dGVyQWN0aXZlTG9hZFN0YXRlID0ge1xuICAgIHN0YXR1czogJ3Jlc29sdmVkJyxcbiAgICBwZW5kaW5nQ291bnQ6IDAsXG4gICAgcmVqZWN0ZWRDb3VudDogMCxcbiAgICB2ZXJzaW9uOiAwLFxuICB9O1xuICByZXR1cm4ge1xuICAgIGFjdGl2ZUxvYWRTdGF0ZSxcbiAgICBsb2FkU3RhdGU6IHtcbiAgICAgIC4uLmFjdGl2ZUxvYWRTdGF0ZSxcbiAgICAgIHNlZ21lbnRzOiBwcmVwYXJlZE1hdGNoLnNlZ21lbnRzLm1hcCgoc2VnbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBhdGg6IHNlZ21lbnQucGF0aCxcbiAgICAgICAgICBmdWxsUGF0aDogc2VnbWVudC5mdWxsUGF0aCxcbiAgICAgICAgICBzZWdtZW50SW5kZXg6IHNlZ21lbnQuc2VnbWVudEluZGV4LFxuICAgICAgICAgIHByZXBhcmVTdGF0dXM6IHNlZ21lbnQucHJlcGFyZWRSZXNvdXJjZT8uZ2V0U3RhdHVzKCkgPz8gJ2lkbGUnLFxuICAgICAgICAgIGNvZGVTdGF0dXM6IHNlZ21lbnQucmVzb3VyY2VQYWdlPy5nZXRTdGF0dXMoKSA/PyAnaWRsZScsXG4gICAgICAgICAgc3RhdHVzOiAncmVzb2x2ZWQnLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVTZWFyY2goc2VhcmNoOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICBpZiAoc2VhcmNoID09IG51bGwgfHwgc2VhcmNoID09PSAnJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBpZiAoc2VhcmNoLnN0YXJ0c1dpdGgoJz8nKSkge1xuICAgIHJldHVybiBzZWFyY2g7XG4gIH1cbiAgcmV0dXJuIGA/JHtzZWFyY2h9YDtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVTdGF0aWNMb2NhdGlvbihcbiAgbG9jYXRpb246IFN0YXRpY1JvdXRlckxvY2F0aW9uLFxuKTogSGlzdG9yeUxvY2F0aW9uU25hcHNob3Qge1xuICBsZXQgeyBwYXRobmFtZSB9ID0gbG9jYXRpb247XG4gIGlmICghcGF0aG5hbWUuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcGF0aG5hbWUgPSBgLyR7cGF0aG5hbWV9YDtcbiAgfVxuICByZXR1cm4ge1xuICAgIGhhc2g6IGxvY2F0aW9uLmhhc2ggPz8gJycsXG4gICAgcGF0aG5hbWUsXG4gICAgc2VhcmNoOiBub3JtYWxpemVTZWFyY2gobG9jYXRpb24uc2VhcmNoKSxcbiAgfTtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBmaW5kU3RhdGljTWF0Y2hlZFJvdXRlKFxuICByb3V0ZXM6IFJldHVyblR5cGU8dHlwZW9mIGJ1aWxkUm91dGVzPixcbiAgbG9jYXRpb246IEhpc3RvcnlMb2NhdGlvblNuYXBzaG90LFxuKSB7XG4gIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVzKSB7XG4gICAgY29uc3QgbWF0Y2ggPSByb3V0ZS5tYXRjaEZ1bmN0aW9uKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICBpZiAobWF0Y2ggIT09IGZhbHNlKSB7XG4gICAgICBjb25zdCB7IHBhdGgsIHBhcmFtcyB9ID0gbWF0Y2g7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtYXRjaCxcbiAgICAgICAgcm91dGUsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHBhcmFtcyxcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIHBhcnNlU2VhcmNoU3RhdGUoXG4gIHNlYXJjaDogc3RyaW5nLFxuICBxdWVyeVNjaGVtYTogUm91dGVyUXVlcnlTY2hlbWEsXG4pOiBQYXJzZWRTZWFyY2hTdGF0ZSB7XG4gIGNvbnN0IHF1ZXJ5ID0gcGFyc2VSYXdRdWVyeShzZWFyY2gpO1xuICBpZiAocXVlcnlTY2hlbWEgPT0gbnVsbCkge1xuICAgIHJldHVybiB7IHF1ZXJ5IH07XG4gIH1cbiAgY29uc3QgcGFyc2VkID0gcGFyc2VGaWx0ZXJzKHNlYXJjaCwgcXVlcnlTY2hlbWEpO1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5LFxuICAgIGZpbHRlcnM6IHBhcnNlZC5maWx0ZXJzLFxuICAgIGZpbHRlckRpYWdub3N0aWNzOiBwYXJzZWQuZGlhZ25vc3RpY3MsXG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3RhdGljUm91dGluZ0NvbnRleHQ8VENvbnRleHQ+KFxuICBlbnRyeTogUm91dGVFbnRyeTxQYXJhbURhdGEsIFJvdXRlclF1ZXJ5U2NoZW1hLCBUQ29udGV4dD4sXG4gIGZsYXRSb3V0ZXM6IFJldHVyblR5cGU8dHlwZW9mIGJ1aWxkUm91dGVzPixcbik6IFJvdXRpbmdDb250ZXh0VHlwZTxcbiAgUGFyYW1EYXRhLFxuICBSb3V0ZXJRdWVyeVNjaGVtYSxcbiAgVW5rbm93blF1ZXJ5U2hhcGUsXG4gIFRDb250ZXh0XG4+IHtcbiAgcmV0dXJuIHtcbiAgICBidWlsZFNlYXJjaCh7IHBhdGhuYW1lLCBxdWVyeSwgZmlsdGVycyB9KSB7XG4gICAgICBjb25zdCB0YXJnZXRQYXRobmFtZSA9IHBhdGhuYW1lID8/IGVudHJ5LmxvY2F0aW9uLnBhdGhuYW1lO1xuICAgICAgY29uc3QgZGVzdGluYXRpb24gPSBmaW5kU3RhdGljTWF0Y2hlZFJvdXRlKGZsYXRSb3V0ZXMsIHtcbiAgICAgICAgLi4uZW50cnkubG9jYXRpb24sXG4gICAgICAgIHBhdGhuYW1lOiB0YXJnZXRQYXRobmFtZSxcbiAgICAgIH0pO1xuICAgICAgbGV0IHF1ZXJ5U2NoZW1hID0gZW50cnkuYWN0aXZlUXVlcnlTY2hlbWE7XG4gICAgICBpZiAoZGVzdGluYXRpb24gIT0gbnVsbCkge1xuICAgICAgICBxdWVyeVNjaGVtYSA9IGRlc3RpbmF0aW9uLnJvdXRlLnJvdXRlcy5hdCgtMSk/LnF1ZXJ5U2NoZW1hO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1aWxkRGVzdGluYXRpb25TZWFyY2goe1xuICAgICAgICBmaWx0ZXJzLFxuICAgICAgICBxdWVyeSxcbiAgICAgICAgcXVlcnlTY2hlbWEsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIGdldDogKCkgPT4ge1xuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH0sXG4gICAgaGlzdG9yeToge1xuICAgICAgZ2V0IGxvY2F0aW9uKCkge1xuICAgICAgICByZXR1cm4gZW50cnkubG9jYXRpb247XG4gICAgICB9LFxuICAgICAgaW5pdCgpIHt9LFxuICAgICAgcHVzaCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdGF0aWMgcm91dGVyIGNhbm5vdCBwdXNoIGhpc3RvcnknKTtcbiAgICAgIH0sXG4gICAgICBzZXQoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU3RhdGljIHJvdXRlciBjYW5ub3QgcmVwbGFjZSBoaXN0b3J5Jyk7XG4gICAgICB9LFxuICAgICAgc3Vic2NyaWJlKCkge1xuICAgICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIEhpc3RvcnksXG4gICAgbmF2aWdhdGUoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YXRpYyByb3V0ZXIgY2Fubm90IG5hdmlnYXRlJyk7XG4gICAgfSxcbiAgICBwcmVsb2FkKCkge30sXG4gICAgcHJlbG9hZENvZGUoKSB7fSxcbiAgICBzdWJzY3JpYmUoKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhdGljUm91dGVyPFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFIgZXh0ZW5kcyBBbnlSb3V0ZVtdID0gQW55Um91dGVbXSxcbj4oXG4gIHJvdXRlczogWy4uLlJdIHwgQW55Um91dGVbXSxcbiAgb3B0aW9uczogQ3JlYXRlU3RhdGljUm91dGVyT3B0aW9uczxUQ29udGV4dD4sXG4pOiBQcm9taXNlPENyZWF0ZVN0YXRpY1JvdXRlclJldHVybjxUQ29udGV4dCwgUj4+IHtcbiAgY29uc3QgbG9jYXRpb24gPSBub3JtYWxpemVTdGF0aWNMb2NhdGlvbihvcHRpb25zLmxvY2F0aW9uKTtcbiAgY29uc3QgZmxhdFJvdXRlcyA9IGJ1aWxkUm91dGVzKHJvdXRlcyk7XG4gIGNvbnN0IHJvdXRlID0gZmluZFN0YXRpY01hdGNoZWRSb3V0ZShmbGF0Um91dGVzLCBsb2NhdGlvbik7XG4gIGNvbnN0IGFjdGl2ZVF1ZXJ5U2NoZW1hID0gcm91dGU/LnJvdXRlLnJvdXRlcy5hdCgtMSk/LnF1ZXJ5U2NoZW1hO1xuICBjb25zdCBzZWFyY2hTdGF0ZSA9IHBhcnNlU2VhcmNoU3RhdGUobG9jYXRpb24uc2VhcmNoLCBhY3RpdmVRdWVyeVNjaGVtYSk7XG4gIGNvbnN0IHJvdXRlQ29udGV4dCA9IG9wdGlvbnMuY29udGV4dCBhcyBUQ29udGV4dDtcbiAgY29uc3QgcHJlcGFyZWRNYXRjaCA9IHByZXBhcmVNYXRjaChcbiAgICByb3V0ZSxcbiAgICBzZWFyY2hTdGF0ZS5xdWVyeSxcbiAgICB1bmRlZmluZWQsXG4gICAgcm91dGVDb250ZXh0LFxuICAgIHVuZGVmaW5lZCxcbiAgICB7XG4gICAgICByYXdRdWVyeTogc2VhcmNoU3RhdGUucXVlcnksXG4gICAgICBmaWx0ZXJzOiBzZWFyY2hTdGF0ZS5maWx0ZXJzLFxuICAgIH0sXG4gICk7XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgcHJlcGFyZWRNYXRjaC5zZWdtZW50cy5tYXAoYXN5bmMgKHNlZ21lbnQpID0+IHtcbiAgICAgIGF3YWl0IHNlZ21lbnQucHJlcGFyZWRSZXNvdXJjZT8ubG9hZCgpO1xuICAgICAgYXdhaXQgc2VnbWVudC5yZXNvdXJjZVBhZ2U/LmxvYWQoKTtcbiAgICB9KSxcbiAgKTtcbiAgY29uc3QgeyBhY3RpdmVMb2FkU3RhdGUsIGxvYWRTdGF0ZSB9ID0gYnVpbGRSZXNvbHZlZExvYWRTdGF0ZShwcmVwYXJlZE1hdGNoKTtcblxuICBjb25zdCBlbnRyeTogUm91dGVFbnRyeTxQYXJhbURhdGEsIFJvdXRlclF1ZXJ5U2NoZW1hLCBUQ29udGV4dD4gPSB7XG4gICAgYWN0aXZlUXVlcnlTY2hlbWEsXG4gICAgYWN0aXZlTG9hZFN0YXRlLFxuICAgIGNvbnRleHQ6IHJvdXRlQ29udGV4dCxcbiAgICBmaWx0ZXJEaWFnbm9zdGljczogc2VhcmNoU3RhdGUuZmlsdGVyRGlhZ25vc3RpY3MsXG4gICAgZmlsdGVyczogc2VhcmNoU3RhdGUuZmlsdGVycyxcbiAgICBmb3JjZVJlcmVuZGVyOiBmYWxzZSxcbiAgICBsb2NhdGlvbixcbiAgICBwcmVwYXJlZE1hdGNoLFxuICAgIHF1ZXJ5OiBzZWFyY2hTdGF0ZS5xdWVyeSxcbiAgICByYXdTZWFyY2g6IGxvY2F0aW9uLnNlYXJjaCxcbiAgICByb3V0ZSxcbiAgICBsb2FkU3RhdGUsXG4gIH07XG5cbiAgY29uc3Qgcm91dGVyQ29udGV4dCA9IGNyZWF0ZVN0YXRpY1JvdXRpbmdDb250ZXh0KGVudHJ5LCBmbGF0Um91dGVzKTtcblxuICByZXR1cm4ge1xuICAgIGNvbnRleHQ6IHJvdXRlckNvbnRleHQsXG4gICAgZW50cnksXG4gICAgcm91dGVzOiByb3V0ZXMgYXMgUixcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlU3RhdGljUm91dGVyO1xuIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU3RhdGljUm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRpbmcvY3JlYXRlU3RhdGljUm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUNMLGdCQUFnQixHQUVqQixNQUFNLGtDQUFrQyxDQUFDO0FBaUMxQyxTQUFTLHVCQUF1QixDQUM5QixRQUE4QjtJQUU5QixJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDOUIsUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFO1FBQ3pCLFFBQVE7UUFDUixNQUFNLEVBQUUsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7S0FDekMsQ0FBQztBQUNKLENBQUM7QUFLRCxTQUFTLHNCQUFzQixDQUM3QixNQUFzQyxFQUN0QyxRQUFpQztJQUVqQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELElBQUksS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxD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QUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUMzQyxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2QyxNQUFNLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNGLE1BQU0sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTVFLE1BQU0sS0FBSyxHQUF1RDtRQUNoRSxpQkFBaUI7UUFDakIsZUFBZTtRQUNmLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxpQkFBaUI7UUFDaEQsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1FBQzVCLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLFFBQVE7UUFDUixhQUFhO1FBQ2IsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO1FBQ3hCLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTTtRQUMxQixLQUFLO1FBQ0wsU0FBUztLQUNWLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFcEUsT0FBTztRQUNMLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLEtBQUs7UUFDTCxNQUFNLEVBQUUsTUFBVztLQUNwQixDQUFDO0FBQ0osQ0FBQztBQUVELGVBQWUsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHsgYnVpbGRSb3V0ZXMgfSBmcm9tICcuLi9idWlsZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgSGlzdG9yeSwgSGlzdG9yeUxvY2F0aW9uU25hcHNob3QgfSBmcm9tICcuLi9oaXN0b3J5L3R5cGVzLmpzJztcbmltcG9ydCB7IHByZXBhcmVNYXRjaCB9IGZyb20gJy4uL3Rvb2xzLmpzJztcbmltcG9ydCB7IGJ1aWxkRGVzdGluYXRpb25TZWFyY2gsIG5vcm1hbGl6ZVNlYXJjaCB9IGZyb20gJy4vZGVzdGluYXRpb24uanMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlTG9hZFN0YXRlIH0gZnJvbSAnLi4vaW50ZXJuYWwvcm91dGVyTG9hZFN0YXRlLmpzJztcbmltcG9ydCB7XG4gIHBhcnNlU2VhcmNoU3RhdGUsXG4gIHR5cGUgUm91dGVyUXVlcnlTY2hlbWEsXG59IGZyb20gJy4uL2ludGVybmFsL3JvdXRlclNlYXJjaFN0YXRlLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgUm91dGVOb2RlLFxuICBSb3V0ZUVudHJ5LFxuICBSb3V0aW5nQ29udGV4dFR5cGUsXG4gIFVua25vd25RdWVyeVNoYXBlLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIFN0YXRpY1JvdXRlckxvY2F0aW9uID0ge1xuICBoYXNoPzogc3RyaW5nO1xuICBwYXRobmFtZTogc3RyaW5nO1xuICBzZWFyY2g/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVTdGF0aWNSb3V0ZXJPcHRpb25zPFRDb250ZXh0PiA9IHtcbiAgY29udGV4dD86IFRDb250ZXh0O1xuICBsb2NhdGlvbjogU3RhdGljUm91dGVyTG9jYXRpb247XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVTdGF0aWNSb3V0ZXJSZXR1cm48VENvbnRleHQsIFIgZXh0ZW5kcyBSb3V0ZU5vZGVbXT4gPSB7XG4gIGNvbnRleHQ6IFJvdXRpbmdDb250ZXh0VHlwZTxcbiAgICBQYXJhbURhdGEsXG4gICAgUm91dGVyUXVlcnlTY2hlbWEsXG4gICAgVW5rbm93blF1ZXJ5U2hhcGUsXG4gICAgVENvbnRleHRcbiAgPjtcbiAgZW50cnk6IFJvdXRlRW50cnk8UGFyYW1EYXRhLCBSb3V0ZXJRdWVyeVNjaGVtYSwgVENvbnRleHQ+O1xuICByb3V0ZXM6IFI7XG59O1xuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0YXRpY0xvY2F0aW9uKFxuICBsb2NhdGlvbjogU3RhdGljUm91dGVyTG9jYXRpb24sXG4pOiBIaXN0b3J5TG9jYXRpb25TbmFwc2hvdCB7XG4gIGxldCB7IHBhdGhuYW1lIH0gPSBsb2NhdGlvbjtcbiAgaWYgKCFwYXRobmFtZS5zdGFydHNXaXRoKCcvJykpIHtcbiAgICBwYXRobmFtZSA9IGAvJHtwYXRobmFtZX1gO1xuICB9XG4gIHJldHVybiB7XG4gICAgaGFzaDogbG9jYXRpb24uaGFzaCA/PyAnJyxcbiAgICBwYXRobmFtZSxcbiAgICBzZWFyY2g6IG5vcm1hbGl6ZVNlYXJjaChsb2NhdGlvbi5zZWFyY2gpLFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIGZpbmRTdGF0aWNNYXRjaGVkUm91dGUoXG4gIHJvdXRlczogUmV0dXJuVHlwZTx0eXBlb2YgYnVpbGRSb3V0ZXM+LFxuICBsb2NhdGlvbjogSGlzdG9yeUxvY2F0aW9uU25hcHNob3QsXG4pIHtcbiAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZXMpIHtcbiAgICBjb25zdCBtYXRjaCA9IHJvdXRlLm1hdGNoRnVuY3Rpb24obG9jYXRpb24ucGF0aG5hbWUpO1xuICAgIGlmIChtYXRjaCAhPT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHsgcGF0aCwgcGFyYW1zIH0gPSBtYXRjaDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1hdGNoLFxuICAgICAgICByb3V0ZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3RhdGljUm91dGluZ0NvbnRleHQ8VENvbnRleHQ+KFxuICBlbnRyeTogUm91dGVFbnRyeTxQYXJhbURhdGEsIFJvdXRlclF1ZXJ5U2NoZW1hLCBUQ29udGV4dD4sXG4gIGZsYXRSb3V0ZXM6IFJldHVyblR5cGU8dHlwZW9mIGJ1aWxkUm91dGVzPixcbik6IFJvdXRpbmdDb250ZXh0VHlwZTxcbiAgUGFyYW1EYXRhLFxuICBSb3V0ZXJRdWVyeVNjaGVtYSxcbiAgVW5rbm93blF1ZXJ5U2hhcGUsXG4gIFRDb250ZXh0XG4+IHtcbiAgcmV0dXJuIHtcbiAgICBidWlsZFNlYXJjaCh7IHBhdGhuYW1lLCBxdWVyeSwgZmlsdGVycyB9KSB7XG4gICAgICBjb25zdCB0YXJnZXRQYXRobmFtZSA9IHBhdGhuYW1lID8/IGVudHJ5LmxvY2F0aW9uLnBhdGhuYW1lO1xuICAgICAgY29uc3QgZGVzdGluYXRpb24gPSBmaW5kU3RhdGljTWF0Y2hlZFJvdXRlKGZsYXRSb3V0ZXMsIHtcbiAgICAgICAgLi4uZW50cnkubG9jYXRpb24sXG4gICAgICAgIHBhdGhuYW1lOiB0YXJnZXRQYXRobmFtZSxcbiAgICAgIH0pO1xuICAgICAgbGV0IHF1ZXJ5U2NoZW1hID0gZW50cnkuYWN0aXZlUXVlcnlTY2hlbWE7XG4gICAgICBpZiAoZGVzdGluYXRpb24gIT0gbnVsbCkge1xuICAgICAgICBxdWVyeVNjaGVtYSA9IGRlc3RpbmF0aW9uLnJvdXRlLnJvdXRlcy5hdCgtMSk/LnF1ZXJ5U2NoZW1hO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1aWxkRGVzdGluYXRpb25TZWFyY2goe1xuICAgICAgICBmaWx0ZXJzLFxuICAgICAgICBxdWVyeSxcbiAgICAgICAgcXVlcnlTY2hlbWEsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIGdldDogKCkgPT4ge1xuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH0sXG4gICAgaGlzdG9yeToge1xuICAgICAgZ2V0IGxvY2F0aW9uKCkge1xuICAgICAgICByZXR1cm4gZW50cnkubG9jYXRpb247XG4gICAgICB9LFxuICAgICAgaW5pdCgpIHt9LFxuICAgICAgcHVzaCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdGF0aWMgcm91dGVyIGNhbm5vdCBwdXNoIGhpc3RvcnknKTtcbiAgICAgIH0sXG4gICAgICBzZXQoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU3RhdGljIHJvdXRlciBjYW5ub3QgcmVwbGFjZSBoaXN0b3J5Jyk7XG4gICAgICB9LFxuICAgICAgc3Vic2NyaWJlKCkge1xuICAgICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIEhpc3RvcnksXG4gICAgbmF2aWdhdGUoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YXRpYyByb3V0ZXIgY2Fubm90IG5hdmlnYXRlJyk7XG4gICAgfSxcbiAgICBwcmVsb2FkKCkge30sXG4gICAgcHJlbG9hZENvZGUoKSB7fSxcbiAgICBzdWJzY3JpYmUoKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhdGljUm91dGVyPFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFIgZXh0ZW5kcyBSb3V0ZU5vZGVbXSA9IFJvdXRlTm9kZVtdLFxuPihcbiAgcm91dGVzOiBbLi4uUl0gfCBSb3V0ZU5vZGVbXSxcbiAgb3B0aW9uczogQ3JlYXRlU3RhdGljUm91dGVyT3B0aW9uczxUQ29udGV4dD4sXG4pOiBQcm9taXNlPENyZWF0ZVN0YXRpY1JvdXRlclJldHVybjxUQ29udGV4dCwgUj4+IHtcbiAgY29uc3QgbG9jYXRpb24gPSBub3JtYWxpemVTdGF0aWNMb2NhdGlvbihvcHRpb25zLmxvY2F0aW9uKTtcbiAgY29uc3QgZmxhdFJvdXRlcyA9IGJ1aWxkUm91dGVzKHJvdXRlcyk7XG4gIGNvbnN0IHJvdXRlID0gZmluZFN0YXRpY01hdGNoZWRSb3V0ZShmbGF0Um91dGVzLCBsb2NhdGlvbik7XG4gIGNvbnN0IGFjdGl2ZVF1ZXJ5U2NoZW1hID0gcm91dGU/LnJvdXRlLnJvdXRlcy5hdCgtMSk/LnF1ZXJ5U2NoZW1hO1xuICBjb25zdCBzZWFyY2hTdGF0ZSA9IHBhcnNlU2VhcmNoU3RhdGUobG9jYXRpb24uc2VhcmNoLCBhY3RpdmVRdWVyeVNjaGVtYSk7XG4gIGNvbnN0IHJvdXRlQ29udGV4dCA9IG9wdGlvbnMuY29udGV4dCBhcyBUQ29udGV4dDtcbiAgY29uc3QgcHJlcGFyZWRNYXRjaCA9IHByZXBhcmVNYXRjaChcbiAgICByb3V0ZSxcbiAgICBzZWFyY2hTdGF0ZS5xdWVyeSxcbiAgICB1bmRlZmluZWQsXG4gICAgcm91dGVDb250ZXh0LFxuICAgIHVuZGVmaW5lZCxcbiAgICB7XG4gICAgICByYXdRdWVyeTogc2VhcmNoU3RhdGUucXVlcnksXG4gICAgICBmaWx0ZXJzOiBzZWFyY2hTdGF0ZS5maWx0ZXJzLFxuICAgIH0sXG4gICk7XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgcHJlcGFyZWRNYXRjaC5zZWdtZW50cy5tYXAoYXN5bmMgKHNlZ21lbnQpID0+IHtcbiAgICAgIGF3YWl0IHNlZ21lbnQucHJlcGFyZWRSZXNvdXJjZT8ubG9hZCgpO1xuICAgICAgYXdhaXQgc2VnbWVudC5yZXNvdXJjZVBhZ2U/LmxvYWQoKTtcbiAgICB9KSxcbiAgKTtcbiAgY29uc3QgeyBhY3RpdmVMb2FkU3RhdGUsIGxvYWRTdGF0ZSB9ID0gY2FsY3VsYXRlTG9hZFN0YXRlKHByZXBhcmVkTWF0Y2gsIDApO1xuXG4gIGNvbnN0IGVudHJ5OiBSb3V0ZUVudHJ5PFBhcmFtRGF0YSwgUm91dGVyUXVlcnlTY2hlbWEsIFRDb250ZXh0PiA9IHtcbiAgICBhY3RpdmVRdWVyeVNjaGVtYSxcbiAgICBhY3RpdmVMb2FkU3RhdGUsXG4gICAgY29udGV4dDogcm91dGVDb250ZXh0LFxuICAgIGZpbHRlckRpYWdub3N0aWNzOiBzZWFyY2hTdGF0ZS5maWx0ZXJEaWFnbm9zdGljcyxcbiAgICBmaWx0ZXJzOiBzZWFyY2hTdGF0ZS5maWx0ZXJzLFxuICAgIGZvcmNlUmVyZW5kZXI6IGZhbHNlLFxuICAgIGxvY2F0aW9uLFxuICAgIHByZXBhcmVkTWF0Y2gsXG4gICAgcXVlcnk6IHNlYXJjaFN0YXRlLnF1ZXJ5LFxuICAgIHJhd1NlYXJjaDogbG9jYXRpb24uc2VhcmNoLFxuICAgIHJvdXRlLFxuICAgIGxvYWRTdGF0ZSxcbiAgfTtcblxuICBjb25zdCByb3V0ZXJDb250ZXh0ID0gY3JlYXRlU3RhdGljUm91dGluZ0NvbnRleHQoZW50cnksIGZsYXRSb3V0ZXMpO1xuXG4gIHJldHVybiB7XG4gICAgY29udGV4dDogcm91dGVyQ29udGV4dCxcbiAgICBlbnRyeSxcbiAgICByb3V0ZXM6IHJvdXRlcyBhcyBSLFxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVTdGF0aWNSb3V0ZXI7XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterDiagnostics.d.ts","sourceRoot":"","sources":["../../../src/routing/useFilterDiagnostics.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,UAAU,oBAAoB,IAAI,SAAS,OAAO,EAAE,CAOjE"}
1
+ {"version":3,"file":"useFilterDiagnostics.d.ts","sourceRoot":"","sources":["../../../src/routing/useFilterDiagnostics.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,oBAAoB,IAAI,SAAS,OAAO,EAAE,CAKjE"}
@@ -1,11 +1,10 @@
1
- import { useContext, useMemo } from 'react';
1
+ import { useContext } from 'react';
2
2
  import RoutingContext from './RoutingContext.js';
3
+ const EMPTY_DIAGNOSTICS = [];
3
4
  export default function useFilterDiagnostics() {
4
5
  const ctx = useContext(RoutingContext);
5
6
  const entry = ctx?.get();
6
7
  const diags = entry?.filterDiagnostics;
7
- return useMemo(() => {
8
- return diags ?? [];
9
- }, [diags]);
8
+ return diags ?? EMPTY_DIAGNOSTICS;
10
9
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRmlsdGVyRGlhZ25vc3RpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGluZy91c2VGaWx0ZXJEaWFnbm9zdGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM1QyxPQUFPLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUtqRCxNQUFNLENBQUMsT0FBTyxVQUFVLG9CQUFvQjtJQUMxQyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkMsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxpQkFBaUIsQ0FBQztJQUN2QyxPQUFPLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDbEIsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjdXJyZW50IGZpbHRlciBkaWFnbm9zdGljcyBlbWl0dGVkIGJ5IHRoZSByb3V0ZXIgKGVtcHR5IGFycmF5IHdoZW4gbm9uZSkuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUZpbHRlckRpYWdub3N0aWNzKCk6IHJlYWRvbmx5IHVua25vd25bXSB7XG4gIGNvbnN0IGN0eCA9IHVzZUNvbnRleHQoUm91dGluZ0NvbnRleHQpO1xuICBjb25zdCBlbnRyeSA9IGN0eD8uZ2V0KCk7XG4gIGNvbnN0IGRpYWdzID0gZW50cnk/LmZpbHRlckRpYWdub3N0aWNzO1xuICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGRpYWdzID8/IFtdO1xuICB9LCBbZGlhZ3NdKTtcbn1cbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRmlsdGVyRGlhZ25vc3RpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGluZy91c2VGaWx0ZXJEaWFnbm9zdGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ25DLE9BQU8sY0FBYyxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE1BQU0saUJBQWlCLEdBQXVCLEVBQUUsQ0FBQztBQUtqRCxNQUFNLENBQUMsT0FBTyxVQUFVLG9CQUFvQjtJQUMxQyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkMsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxpQkFBaUIsQ0FBQztJQUN2QyxPQUFPLEtBQUssSUFBSSxpQkFBaUIsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcblxuY29uc3QgRU1QVFlfRElBR05PU1RJQ1M6IHJlYWRvbmx5IHVua25vd25bXSA9IFtdO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgZmlsdGVyIGRpYWdub3N0aWNzIGVtaXR0ZWQgYnkgdGhlIHJvdXRlciAoZW1wdHkgYXJyYXkgd2hlbiBub25lKS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlRmlsdGVyRGlhZ25vc3RpY3MoKTogcmVhZG9ubHkgdW5rbm93bltdIHtcbiAgY29uc3QgY3R4ID0gdXNlQ29udGV4dChSb3V0aW5nQ29udGV4dCk7XG4gIGNvbnN0IGVudHJ5ID0gY3R4Py5nZXQoKTtcbiAgY29uc3QgZGlhZ3MgPSBlbnRyeT8uZmlsdGVyRGlhZ25vc3RpY3M7XG4gIHJldHVybiBkaWFncyA/PyBFTVBUWV9ESUFHTk9TVElDUztcbn1cbiJdfQ==
@@ -1,8 +1,3 @@
1
1
  import type { FilterSchema, TypedFilterActions, InferFilters } from '../types.js';
2
- declare function shallowEqual(a: unknown, b: unknown): boolean;
3
- export declare const __test: {
4
- readonly shallowEqual: typeof shallowEqual;
5
- };
6
2
  export default function useFilters<S extends FilterSchema>(schema: S): [InferFilters<S>, TypedFilterActions<S>];
7
- export {};
8
3
  //# sourceMappingURL=useFilters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFilters.d.ts","sourceRoot":"","sources":["../../../src/routing/useFilters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACb,MAAM,aAAa,CAAC;AAIrB,iBAAS,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAgBrD;AAED,eAAO,MAAM,MAAM;;CAET,CAAC;AAQX,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,SAAS,YAAY,EACvD,MAAM,EAAE,CAAC,GACR,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAqD1C"}
1
+ {"version":3,"file":"useFilters.d.ts","sourceRoot":"","sources":["../../../src/routing/useFilters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACb,MAAM,aAAa,CAAC;AAcrB,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,SAAS,YAAY,EACvD,MAAM,EAAE,CAAC,GACR,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CA6C1C"}
@@ -1,28 +1,6 @@
1
1
  import { useContext, useMemo } from 'react';
2
2
  import RoutingContext from './RoutingContext.js';
3
- import { createFilterOperations } from '@plumile/filter-query/mutate.js';
4
- function shallowEqual(a, b) {
5
- if (a === b)
6
- return true;
7
- if (typeof a !== 'object' ||
8
- a === null ||
9
- typeof b !== 'object' ||
10
- b === null) {
11
- return false;
12
- }
13
- const aObj = a;
14
- const bObj = b;
15
- const aKeys = Object.keys(aObj);
16
- if (aKeys.length !== Object.keys(bObj).length)
17
- return false;
18
- for (const k of aKeys)
19
- if (aObj[k] !== bObj[k])
20
- return false;
21
- return true;
22
- }
23
- export const __test = {
24
- shallowEqual,
25
- };
3
+ import { isEmpty, mergeFilters, removeFilter, setFilter, } from '@plumile/filter-query/mutate.js';
26
4
  export default function useFilters(schema) {
27
5
  const ctx = useContext(RoutingContext);
28
6
  if (ctx == null) {
@@ -36,37 +14,34 @@ export default function useFilters(schema) {
36
14
  }
37
15
  return (entry.filters ?? {});
38
16
  }, [entry.activeQuerySchema, entry.filters, schema]);
39
- const filterOperations = useMemo(() => {
40
- return createFilterOperations(schema);
41
- }, [schema]);
42
17
  const baseCtx = ctx;
43
18
  const actions = useMemo(() => {
44
19
  function navigateWith(nextFilters, replace) {
45
- if (shallowEqual(currentFilters, nextFilters))
20
+ if (currentFilters === nextFilters)
46
21
  return;
47
22
  baseCtx.navigate({ query, filters: nextFilters, replace });
48
23
  }
49
24
  return {
50
25
  set(field, operator, value, opts) {
51
- const next = filterOperations.set(currentFilters, field, operator, value);
26
+ const next = setFilter(currentFilters, field, operator, value);
52
27
  navigateWith(next, opts?.replace);
53
28
  },
54
29
  remove(field, operator, opts) {
55
- const next = filterOperations.remove(currentFilters, field, operator);
30
+ const next = removeFilter(currentFilters, field, operator);
56
31
  navigateWith(next, opts?.replace);
57
32
  },
58
33
  merge(patch, opts) {
59
- const next = filterOperations.merge(currentFilters, patch);
34
+ const next = mergeFilters(currentFilters, patch);
60
35
  navigateWith(next, opts?.replace);
61
36
  },
62
37
  clear(opts) {
63
- if (filterOperations.isEmpty(currentFilters))
38
+ if (isEmpty(currentFilters))
64
39
  return;
65
40
  const emptyFilters = {};
66
41
  navigateWith(emptyFilters, opts?.replace);
67
42
  },
68
43
  };
69
- }, [baseCtx, currentFilters, filterOperations, query]);
44
+ }, [baseCtx, currentFilters, query]);
70
45
  return [currentFilters, actions];
71
46
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL3VzZUZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDNUMsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFNakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHekUsU0FBUyxZQUFZLENBQUMsQ0FBVSxFQUFFLENBQVU7SUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3pCLElBQ0UsT0FBTyxDQUFDLEtBQUssUUFBUTtRQUNyQixDQUFDLEtBQUssSUFBSTtRQUNWLE9BQU8sQ0FBQyxLQUFLLFFBQVE7UUFDckIsQ0FBQyxLQUFLLElBQUksRUFDVixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsQ0FBNEIsQ0FBQztJQUMxQyxNQUFNLElBQUksR0FBRyxDQUE0QixDQUFDO0lBQzFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzVELEtBQUssTUFBTSxDQUFDLElBQUksS0FBSztRQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztJQUM3RCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUc7SUFDcEIsWUFBWTtDQUNKLENBQUM7QUFRWCxNQUFNLENBQUMsT0FBTyxVQUFVLFVBQVUs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J3JlYWN0JztcbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRmlsdGVyU2NoZW1hLFxuICBUeXBlZEZpbHRlckFjdGlvbnMsXG4gIEluZmVyRmlsdGVycyxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuaW1wb3J0IHsgY3JlYXRlRmlsdGVyT3BlcmF0aW9ucyB9IGZyb20gJ0BwbHVtaWxlL2ZpbHRlci1xdWVyeS9tdXRhdGUuanMnO1xuXG4vKiogSW50ZXJuYWwgaGVscGVyOiBzaGFsbG93IGVxdWFsaXR5ICovXG5mdW5jdGlvbiBzaGFsbG93RXF1YWwoYTogdW5rbm93biwgYjogdW5rbm93bik6IGJvb2xlYW4ge1xuICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG4gIGlmIChcbiAgICB0eXBlb2YgYSAhPT0gJ29iamVjdCcgfHxcbiAgICBhID09PSBudWxsIHx8XG4gICAgdHlwZW9mIGIgIT09ICdvYmplY3QnIHx8XG4gICAgYiA9PT0gbnVsbFxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgYU9iaiA9IGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGJPYmogPSBiIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjb25zdCBhS2V5cyA9IE9iamVjdC5rZXlzKGFPYmopO1xuICBpZiAoYUtleXMubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhiT2JqKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgZm9yIChjb25zdCBrIG9mIGFLZXlzKSBpZiAoYU9ialtrXSAhPT0gYk9ialtrXSkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGNvbnN0IF9fdGVzdCA9IHtcbiAgc2hhbGxvd0VxdWFsLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBTdHJvbmdseSB0eXBlZCBob29rIGZvciByZWFkaW5nIGFuZCBtdXRhdGluZyBmaWx0ZXJzIGRlY2xhcmVkIGJ5IGEgc2NoZW1hLlxuICpcbiAqIEBwYXJhbSBzY2hlbWEgLSBGaWx0ZXIgc2NoZW1hIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCByb3V0ZS5cbiAqIEByZXR1cm5zIFR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgZmlsdGVycyBvYmplY3QgYW5kIHR5cGVkIGFjdGlvbnMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUZpbHRlcnM8UyBleHRlbmRzIEZpbHRlclNjaGVtYT4oXG4gIHNjaGVtYTogUyxcbik6IFtJbmZlckZpbHRlcnM8Uz4sIFR5cGVkRmlsdGVyQWN0aW9uczxTPl0ge1xuICBjb25zdCBjdHggPSB1c2VDb250ZXh0KFJvdXRpbmdDb250ZXh0KTtcbiAgaWYgKGN0eCA9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VGaWx0ZXJzIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBSb3V0aW5nQ29udGV4dC5Qcm92aWRlcicpO1xuICB9XG4gIGNvbnN0IGVudHJ5ID0gY3R4LmdldCgpO1xuICBjb25zdCB7IHF1ZXJ5IH0gPSBlbnRyeTtcbiAgY29uc3QgY3VycmVudEZpbHRlcnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoZW50cnkuYWN0aXZlUXVlcnlTY2hlbWEgIT09IHNjaGVtYSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAndXNlRmlsdGVycyBzY2hlbWEgbXVzdCBiZSB0aGUgYWN0aXZlIHJvdXRlIHF1ZXJ5IHNjaGVtYSBpbnN0YW5jZScsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gKGVudHJ5LmZpbHRlcnMgPz8ge30pIGFzIEluZmVyRmlsdGVyczxTPjtcbiAgfSwgW2VudHJ5LmFjdGl2ZVF1ZXJ5U2NoZW1hLCBlbnRyeS5maWx0ZXJzLCBzY2hlbWFdKTtcbiAgY29uc3QgZmlsdGVyT3BlcmF0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBjcmVhdGVGaWx0ZXJPcGVyYXRpb25zKHNjaGVtYSk7XG4gIH0sIFtzY2hlbWFdKTtcbiAgY29uc3QgYmFzZUN0eCA9IGN0eDsgLy8gbm9uLW51bGwgYWxpYXMgZm9yIGNsb3N1cmVzXG5cbiAgY29uc3QgYWN0aW9uczogVHlwZWRGaWx0ZXJBY3Rpb25zPFM+ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgLyoqIE5hdmlnYXRlIG9ubHkgaWYgc3RydWN0dXJhbCBjaGFuZ2UgKi9cbiAgICBmdW5jdGlvbiBuYXZpZ2F0ZVdpdGgobmV4dEZpbHRlcnM6IEluZmVyRmlsdGVyczxTPiwgcmVwbGFjZT86IGJvb2xlYW4pIHtcbiAgICAgIGlmIChzaGFsbG93RXF1YWwoY3VycmVudEZpbHRlcnMsIG5leHRGaWx0ZXJzKSkgcmV0dXJuO1xuICAgICAgYmFzZUN0eC5uYXZpZ2F0ZSh7IHF1ZXJ5LCBmaWx0ZXJzOiBuZXh0RmlsdGVycywgcmVwbGFjZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldChmaWVsZCwgb3BlcmF0b3IsIHZhbHVlLCBvcHRzKSB7XG4gICAgICAgIGNvbnN0IG5leHQgPSBmaWx0ZXJPcGVyYXRpb25zLnNldChcbiAgICAgICAgICBjdXJyZW50RmlsdGVycyxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBvcGVyYXRvcixcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgKTtcbiAgICAgICAgbmF2aWdhdGVXaXRoKG5leHQsIG9wdHM/LnJlcGxhY2UpO1xuICAgICAgfSxcbiAgICAgIHJlbW92ZShmaWVsZCwgb3BlcmF0b3IsIG9wdHMpIHtcbiAgICAgICAgY29uc3QgbmV4dCA9IGZpbHRlck9wZXJhdGlvbnMucmVtb3ZlKGN1cnJlbnRGaWx0ZXJzLCBmaWVsZCwgb3BlcmF0b3IpO1xuICAgICAgICBuYXZpZ2F0ZVdpdGgobmV4dCwgb3B0cz8ucmVwbGFjZSk7XG4gICAgICB9LFxuICAgICAgbWVyZ2UocGF0Y2gsIG9wdHMpIHtcbiAgICAgICAgY29uc3QgbmV4dCA9IGZpbHRlck9wZXJhdGlvbnMubWVyZ2UoY3VycmVudEZpbHRlcnMsIHBhdGNoKTtcbiAgICAgICAgbmF2aWdhdGVXaXRoKG5leHQsIG9wdHM/LnJlcGxhY2UpO1xuICAgICAgfSxcbiAgICAgIGNsZWFyKG9wdHMpIHtcbiAgICAgICAgaWYgKGZpbHRlck9wZXJhdGlvbnMuaXNFbXB0eShjdXJyZW50RmlsdGVycykpIHJldHVybjtcbiAgICAgICAgY29uc3QgZW1wdHlGaWx0ZXJzOiBJbmZlckZpbHRlcnM8Uz4gPSB7fTtcbiAgICAgICAgbmF2aWdhdGVXaXRoKGVtcHR5RmlsdGVycywgb3B0cz8ucmVwbGFjZSk7XG4gICAgICB9LFxuICAgIH07XG4gIH0sIFtiYXNlQ3R4LCBjdXJyZW50RmlsdGVycywgZmlsdGVyT3BlcmF0aW9ucywgcXVlcnldKTtcblxuICByZXR1cm4gW2N1cnJlbnRGaWx0ZXJzLCBhY3Rpb25zXTtcbn1cbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL3VzZUZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDNUMsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFNakQsT0FBTyxFQUNMLE9BQU8sRUFDUCxZQUFZLEVBQ1osWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLGlDQUFpQyxDQUFDO0FBUXpDLE1BQU0sQ0FBQyxPQUFPLFVBQVUsVUFBVSxDQUNoQyxNQUFTO0lBRVQsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZDLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDeEIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUNsQyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN2QyxNQUFNLElBQUksS0FBSyxDQUNiLGtFQUFrRSxDQUNuRSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBb0IsQ0FBQztJQUNsRCxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUVwQixNQUFNLE9BQU8sR0FBMEIsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUVsRCxTQUFTLFlBQVksQ0FBQyxXQUE0QixFQUFFLE9BQWlCO1lBQ25FLElBQUksY0FBYyxLQUFLLFdBQVc7Z0JBQUUsT0FBTztZQUMzQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsT0FBTztZQUNMLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJO2dCQUM5QixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQy9ELFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJO2dCQUMxQixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDM0QsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUNELEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSTtnQkFDZixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNqRCxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsS0FBSyxDQUFDLElBQUk7Z0JBQ1IsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDO29CQUFFLE9BQU87Z0JBQ3BDLE1BQU0sWUFBWSxHQUFvQixFQUFFLENBQUM7Z0JBQ3pDLFlBQVksQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRXJDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUm91dGluZ0NvbnRleHQgZnJvbSAnLi9Sb3V0aW5nQ29udGV4dC5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEZpbHRlclNjaGVtYSxcbiAgVHlwZWRGaWx0ZXJBY3Rpb25zLFxuICBJbmZlckZpbHRlcnMsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7XG4gIGlzRW1wdHksXG4gIG1lcmdlRmlsdGVycyxcbiAgcmVtb3ZlRmlsdGVyLFxuICBzZXRGaWx0ZXIsXG59IGZyb20gJ0BwbHVtaWxlL2ZpbHRlci1xdWVyeS9tdXRhdGUuanMnO1xuXG4vKipcbiAqIFN0cm9uZ2x5IHR5cGVkIGhvb2sgZm9yIHJlYWRpbmcgYW5kIG11dGF0aW5nIGZpbHRlcnMgZGVjbGFyZWQgYnkgYSBzY2hlbWEuXG4gKlxuICogQHBhcmFtIHNjaGVtYSAtIEZpbHRlciBzY2hlbWEgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IHJvdXRlLlxuICogQHJldHVybnMgVHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBmaWx0ZXJzIG9iamVjdCBhbmQgdHlwZWQgYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlRmlsdGVyczxTIGV4dGVuZHMgRmlsdGVyU2NoZW1hPihcbiAgc2NoZW1hOiBTLFxuKTogW0luZmVyRmlsdGVyczxTPiwgVHlwZWRGaWx0ZXJBY3Rpb25zPFM+XSB7XG4gIGNvbnN0IGN0eCA9IHVzZUNvbnRleHQoUm91dGluZ0NvbnRleHQpO1xuICBpZiAoY3R4ID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUZpbHRlcnMgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFJvdXRpbmdDb250ZXh0LlByb3ZpZGVyJyk7XG4gIH1cbiAgY29uc3QgZW50cnkgPSBjdHguZ2V0KCk7XG4gIGNvbnN0IHsgcXVlcnkgfSA9IGVudHJ5O1xuICBjb25zdCBjdXJyZW50RmlsdGVycyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChlbnRyeS5hY3RpdmVRdWVyeVNjaGVtYSAhPT0gc2NoZW1hKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICd1c2VGaWx0ZXJzIHNjaGVtYSBtdXN0IGJlIHRoZSBhY3RpdmUgcm91dGUgcXVlcnkgc2NoZW1hIGluc3RhbmNlJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoZW50cnkuZmlsdGVycyA/PyB7fSkgYXMgSW5mZXJGaWx0ZXJzPFM+O1xuICB9LCBbZW50cnkuYWN0aXZlUXVlcnlTY2hlbWEsIGVudHJ5LmZpbHRlcnMsIHNjaGVtYV0pO1xuICBjb25zdCBiYXNlQ3R4ID0gY3R4OyAvLyBub24tbnVsbCBhbGlhcyBmb3IgY2xvc3VyZXNcblxuICBjb25zdCBhY3Rpb25zOiBUeXBlZEZpbHRlckFjdGlvbnM8Uz4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAvKiogTmF2aWdhdGUgb25seSBpZiBzdHJ1Y3R1cmFsIGNoYW5nZSAqL1xuICAgIGZ1bmN0aW9uIG5hdmlnYXRlV2l0aChuZXh0RmlsdGVyczogSW5mZXJGaWx0ZXJzPFM+LCByZXBsYWNlPzogYm9vbGVhbikge1xuICAgICAgaWYgKGN1cnJlbnRGaWx0ZXJzID09PSBuZXh0RmlsdGVycykgcmV0dXJuO1xuICAgICAgYmFzZUN0eC5uYXZpZ2F0ZSh7IHF1ZXJ5LCBmaWx0ZXJzOiBuZXh0RmlsdGVycywgcmVwbGFjZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldChmaWVsZCwgb3BlcmF0b3IsIHZhbHVlLCBvcHRzKSB7XG4gICAgICAgIGNvbnN0IG5leHQgPSBzZXRGaWx0ZXIoY3VycmVudEZpbHRlcnMsIGZpZWxkLCBvcGVyYXRvciwgdmFsdWUpO1xuICAgICAgICBuYXZpZ2F0ZVdpdGgobmV4dCwgb3B0cz8ucmVwbGFjZSk7XG4gICAgICB9LFxuICAgICAgcmVtb3ZlKGZpZWxkLCBvcGVyYXRvciwgb3B0cykge1xuICAgICAgICBjb25zdCBuZXh0ID0gcmVtb3ZlRmlsdGVyKGN1cnJlbnRGaWx0ZXJzLCBmaWVsZCwgb3BlcmF0b3IpO1xuICAgICAgICBuYXZpZ2F0ZVdpdGgobmV4dCwgb3B0cz8ucmVwbGFjZSk7XG4gICAgICB9LFxuICAgICAgbWVyZ2UocGF0Y2gsIG9wdHMpIHtcbiAgICAgICAgY29uc3QgbmV4dCA9IG1lcmdlRmlsdGVycyhjdXJyZW50RmlsdGVycywgcGF0Y2gpO1xuICAgICAgICBuYXZpZ2F0ZVdpdGgobmV4dCwgb3B0cz8ucmVwbGFjZSk7XG4gICAgICB9LFxuICAgICAgY2xlYXIob3B0cykge1xuICAgICAgICBpZiAoaXNFbXB0eShjdXJyZW50RmlsdGVycykpIHJldHVybjtcbiAgICAgICAgY29uc3QgZW1wdHlGaWx0ZXJzOiBJbmZlckZpbHRlcnM8Uz4gPSB7fTtcbiAgICAgICAgbmF2aWdhdGVXaXRoKGVtcHR5RmlsdGVycywgb3B0cz8ucmVwbGFjZSk7XG4gICAgICB9LFxuICAgIH07XG4gIH0sIFtiYXNlQ3R4LCBjdXJyZW50RmlsdGVycywgcXVlcnldKTtcblxuICByZXR1cm4gW2N1cnJlbnRGaWx0ZXJzLCBhY3Rpb25zXTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"usePathname.d.ts","sourceRoot":"","sources":["../../../src/routing/usePathname.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,UAAU,WAAW,IAAI,MAAM,CAK5C"}
1
+ {"version":3,"file":"usePathname.d.ts","sourceRoot":"","sources":["../../../src/routing/usePathname.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,WAAW,IAAI,MAAM,CAG5C"}
@@ -1,9 +1,6 @@
1
- import { useMemo } from 'react';
2
1
  import useLocation from './useLocation.js';
3
2
  export default function usePathname() {
4
3
  const location = useLocation();
5
- return useMemo(() => {
6
- return location.pathname;
7
- }, [location.pathname]);
4
+ return location.pathname;
8
5
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUGF0aG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGluZy91c2VQYXRobmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2hDLE9BQU8sV0FBVyxNQUFNLGtCQUFrQixDQUFDO0FBSzNDLE1BQU0sQ0FBQyxPQUFPLFVBQVUsV0FBVztJQUNqQyxNQUFNLFFBQVEsR0FBRyxXQUFXLEVBQUUsQ0FBQztJQUMvQixPQUFPLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDbEIsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxvY2F0aW9uIGZyb20gJy4vdXNlTG9jYXRpb24uanMnO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgcm91dGVyIHBhdGhuYW1lLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VQYXRobmFtZSgpOiBzdHJpbmcge1xuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG4gIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gbG9jYXRpb24ucGF0aG5hbWU7XG4gIH0sIFtsb2NhdGlvbi5wYXRobmFtZV0pO1xufVxuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUGF0aG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGluZy91c2VQYXRobmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSxrQkFBa0IsQ0FBQztBQUszQyxNQUFNLENBQUMsT0FBTyxVQUFVLFdBQVc7SUFDakMsTUFBTSxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDL0IsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdXNlTG9jYXRpb24gZnJvbSAnLi91c2VMb2NhdGlvbi5qcyc7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudCByb3V0ZXIgcGF0aG5hbWUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVBhdGhuYW1lKCk6IHN0cmluZyB7XG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcbiAgcmV0dXJuIGxvY2F0aW9uLnBhdGhuYW1lO1xufVxuIl19
@@ -2,7 +2,6 @@ export type UseQueryStateOptions<T> = {
2
2
  defaultValue?: T;
3
3
  omitIfDefault?: boolean;
4
4
  replace?: boolean;
5
- raw?: boolean;
6
5
  };
7
6
  export default function useQueryState<T = unknown>(key: string, opts?: UseQueryStateOptions<T>): [
8
7
  T | undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"useQueryState.d.ts","sourceRoot":"","sources":["../../../src/routing/useQueryState.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;IAEpC,YAAY,CAAC,EAAE,CAAC,CAAC;IAEjB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,CAAC,GAAG,OAAO,EAC/C,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,oBAAoB,CAAC,CAAC,CAAM,GACjC;IACD,CAAC,GAAG,SAAS;IACb,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI;CAC/D,CA8CA"}
1
+ {"version":3,"file":"useQueryState.d.ts","sourceRoot":"","sources":["../../../src/routing/useQueryState.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;IAEpC,YAAY,CAAC,EAAE,CAAC,CAAC;IAEjB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,CAAC,GAAG,OAAO,EAC/C,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,oBAAoB,CAAC,CAAC,CAAM,GACjC;IACD,CAAC,GAAG,SAAS;IACb,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI;CAC/D,CA8CA"}
@@ -42,4 +42,4 @@ export default function useQueryState(key, opts = {}) {
42
42
  }, [ctx, key, omitIfDefault, defaultValue, opts.replace]);
43
43
  return [current, setValue];
44
44
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUXVlcnlTdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL3VzZVF1ZXJ5U3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDaEQsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFxQmpELE1BQU0sQ0FBQyxPQUFPLFVBQVUsYUFBYSxDQUNuQyxHQUFXLEVBQ1gsSUFBSSxHQUE0QixFQUFFO0lBS2xDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2QyxNQUFNLEVBQUUsWUFBWSxFQUFFLGFBQWEsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDcEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUM7SUFFOUIsSUFBSSxPQUFnQixDQUFDO0lBQ3JCLE1BQU0sTUFBTSxHQUFHLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBRTFCLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO1NBQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7UUFDMUIsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN4RCxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQzFCLENBQUMsSUFBbUIsRUFBRSxPQUErQixFQUFFLEVBQUU7UUFDdkQsSUFBSSxHQUFHLElBQUksSUFBSTtZQUFFLE9BQU87UUFDeEIsTUFBTSxPQUFPLEdBQUcsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2pELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUUzQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUE0QixFQUFFLENBQUM7UUFDekMsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBRTNELE1BQU0sT0FBTyxHQUE0QixFQUFFLENBQUM7WUFDNUMsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUc7b0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMxQyxPQUFPO1FBQ1QsQ0FBQztRQUNELEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDdEQsQ0FBQztJQUVGLE9BQU8sQ0FBQyxPQUF3QixFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcblxuLyoqIE9wdGlvbnMgY29udHJvbGxpbmcgaG93IGB1c2VRdWVyeVN0YXRlYCByZWFkcy93cml0ZXMgYSBzaW5nbGUgcXVlcnkga2V5LiAqL1xuZXhwb3J0IHR5cGUgVXNlUXVlcnlTdGF0ZU9wdGlvbnM8VD4gPSB7XG4gIC8qKiBEZWZhdWx0IHZhbHVlIHdoZW4gdGhlIGtleSBpcyBhYnNlbnQgKG92ZXJyaWRlcyBzY2hlbWEgZGVmYXVsdCBmb3IgdGhlIGhvb2sgY29uc3VtZXIpICovXG4gIGRlZmF1bHRWYWx1ZT86IFQ7XG4gIC8qKiBJZiB0cnVlLCBvbWl0IHRoaXMga2V5IHdoZW4gdmFsdWUgZXF1YWxzIGRlZmF1bHRWYWx1ZSAoYW5kIHNjaGVtYSBkZWZhdWx0KSAqL1xuICBvbWl0SWZEZWZhdWx0PzogYm9vbGVhbjtcbiAgLyoqIFJlcGxhY2UgaW5zdGVhZCBvZiBwdXNoIHdoZW4gdXBkYXRpbmcgKHByZXZlbnRzIG5ldyBoaXN0b3J5IGVudHJ5KSAqL1xuICByZXBsYWNlPzogYm9vbGVhbjtcbiAgLyoqIChMZWdhY3kpIHJhdyBmbGFnIHJldGFpbmVkIGZvciBiYWNrd2FyZHMgY29tcGF0IOKAkyBubyBlZmZlY3QgKHR5cGVkIG1vZGVsIHJlbW92ZWQpICovXG4gIHJhdz86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIFN5bmNocm9uaXNlcyBhIHNpbmdsZSBxdWVyeSBwYXJhbWV0ZXIgd2l0aCBjb21wb25lbnQgc3RhdGUuXG4gKlxuICogQHBhcmFtIGtleSAtIFF1ZXJ5IGtleSB0byByZWFkIGFuZCB1cGRhdGUuXG4gKiBAcGFyYW0gb3B0cyAtIEJlaGF2aW91cmFsIG9wdGlvbnMgKGRlZmF1bHQgdmFsdWUsIG9taXRJZkRlZmF1bHQsIHJlcGxhY2UpLlxuICogQHJldHVybnMgVHVwbGUgY29udGFpbmluZyBjdXJyZW50IHZhbHVlIGFuZCBzZXR0ZXIgdGhhdCB1cGRhdGVzIHF1ZXJ5IHZpYSBuYXZpZ2F0ZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlUXVlcnlTdGF0ZTxUID0gdW5rbm93bj4oXG4gIGtleTogc3RyaW5nLFxuICBvcHRzOiBVc2VRdWVyeVN0YXRlT3B0aW9uczxUPiA9IHt9LFxuKTogW1xuICBUIHwgdW5kZWZpbmVkLFxuICAobmV4dDogVCB8IHVuZGVmaW5lZCwgbmF2T3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSkgPT4gdm9pZCxcbl0ge1xuICBjb25zdCBjdHggPSB1c2VDb250ZXh0KFJvdXRpbmdDb250ZXh0KTtcbiAgY29uc3QgeyBkZWZhdWx0VmFsdWUsIG9taXRJZkRlZmF1bHQgPSB0cnVlIH0gPSBvcHRzO1xuICBjb25zdCBlbnRyeSA9IGN0eD8uZ2V0KCk7XG4gIGNvbnN0IHJhd1F1ZXJ5ID0gZW50cnk/LnF1ZXJ5O1xuXG4gIGxldCBjdXJyZW50OiB1bmtub3duO1xuICBjb25zdCByYXdWYWwgPSByYXdRdWVyeT8uW2tleV07XG4gIGlmIChBcnJheS5pc0FycmF5KHJhd1ZhbCkpIHtcbiAgICAvLyBwaWNrIGxhc3QgZm9yIHN5bW1ldHJ5IHdpdGggdHlwZWQgcGFyc2luZyBvZiBwcmltaXRpdmVzXG4gICAgY3VycmVudCA9IHJhd1ZhbFtyYXdWYWwubGVuZ3RoIC0gMV07XG4gIH0gZWxzZSBpZiAocmF3VmFsICE9IG51bGwpIHtcbiAgICBjdXJyZW50ID0gcmF3VmFsO1xuICB9XG4gIGlmIChjdXJyZW50ID09PSB1bmRlZmluZWQgJiYgZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjdXJyZW50ID0gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgY29uc3Qgc2V0VmFsdWUgPSB1c2VDYWxsYmFjayhcbiAgICAobmV4dDogVCB8IHVuZGVmaW5lZCwgbmF2T3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSkgPT4ge1xuICAgICAgaWYgKGN0eCA9PSBudWxsKSByZXR1cm47XG4gICAgICBjb25zdCByZXBsYWNlID0gbmF2T3B0cz8ucmVwbGFjZSA/PyBvcHRzLnJlcGxhY2U7XG4gICAgICBjb25zdCBlbnRyeU5vdyA9IGN0eC5nZXQoKTtcbiAgICAgIC8vIEJhc2Ugb2JqZWN0OiBzdGFydCBmcm9tIGV4aXN0aW5nIHJhdyBxdWVyeSBjbG9uZSAodHlwZWQgbW9kZWwgcmVtb3ZlZClcbiAgICAgIGNvbnN0IHNvdXJjZSA9IGVudHJ5Tm93LnF1ZXJ5O1xuICAgICAgY29uc3QgYmFzZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyhzb3VyY2UpKSB7XG4gICAgICAgIGJhc2Vba10gPSBzb3VyY2Vba107XG4gICAgICB9XG4gICAgICBpZiAoIShuZXh0ID09PSB1bmRlZmluZWQgfHwgKG9taXRJZkRlZmF1bHQgJiYgbmV4dCA9PT0gZGVmYXVsdFZhbHVlKSkpIHtcbiAgICAgICAgYmFzZVtrZXldID0gbmV4dDtcbiAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJhc2UsIGtleSkpIHtcbiAgICAgICAgLy8gcmVidWlsZCB3aXRob3V0IGtleVxuICAgICAgICBjb25zdCByZWJ1aWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoYmFzZSkpIHtcbiAgICAgICAgICBpZiAoayAhPT0ga2V5KSByZWJ1aWx0W2tdID0gYmFzZVtrXTtcbiAgICAgICAgfVxuICAgICAgICBjdHgubmF2aWdhdGUoeyBxdWVyeTogcmVidWlsdCwgcmVwbGFjZSB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY3R4Lm5hdmlnYXRlKHsgcXVlcnk6IGJhc2UsIHJlcGxhY2UgfSk7XG4gICAgfSxcbiAgICBbY3R4LCBrZXksIG9taXRJZkRlZmF1bHQsIGRlZmF1bHRWYWx1ZSwgb3B0cy5yZXBsYWNlXSxcbiAgKTtcblxuICByZXR1cm4gW2N1cnJlbnQgYXMgVCB8IHVuZGVmaW5lZCwgc2V0VmFsdWVdO1xufVxuIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUXVlcnlTdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL3VzZVF1ZXJ5U3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDaEQsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFtQmpELE1BQU0sQ0FBQyxPQUFPLFVBQVUsYUFBYSxDQUNuQyxHQUFXLEVBQ1gsSUFBSSxHQUE0QixFQUFFO0lBS2xDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2QyxNQUFNLEVBQUUsWUFBWSxFQUFFLGFBQWEsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDcEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUM7SUFFOUIsSUFBSSxPQUFnQixDQUFDO0lBQ3JCLE1BQU0sTUFBTSxHQUFHLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBRTFCLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO1NBQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7UUFDMUIsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN4RCxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQzFCLENBQUMsSUFBbUIsRUFBRSxPQUErQixFQUFFLEVBQUU7UUFDdkQsSUFBSSxHQUFHLElBQUksSUFBSTtZQUFFLE9BQU87UUFDeEIsTUFBTSxPQUFPLEdBQUcsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2pELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUUzQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUE0QixFQUFFLENBQUM7UUFDekMsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBRTNELE1BQU0sT0FBTyxHQUE0QixFQUFFLENBQUM7WUFDNUMsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUc7b0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMxQyxPQUFPO1FBQ1QsQ0FBQztRQUNELEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDdEQsQ0FBQztJQUVGLE9BQU8sQ0FBQyxPQUF3QixFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcblxuLyoqIE9wdGlvbnMgY29udHJvbGxpbmcgaG93IGB1c2VRdWVyeVN0YXRlYCByZWFkcy93cml0ZXMgYSBzaW5nbGUgcXVlcnkga2V5LiAqL1xuZXhwb3J0IHR5cGUgVXNlUXVlcnlTdGF0ZU9wdGlvbnM8VD4gPSB7XG4gIC8qKiBEZWZhdWx0IHZhbHVlIHdoZW4gdGhlIGtleSBpcyBhYnNlbnQgKG92ZXJyaWRlcyBzY2hlbWEgZGVmYXVsdCBmb3IgdGhlIGhvb2sgY29uc3VtZXIpICovXG4gIGRlZmF1bHRWYWx1ZT86IFQ7XG4gIC8qKiBJZiB0cnVlLCBvbWl0IHRoaXMga2V5IHdoZW4gdmFsdWUgZXF1YWxzIGRlZmF1bHRWYWx1ZSAoYW5kIHNjaGVtYSBkZWZhdWx0KSAqL1xuICBvbWl0SWZEZWZhdWx0PzogYm9vbGVhbjtcbiAgLyoqIFJlcGxhY2UgaW5zdGVhZCBvZiBwdXNoIHdoZW4gdXBkYXRpbmcgKHByZXZlbnRzIG5ldyBoaXN0b3J5IGVudHJ5KSAqL1xuICByZXBsYWNlPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogU3luY2hyb25pc2VzIGEgc2luZ2xlIHF1ZXJ5IHBhcmFtZXRlciB3aXRoIGNvbXBvbmVudCBzdGF0ZS5cbiAqXG4gKiBAcGFyYW0ga2V5IC0gUXVlcnkga2V5IHRvIHJlYWQgYW5kIHVwZGF0ZS5cbiAqIEBwYXJhbSBvcHRzIC0gQmVoYXZpb3VyYWwgb3B0aW9ucyAoZGVmYXVsdCB2YWx1ZSwgb21pdElmRGVmYXVsdCwgcmVwbGFjZSkuXG4gKiBAcmV0dXJucyBUdXBsZSBjb250YWluaW5nIGN1cnJlbnQgdmFsdWUgYW5kIHNldHRlciB0aGF0IHVwZGF0ZXMgcXVlcnkgdmlhIG5hdmlnYXRlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VRdWVyeVN0YXRlPFQgPSB1bmtub3duPihcbiAga2V5OiBzdHJpbmcsXG4gIG9wdHM6IFVzZVF1ZXJ5U3RhdGVPcHRpb25zPFQ+ID0ge30sXG4pOiBbXG4gIFQgfCB1bmRlZmluZWQsXG4gIChuZXh0OiBUIHwgdW5kZWZpbmVkLCBuYXZPcHRzPzogeyByZXBsYWNlPzogYm9vbGVhbiB9KSA9PiB2b2lkLFxuXSB7XG4gIGNvbnN0IGN0eCA9IHVzZUNvbnRleHQoUm91dGluZ0NvbnRleHQpO1xuICBjb25zdCB7IGRlZmF1bHRWYWx1ZSwgb21pdElmRGVmYXVsdCA9IHRydWUgfSA9IG9wdHM7XG4gIGNvbnN0IGVudHJ5ID0gY3R4Py5nZXQoKTtcbiAgY29uc3QgcmF3UXVlcnkgPSBlbnRyeT8ucXVlcnk7XG5cbiAgbGV0IGN1cnJlbnQ6IHVua25vd247XG4gIGNvbnN0IHJhd1ZhbCA9IHJhd1F1ZXJ5Py5ba2V5XTtcbiAgaWYgKEFycmF5LmlzQXJyYXkocmF3VmFsKSkge1xuICAgIC8vIHBpY2sgbGFzdCBmb3Igc3ltbWV0cnkgd2l0aCB0eXBlZCBwYXJzaW5nIG9mIHByaW1pdGl2ZXNcbiAgICBjdXJyZW50ID0gcmF3VmFsW3Jhd1ZhbC5sZW5ndGggLSAxXTtcbiAgfSBlbHNlIGlmIChyYXdWYWwgIT0gbnVsbCkge1xuICAgIGN1cnJlbnQgPSByYXdWYWw7XG4gIH1cbiAgaWYgKGN1cnJlbnQgPT09IHVuZGVmaW5lZCAmJiBkZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIGN1cnJlbnQgPSBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBjb25zdCBzZXRWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChuZXh0OiBUIHwgdW5kZWZpbmVkLCBuYXZPcHRzPzogeyByZXBsYWNlPzogYm9vbGVhbiB9KSA9PiB7XG4gICAgICBpZiAoY3R4ID09IG51bGwpIHJldHVybjtcbiAgICAgIGNvbnN0IHJlcGxhY2UgPSBuYXZPcHRzPy5yZXBsYWNlID8/IG9wdHMucmVwbGFjZTtcbiAgICAgIGNvbnN0IGVudHJ5Tm93ID0gY3R4LmdldCgpO1xuICAgICAgLy8gQmFzZSBvYmplY3Q6IHN0YXJ0IGZyb20gZXhpc3RpbmcgcmF3IHF1ZXJ5IGNsb25lICh0eXBlZCBtb2RlbCByZW1vdmVkKVxuICAgICAgY29uc3Qgc291cmNlID0gZW50cnlOb3cucXVlcnk7XG4gICAgICBjb25zdCBiYXNlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHNvdXJjZSkpIHtcbiAgICAgICAgYmFzZVtrXSA9IHNvdXJjZVtrXTtcbiAgICAgIH1cbiAgICAgIGlmICghKG5leHQgPT09IHVuZGVmaW5lZCB8fCAob21pdElmRGVmYXVsdCAmJiBuZXh0ID09PSBkZWZhdWx0VmFsdWUpKSkge1xuICAgICAgICBiYXNlW2tleV0gPSBuZXh0O1xuICAgICAgfSBlbHNlIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYmFzZSwga2V5KSkge1xuICAgICAgICAvLyByZWJ1aWxkIHdpdGhvdXQga2V5XG4gICAgICAgIGNvbnN0IHJlYnVpbHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyhiYXNlKSkge1xuICAgICAgICAgIGlmIChrICE9PSBrZXkpIHJlYnVpbHRba10gPSBiYXNlW2tdO1xuICAgICAgICB9XG4gICAgICAgIGN0eC5uYXZpZ2F0ZSh7IHF1ZXJ5OiByZWJ1aWx0LCByZXBsYWNlIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjdHgubmF2aWdhdGUoeyBxdWVyeTogYmFzZSwgcmVwbGFjZSB9KTtcbiAgICB9LFxuICAgIFtjdHgsIGtleSwgb21pdElmRGVmYXVsdCwgZGVmYXVsdFZhbHVlLCBvcHRzLnJlcGxhY2VdLFxuICApO1xuXG4gIHJldHVybiBbY3VycmVudCBhcyBUIHwgdW5kZWZpbmVkLCBzZXRWYWx1ZV07XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import type { ParamData } from 'path-to-regexp';
2
2
  import type { HistoryLocationSnapshot } from './history/types.js';
3
- import { type FilterSchema, type PrepareResult, type PreparedMatch, type PreparedRouteSegment, type Redirect, type ResolvedPreparedMatch, type Route, type RouteNode, type RouterMatchedRoute, type RawQuery, type UnknownFilters } from './types.js';
3
+ import { type FilterSchema, type PrepareResult, type PreparedRouteChain, type PreparedRouteSegment, type Redirect, type ResolvedPreparedRouteChain, type Route, type RouteNode, type RouterMatchedRoute, type RawQuery, type UnknownFilters } from './types.js';
4
4
  import type { RouterPrepareEvent, RouterNavigationSource, RouterLocationSnapshot } from './instrumentation/Instrumentation.js';
5
5
  import type { FlatRoute } from './builder.js';
6
6
  type PrepareInstrumentation = {
@@ -24,8 +24,8 @@ export declare const __testTools: {
24
24
  readonly buildHighlightId: typeof buildHighlightId;
25
25
  readonly areSegmentParamsEqual: typeof areSegmentParamsEqual;
26
26
  };
27
- export declare function prepareMatch<TParams extends ParamData, TContext = unknown>(match: RouterMatchedRoute<TParams> | null, query?: Record<string, unknown>, instrumentation?: PrepareInstrumentation, context?: TContext, reuse?: PrepareReuseInput<TContext>, searchState?: PrepareSearchState): PreparedMatch<TParams, TContext>;
28
- export declare function prepareMatchAsync<TParams extends ParamData, TContext = unknown>(match: RouterMatchedRoute<TParams> | null, query?: Record<string, unknown>, instrumentation?: PrepareInstrumentation, context?: TContext): Promise<ResolvedPreparedMatch<TParams, TContext>>;
27
+ export declare function prepareMatch<TParams extends ParamData, TContext = unknown>(match: RouterMatchedRoute<TParams> | null, query?: Record<string, unknown>, instrumentation?: PrepareInstrumentation, context?: TContext, reuse?: PrepareReuseInput<TContext>, searchState?: PrepareSearchState): PreparedRouteChain<TParams, TContext>;
28
+ export declare function prepareMatchAsync<TParams extends ParamData, TContext = unknown>(match: RouterMatchedRoute<TParams> | null, query?: Record<string, unknown>, instrumentation?: PrepareInstrumentation, context?: TContext): Promise<ResolvedPreparedRouteChain<TParams, TContext>>;
29
29
  export declare function r<TContext = unknown, TPrepared extends PrepareResult = PrepareResult, TVariables extends ParamData = ParamData, TQuery extends Record<string, unknown> = Record<string, unknown>, S extends FilterSchema | undefined = FilterSchema | undefined, TChildren extends readonly (RouteNode | Redirect)[] | undefined = readonly (RouteNode | Redirect)[] | undefined>(route: Route<TContext, TPrepared, TVariables, TQuery, S, TChildren>): Route<TContext, TPrepared, TVariables, TQuery, S, TChildren>;
30
30
  export {};
31
31
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"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"}
package/lib/esm/tools.js CHANGED
@@ -72,7 +72,6 @@ export function prepareMatch(match, query, instrumentation, context, reuse, sear
72
72
  return {
73
73
  match,
74
74
  segments: [],
75
- routes: [],
76
75
  };
77
76
  }
78
77
  const matchedRoute = match.route;
@@ -200,7 +199,6 @@ export function prepareMatch(match, query, instrumentation, context, reuse, sear
200
199
  return {
201
200
  match,
202
201
  segments,
203
- routes: segments,
204
202
  };
205
203
  }
206
204
  export async function prepareMatchAsync(match, query, instrumentation, context) {
@@ -230,10 +228,9 @@ export async function prepareMatchAsync(match, query, instrumentation, context)
230
228
  return {
231
229
  match: preparedMatch.match,
232
230
  segments,
233
- routes: segments,
234
231
  };
235
232
  }
236
233
  export function r(route) {
237
234
  return route;
238
235
  }
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEJBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBbUJuRSxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLElBQXVCLEVBQ3ZCLEtBQXdCLEVBQ2YsRUFBRTtJQUNYLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsT0FBTyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFHLENBQzVCLFVBQTZCLEVBQzdCLElBQTJCLEVBQzNCLEtBQWdCLEVBQ1AsRUFBRTtJQUNYLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUNwQyxPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUdGLFNBQVMsMEJBQTBCLENBQ2pDLGVBQW1ELEVBQ25ELEtBQXlCO0lBRXpCLElBQUksZUFBZSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzVCLE9BQU87SUFDVCxDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0gsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQUMsTUFBTSxDQUFDO0lBRVQsQ0FBQztBQUNILENBQUM7QUFTRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixNQUE0QixFQUM1QixRQUFpQztJQUVqQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELElBQUksS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQy9CLE9BQU87Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLElBQUk7Z0JBQ0osTUFBTTthQUNQLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUtELFNBQVMsZ0JBQWdCLENBQ3ZCLFNBQTZCLEVBQzdCLEtBQWEsRUFDYixRQUFpQjtJQUVqQixNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDM0IsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQzNELEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDN0QsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixnQkFBZ0I7SUFDaEIscUJBQXFCO0NBQ2IsQ0FBQztBQVVYLE1BQU0sVUFBVSxZQUFZLENBQzFCLEtBQXlDLEVBQ3pDLEtBQStCLEVBQy9CLGVBQXdDLEVBQ3hDLE9BQWtCLEVBQ2xCLEtBQW1DLEVBQ25DLFdBQWdDO0lBTWhDLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU87WUFDTCxLQUFLO1lBQ0wsUUFBUSxFQUFFLEVBQUU7WUFDWixNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUVqQyxNQUFNLFFBQVEsR0FBcUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUN2RSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRTtRQUNwQixNQUFNLEVBQ0osSUFBSSxFQUNKLE9BQU8sRUFDUCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsUUFBUSxHQUNULEdBQUcsS0FBSyxDQUFDO1FBQ1YsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RCxNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxJQUNFLGVBQWUsRUFBRSxTQUFTLEtBQUssS0FBSztZQUNwQyxDQUFDLEtBQUssRUFBRSxVQUFVLEtBQUssSUFBSTtnQkFDekIsS0FBSyxDQUFDLHFCQUFxQixLQUFLLE1BQU07Z0JBQ3RDLE9BQU8sSUFBSSxJQUFJLENBQUM7WUFDbEIscUJBQXFCLENBQ25CLFlBQVksRUFBRSxVQUFVLElBQUksRUFBRSxFQUM5QixLQUFLLEVBQUUsY0FBYyxFQUNyQixLQUFLLENBQUMsTUFBTSxDQUNiLEVBQ0QsQ0FBQztZQUNELE9BQU8sZUFBZSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLFFBQTRCLENBQUM7UUFDakMsSUFDRSxZQUFZLElBQUksSUFBSTtZQUNwQixPQUFPLFlBQVksQ0FBQyxXQUFXLEtBQUssVUFBVSxFQUM5QyxDQUFDO1lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEQsSUFBSSxPQUFPLGdCQUFnQixLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN6QyxRQUFRLEdBQUcsZ0JBQWdCLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLGVBQWUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM1QixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDOUIsMEJBQTBCLENBQUMsZUFBZSxFQUFFO2dCQUMxQyxJQUFJLEVBQUUsZUFBZTtnQkFDckIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxNQUFNO2dCQUM5QixTQUFTLEVBQUUsZ0JBQWdCO2dCQUMzQixRQUFRLEVBQUUsZUFBZSxDQUFDLFFBQVE7Z0JBQ2xDLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFFBQVE7YUFDVCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxnQkFBd0QsQ0FBQztRQUM3RCxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNwQixnQkFBZ0IsR0FBRywyQkFBMkIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xELE9BQU8sT0FBTyxDQUFDO29CQUNiLEtBQUs7b0JBQ0wsWUFBWTtvQkFDWixPQUFPO29CQUNQLFlBQVk7b0JBRVosU0FBUyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO29CQUM5QixLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUU7b0JBQ2xCLFFBQVEsRUFDTixXQUFXLEVBQUUsUUFBUSxJQUFLLEtBQThCLElBQUksRUFBRTtvQkFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPO2lCQUM5QixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUdILE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1lBRTdDLElBQUksZUFBZSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUM1QixZQUFZO3FCQUNULElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ1QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM5QiwwQkFBMEIsQ0FBQyxlQUFlLEVBQUU7d0JBQzFDLElBQUksRUFBRSxrQkFBa0I7d0JBQ3hCLE1BQU0sRUFBRSxlQUFlLENBQUMsTUFBTTt3QkFDOUIsU0FBUyxFQUFFLFVBQVU7d0JBQ3JCLFFBQVEsRUFBRSxlQUFlLENBQUMsUUFBUTt3QkFDbEMsU0FBUyxFQUFFLElBQUk7d0JBQ2YsUUFBUTt3QkFDUixVQUFVLEVBQUUsVUFBVSxHQUFHLGdCQUFnQjt3QkFDekMsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLE1BQU0sRUFBRSxVQUFVO3FCQUNuQixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxHQUFHLEVBQUU7b0JBQ1YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM5QiwwQkFBMEIsQ0FBQyxlQUFlLEVBQUU7d0JBQzFDLElBQUksRUFBRSxrQkFBa0I7d0JBQ3hCLE1BQU0sRUFBRSxlQUFlLENBQUMsTUFBTTt3QkFDOUIsU0FBUyxFQUFFLFVBQVU7d0JBQ3JCLFFBQVEsRUFBRSxlQUFlLENBQUMsUUFBUTt3QkFDbEMsU0FBUyxFQUFFLElBQUk7d0JBQ2YsUUFBUTt3QkFDUixVQUFVLEVBQUUsVUFBVSxHQUFHLGdCQUFnQjt3QkFDekMsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLE1BQU0sRUFBRSxVQUFVO3FCQUNuQixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBRXhCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLGVBQWUsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM5QiwwQkFBMEIsQ0FBQyxlQUFlLEVBQUU7Z0JBQzFDLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLE1BQU0sRUFBRSxlQUFlLENBQUMsTUFBTTtnQkFDOUIsU0FBUyxFQUFFLFVBQVU7Z0JBQ3JCLFFBQVEsRUFBRSxlQUFlLENBQUMsUUFBUTtnQkFDbEMsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsUUFBUTtnQkFDUixVQUFVLEVBQUUsVUFBVSxHQUFHLGdCQUFnQjtnQkFDekMsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLE1BQU0sRUFBRSxVQUFVO2FBQ25CLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLFlBQVksSUFBSSxJQUFJLElBQUksWUFBWSxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQztnQkFDSCxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBRWhELENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUFDLE1BQU0sQ0FBQztZQUVULENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTztZQUNMLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLElBQUk7WUFDSixRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsSUFBSSxJQUFJO1lBQ3hDLFVBQVUsRUFDUixZQUFZLEVBQUUsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDO1lBQ25FLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxJQUFJLEVBQUU7WUFDMUMsWUFBWSxFQUFFLFVBQVU7WUFDeEIsZ0JBQWdCO1lBQ2hCLFVBQVUsRUFBRSxZQUFZLENBQUMsVUFBVSxJQUFJLElBQUk7WUFDM0MsTUFBTTtZQUNOLFlBQVk7WUFDWixnQkFBZ0IsRUFBRSxnQkFBZ0IsSUFBSSxTQUFTO1lBQy9DLFFBQVE7WUFDUixXQUFXLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUM7WUFDekQsV0FBVztTQUNaLENBQUM7SUFDSixDQUFDLENBQ0YsQ0FBQztJQUVGLE9BQU87UUFDTCxLQUFLO1FBQ0wsUUFBUTtRQUNSLE1BQU0sRUFBRSxRQUFRO0tBQ2pCLENBQUM7QUFDSixDQUFDO0FBV0QsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FJckMsS0FBeUMsRUFDekMsS0FBK0IsRUFDL0IsZUFBd0MsRUFDeEMsT0FBa0I7SUFFbEIsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNFLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDaEMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ3hCLEtBQUssRUFBRSxLQUFLLEVBQW1ELEVBQUU7UUFDL0QsSUFBSSxRQUFpQixDQUFDO1FBQ3RCLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25DLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTztZQUNMLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFFBQVE7WUFDUixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CLENBQUM7SUFDSixDQUFDLENBQ0YsQ0FDRixDQUFDO0lBRUYsT0FBTztRQUNMLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSztRQUMxQixRQUFRO1FBQ1IsTUFBTSxFQUFFLFFBQVE7S0FDakIsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFNLFVBQVUsQ0FBQyxDQVNmLEtBQW1FO0lBRW5FLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuaW1wb3J0IHR5cGUgeyBIaXN0b3J5TG9jYXRpb25TbmFwc2hvdCB9IGZyb20gJy4vaGlzdG9yeS90eXBlcy5qcyc7XG5cbmltcG9ydCB7XG4gIHR5cGUgRmlsdGVyU2NoZW1hLFxuICB0eXBlIFByZXBhcmVSZXN1bHQsXG4gIHR5cGUgUHJlcGFyZWRNYXRjaCxcbiAgdHlwZSBQcmVwYXJlZE1hdGNoUm91dGUsXG4gIHR5cGUgUHJlcGFyZWRSb3V0ZVNlZ21lbnQsXG4gIHR5cGUgUmVkaXJlY3QsXG4gIHR5cGUgUmVzb2x2ZWRQcmVwYXJlZE1hdGNoLFxuICB0eXBlIFJlc29sdmVkUHJlcGFyZWRSb3V0ZVNlZ21lbnQsXG4gIHR5cGUgUm91dGUsXG4gIHR5cGUgUm91dGVOb2RlLFxuICB0eXBlIFJvdXRlck1hdGNoZWRSb3V0ZSxcbiAgdHlwZSBSYXdRdWVyeSxcbiAgdHlwZSBVbmtub3duRmlsdGVycyxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgUm91dGVyUHJlcGFyZUV2ZW50LFxuICBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlLFxuICBSb3V0ZXJMb2NhdGlvblNuYXBzaG90LFxufSBmcm9tICcuL2luc3RydW1lbnRhdGlvbi9JbnN0cnVtZW50YXRpb24uanMnO1xuXG5pbXBvcnQgdHlwZSB7IEZsYXRSb3V0ZSB9IGZyb20gJy4vYnVpbGRlci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVQcmVwYXJlZFZhbHVlUmVzb3VyY2UgfSBmcm9tICcuL3ByZXBhcmVSZXNvdXJjZS5qcyc7XG5cbnR5cGUgUHJlcGFyZUluc3RydW1lbnRhdGlvbiA9IHtcbiAgZW1pdDogKGV2ZW50OiBSb3V0ZXJQcmVwYXJlRXZlbnQpID0+IHZvaWQ7XG4gIHNvdXJjZTogUm91dGVyTmF2aWdhdGlvblNvdXJjZTtcbiAgbG9jYXRpb246IFJvdXRlckxvY2F0aW9uU25hcHNob3Q7XG59O1xuXG50eXBlIFByZXBhcmVSZXVzZUlucHV0PFRDb250ZXh0PiA9IHtcbiAgcHJldmlvdXNTZWdtZW50cz86IFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PltdO1xuICBwcmV2aW91c1BhcmFtcz86IFBhcmFtRGF0YTtcbiAgc2FtZVNlYXJjaD86IGJvb2xlYW47XG59O1xuXG50eXBlIFByZXBhcmVTZWFyY2hTdGF0ZSA9IHtcbiAgcmF3UXVlcnk/OiBSYXdRdWVyeTtcbiAgZmlsdGVycz86IFVua25vd25GaWx0ZXJzO1xufTtcblxuY29uc3QgaXNQYXJhbVZhbHVlRXF1YWwgPSAoXG4gIGxlZnQ6IFBhcmFtRGF0YVtzdHJpbmddLFxuICByaWdodDogUGFyYW1EYXRhW3N0cmluZ10sXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkobGVmdCkgfHwgQXJyYXkuaXNBcnJheShyaWdodCkpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobGVmdCkgfHwgIUFycmF5LmlzQXJyYXkocmlnaHQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChsZWZ0Lmxlbmd0aCAhPT0gcmlnaHQubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBsZWZ0LmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gcmlnaHRbaW5kZXhdO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBsZWZ0ID09PSByaWdodDtcbn07XG5cbmNvbnN0IGFyZVNlZ21lbnRQYXJhbXNFcXVhbCA9IChcbiAgcGFyYW1OYW1lczogcmVhZG9ubHkgc3RyaW5nW10sXG4gIGxlZnQ6IFBhcmFtRGF0YSB8IHVuZGVmaW5lZCxcbiAgcmlnaHQ6IFBhcmFtRGF0YSxcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAocGFyYW1OYW1lcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAobGVmdCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBwYXJhbU5hbWVzLmV2ZXJ5KChwYXJhbU5hbWUpID0+IHtcbiAgICByZXR1cm4gaXNQYXJhbVZhbHVlRXF1YWwobGVmdFtwYXJhbU5hbWVdLCByaWdodFtwYXJhbU5hbWVdKTtcbiAgfSk7XG59O1xuXG4vKiogRW1pdHMgcHJlcGFyZSBpbnN0cnVtZW50YXRpb24gd2l0aG91dCBhbGxvd2luZyBpbnN0cnVtZW50YXRpb24gZmFpbHVyZXMgdG8gYWZmZWN0IHJvdXRpbmcuICovXG5mdW5jdGlvbiBlbWl0UHJlcGFyZUluc3RydW1lbnRhdGlvbihcbiAgaW5zdHJ1bWVudGF0aW9uOiBQcmVwYXJlSW5zdHJ1bWVudGF0aW9uIHwgdW5kZWZpbmVkLFxuICBldmVudDogUm91dGVyUHJlcGFyZUV2ZW50LFxuKTogdm9pZCB7XG4gIGlmIChpbnN0cnVtZW50YXRpb24gPT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuICB0cnkge1xuICAgIGluc3RydW1lbnRhdGlvbi5lbWl0KGV2ZW50KTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gSW5zdHJ1bWVudGF0aW9uIG11c3QgbmV2ZXIgYnJlYWsgcm91dGluZyBvciBwcmVwYXJlIGxpZmVjeWNsZS5cbiAgfVxufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBmaXJzdCBmbGF0IHJvdXRlIG1hdGNoaW5nIHRoZSBwcm92aWRlZCBsb2NhdGlvbi5cbiAqXG4gKiBAcGFyYW0gcm91dGVzIC0gRmxhdHRlbmVkIHJvdXRlIGxpc3QgdG8gZXZhbHVhdGUuXG4gKiBAcGFyYW0gbG9jYXRpb24gLSBCcm93c2VyIGxvY2F0aW9uIHdob3NlIHBhdGhuYW1lIHNob3VsZCBiZSBtYXRjaGVkLlxuICogQHJldHVybnMgTWF0Y2hlZCByb3V0ZSB3aXRoIHBhcmFtcyBvciBgbnVsbGAgaWYgbm9uZSBtYXRjaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hdGNoZWRSb3V0ZTxUUGFyYW1zIGV4dGVuZHMgUGFyYW1EYXRhPihcbiAgcm91dGVzOiBGbGF0Um91dGU8VFBhcmFtcz5bXSxcbiAgbG9jYXRpb246IEhpc3RvcnlMb2NhdGlvblNuYXBzaG90LFxuKTogUm91dGVyTWF0Y2hlZFJvdXRlPFRQYXJhbXM+IHwgbnVsbCB7XG4gIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVzKSB7XG4gICAgY29uc3QgbWF0Y2ggPSByb3V0ZS5tYXRjaEZ1bmN0aW9uKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICBpZiAobWF0Y2ggIT09IGZhbHNlKSB7XG4gICAgICBjb25zdCB7IHBhdGgsIHBhcmFtcyB9ID0gbWF0Y2g7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtYXRjaCxcbiAgICAgICAgcm91dGUsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHBhcmFtcyxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogRGVyaXZlcyBhIGRldGVybWluaXN0aWMgaWRlbnRpZmllciB0aGF0IGxpbmtzIHByZXBhcmVkIHJvdXRlcyB0byBET00gbWFya2Vycy5cbiAqL1xuZnVuY3Rpb24gYnVpbGRIaWdobGlnaHRJZChcbiAgcm91dGVQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGluZGV4OiBudW1iZXIsXG4gIG1vZHVsZUlkPzogc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG4gIGlmICh0eXBlb2YgbW9kdWxlSWQgPT09ICdzdHJpbmcnICYmIG1vZHVsZUlkLnRyaW0oKSAhPT0gJycpIHtcbiAgICBwYXJ0cy5wdXNoKGBtb2R1bGU6JHttb2R1bGVJZH1gKTtcbiAgfVxuICBpZiAodHlwZW9mIHJvdXRlUGF0aCA9PT0gJ3N0cmluZycgJiYgcm91dGVQYXRoLnRyaW0oKSAhPT0gJycpIHtcbiAgICBwYXJ0cy5wdXNoKGBwYXRoOiR7cm91dGVQYXRofWApO1xuICB9XG4gIGlmIChwYXJ0cy5sZW5ndGggPT09IDApIHtcbiAgICBwYXJ0cy5wdXNoKCdyb3V0ZScpO1xuICB9XG4gIHBhcnRzLnB1c2goYGluZGV4OiR7aW5kZXh9YCk7XG4gIHJldHVybiBwYXJ0cy5qb2luKCd8Jyk7XG59XG5cbmV4cG9ydCBjb25zdCBfX3Rlc3RUb29scyA9IHtcbiAgYnVpbGRIaWdobGlnaHRJZCxcbiAgYXJlU2VnbWVudFBhcmFtc0VxdWFsLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBQcmVwYXJlcyBhIG1hdGNoZWQgcm91dGUgYnkgZXhlY3V0aW5nIGBwcmVwYXJlYCBjYWxsYmFja3MgYW5kIHJlc29sdmluZyByZXNvdXJjZSBwYWdlcy5cbiAqXG4gKiBAcGFyYW0gbWF0Y2ggLSBNYXRjaGVkIHJvdXRlIGRlc2NyaXB0b3IgKG9yIGBudWxsYCB3aGVuIG5vdGhpbmcgbWF0Y2hlZCkuXG4gKiBAcGFyYW0gcXVlcnkgLSBPcHRpb25hbCBxdWVyeSBvYmplY3QgZm9yd2FyZGVkIHRvIHByZXBhcmUgZnVuY3Rpb25zLlxuICogQHBhcmFtIGNvbnRleHQgLSBPcHRpb25hbCByb3V0ZXIgY29udGV4dCBmb3J3YXJkZWQgdG8gcHJlcGFyZSBmdW5jdGlvbnMuXG4gKiBAcmV0dXJucyBQcmVwYXJlZCBoaWVyYXJjaHkgcmVhZHkgZm9yIHRoZSByZW5kZXJlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVNYXRjaDxUUGFyYW1zIGV4dGVuZHMgUGFyYW1EYXRhLCBUQ29udGV4dCA9IHVua25vd24+KFxuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRQYXJhbXM+IHwgbnVsbCxcbiAgcXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgaW5zdHJ1bWVudGF0aW9uPzogUHJlcGFyZUluc3RydW1lbnRhdGlvbixcbiAgY29udGV4dD86IFRDb250ZXh0LFxuICByZXVzZT86IFByZXBhcmVSZXVzZUlucHV0PFRDb250ZXh0PixcbiAgc2VhcmNoU3RhdGU/OiBQcmVwYXJlU2VhcmNoU3RhdGUsXG4pOiBQcmVwYXJlZE1hdGNoPFRQYXJhbXMsIFRDb250ZXh0PiB7XG4gIC8vIE5PVEU6IFJ1bnRpbWUgcmV0YWlucyBhIGdlbmVyaWMgUHJlcGFyZWRSZXN1bHQ7IHR5cGUtbGV2ZWwgbmFycm93aW5nIGlzIGFjaGlldmVkIGV4dGVybmFsbHlcbiAgLy8gdGhyb3VnaCB0aGUgcm91dGUgdW5pb24gYW5kIFByZXBhcmVkQWNjZXNzIGhlbHBlcnMuIFdlIGludGVudGlvbmFsbHkgYXZvaWQgaW5qZWN0aW5nXG4gIC8vIGdlbmVyaWMgcGFyYW1ldGVycyBoZXJlIHRvIGtlZXAgcnVudGltZSBsaWdodHdlaWdodCB3aGlsZSBzdGlsbCBlbmFibGluZyBjb21waWxlLXRpbWVcbiAgLy8gZGlzY3JpbWluYXRpb24gaW4gdXNlcmxhbmQgdmlhIGNyZWF0ZVJvdXRlciBnZW5lcmljcy5cbiAgaWYgKG1hdGNoID09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWF0Y2gsXG4gICAgICBzZWdtZW50czogW10sXG4gICAgICByb3V0ZXM6IFtdLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBtYXRjaGVkUm91dGUgPSBtYXRjaC5yb3V0ZTtcblxuICBjb25zdCBzZWdtZW50czogUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W10gPSBtYXRjaC5yb3V0ZS5yb3V0ZXMubWFwKFxuICAgIChyb3V0ZSwgcm91dGVJbmRleCkgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwYXRoLFxuICAgICAgICBwcmVwYXJlLFxuICAgICAgICBxdWVyeVNjaGVtYSxcbiAgICAgICAgcmVzb3VyY2VQYWdlLFxuICAgICAgICByZW5kZXIsXG4gICAgICAgIHN1c3BlbnNlQm91bmRhcnksXG4gICAgICAgIGZhbGxiYWNrLFxuICAgICAgfSA9IHJvdXRlO1xuICAgICAgY29uc3Qgcm91dGVTZWdtZW50ID0gbWF0Y2gucm91dGUucm91dGVTZWdtZW50cz8uW3JvdXRlSW5kZXhdO1xuICAgICAgY29uc3QgcHJldmlvdXNTZWdtZW50ID0gcmV1c2U/LnByZXZpb3VzU2VnbWVudHM/Lltyb3V0ZUluZGV4XTtcbiAgICAgIGlmIChcbiAgICAgICAgcHJldmlvdXNTZWdtZW50Py5yb3V0ZU5vZGUgPT09IHJvdXRlICYmXG4gICAgICAgIChyZXVzZT8uc2FtZVNlYXJjaCA9PT0gdHJ1ZSB8fFxuICAgICAgICAgIHJvdXRlLnByZXBhcmVTZWFyY2hCZWhhdmlvciA9PT0gJ3BhdGgnIHx8XG4gICAgICAgICAgcHJlcGFyZSA9PSBudWxsKSAmJlxuICAgICAgICBhcmVTZWdtZW50UGFyYW1zRXF1YWwoXG4gICAgICAgICAgcm91dGVTZWdtZW50Py5wYXJhbU5hbWVzID8/IFtdLFxuICAgICAgICAgIHJldXNlPy5wcmV2aW91c1BhcmFtcyxcbiAgICAgICAgICBtYXRjaC5wYXJhbXMsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcHJldmlvdXNTZWdtZW50O1xuICAgICAgfVxuXG4gICAgICBsZXQgbW9kdWxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGlmIChcbiAgICAgICAgcmVzb3VyY2VQYWdlICE9IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIHJlc291cmNlUGFnZS5nZXRNb2R1bGVJZCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkTW9kdWxlSWQgPSByZXNvdXJjZVBhZ2UuZ2V0TW9kdWxlSWQoKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXNvbHZlZE1vZHVsZUlkID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIG1vZHVsZUlkID0gcmVzb2x2ZWRNb2R1bGVJZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsZXQgcHJlcGFyZVN0YXJ0ZWRBdCA9IDA7XG4gICAgICBpZiAoaW5zdHJ1bWVudGF0aW9uICE9IG51bGwpIHtcbiAgICAgICAgcHJlcGFyZVN0YXJ0ZWRBdCA9IERhdGUubm93KCk7XG4gICAgICAgIGVtaXRQcmVwYXJlSW5zdHJ1bWVudGF0aW9uKGluc3RydW1lbnRhdGlvbiwge1xuICAgICAgICAgIGtpbmQ6ICdwcmVwYXJlLXN0YXJ0JyxcbiAgICAgICAgICBzb3VyY2U6IGluc3RydW1lbnRhdGlvbi5zb3VyY2UsXG4gICAgICAgICAgdGltZXN0YW1wOiBwcmVwYXJlU3RhcnRlZEF0LFxuICAgICAgICAgIGxvY2F0aW9uOiBpbnN0cnVtZW50YXRpb24ubG9jYXRpb24sXG4gICAgICAgICAgcm91dGVQYXRoOiBwYXRoLFxuICAgICAgICAgIG1vZHVsZUlkLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbGV0IHByZXBhcmVkUmVzb3VyY2U6IFByZXBhcmVkTWF0Y2hSb3V0ZVsncHJlcGFyZWRSZXNvdXJjZSddO1xuICAgICAgaWYgKHByZXBhcmUgIT0gbnVsbCkge1xuICAgICAgICBwcmVwYXJlZFJlc291cmNlID0gY3JlYXRlUHJlcGFyZWRWYWx1ZVJlc291cmNlKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gcHJlcGFyZSh7XG4gICAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICAgIG1hdGNoZWRSb3V0ZSxcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICByZXNvdXJjZVBhZ2UsXG4gICAgICAgICAgICAvLyBGaXggT2JqZWN0LmNyZWF0ZShudWxsKSBpc3N1ZSBpbiBwYXRoLXRvLXJlZ2V4cFxuICAgICAgICAgICAgdmFyaWFibGVzOiB7IC4uLm1hdGNoLnBhcmFtcyB9LFxuICAgICAgICAgICAgcXVlcnk6IHF1ZXJ5ID8/IHt9LFxuICAgICAgICAgICAgcmF3UXVlcnk6XG4gICAgICAgICAgICAgIHNlYXJjaFN0YXRlPy5yYXdRdWVyeSA/PyAocXVlcnkgYXMgUmF3UXVlcnkgfCB1bmRlZmluZWQpID8/IHt9LFxuICAgICAgICAgICAgZmlsdGVyczogc2VhcmNoU3RhdGU/LmZpbHRlcnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBFYWdlcmx5IGV2YWx1YXRlIHByZXBhcmUgc28gdGhlIHByZXBhcmVkIHJlc291cmNlIGltbWVkaWF0ZWx5IHJlZmxlY3RzXG4gICAgICAgIC8vIHN5bmMgcmVzb2x1dGlvbiBvciBhc3luYyBwZW5kaW5nIHN0YXRlIGZvciB0aGUgY3VycmVudCByb3V0ZSBzbmFwc2hvdC5cbiAgICAgICAgY29uc3QgcHJlcGFyZWRMb2FkID0gcHJlcGFyZWRSZXNvdXJjZS5sb2FkKCk7XG5cbiAgICAgICAgaWYgKGluc3RydW1lbnRhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgcHJlcGFyZWRMb2FkXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbmlzaGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgICBlbWl0UHJlcGFyZUluc3RydW1lbnRhdGlvbihpbnN0cnVtZW50YXRpb24sIHtcbiAgICAgICAgICAgICAgICBraW5kOiAncHJlcGFyZS1jb21wbGV0ZScsXG4gICAgICAgICAgICAgICAgc291cmNlOiBpbnN0cnVtZW50YXRpb24uc291cmNlLFxuICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogZmluaXNoZWRBdCxcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjogaW5zdHJ1bWVudGF0aW9uLmxvY2F0aW9uLFxuICAgICAgICAgICAgICAgIHJvdXRlUGF0aDogcGF0aCxcbiAgICAgICAgICAgICAgICBtb2R1bGVJZCxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbk1zOiBmaW5pc2hlZEF0IC0gcHJlcGFyZVN0YXJ0ZWRBdCxcbiAgICAgICAgICAgICAgICBoYXNQcmVwYXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdyZXNvbHZlZCcsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbmlzaGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgICBlbWl0UHJlcGFyZUluc3RydW1lbnRhdGlvbihpbnN0cnVtZW50YXRpb24sIHtcbiAgICAgICAgICAgICAgICBraW5kOiAncHJlcGFyZS1jb21wbGV0ZScsXG4gICAgICAgICAgICAgICAgc291cmNlOiBpbnN0cnVtZW50YXRpb24uc291cmNlLFxuICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogZmluaXNoZWRBdCxcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjogaW5zdHJ1bWVudGF0aW9uLmxvY2F0aW9uLFxuICAgICAgICAgICAgICAgIHJvdXRlUGF0aDogcGF0aCxcbiAgICAgICAgICAgICAgICBtb2R1bGVJZCxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbk1zOiBmaW5pc2hlZEF0IC0gcHJlcGFyZVN0YXJ0ZWRBdCxcbiAgICAgICAgICAgICAgICBoYXNQcmVwYXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdyZWplY3RlZCcsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJlcGFyZWRMb2FkLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIC8vIEludGVudGlvbmFsbHkgaWdub3JlZDogcm91dGUgcmVuZGVyaW5nL2Vycm9yIGJvdW5kYXJpZXMgb3duIHRoZSBmYWlsdXJlLlxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpbnN0cnVtZW50YXRpb24gIT0gbnVsbCAmJiBwcmVwYXJlID09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZmluaXNoZWRBdCA9IERhdGUubm93KCk7XG4gICAgICAgIGVtaXRQcmVwYXJlSW5zdHJ1bWVudGF0aW9uKGluc3RydW1lbnRhdGlvbiwge1xuICAgICAgICAgIGtpbmQ6ICdwcmVwYXJlLWNvbXBsZXRlJyxcbiAgICAgICAgICBzb3VyY2U6IGluc3RydW1lbnRhdGlvbi5zb3VyY2UsXG4gICAgICAgICAgdGltZXN0YW1wOiBmaW5pc2hlZEF0LFxuICAgICAgICAgIGxvY2F0aW9uOiBpbnN0cnVtZW50YXRpb24ubG9jYXRpb24sXG4gICAgICAgICAgcm91dGVQYXRoOiBwYXRoLFxuICAgICAgICAgIG1vZHVsZUlkLFxuICAgICAgICAgIGR1cmF0aW9uTXM6IGZpbmlzaGVkQXQgLSBwcmVwYXJlU3RhcnRlZEF0LFxuICAgICAgICAgIGhhc1ByZXBhcmVkOiBmYWxzZSxcbiAgICAgICAgICBzdGF0dXM6ICdyZXNvbHZlZCcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzb3VyY2VQYWdlICE9IG51bGwgJiYgcmVzb3VyY2VQYWdlLmdldCgpID09IG51bGwpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUocmVzb3VyY2VQYWdlLmxvYWQoKSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgLy8gSW50ZW50aW9uYWxseSBpZ25vcmVkOiByb3V0ZSByZW5kZXJpbmcvZXJyb3IgYm91bmRhcmllcyBvd24gdGhlIGZhaWx1cmUuXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIEludGVudGlvbmFsbHkgaWdub3JlZDogcm91dGUgcmVuZGVyaW5nL2Vycm9yIGJvdW5kYXJpZXMgb3duIHRoZSBmYWlsdXJlLlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICByb3V0ZU5vZGU6IHJvdXRlLFxuICAgICAgICBwYXRoLFxuICAgICAgICBmdWxsUGF0aDogcm91dGVTZWdtZW50Py5mdWxsUGF0aCA/PyBwYXRoLFxuICAgICAgICBzZWdtZW50S2V5OlxuICAgICAgICAgIHJvdXRlU2VnbWVudD8ua2V5ID8/IGJ1aWxkSGlnaGxpZ2h0SWQocGF0aCwgcm91dGVJbmRleCwgbW9kdWxlSWQpLFxuICAgICAgICBwYXJhbU5hbWVzOiByb3V0ZVNlZ21lbnQ/LnBhcmFtTmFtZXMgPz8gW10sXG4gICAgICAgIHNlZ21lbnRJbmRleDogcm91dGVJbmRleCxcbiAgICAgICAgcHJlcGFyZWRSZXNvdXJjZSxcbiAgICAgICAgcmVkaXJlY3RUbzogbWF0Y2hlZFJvdXRlLnJlZGlyZWN0VG8gPz8gbnVsbCxcbiAgICAgICAgcmVuZGVyLFxuICAgICAgICByZXNvdXJjZVBhZ2UsXG4gICAgICAgIHN1c3BlbnNlQm91bmRhcnk6IHN1c3BlbnNlQm91bmRhcnkgPz8gJ2luaGVyaXQnLFxuICAgICAgICBmYWxsYmFjayxcbiAgICAgICAgaGlnaGxpZ2h0SWQ6IGJ1aWxkSGlnaGxpZ2h0SWQocGF0aCwgcm91dGVJbmRleCwgbW9kdWxlSWQpLFxuICAgICAgICBxdWVyeVNjaGVtYSxcbiAgICAgIH07XG4gICAgfSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG1hdGNoLFxuICAgIHNlZ21lbnRzLFxuICAgIHJvdXRlczogc2VnbWVudHMsXG4gIH07XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgZXZlcnkgYXN5bmMgcHJlcGFyZSByZXNvdXJjZSBmb3IgYSBtYXRjaGVkIHJvdXRlIGhpZXJhcmNoeS5cbiAqXG4gKiBAcGFyYW0gbWF0Y2ggLSBNYXRjaGVkIHJvdXRlIGRlc2NyaXB0b3IgKG9yIGBudWxsYCB3aGVuIG5vdGhpbmcgbWF0Y2hlZCkuXG4gKiBAcGFyYW0gcXVlcnkgLSBPcHRpb25hbCBxdWVyeSBvYmplY3QgZm9yd2FyZGVkIHRvIHByZXBhcmUgZnVuY3Rpb25zLlxuICogQHBhcmFtIGluc3RydW1lbnRhdGlvbiAtIE9wdGlvbmFsIGluc3RydW1lbnRhdGlvbiBzaW5rIGZvciBwcmVwYXJlIGxpZmVjeWNsZSBldmVudHMuXG4gKiBAcGFyYW0gY29udGV4dCAtIE9wdGlvbmFsIHJvdXRlciBjb250ZXh0IGZvcndhcmRlZCB0byBwcmVwYXJlIGZ1bmN0aW9ucy5cbiAqIEByZXR1cm5zIFByZXBhcmVkIGhpZXJhcmNoeSB3aXRoIGNvbmNyZXRlIHByZXBhcmVkIHZhbHVlcyBpbnN0ZWFkIG9mIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXBhcmVNYXRjaEFzeW5jPFxuICBUUGFyYW1zIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+KFxuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRQYXJhbXM+IHwgbnVsbCxcbiAgcXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgaW5zdHJ1bWVudGF0aW9uPzogUHJlcGFyZUluc3RydW1lbnRhdGlvbixcbiAgY29udGV4dD86IFRDb250ZXh0LFxuKTogUHJvbWlzZTxSZXNvbHZlZFByZXBhcmVkTWF0Y2g8VFBhcmFtcywgVENvbnRleHQ+PiB7XG4gIGNvbnN0IHByZXBhcmVkTWF0Y2ggPSBwcmVwYXJlTWF0Y2gobWF0Y2gsIHF1ZXJ5LCBpbnN0cnVtZW50YXRpb24sIGNvbnRleHQpO1xuICBjb25zdCBzZWdtZW50cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIHByZXBhcmVkTWF0Y2guc2VnbWVudHMubWFwKFxuICAgICAgYXN5bmMgKHJvdXRlKTogUHJvbWlzZTxSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0Pj4gPT4ge1xuICAgICAgICBsZXQgcHJlcGFyZWQ6IHVua25vd247XG4gICAgICAgIGlmIChyb3V0ZS5wcmVwYXJlZFJlc291cmNlICE9IG51bGwpIHtcbiAgICAgICAgICBwcmVwYXJlZCA9IGF3YWl0IHJvdXRlLnByZXBhcmVkUmVzb3VyY2UubG9hZCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcm91dGVOb2RlOiByb3V0ZS5yb3V0ZU5vZGUsXG4gICAgICAgICAgcGF0aDogcm91dGUucGF0aCxcbiAgICAgICAgICBmdWxsUGF0aDogcm91dGUuZnVsbFBhdGgsXG4gICAgICAgICAgc2VnbWVudEtleTogcm91dGUuc2VnbWVudEtleSxcbiAgICAgICAgICBwYXJhbU5hbWVzOiByb3V0ZS5wYXJhbU5hbWVzLFxuICAgICAgICAgIHNlZ21lbnRJbmRleDogcm91dGUuc2VnbWVudEluZGV4LFxuICAgICAgICAgIHByZXBhcmVkLFxuICAgICAgICAgIHJlZGlyZWN0VG86IHJvdXRlLnJlZGlyZWN0VG8sXG4gICAgICAgICAgcmVuZGVyOiByb3V0ZS5yZW5kZXIsXG4gICAgICAgICAgcmVzb3VyY2VQYWdlOiByb3V0ZS5yZXNvdXJjZVBhZ2UsXG4gICAgICAgICAgc3VzcGVuc2VCb3VuZGFyeTogcm91dGUuc3VzcGVuc2VCb3VuZGFyeSxcbiAgICAgICAgICBmYWxsYmFjazogcm91dGUuZmFsbGJhY2ssXG4gICAgICAgICAgaGlnaGxpZ2h0SWQ6IHJvdXRlLmhpZ2hsaWdodElkLFxuICAgICAgICAgIHF1ZXJ5U2NoZW1hOiByb3V0ZS5xdWVyeVNjaGVtYSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgKSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG1hdGNoOiBwcmVwYXJlZE1hdGNoLm1hdGNoLFxuICAgIHNlZ21lbnRzLFxuICAgIHJvdXRlczogc2VnbWVudHMsXG4gIH07XG59XG5cbi8qKlxuICogUm91dGUgaGVscGVyIHRoYXQgcHJlc2VydmVzIFR5cGVTY3JpcHQgaW5mZXJlbmNlIChpbmNsdWRpbmcgY29uZGl0aW9uYWwgcXVlcnktc2NoZW1hIGluZmVyZW5jZSkuXG4gKlxuICogQHBhcmFtIHJvdXRlIC0gUm91dGUgZGVmaW5pdGlvbiB0byByZXR1cm4gdW5jaGFuZ2VkIHdpdGggaW5mZXJyZWQgZ2VuZXJpY3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByPFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQgPSBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUQ2hpbGRyZW4gZXh0ZW5kcyByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW10gfCB1bmRlZmluZWQgPVxuICAgIHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXSB8IHVuZGVmaW5lZCxcbj4oXG4gIHJvdXRlOiBSb3V0ZTxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnksIFMsIFRDaGlsZHJlbj4sXG4pOiBSb3V0ZTxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnksIFMsIFRDaGlsZHJlbj4ge1xuICByZXR1cm4gcm91dGU7XG59XG4iXX0=
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUJBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBbUJuRSxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLElBQXVCLEVBQ3ZCLEtBQXdCLEVBQ2YsRUFBRTtJQUNYLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsT0FBTyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFHLENBQzVCLFVBQTZCLEVBQzdCLElBQTJCLEVBQzNCLEtBQWdCLEVBQ1AsRUFBRTtJQUNYLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFD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QUNuQyxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU87WUFDTCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxRQUFRO1lBQ1IsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztTQUMvQixDQUFDO0lBQ0osQ0FBQyxDQUNGLENBQ0YsQ0FBQztJQUVGLE9BQU87UUFDTCxLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUs7UUFDMUIsUUFBUTtLQUNULENBQUM7QUFDSixDQUFDO0FBT0QsTUFBTSxVQUFVLENBQUMsQ0FTZixLQUFtRTtJQUVuRSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcbmltcG9ydCB0eXBlIHsgSGlzdG9yeUxvY2F0aW9uU25hcHNob3QgfSBmcm9tICcuL2hpc3RvcnkvdHlwZXMuanMnO1xuXG5pbXBvcnQge1xuICB0eXBlIEZpbHRlclNjaGVtYSxcbiAgdHlwZSBQcmVwYXJlUmVzdWx0LFxuICB0eXBlIFByZXBhcmVkUm91dGVDaGFpbixcbiAgdHlwZSBQcmVwYXJlZFJvdXRlU2VnbWVudCxcbiAgdHlwZSBSZWRpcmVjdCxcbiAgdHlwZSBSZXNvbHZlZFByZXBhcmVkUm91dGVDaGFpbixcbiAgdHlwZSBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50LFxuICB0eXBlIFJvdXRlLFxuICB0eXBlIFJvdXRlTm9kZSxcbiAgdHlwZSBSb3V0ZXJNYXRjaGVkUm91dGUsXG4gIHR5cGUgUmF3UXVlcnksXG4gIHR5cGUgVW5rbm93bkZpbHRlcnMsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIFJvdXRlclByZXBhcmVFdmVudCxcbiAgUm91dGVyTmF2aWdhdGlvblNvdXJjZSxcbiAgUm91dGVyTG9jYXRpb25TbmFwc2hvdCxcbn0gZnJvbSAnLi9pbnN0cnVtZW50YXRpb24vSW5zdHJ1bWVudGF0aW9uLmpzJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGUgfSBmcm9tICcuL2J1aWxkZXIuanMnO1xuaW1wb3J0IHsgY3JlYXRlUHJlcGFyZWRWYWx1ZVJlc291cmNlIH0gZnJvbSAnLi9wcmVwYXJlUmVzb3VyY2UuanMnO1xuXG50eXBlIFByZXBhcmVJbnN0cnVtZW50YXRpb24gPSB7XG4gIGVtaXQ6IChldmVudDogUm91dGVyUHJlcGFyZUV2ZW50KSA9PiB2b2lkO1xuICBzb3VyY2U6IFJvdXRlck5hdmlnYXRpb25Tb3VyY2U7XG4gIGxvY2F0aW9uOiBSb3V0ZXJMb2NhdGlvblNuYXBzaG90O1xufTtcblxudHlwZSBQcmVwYXJlUmV1c2VJbnB1dDxUQ29udGV4dD4gPSB7XG4gIHByZXZpb3VzU2VnbWVudHM/OiBQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD5bXTtcbiAgcHJldmlvdXNQYXJhbXM/OiBQYXJhbURhdGE7XG4gIHNhbWVTZWFyY2g/OiBib29sZWFuO1xufTtcblxudHlwZSBQcmVwYXJlU2VhcmNoU3RhdGUgPSB7XG4gIHJhd1F1ZXJ5PzogUmF3UXVlcnk7XG4gIGZpbHRlcnM/OiBVbmtub3duRmlsdGVycztcbn07XG5cbmNvbnN0IGlzUGFyYW1WYWx1ZUVxdWFsID0gKFxuICBsZWZ0OiBQYXJhbURhdGFbc3RyaW5nXSxcbiAgcmlnaHQ6IFBhcmFtRGF0YVtzdHJpbmddLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGxlZnQpIHx8IEFycmF5LmlzQXJyYXkocmlnaHQpKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGxlZnQpIHx8ICFBcnJheS5pc0FycmF5KHJpZ2h0KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobGVmdC5sZW5ndGggIT09IHJpZ2h0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gbGVmdC5ldmVyeSgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4gdmFsdWUgPT09IHJpZ2h0W2luZGV4XTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gbGVmdCA9PT0gcmlnaHQ7XG59O1xuXG5jb25zdCBhcmVTZWdtZW50UGFyYW1zRXF1YWwgPSAoXG4gIHBhcmFtTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBsZWZ0OiBQYXJhbURhdGEgfCB1bmRlZmluZWQsXG4gIHJpZ2h0OiBQYXJhbURhdGEsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKHBhcmFtTmFtZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKGxlZnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gcGFyYW1OYW1lcy5ldmVyeSgocGFyYW1OYW1lKSA9PiB7XG4gICAgcmV0dXJuIGlzUGFyYW1WYWx1ZUVxdWFsKGxlZnRbcGFyYW1OYW1lXSwgcmlnaHRbcGFyYW1OYW1lXSk7XG4gIH0pO1xufTtcblxuLyoqIEVtaXRzIHByZXBhcmUgaW5zdHJ1bWVudGF0aW9uIHdpdGhvdXQgYWxsb3dpbmcgaW5zdHJ1bWVudGF0aW9uIGZhaWx1cmVzIHRvIGFmZmVjdCByb3V0aW5nLiAqL1xuZnVuY3Rpb24gZW1pdFByZXBhcmVJbnN0cnVtZW50YXRpb24oXG4gIGluc3RydW1lbnRhdGlvbjogUHJlcGFyZUluc3RydW1lbnRhdGlvbiB8IHVuZGVmaW5lZCxcbiAgZXZlbnQ6IFJvdXRlclByZXBhcmVFdmVudCxcbik6IHZvaWQge1xuICBpZiAoaW5zdHJ1bWVudGF0aW9uID09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdHJ5IHtcbiAgICBpbnN0cnVtZW50YXRpb24uZW1pdChldmVudCk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIEluc3RydW1lbnRhdGlvbiBtdXN0IG5ldmVyIGJyZWFrIHJvdXRpbmcgb3IgcHJlcGFyZSBsaWZlY3ljbGUuXG4gIH1cbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgZmlyc3QgZmxhdCByb3V0ZSBtYXRjaGluZyB0aGUgcHJvdmlkZWQgbG9jYXRpb24uXG4gKlxuICogQHBhcmFtIHJvdXRlcyAtIEZsYXR0ZW5lZCByb3V0ZSBsaXN0IHRvIGV2YWx1YXRlLlxuICogQHBhcmFtIGxvY2F0aW9uIC0gQnJvd3NlciBsb2NhdGlvbiB3aG9zZSBwYXRobmFtZSBzaG91bGQgYmUgbWF0Y2hlZC5cbiAqIEByZXR1cm5zIE1hdGNoZWQgcm91dGUgd2l0aCBwYXJhbXMgb3IgYG51bGxgIGlmIG5vbmUgbWF0Y2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXRjaGVkUm91dGU8VFBhcmFtcyBleHRlbmRzIFBhcmFtRGF0YT4oXG4gIHJvdXRlczogRmxhdFJvdXRlPFRQYXJhbXM+W10sXG4gIGxvY2F0aW9uOiBIaXN0b3J5TG9jYXRpb25TbmFwc2hvdCxcbik6IFJvdXRlck1hdGNoZWRSb3V0ZTxUUGFyYW1zPiB8IG51bGwge1xuICBmb3IgKGNvbnN0IHJvdXRlIG9mIHJvdXRlcykge1xuICAgIGNvbnN0IG1hdGNoID0gcm91dGUubWF0Y2hGdW5jdGlvbihsb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgaWYgKG1hdGNoICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgeyBwYXRoLCBwYXJhbXMgfSA9IG1hdGNoO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWF0Y2gsXG4gICAgICAgIHJvdXRlLFxuICAgICAgICBwYXRoLFxuICAgICAgICBwYXJhbXMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIERlcml2ZXMgYSBkZXRlcm1pbmlzdGljIGlkZW50aWZpZXIgdGhhdCBsaW5rcyBwcmVwYXJlZCByb3V0ZXMgdG8gRE9NIG1hcmtlcnMuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkSGlnaGxpZ2h0SWQoXG4gIHJvdXRlUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBpbmRleDogbnVtYmVyLFxuICBtb2R1bGVJZD86IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBpZiAodHlwZW9mIG1vZHVsZUlkID09PSAnc3RyaW5nJyAmJiBtb2R1bGVJZC50cmltKCkgIT09ICcnKSB7XG4gICAgcGFydHMucHVzaChgbW9kdWxlOiR7bW9kdWxlSWR9YCk7XG4gIH1cbiAgaWYgKHR5cGVvZiByb3V0ZVBhdGggPT09ICdzdHJpbmcnICYmIHJvdXRlUGF0aC50cmltKCkgIT09ICcnKSB7XG4gICAgcGFydHMucHVzaChgcGF0aDoke3JvdXRlUGF0aH1gKTtcbiAgfVxuICBpZiAocGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgcGFydHMucHVzaCgncm91dGUnKTtcbiAgfVxuICBwYXJ0cy5wdXNoKGBpbmRleDoke2luZGV4fWApO1xuICByZXR1cm4gcGFydHMuam9pbignfCcpO1xufVxuXG5leHBvcnQgY29uc3QgX190ZXN0VG9vbHMgPSB7XG4gIGJ1aWxkSGlnaGxpZ2h0SWQsXG4gIGFyZVNlZ21lbnRQYXJhbXNFcXVhbCxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogUHJlcGFyZXMgYSBtYXRjaGVkIHJvdXRlIGJ5IGV4ZWN1dGluZyBgcHJlcGFyZWAgY2FsbGJhY2tzIGFuZCByZXNvbHZpbmcgcmVzb3VyY2UgcGFnZXMuXG4gKlxuICogQHBhcmFtIG1hdGNoIC0gTWF0Y2hlZCByb3V0ZSBkZXNjcmlwdG9yIChvciBgbnVsbGAgd2hlbiBub3RoaW5nIG1hdGNoZWQpLlxuICogQHBhcmFtIHF1ZXJ5IC0gT3B0aW9uYWwgcXVlcnkgb2JqZWN0IGZvcndhcmRlZCB0byBwcmVwYXJlIGZ1bmN0aW9ucy5cbiAqIEBwYXJhbSBjb250ZXh0IC0gT3B0aW9uYWwgcm91dGVyIGNvbnRleHQgZm9yd2FyZGVkIHRvIHByZXBhcmUgZnVuY3Rpb25zLlxuICogQHJldHVybnMgUHJlcGFyZWQgaGllcmFyY2h5IHJlYWR5IGZvciB0aGUgcmVuZGVyZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlTWF0Y2g8VFBhcmFtcyBleHRlbmRzIFBhcmFtRGF0YSwgVENvbnRleHQgPSB1bmtub3duPihcbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUUGFyYW1zPiB8IG51bGwsXG4gIHF1ZXJ5PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGluc3RydW1lbnRhdGlvbj86IFByZXBhcmVJbnN0cnVtZW50YXRpb24sXG4gIGNvbnRleHQ/OiBUQ29udGV4dCxcbiAgcmV1c2U/OiBQcmVwYXJlUmV1c2VJbnB1dDxUQ29udGV4dD4sXG4gIHNlYXJjaFN0YXRlPzogUHJlcGFyZVNlYXJjaFN0YXRlLFxuKTogUHJlcGFyZWRSb3V0ZUNoYWluPFRQYXJhbXMsIFRDb250ZXh0PiB7XG4gIC8vIE5PVEU6IFJ1bnRpbWUgcmV0YWlucyBhIGdlbmVyaWMgUHJlcGFyZWRSZXN1bHQ7IHR5cGUtbGV2ZWwgbmFycm93aW5nIGlzIGFjaGlldmVkIGV4dGVybmFsbHlcbiAgLy8gdGhyb3VnaCB0aGUgcm91dGUgdW5pb24gYW5kIFByZXBhcmVkQWNjZXNzIGhlbHBlcnMuIFdlIGludGVudGlvbmFsbHkgYXZvaWQgaW5qZWN0aW5nXG4gIC8vIGdlbmVyaWMgcGFyYW1ldGVycyBoZXJlIHRvIGtlZXAgcnVudGltZSBsaWdodHdlaWdodCB3aGlsZSBzdGlsbCBlbmFibGluZyBjb21waWxlLXRpbWVcbiAgLy8gZGlzY3JpbWluYXRpb24gaW4gdXNlcmxhbmQgdmlhIGNyZWF0ZVJvdXRlciBnZW5lcmljcy5cbiAgaWYgKG1hdGNoID09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWF0Y2gsXG4gICAgICBzZWdtZW50czogW10sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoZWRSb3V0ZSA9IG1hdGNoLnJvdXRlO1xuXG4gIGNvbnN0IHNlZ21lbnRzOiBQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD5bXSA9IG1hdGNoLnJvdXRlLnJvdXRlcy5tYXAoXG4gICAgKHJvdXRlLCByb3V0ZUluZGV4KSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIHByZXBhcmUsXG4gICAgICAgIHF1ZXJ5U2NoZW1hLFxuICAgICAgICByZXNvdXJjZVBhZ2UsXG4gICAgICAgIHJlbmRlcixcbiAgICAgICAgc3VzcGVuc2VCb3VuZGFyeSxcbiAgICAgICAgZmFsbGJhY2ssXG4gICAgICB9ID0gcm91dGU7XG4gICAgICBjb25zdCByb3V0ZVNlZ21lbnQgPSBtYXRjaC5yb3V0ZS5yb3V0ZVNlZ21lbnRzPy5bcm91dGVJbmRleF07XG4gICAgICBjb25zdCBwcmV2aW91c1NlZ21lbnQgPSByZXVzZT8ucHJldmlvdXNTZWdtZW50cz8uW3JvdXRlSW5kZXhdO1xuICAgICAgaWYgKFxuICAgICAgICBwcmV2aW91c1NlZ21lbnQ/LnJvdXRlTm9kZSA9PT0gcm91dGUgJiZcbiAgICAgICAgKHJldXNlPy5zYW1lU2VhcmNoID09PSB0cnVlIHx8XG4gICAgICAgICAgcm91dGUucHJlcGFyZVNlYXJjaEJlaGF2aW9yID09PSAncGF0aCcgfHxcbiAgICAgICAgICBwcmVwYXJlID09IG51bGwpICYmXG4gICAgICAgIGFyZVNlZ21lbnRQYXJhbXNFcXVhbChcbiAgICAgICAgICByb3V0ZVNlZ21lbnQ/LnBhcmFtTmFtZXMgPz8gW10sXG4gICAgICAgICAgcmV1c2U/LnByZXZpb3VzUGFyYW1zLFxuICAgICAgICAgIG1hdGNoLnBhcmFtcyxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBwcmV2aW91c1NlZ21lbnQ7XG4gICAgICB9XG5cbiAgICAgIGxldCBtb2R1bGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKFxuICAgICAgICByZXNvdXJjZVBhZ2UgIT0gbnVsbCAmJlxuICAgICAgICB0eXBlb2YgcmVzb3VyY2VQYWdlLmdldE1vZHVsZUlkID09PSAnZnVuY3Rpb24nXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRNb2R1bGVJZCA9IHJlc291cmNlUGFnZS5nZXRNb2R1bGVJZCgpO1xuICAgICAgICBpZiAodHlwZW9mIHJlc29sdmVkTW9kdWxlSWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgbW9kdWxlSWQgPSByZXNvbHZlZE1vZHVsZUlkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxldCBwcmVwYXJlU3RhcnRlZEF0ID0gMDtcbiAgICAgIGlmIChpbnN0cnVtZW50YXRpb24gIT0gbnVsbCkge1xuICAgICAgICBwcmVwYXJlU3RhcnRlZEF0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgZW1pdFByZXBhcmVJbnN0cnVtZW50YXRpb24oaW5zdHJ1bWVudGF0aW9uLCB7XG4gICAgICAgICAga2luZDogJ3ByZXBhcmUtc3RhcnQnLFxuICAgICAgICAgIHNvdXJjZTogaW5zdHJ1bWVudGF0aW9uLnNvdXJjZSxcbiAgICAgICAgICB0aW1lc3RhbXA6IHByZXBhcmVTdGFydGVkQXQsXG4gICAgICAgICAgbG9jYXRpb246IGluc3RydW1lbnRhdGlvbi5sb2NhdGlvbixcbiAgICAgICAgICByb3V0ZVBhdGg6IHBhdGgsXG4gICAgICAgICAgbW9kdWxlSWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBsZXQgcHJlcGFyZWRSZXNvdXJjZTogUHJlcGFyZWRSb3V0ZVNlZ21lbnRbJ3ByZXBhcmVkUmVzb3VyY2UnXTtcbiAgICAgIGlmIChwcmVwYXJlICE9IG51bGwpIHtcbiAgICAgICAgcHJlcGFyZWRSZXNvdXJjZSA9IGNyZWF0ZVByZXBhcmVkVmFsdWVSZXNvdXJjZSgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHByZXBhcmUoe1xuICAgICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgICBtYXRjaGVkUm91dGUsXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcmVzb3VyY2VQYWdlLFxuICAgICAgICAgICAgLy8gRml4IE9iamVjdC5jcmVhdGUobnVsbCkgaXNzdWUgaW4gcGF0aC10by1yZWdleHBcbiAgICAgICAgICAgIHZhcmlhYmxlczogeyAuLi5tYXRjaC5wYXJhbXMgfSxcbiAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSA/PyB7fSxcbiAgICAgICAgICAgIHJhd1F1ZXJ5OlxuICAgICAgICAgICAgICBzZWFyY2hTdGF0ZT8ucmF3UXVlcnkgPz8gKHF1ZXJ5IGFzIFJhd1F1ZXJ5IHwgdW5kZWZpbmVkKSA/PyB7fSxcbiAgICAgICAgICAgIGZpbHRlcnM6IHNlYXJjaFN0YXRlPy5maWx0ZXJzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gRWFnZXJseSBldmFsdWF0ZSBwcmVwYXJlIHNvIHRoZSBwcmVwYXJlZCByZXNvdXJjZSBpbW1lZGlhdGVseSByZWZsZWN0c1xuICAgICAgICAvLyBzeW5jIHJlc29sdXRpb24gb3IgYXN5bmMgcGVuZGluZyBzdGF0ZSBmb3IgdGhlIGN1cnJlbnQgcm91dGUgc25hcHNob3QuXG4gICAgICAgIGNvbnN0IHByZXBhcmVkTG9hZCA9IHByZXBhcmVkUmVzb3VyY2UubG9hZCgpO1xuXG4gICAgICAgIGlmIChpbnN0cnVtZW50YXRpb24gIT0gbnVsbCkge1xuICAgICAgICAgIHByZXBhcmVkTG9hZFxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaW5pc2hlZEF0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgZW1pdFByZXBhcmVJbnN0cnVtZW50YXRpb24oaW5zdHJ1bWVudGF0aW9uLCB7XG4gICAgICAgICAgICAgICAga2luZDogJ3ByZXBhcmUtY29tcGxldGUnLFxuICAgICAgICAgICAgICAgIHNvdXJjZTogaW5zdHJ1bWVudGF0aW9uLnNvdXJjZSxcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IGZpbmlzaGVkQXQsXG4gICAgICAgICAgICAgICAgbG9jYXRpb246IGluc3RydW1lbnRhdGlvbi5sb2NhdGlvbixcbiAgICAgICAgICAgICAgICByb3V0ZVBhdGg6IHBhdGgsXG4gICAgICAgICAgICAgICAgbW9kdWxlSWQsXG4gICAgICAgICAgICAgICAgZHVyYXRpb25NczogZmluaXNoZWRBdCAtIHByZXBhcmVTdGFydGVkQXQsXG4gICAgICAgICAgICAgICAgaGFzUHJlcGFyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAncmVzb2x2ZWQnLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaW5pc2hlZEF0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgZW1pdFByZXBhcmVJbnN0cnVtZW50YXRpb24oaW5zdHJ1bWVudGF0aW9uLCB7XG4gICAgICAgICAgICAgICAga2luZDogJ3ByZXBhcmUtY29tcGxldGUnLFxuICAgICAgICAgICAgICAgIHNvdXJjZTogaW5zdHJ1bWVudGF0aW9uLnNvdXJjZSxcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IGZpbmlzaGVkQXQsXG4gICAgICAgICAgICAgICAgbG9jYXRpb246IGluc3RydW1lbnRhdGlvbi5sb2NhdGlvbixcbiAgICAgICAgICAgICAgICByb3V0ZVBhdGg6IHBhdGgsXG4gICAgICAgICAgICAgICAgbW9kdWxlSWQsXG4gICAgICAgICAgICAgICAgZHVyYXRpb25NczogZmluaXNoZWRBdCAtIHByZXBhcmVTdGFydGVkQXQsXG4gICAgICAgICAgICAgICAgaGFzUHJlcGFyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAncmVqZWN0ZWQnLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXBhcmVkTG9hZC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBJbnRlbnRpb25hbGx5IGlnbm9yZWQ6IHJvdXRlIHJlbmRlcmluZy9lcnJvciBib3VuZGFyaWVzIG93biB0aGUgZmFpbHVyZS5cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaW5zdHJ1bWVudGF0aW9uICE9IG51bGwgJiYgcHJlcGFyZSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGZpbmlzaGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICBlbWl0UHJlcGFyZUluc3RydW1lbnRhdGlvbihpbnN0cnVtZW50YXRpb24sIHtcbiAgICAgICAgICBraW5kOiAncHJlcGFyZS1jb21wbGV0ZScsXG4gICAgICAgICAgc291cmNlOiBpbnN0cnVtZW50YXRpb24uc291cmNlLFxuICAgICAgICAgIHRpbWVzdGFtcDogZmluaXNoZWRBdCxcbiAgICAgICAgICBsb2NhdGlvbjogaW5zdHJ1bWVudGF0aW9uLmxvY2F0aW9uLFxuICAgICAgICAgIHJvdXRlUGF0aDogcGF0aCxcbiAgICAgICAgICBtb2R1bGVJZCxcbiAgICAgICAgICBkdXJhdGlvbk1zOiBmaW5pc2hlZEF0IC0gcHJlcGFyZVN0YXJ0ZWRBdCxcbiAgICAgICAgICBoYXNQcmVwYXJlZDogZmFsc2UsXG4gICAgICAgICAgc3RhdHVzOiAncmVzb2x2ZWQnLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc291cmNlUGFnZSAhPSBudWxsICYmIHJlc291cmNlUGFnZS5nZXQoKSA9PSBudWxsKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHJlc291cmNlUGFnZS5sb2FkKCkpLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIC8vIEludGVudGlvbmFsbHkgaWdub3JlZDogcm91dGUgcmVuZGVyaW5nL2Vycm9yIGJvdW5kYXJpZXMgb3duIHRoZSBmYWlsdXJlLlxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBJbnRlbnRpb25hbGx5IGlnbm9yZWQ6IHJvdXRlIHJlbmRlcmluZy9lcnJvciBib3VuZGFyaWVzIG93biB0aGUgZmFpbHVyZS5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcm91dGVOb2RlOiByb3V0ZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgZnVsbFBhdGg6IHJvdXRlU2VnbWVudD8uZnVsbFBhdGggPz8gcGF0aCxcbiAgICAgICAgc2VnbWVudEtleTpcbiAgICAgICAgICByb3V0ZVNlZ21lbnQ/LmtleSA/PyBidWlsZEhpZ2hsaWdodElkKHBhdGgsIHJvdXRlSW5kZXgsIG1vZHVsZUlkKSxcbiAgICAgICAgcGFyYW1OYW1lczogcm91dGVTZWdtZW50Py5wYXJhbU5hbWVzID8/IFtdLFxuICAgICAgICBzZWdtZW50SW5kZXg6IHJvdXRlSW5kZXgsXG4gICAgICAgIHByZXBhcmVkUmVzb3VyY2UsXG4gICAgICAgIHJlZGlyZWN0VG86IG1hdGNoZWRSb3V0ZS5yZWRpcmVjdFRvID8/IG51bGwsXG4gICAgICAgIHJlbmRlcixcbiAgICAgICAgcmVzb3VyY2VQYWdlLFxuICAgICAgICBzdXNwZW5zZUJvdW5kYXJ5OiBzdXNwZW5zZUJvdW5kYXJ5ID8/ICdpbmhlcml0JyxcbiAgICAgICAgZmFsbGJhY2ssXG4gICAgICAgIGhpZ2hsaWdodElkOiBidWlsZEhpZ2hsaWdodElkKHBhdGgsIHJvdXRlSW5kZXgsIG1vZHVsZUlkKSxcbiAgICAgICAgcXVlcnlTY2hlbWEsXG4gICAgICB9O1xuICAgIH0sXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBtYXRjaCxcbiAgICBzZWdtZW50cyxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBldmVyeSBhc3luYyBwcmVwYXJlIHJlc291cmNlIGZvciBhIG1hdGNoZWQgcm91dGUgaGllcmFyY2h5LlxuICpcbiAqIEBwYXJhbSBtYXRjaCAtIE1hdGNoZWQgcm91dGUgZGVzY3JpcHRvciAob3IgYG51bGxgIHdoZW4gbm90aGluZyBtYXRjaGVkKS5cbiAqIEBwYXJhbSBxdWVyeSAtIE9wdGlvbmFsIHF1ZXJ5IG9iamVjdCBmb3J3YXJkZWQgdG8gcHJlcGFyZSBmdW5jdGlvbnMuXG4gKiBAcGFyYW0gaW5zdHJ1bWVudGF0aW9uIC0gT3B0aW9uYWwgaW5zdHJ1bWVudGF0aW9uIHNpbmsgZm9yIHByZXBhcmUgbGlmZWN5Y2xlIGV2ZW50cy5cbiAqIEBwYXJhbSBjb250ZXh0IC0gT3B0aW9uYWwgcm91dGVyIGNvbnRleHQgZm9yd2FyZGVkIHRvIHByZXBhcmUgZnVuY3Rpb25zLlxuICogQHJldHVybnMgUHJlcGFyZWQgaGllcmFyY2h5IHdpdGggY29uY3JldGUgcHJlcGFyZWQgdmFsdWVzIGluc3RlYWQgb2YgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZU1hdGNoQXN5bmM8XG4gIFRQYXJhbXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4oXG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFBhcmFtcz4gfCBudWxsLFxuICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBpbnN0cnVtZW50YXRpb24/OiBQcmVwYXJlSW5zdHJ1bWVudGF0aW9uLFxuICBjb250ZXh0PzogVENvbnRleHQsXG4pOiBQcm9taXNlPFJlc29sdmVkUHJlcGFyZWRSb3V0ZUNoYWluPFRQYXJhbXMsIFRDb250ZXh0Pj4ge1xuICBjb25zdCBwcmVwYXJlZE1hdGNoID0gcHJlcGFyZU1hdGNoKG1hdGNoLCBxdWVyeSwgaW5zdHJ1bWVudGF0aW9uLCBjb250ZXh0KTtcbiAgY29uc3Qgc2VnbWVudHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBwcmVwYXJlZE1hdGNoLnNlZ21lbnRzLm1hcChcbiAgICAgIGFzeW5jIChyb3V0ZSk6IFByb21pc2U8UmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD4+ID0+IHtcbiAgICAgICAgbGV0IHByZXBhcmVkOiB1bmtub3duO1xuICAgICAgICBpZiAocm91dGUucHJlcGFyZWRSZXNvdXJjZSAhPSBudWxsKSB7XG4gICAgICAgICAgcHJlcGFyZWQgPSBhd2FpdCByb3V0ZS5wcmVwYXJlZFJlc291cmNlLmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJvdXRlTm9kZTogcm91dGUucm91dGVOb2RlLFxuICAgICAgICAgIHBhdGg6IHJvdXRlLnBhdGgsXG4gICAgICAgICAgZnVsbFBhdGg6IHJvdXRlLmZ1bGxQYXRoLFxuICAgICAgICAgIHNlZ21lbnRLZXk6IHJvdXRlLnNlZ21lbnRLZXksXG4gICAgICAgICAgcGFyYW1OYW1lczogcm91dGUucGFyYW1OYW1lcyxcbiAgICAgICAgICBzZWdtZW50SW5kZXg6IHJvdXRlLnNlZ21lbnRJbmRleCxcbiAgICAgICAgICBwcmVwYXJlZCxcbiAgICAgICAgICByZWRpcmVjdFRvOiByb3V0ZS5yZWRpcmVjdFRvLFxuICAgICAgICAgIHJlbmRlcjogcm91dGUucmVuZGVyLFxuICAgICAgICAgIHJlc291cmNlUGFnZTogcm91dGUucmVzb3VyY2VQYWdlLFxuICAgICAgICAgIHN1c3BlbnNlQm91bmRhcnk6IHJvdXRlLnN1c3BlbnNlQm91bmRhcnksXG4gICAgICAgICAgZmFsbGJhY2s6IHJvdXRlLmZhbGxiYWNrLFxuICAgICAgICAgIGhpZ2hsaWdodElkOiByb3V0ZS5oaWdobGlnaHRJZCxcbiAgICAgICAgICBxdWVyeVNjaGVtYTogcm91dGUucXVlcnlTY2hlbWEsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICksXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBtYXRjaDogcHJlcGFyZWRNYXRjaC5tYXRjaCxcbiAgICBzZWdtZW50cyxcbiAgfTtcbn1cblxuLyoqXG4gKiBSb3V0ZSBoZWxwZXIgdGhhdCBwcmVzZXJ2ZXMgVHlwZVNjcmlwdCBpbmZlcmVuY2UgKGluY2x1ZGluZyBjb25kaXRpb25hbCBxdWVyeS1zY2hlbWEgaW5mZXJlbmNlKS5cbiAqXG4gKiBAcGFyYW0gcm91dGUgLSBSb3V0ZSBkZWZpbml0aW9uIHRvIHJldHVybiB1bmNoYW5nZWQgd2l0aCBpbmZlcnJlZCBnZW5lcmljcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHI8XG4gIFRDb250ZXh0ID0gdW5rbm93bixcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCA9IFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRDaGlsZHJlbiBleHRlbmRzIHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXSB8IHVuZGVmaW5lZCA9XG4gICAgcmVhZG9ubHkgKFJvdXRlTm9kZSB8IFJlZGlyZWN0KVtdIHwgdW5kZWZpbmVkLFxuPihcbiAgcm91dGU6IFJvdXRlPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeSwgUywgVENoaWxkcmVuPixcbik6IFJvdXRlPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeSwgUywgVENoaWxkcmVuPiB7XG4gIHJldHVybiByb3V0ZTtcbn1cbiJdfQ==
@@ -69,7 +69,7 @@ export type FlatRouteInput<TVariables extends ParamData> = {
69
69
  routeSegments?: FlatRouteSegment[];
70
70
  redirectTo?: string;
71
71
  matchFunction: MatchFunction<TVariables>;
72
- routes: AnyRoute[];
72
+ routes: RouteNode[];
73
73
  };
74
74
  export type FlatRouteSegment = {
75
75
  key: string;
@@ -92,7 +92,6 @@ export type RouteRenderOpts<TContext, TPrepared extends PrepareResult, TVariable
92
92
  Component?: RouteReactComponent;
93
93
  prepared: TPrepared | undefined;
94
94
  preparedSegment: PreparedRouteSegment<TContext, TPrepared, TVariables, TQueryShape>;
95
- preparedRoute: PreparedRouteSegment<TContext, TPrepared, TVariables, TQueryShape>;
96
95
  preparedSegments: PreparedRouteSegments<TContext>;
97
96
  segmentIndex: number;
98
97
  leafSegment: PreparedRouteSegment<TContext>;
@@ -103,7 +102,6 @@ export type RouteRenderOpts<TContext, TPrepared extends PrepareResult, TVariable
103
102
  filters: S extends FilterSchema ? InferFilterResult<S> : UnknownFilters | undefined;
104
103
  };
105
104
  export type RouteRender<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined> = BivariantCallback<(opts: RouteRenderOpts<TContext, TPrepared, TVariables, TQueryShape, S>) => ReactElement | null | undefined | Promise<ReactElement | null | undefined>>;
106
- export type RouteRenderArgs<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined> = RouteRenderOpts<TContext, TPrepared, TVariables, TQueryShape, S>;
107
105
  export type PreparedRouteSegment<TContext = unknown, TPrepared extends PrepareResult = PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = {
108
106
  routeNode?: RouteNode;
109
107
  path?: string;
@@ -120,7 +118,6 @@ export type PreparedRouteSegment<TContext = unknown, TPrepared extends PrepareRe
120
118
  highlightId?: string;
121
119
  querySchema?: FilterSchema;
122
120
  };
123
- export type PreparedMatchRoute = PreparedRouteSegment;
124
121
  export type PreparedRouteSegments<TContext = unknown> = PreparedRouteSegment<TContext>[];
125
122
  export type PreparedRouteSegmentSnapshot = {
126
123
  routeNode?: RouteNode;
@@ -140,9 +137,7 @@ export type PreparedRouteSegmentSnapshot = {
140
137
  export type PreparedRouteChain<TVariables extends ParamData, TContext = unknown> = {
141
138
  match: RouterMatchedRoute<TVariables> | null;
142
139
  segments: PreparedRouteSegments<TContext>;
143
- routes: PreparedRouteSegments<TContext>;
144
140
  };
145
- export type PreparedMatch<TVariables extends ParamData, TContext = unknown> = PreparedRouteChain<TVariables, TContext>;
146
141
  export type ResolvedPreparedRouteSegment<TContext = unknown, TPrepared extends PrepareResult = PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = {
147
142
  routeNode?: RouteNode;
148
143
  path?: string;
@@ -159,13 +154,10 @@ export type ResolvedPreparedRouteSegment<TContext = unknown, TPrepared extends P
159
154
  highlightId?: string;
160
155
  querySchema?: FilterSchema;
161
156
  };
162
- export type ResolvedPreparedMatchRoute = ResolvedPreparedRouteSegment;
163
157
  export type ResolvedPreparedRouteChain<TVariables extends ParamData, TContext = unknown> = {
164
158
  match: RouterMatchedRoute<TVariables> | null;
165
159
  segments: ResolvedPreparedRouteSegment<TContext>[];
166
- routes: ResolvedPreparedRouteSegment<TContext>[];
167
160
  };
168
- export type ResolvedPreparedMatch<TVariables extends ParamData, TContext = unknown> = ResolvedPreparedRouteChain<TVariables, TContext>;
169
161
  export type RouteEntry<TVariables extends ParamData, S extends FilterSchema | undefined = FilterSchema | undefined, TContext = unknown> = {
170
162
  preparedMatch: PreparedRouteChain<TVariables, TContext>;
171
163
  activeLoadState: RouterActiveLoadState;
@@ -277,13 +269,11 @@ export type TypedFilterActions<S extends FilterSchema> = {
277
269
  replace?: boolean;
278
270
  }) => void;
279
271
  };
280
- export type RouteTreeNode = RouteNode;
281
272
  export type UnknownRoute<TContext = unknown> = Route<TContext, unknown>;
282
- export type AnyRoute = RouteNode;
283
273
  export type ChildRouteOf<R> = R extends {
284
274
  children?: readonly (infer C)[];
285
- } ? Extract<C, RouteTreeNode> : never;
286
- export type RouteTreeRouteUnion<R> = R extends RouteTreeNode ? R | RouteTreeRouteUnion<ChildRouteOf<R>> : never;
275
+ } ? Extract<C, RouteNode> : never;
276
+ export type RouteTreeRouteUnion<R> = R extends RouteNode ? R | RouteTreeRouteUnion<ChildRouteOf<R>> : never;
287
277
  export type RouteUnion<Routes extends readonly unknown[]> = RouteTreeRouteUnion<Routes[number]>;
288
278
  type RouteTypeParts<R> = R extends Route<infer TContext, infer TPrepared, infer TVars, infer TQuery, infer TSchema, infer TChildren extends readonly (RouteNode | Redirect)[] | undefined> ? {
289
279
  context: TContext;