@plumile/router 0.1.179 → 0.1.181

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 (54) hide show
  1. package/README.md +2 -2
  2. package/lib/esm/ResourcePage.d.ts +3 -1
  3. package/lib/esm/ResourcePage.d.ts.map +1 -1
  4. package/lib/esm/ResourcePage.js +7 -1
  5. package/lib/esm/builder.d.ts +3 -2
  6. package/lib/esm/builder.d.ts.map +1 -1
  7. package/lib/esm/builder.js +78 -15
  8. package/lib/esm/instrumentation/Instrumentation.d.ts +14 -2
  9. package/lib/esm/instrumentation/Instrumentation.d.ts.map +1 -1
  10. package/lib/esm/instrumentation/Instrumentation.js +1 -1
  11. package/lib/esm/routing/Link.d.ts +4 -2
  12. package/lib/esm/routing/Link.d.ts.map +1 -1
  13. package/lib/esm/routing/Link.js +15 -9
  14. package/lib/esm/routing/RouteComponentWrapper.d.ts +2 -1
  15. package/lib/esm/routing/RouteComponentWrapper.d.ts.map +1 -1
  16. package/lib/esm/routing/RouteComponentWrapper.js +3 -3
  17. package/lib/esm/routing/RouterRenderer.d.ts +1 -0
  18. package/lib/esm/routing/RouterRenderer.d.ts.map +1 -1
  19. package/lib/esm/routing/RouterRenderer.js +159 -39
  20. package/lib/esm/routing/createRouter.d.ts.map +1 -1
  21. package/lib/esm/routing/createRouter.js +276 -55
  22. package/lib/esm/routing/createStaticRouter.d.ts.map +1 -1
  23. package/lib/esm/routing/createStaticRouter.js +28 -1
  24. package/lib/esm/tools.d.ts +1 -0
  25. package/lib/esm/tools.d.ts.map +1 -1
  26. package/lib/esm/tools.js +21 -11
  27. package/lib/esm/types.d.ts +54 -0
  28. package/lib/esm/types.d.ts.map +1 -1
  29. package/lib/esm/types.js +1 -1
  30. package/lib/esm/values.d.ts +1 -1
  31. package/lib/esm/values.d.ts.map +1 -1
  32. package/lib/esm/values.js +2 -1
  33. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  34. package/lib/types/ResourcePage.d.ts +3 -1
  35. package/lib/types/ResourcePage.d.ts.map +1 -1
  36. package/lib/types/builder.d.ts +3 -2
  37. package/lib/types/builder.d.ts.map +1 -1
  38. package/lib/types/instrumentation/Instrumentation.d.ts +14 -2
  39. package/lib/types/instrumentation/Instrumentation.d.ts.map +1 -1
  40. package/lib/types/routing/Link.d.ts +4 -2
  41. package/lib/types/routing/Link.d.ts.map +1 -1
  42. package/lib/types/routing/RouteComponentWrapper.d.ts +2 -1
  43. package/lib/types/routing/RouteComponentWrapper.d.ts.map +1 -1
  44. package/lib/types/routing/RouterRenderer.d.ts +1 -0
  45. package/lib/types/routing/RouterRenderer.d.ts.map +1 -1
  46. package/lib/types/routing/createRouter.d.ts.map +1 -1
  47. package/lib/types/routing/createStaticRouter.d.ts.map +1 -1
  48. package/lib/types/tools.d.ts +1 -0
  49. package/lib/types/tools.d.ts.map +1 -1
  50. package/lib/types/types.d.ts +54 -0
  51. package/lib/types/types.d.ts.map +1 -1
  52. package/lib/types/values.d.ts +1 -1
  53. package/lib/types/values.d.ts.map +1 -1
  54. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"createStaticRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/createStaticRouter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,kBAAkB,EAElB,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAErB,KAAK,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,QAAQ,IAAI;IAChD,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,oBAAoB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAAE,IAAI;IACrE,OAAO,EAAE,kBAAkB,CACzB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,CACT,CAAC;IACF,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AA2HF,wBAAsB,kBAAkB,CACtC,QAAQ,GAAG,OAAO,EAClB,CAAC,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAEjC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,EAC3B,OAAO,EAAE,yBAAyB,CAAC,QAAQ,CAAC,GAC3C,OAAO,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CA6ChD;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"createStaticRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/createStaticRouter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,kBAAkB,EAElB,iBAAiB,EAIlB,MAAM,aAAa,CAAC;AAErB,KAAK,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,QAAQ,IAAI;IAChD,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,oBAAoB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAAE,IAAI;IACrE,OAAO,EAAE,kBAAkB,CACzB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,CACT,CAAC;IACF,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAgKF,wBAAsB,kBAAkB,CACtC,QAAQ,GAAG,OAAO,EAClB,CAAC,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAEjC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,EAC3B,OAAO,EAAE,yBAAyB,CAAC,QAAQ,CAAC,GAC3C,OAAO,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAgDhD;AAED,eAAe,kBAAkB,CAAC"}
@@ -2,6 +2,30 @@ import { parse as parseFilters } from '@plumile/filter-query/parse.js';
2
2
  import { buildRoutes } from '../builder.js';
3
3
  import { prepareMatch } from '../tools.js';
4
4
  import { parseRawQuery } from '../tools/query.js';
5
+ function buildResolvedLoadState(preparedMatch) {
6
+ const activeLoadState = {
7
+ status: 'resolved',
8
+ pendingCount: 0,
9
+ rejectedCount: 0,
10
+ version: 0,
11
+ };
12
+ return {
13
+ activeLoadState,
14
+ loadState: {
15
+ ...activeLoadState,
16
+ segments: preparedMatch.segments.map((segment) => {
17
+ return {
18
+ path: segment.path,
19
+ fullPath: segment.fullPath,
20
+ segmentIndex: segment.segmentIndex,
21
+ prepareStatus: segment.preparedResource?.getStatus() ?? 'idle',
22
+ codeStatus: segment.resourcePage?.getStatus() ?? 'idle',
23
+ status: 'resolved',
24
+ };
25
+ }),
26
+ },
27
+ };
28
+ }
5
29
  function normalizeSearch(search) {
6
30
  if (search == null || search === '') {
7
31
  return '';
@@ -92,8 +116,10 @@ export async function createStaticRouter(routes, options) {
92
116
  await segment.preparedResource?.load();
93
117
  await segment.resourcePage?.load();
94
118
  }));
119
+ const { activeLoadState, loadState } = buildResolvedLoadState(preparedMatch);
95
120
  const entry = {
96
121
  activeQuerySchema,
122
+ activeLoadState,
97
123
  context: routeContext,
98
124
  filterDiagnostics: searchState.filterDiagnostics,
99
125
  filters: searchState.filters,
@@ -103,6 +129,7 @@ export async function createStaticRouter(routes, options) {
103
129
  query: searchState.query,
104
130
  rawSearch: location.search,
105
131
  route,
132
+ loadState,
106
133
  };
107
134
  const routerContext = createStaticRoutingContext(entry);
108
135
  return {
@@ -112,4 +139,4 @@ export async function createStaticRouter(routes, options) {
112
139
  };
113
140
  }
114
141
  export default createStaticRouter;
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU3RhdGljUm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRpbmcvY3JlYXRlU3RhdGljUm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLElBQUksWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQTJDbEQsU0FBUyxlQUFlLENBQUMsTUFBMEI7SUFDakQsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNwQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0FBQ3RCLENBQUM7QUFLRCxTQUFTLHVCQUF1QixDQUFDLFFBQThCO0lBQzdELElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM5QixRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDekIsUUFBUTtRQUNSLE1BQU0sRUFBRSxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztLQUM3QixDQUFDO0FBQ2hCLENBQUM7QUFLRCxTQUFTLHNCQUFzQixDQUM3QixNQUFzQyxFQUN0QyxRQUFrQjtJQUVs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QUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzNDLE1BQU0sT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQXVEO1FBQ2hFLGlCQUFpQjtRQUNqQixPQUFPLEVBQUUsWUFBWTtRQUNyQixpQkFBaUIsRUFBRSxXQUFXLENBQUMsaUJBQWlCO1FBQ2hELE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztRQUM1QixhQUFhLEVBQUUsS0FBSztRQUNwQixRQUFRO1FBQ1IsYUFBYTtRQUNiLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSztRQUN4QixTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU07UUFDMUIsS0FBSztLQUNOLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLGFBQWE7UUFDdEIsS0FBSztRQUNMLE1BQU0sRUFBRSxNQUFXO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsZUFBZSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGlhZ25vc3RpYyBhcyBGaWx0ZXJEaWFnbm9zdGljIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L2Vycm9ycy5qcyc7XG5pbXBvcnQgeyBwYXJzZSBhcyBwYXJzZUZpbHRlcnMgfSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvcGFyc2UuanMnO1xuaW1wb3J0IHsgdHlwZSBTY2hlbWEgYXMgRmlsdGVyU2NoZW1hIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgeyBidWlsZFJvdXRlcyB9IGZyb20gJy4uL2J1aWxkZXIuanMnO1xuaW1wb3J0IHsgcHJlcGFyZU1hdGNoIH0gZnJvbSAnLi4vdG9vbHMuanMnO1xuaW1wb3J0IHsgcGFyc2VSYXdRdWVyeSB9IGZyb20gJy4uL3Rvb2xzL3F1ZXJ5LmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQW55Um91dGUsXG4gIFJvdXRlRW50cnksXG4gIFJvdXRpbmdDb250ZXh0VHlwZSxcbiAgVW5rbm93bkZpbHRlcnMsXG4gIFVua25vd25RdWVyeVNoYXBlLFxuICBSYXdRdWVyeSxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG50eXBlIFJvdXRlclF1ZXJ5U2NoZW1hID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBTdGF0aWNSb3V0ZXJMb2NhdGlvbiA9IHtcbiAgaGFzaD86IHN0cmluZztcbiAgcGF0aG5hbWU6IHN0cmluZztcbiAgc2VhcmNoPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlU3RhdGljUm91dGVyT3B0aW9uczxUQ29udGV4dD4gPSB7XG4gIGNvbnRleHQ/OiBUQ29udGV4dDtcbiAgbG9jYXRpb246IFN0YXRpY1JvdXRlckxvY2F0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlU3RhdGljUm91dGVyUmV0dXJuPFRDb250ZXh0LCBSIGV4dGVuZHMgQW55Um91dGVbXT4gPSB7XG4gIGNvbnRleHQ6IFJvdXRpbmdDb250ZXh0VHlwZTxcbiAgICBQYXJhbURhdGEsXG4gICAgUm91dGVyUXVlcnlTY2hlbWEsXG4gICAgVW5rbm93blF1ZXJ5U2hhcGUsXG4gICAgVENvbnRleHRcbiAgPjtcbiAgZW50cnk6IFJvdXRlRW50cnk8UGFyYW1EYXRhLCBSb3V0ZXJRdWVyeVNjaGVtYSwgVENvbnRleHQ+O1xuICByb3V0ZXM6IFI7XG59O1xuXG50eXBlIFBhcnNlZFNlYXJjaFN0YXRlID0ge1xuICBxdWVyeTogUmF3UXVlcnk7XG4gIGZpbHRlcnM/OiBVbmtub3duRmlsdGVycztcbiAgZmlsdGVyRGlhZ25vc3RpY3M/OiBGaWx0ZXJEaWFnbm9zdGljW107XG59O1xuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNlYXJjaChzZWFyY2g6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIGlmIChzZWFyY2ggPT0gbnVsbCB8fCBzZWFyY2ggPT09ICcnKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGlmIChzZWFyY2guc3RhcnRzV2l0aCgnPycpKSB7XG4gICAgcmV0dXJuIHNlYXJjaDtcbiAgfVxuICByZXR1cm4gYD8ke3NlYXJjaH1gO1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0YXRpY0xvY2F0aW9uKGxvY2F0aW9uOiBTdGF0aWNSb3V0ZXJMb2NhdGlvbik6IExvY2F0aW9uIHtcbiAgbGV0IHsgcGF0aG5hbWUgfSA9IGxvY2F0aW9uO1xuICBpZiAoIXBhdGhuYW1lLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHBhdGhuYW1lID0gYC8ke3BhdGhuYW1lfWA7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBoYXNoOiBsb2NhdGlvbi5oYXNoID8/ICcnLFxuICAgIHBhdGhuYW1lLFxuICAgIHNlYXJjaDogbm9ybWFsaXplU2VhcmNoKGxvY2F0aW9uLnNlYXJjaCksXG4gIH0gYXMgTG9jYXRpb247XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gZmluZFN0YXRpY01hdGNoZWRSb3V0ZShcbiAgcm91dGVzOiBSZXR1cm5UeXBlPHR5cGVvZiBidWlsZFJvdXRlcz4sXG4gIGxvY2F0aW9uOiBMb2NhdGlvbixcbikge1xuICBmb3IgKGNvbnN0IHJvdXRlIG9mIHJvdXRlcykge1xuICAgIGNvbnN0IG1hdGNoID0gcm91dGUubWF0Y2hGdW5jdGlvbihsb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgaWYgKG1hdGNoICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgeyBwYXRoLCBwYXJhbXMgfSA9IG1hdGNoO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWF0Y2gsXG4gICAgICAgIHJvdXRlLFxuICAgICAgICBwYXRoLFxuICAgICAgICBwYXJhbXMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBwYXJzZVNlYXJjaFN0YXRlKFxuICBzZWFyY2g6IHN0cmluZyxcbiAgcXVlcnlTY2hlbWE6IFJvdXRlclF1ZXJ5U2NoZW1hLFxuKTogUGFyc2VkU2VhcmNoU3RhdGUge1xuICBjb25zdCBxdWVyeSA9IHBhcnNlUmF3UXVlcnkoc2VhcmNoKTtcbiAgaWYgKHF1ZXJ5U2NoZW1hID09IG51bGwpIHtcbiAgICByZXR1cm4geyBxdWVyeSB9O1xuICB9XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmlsdGVycyhzZWFyY2gsIHF1ZXJ5U2NoZW1hKTtcbiAgcmV0dXJuIHtcbiAgICBxdWVyeSxcbiAgICBmaWx0ZXJzOiBwYXJzZWQuZmlsdGVycyxcbiAgICBmaWx0ZXJEaWFnbm9zdGljczogcGFyc2VkLmRpYWdub3N0aWNzLFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVN0YXRpY1JvdXRpbmdDb250ZXh0PFRDb250ZXh0PihcbiAgZW50cnk6IFJvdXRlRW50cnk8UGFyYW1EYXRhLCBSb3V0ZXJRdWVyeVNjaGVtYSwgVENvbnRleHQ+LFxuKTogUm91dGluZ0NvbnRleHRUeXBlPFxuICBQYXJhbURhdGEsXG4gIFJvdXRlclF1ZXJ5U2NoZW1hLFxuICBVbmtub3duUXVlcnlTaGFwZSxcbiAgVENvbnRleHRcbj4ge1xuICByZXR1cm4ge1xuICAgIGdldDogKCkgPT4ge1xuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH0sXG4gICAgaGlzdG9yeToge1xuICAgICAgaW5pdCgpIHt9LFxuICAgICAgcHVzaCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdGF0aWMgcm91dGVyIGNhbm5vdCBwdXNoIGhpc3RvcnknKTtcbiAgICAgIH0sXG4gICAgICBzZXQoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU3RhdGljIHJvdXRlciBjYW5ub3QgcmVwbGFjZSBoaXN0b3J5Jyk7XG4gICAgICB9LFxuICAgICAgc3Vic2NyaWJlKCkge1xuICAgICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgICB9LFxuICAgIH0gYXMgdW5rbm93biBhcyBSb3V0aW5nQ29udGV4dFR5cGU8XG4gICAgICBQYXJhbURhdGEsXG4gICAgICBSb3V0ZXJRdWVyeVNjaGVtYSxcbiAgICAgIFVua25vd25RdWVyeVNoYXBlLFxuICAgICAgVENvbnRleHRcbiAgICA+WydoaXN0b3J5J10sXG4gICAgbmF2aWdhdGUoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YXRpYyByb3V0ZXIgY2Fubm90IG5hdmlnYXRlJyk7XG4gICAgfSxcbiAgICBwcmVsb2FkKCkge30sXG4gICAgcHJlbG9hZENvZGUoKSB7fSxcbiAgICBzdWJzY3JpYmUoKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhdGljUm91dGVyPFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFIgZXh0ZW5kcyBBbnlSb3V0ZVtdID0gQW55Um91dGVbXSxcbj4oXG4gIHJvdXRlczogWy4uLlJdIHwgQW55Um91dGVbXSxcbiAgb3B0aW9uczogQ3JlYXRlU3RhdGljUm91dGVyT3B0aW9uczxUQ29udGV4dD4sXG4pOiBQcm9taXNlPENyZWF0ZVN0YXRpY1JvdXRlclJldHVybjxUQ29udGV4dCwgUj4+IHtcbiAgY29uc3QgbG9jYXRpb24gPSBub3JtYWxpemVTdGF0aWNMb2NhdGlvbihvcHRpb25zLmxvY2F0aW9uKTtcbiAgY29uc3QgZmxhdFJvdXRlcyA9IGJ1aWxkUm91dGVzKHJvdXRlcyk7XG4gIGNvbnN0IHJvdXRlID0gZmluZFN0YXRpY01hdGNoZWRSb3V0ZShmbGF0Um91dGVzLCBsb2NhdGlvbik7XG4gIGNvbnN0IGFjdGl2ZVF1ZXJ5U2NoZW1hID0gcm91dGU/LnJvdXRlLnJvdXRlcy5hdCgtMSk/LnF1ZXJ5U2NoZW1hO1xuICBjb25zdCBzZWFyY2hTdGF0ZSA9IHBhcnNlU2VhcmNoU3RhdGUobG9jYXRpb24uc2VhcmNoLCBhY3RpdmVRdWVyeVNjaGVtYSk7XG4gIGNvbnN0IHJvdXRlQ29udGV4dCA9IG9wdGlvbnMuY29udGV4dCBhcyBUQ29udGV4dDtcbiAgbGV0IHJvdXRlSW5wdXQ6IFJhd1F1ZXJ5IHwgVW5rbm93bkZpbHRlcnMgPSBzZWFyY2hTdGF0ZS5xdWVyeTtcbiAgaWYgKGFjdGl2ZVF1ZXJ5U2NoZW1hICE9IG51bGwpIHtcbiAgICByb3V0ZUlucHV0ID0gc2VhcmNoU3RhdGUuZmlsdGVycyA/PyB7fTtcbiAgfVxuICBjb25zdCBwcmVwYXJlZE1hdGNoID0gcHJlcGFyZU1hdGNoKFxuICAgIHJvdXRlLFxuICAgIHJvdXRlSW5wdXQsXG4gICAgdW5kZWZpbmVkLFxuICAgIHJvdXRlQ29udGV4dCxcbiAgKTtcblxuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBwcmVwYXJlZE1hdGNoLnNlZ21lbnRzLm1hcChhc3luYyAoc2VnbWVudCkgPT4ge1xuICAgICAgYXdhaXQgc2VnbWVudC5wcmVwYXJlZFJlc291cmNlPy5sb2FkKCk7XG4gICAgICBhd2FpdCBzZWdtZW50LnJlc291cmNlUGFnZT8ubG9hZCgpO1xuICAgIH0pLFxuICApO1xuXG4gIGNvbnN0IGVudHJ5OiBSb3V0ZUVudHJ5PFBhcmFtRGF0YSwgUm91dGVyUXVlcnlTY2hlbWEsIFRDb250ZXh0PiA9IHtcbiAgICBhY3RpdmVRdWVyeVNjaGVtYSxcbiAgICBjb250ZXh0OiByb3V0ZUNvbnRleHQsXG4gICAgZmlsdGVyRGlhZ25vc3RpY3M6IHNlYXJjaFN0YXRlLmZpbHRlckRpYWdub3N0aWNzLFxuICAgIGZpbHRlcnM6IHNlYXJjaFN0YXRlLmZpbHRlcnMsXG4gICAgZm9yY2VSZXJlbmRlcjogZmFsc2UsXG4gICAgbG9jYXRpb24sXG4gICAgcHJlcGFyZWRNYXRjaCxcbiAgICBxdWVyeTogc2VhcmNoU3RhdGUucXVlcnksXG4gICAgcmF3U2VhcmNoOiBsb2NhdGlvbi5zZWFyY2gsXG4gICAgcm91dGUsXG4gIH07XG5cbiAgY29uc3Qgcm91dGVyQ29udGV4dCA9IGNyZWF0ZVN0YXRpY1JvdXRpbmdDb250ZXh0KGVudHJ5KTtcblxuICByZXR1cm4ge1xuICAgIGNvbnRleHQ6IHJvdXRlckNvbnRleHQsXG4gICAgZW50cnksXG4gICAgcm91dGVzOiByb3V0ZXMgYXMgUixcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlU3RhdGljUm91dGVyO1xuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU3RhdGljUm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRpbmcvY3JlYXRlU3RhdGljUm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLElBQUksWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQTZDbEQsU0FBUyxzQkFBc0IsQ0FDN0IsYUFJa0I7SUFLbEIsTUFBTSxlQUFlLEdBQTBCO1FBQzdDLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLFlBQVksRUFBRSxDQUFDO1FBQ2YsYUFBYSxFQUFFLENBQUM7UUFDaEIsT0FBTyxFQUFFLENBQUM7S0FDWCxDQUFDO0lBQ0YsT0FBTztRQUNMLGVBQWU7UUFDZixTQUFTLEVBQUU7WUFDVCxHQUFHLGVBQWU7WUFDbEIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQy9DLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7b0JBQzFCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtvQkFDbEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxNQUFNO29CQUM5RCxVQUFVLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxNQUFNO29CQUN2RCxNQUFNLEVBQUUsVUFBVTtpQkFDbkIsQ0FBQztZQUNKLENBQUMsQ0FBQztTQUNIO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFLRCxTQUFTLGVBQWUsQ0FBQyxNQUEw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T0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1FBQzVCLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLFFBQVE7UUFDUixhQUFhO1FBQ2IsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO1FBQ3hCLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTTtRQUMxQixLQUFLO1FBQ0wsU0FBUztLQUNWLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLGFBQWE7UUFDdEIsS0FBSztRQUNMLE1BQU0sRUFBRSxNQUFXO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsZUFBZSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGlhZ25vc3RpYyBhcyBGaWx0ZXJEaWFnbm9zdGljIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L2Vycm9ycy5qcyc7XG5pbXBvcnQgeyBwYXJzZSBhcyBwYXJzZUZpbHRlcnMgfSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvcGFyc2UuanMnO1xuaW1wb3J0IHsgdHlwZSBTY2hlbWEgYXMgRmlsdGVyU2NoZW1hIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgeyBidWlsZFJvdXRlcyB9IGZyb20gJy4uL2J1aWxkZXIuanMnO1xuaW1wb3J0IHsgcHJlcGFyZU1hdGNoIH0gZnJvbSAnLi4vdG9vbHMuanMnO1xuaW1wb3J0IHsgcGFyc2VSYXdRdWVyeSB9IGZyb20gJy4uL3Rvb2xzL3F1ZXJ5LmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQW55Um91dGUsXG4gIFJvdXRlRW50cnksXG4gIFJvdXRpbmdDb250ZXh0VHlwZSxcbiAgVW5rbm93bkZpbHRlcnMsXG4gIFVua25vd25RdWVyeVNoYXBlLFxuICBSYXdRdWVyeSxcbiAgUm91dGVyQWN0aXZlTG9hZFN0YXRlLFxuICBSb3V0ZXJMb2FkU3RhdGUsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcblxudHlwZSBSb3V0ZXJRdWVyeVNjaGVtYSA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgU3RhdGljUm91dGVyTG9jYXRpb24gPSB7XG4gIGhhc2g/OiBzdHJpbmc7XG4gIHBhdGhuYW1lOiBzdHJpbmc7XG4gIHNlYXJjaD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVN0YXRpY1JvdXRlck9wdGlvbnM8VENvbnRleHQ+ID0ge1xuICBjb250ZXh0PzogVENvbnRleHQ7XG4gIGxvY2F0aW9uOiBTdGF0aWNSb3V0ZXJMb2NhdGlvbjtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVN0YXRpY1JvdXRlclJldHVybjxUQ29udGV4dCwgUiBleHRlbmRzIEFueVJvdXRlW10+ID0ge1xuICBjb250ZXh0OiBSb3V0aW5nQ29udGV4dFR5cGU8XG4gICAgUGFyYW1EYXRhLFxuICAgIFJvdXRlclF1ZXJ5U2NoZW1hLFxuICAgIFVua25vd25RdWVyeVNoYXBlLFxuICAgIFRDb250ZXh0XG4gID47XG4gIGVudHJ5OiBSb3V0ZUVudHJ5PFBhcmFtRGF0YSwgUm91dGVyUXVlcnlTY2hlbWEsIFRDb250ZXh0PjtcbiAgcm91dGVzOiBSO1xufTtcblxudHlwZSBQYXJzZWRTZWFyY2hTdGF0ZSA9IHtcbiAgcXVlcnk6IFJhd1F1ZXJ5O1xuICBmaWx0ZXJzPzogVW5rbm93bkZpbHRlcnM7XG4gIGZpbHRlckRpYWdub3N0aWNzPzogRmlsdGVyRGlhZ25vc3RpY1tdO1xufTtcblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBidWlsZFJlc29sdmVkTG9hZFN0YXRlPFRDb250ZXh0PihcbiAgcHJlcGFyZWRNYXRjaDogUm91dGVFbnRyeTxcbiAgICBQYXJhbURhdGEsXG4gICAgUm91dGVyUXVlcnlTY2hlbWEsXG4gICAgVENvbnRleHRcbiAgPlsncHJlcGFyZWRNYXRjaCddLFxuKToge1xuICBhY3RpdmVMb2FkU3RhdGU6IFJvdXRlckFjdGl2ZUxvYWRTdGF0ZTtcbiAgbG9hZFN0YXRlOiBSb3V0ZXJMb2FkU3RhdGU7XG59IHtcbiAgY29uc3QgYWN0aXZlTG9hZFN0YXRlOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdGUgPSB7XG4gICAgc3RhdHVzOiAncmVzb2x2ZWQnLFxuICAgIHBlbmRpbmdDb3VudDogMCxcbiAgICByZWplY3RlZENvdW50OiAwLFxuICAgIHZlcnNpb246IDAsXG4gIH07XG4gIHJldHVybiB7XG4gICAgYWN0aXZlTG9hZFN0YXRlLFxuICAgIGxvYWRTdGF0ZToge1xuICAgICAgLi4uYWN0aXZlTG9hZFN0YXRlLFxuICAgICAgc2VnbWVudHM6IHByZXBhcmVkTWF0Y2guc2VnbWVudHMubWFwKChzZWdtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGF0aDogc2VnbWVudC5wYXRoLFxuICAgICAgICAgIGZ1bGxQYXRoOiBzZWdtZW50LmZ1bGxQYXRoLFxuICAgICAgICAgIHNlZ21lbnRJbmRleDogc2VnbWVudC5zZWdtZW50SW5kZXgsXG4gICAgICAgICAgcHJlcGFyZVN0YXR1czogc2VnbWVudC5wcmVwYXJlZFJlc291cmNlPy5nZXRTdGF0dXMoKSA/PyAnaWRsZScsXG4gICAgICAgICAgY29kZVN0YXR1czogc2VnbWVudC5yZXNvdXJjZVBhZ2U/LmdldFN0YXR1cygpID8/ICdpZGxlJyxcbiAgICAgICAgICBzdGF0dXM6ICdyZXNvbHZlZCcsXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNlYXJjaChzZWFyY2g6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIGlmIChzZWFyY2ggPT0gbnVsbCB8fCBzZWFyY2ggPT09ICcnKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGlmIChzZWFyY2guc3RhcnRzV2l0aCgnPycpKSB7XG4gICAgcmV0dXJuIHNlYXJjaDtcbiAgfVxuICByZXR1cm4gYD8ke3NlYXJjaH1gO1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0YXRpY0xvY2F0aW9uKGxvY2F0aW9uOiBTdGF0aWNSb3V0ZXJMb2NhdGlvbik6IExvY2F0aW9uIHtcbiAgbGV0IHsgcGF0aG5hbWUgfSA9IGxvY2F0aW9uO1xuICBpZiAoIXBhdGhuYW1lLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHBhdGhuYW1lID0gYC8ke3BhdGhuYW1lfWA7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBoYXNoOiBsb2NhdGlvbi5oYXNoID8/ICcnLFxuICAgIHBhdGhuYW1lLFxuICAgIHNlYXJjaDogbm9ybWFsaXplU2VhcmNoKGxvY2F0aW9uLnNlYXJjaCksXG4gIH0gYXMgTG9jYXRpb247XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gZmluZFN0YXRpY01hdGNoZWRSb3V0ZShcbiAgcm91dGVzOiBSZXR1cm5UeXBlPHR5cGVvZiBidWlsZFJvdXRlcz4sXG4gIGxvY2F0aW9uOiBMb2NhdGlvbixcbikge1xuICBmb3IgKGNvbnN0IHJvdXRlIG9mIHJvdXRlcykge1xuICAgIGNvbnN0IG1hdGNoID0gcm91dGUubWF0Y2hGdW5jdGlvbihsb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgaWYgKG1hdGNoICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgeyBwYXRoLCBwYXJhbXMgfSA9IG1hdGNoO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWF0Y2gsXG4gICAgICAgIHJvdXRlLFxuICAgICAgICBwYXRoLFxuICAgICAgICBwYXJhbXMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBwYXJzZVNlYXJjaFN0YXRlKFxuICBzZWFyY2g6IHN0cmluZyxcbiAgcXVlcnlTY2hlbWE6IFJvdXRlclF1ZXJ5U2NoZW1hLFxuKTogUGFyc2VkU2VhcmNoU3RhdGUge1xuICBjb25zdCBxdWVyeSA9IHBhcnNlUmF3UXVlcnkoc2VhcmNoKTtcbiAgaWYgKHF1ZXJ5U2NoZW1hID09IG51bGwpIHtcbiAgICByZXR1cm4geyBxdWVyeSB9O1xuICB9XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmlsdGVycyhzZWFyY2gsIHF1ZXJ5U2NoZW1hKTtcbiAgcmV0dXJuIHtcbiAgICBxdWVyeSxcbiAgICBmaWx0ZXJzOiBwYXJzZWQuZmlsdGVycyxcbiAgICBmaWx0ZXJEaWFnbm9zdGljczogcGFyc2VkLmRpYWdub3N0aWNzLFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVN0YXRpY1JvdXRpbmdDb250ZXh0PFRDb250ZXh0PihcbiAgZW50cnk6IFJvdXRlRW50cnk8UGFyYW1EYXRhLCBSb3V0ZXJRdWVyeVNjaGVtYSwgVENvbnRleHQ+LFxuKTogUm91dGluZ0NvbnRleHRUeXBlPFxuICBQYXJhbURhdGEsXG4gIFJvdXRlclF1ZXJ5U2NoZW1hLFxuICBVbmtub3duUXVlcnlTaGFwZSxcbiAgVENvbnRleHRcbj4ge1xuICByZXR1cm4ge1xuICAgIGdldDogKCkgPT4ge1xuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH0sXG4gICAgaGlzdG9yeToge1xuICAgICAgaW5pdCgpIHt9LFxuICAgICAgcHVzaCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdGF0aWMgcm91dGVyIGNhbm5vdCBwdXNoIGhpc3RvcnknKTtcbiAgICAgIH0sXG4gICAgICBzZXQoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU3RhdGljIHJvdXRlciBjYW5ub3QgcmVwbGFjZSBoaXN0b3J5Jyk7XG4gICAgICB9LFxuICAgICAgc3Vic2NyaWJlKCkge1xuICAgICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgICB9LFxuICAgIH0gYXMgdW5rbm93biBhcyBSb3V0aW5nQ29udGV4dFR5cGU8XG4gICAgICBQYXJhbURhdGEsXG4gICAgICBSb3V0ZXJRdWVyeVNjaGVtYSxcbiAgICAgIFVua25vd25RdWVyeVNoYXBlLFxuICAgICAgVENvbnRleHRcbiAgICA+WydoaXN0b3J5J10sXG4gICAgbmF2aWdhdGUoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YXRpYyByb3V0ZXIgY2Fubm90IG5hdmlnYXRlJyk7XG4gICAgfSxcbiAgICBwcmVsb2FkKCkge30sXG4gICAgcHJlbG9hZENvZGUoKSB7fSxcbiAgICBzdWJzY3JpYmUoKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhdGljUm91dGVyPFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFIgZXh0ZW5kcyBBbnlSb3V0ZVtdID0gQW55Um91dGVbXSxcbj4oXG4gIHJvdXRlczogWy4uLlJdIHwgQW55Um91dGVbXSxcbiAgb3B0aW9uczogQ3JlYXRlU3RhdGljUm91dGVyT3B0aW9uczxUQ29udGV4dD4sXG4pOiBQcm9taXNlPENyZWF0ZVN0YXRpY1JvdXRlclJldHVybjxUQ29udGV4dCwgUj4+IHtcbiAgY29uc3QgbG9jYXRpb24gPSBub3JtYWxpemVTdGF0aWNMb2NhdGlvbihvcHRpb25zLmxvY2F0aW9uKTtcbiAgY29uc3QgZmxhdFJvdXRlcyA9IGJ1aWxkUm91dGVzKHJvdXRlcyk7XG4gIGNvbnN0IHJvdXRlID0gZmluZFN0YXRpY01hdGNoZWRSb3V0ZShmbGF0Um91dGVzLCBsb2NhdGlvbik7XG4gIGNvbnN0IGFjdGl2ZVF1ZXJ5U2NoZW1hID0gcm91dGU/LnJvdXRlLnJvdXRlcy5hdCgtMSk/LnF1ZXJ5U2NoZW1hO1xuICBjb25zdCBzZWFyY2hTdGF0ZSA9IHBhcnNlU2VhcmNoU3RhdGUobG9jYXRpb24uc2VhcmNoLCBhY3RpdmVRdWVyeVNjaGVtYSk7XG4gIGNvbnN0IHJvdXRlQ29udGV4dCA9IG9wdGlvbnMuY29udGV4dCBhcyBUQ29udGV4dDtcbiAgbGV0IHJvdXRlSW5wdXQ6IFJhd1F1ZXJ5IHwgVW5rbm93bkZpbHRlcnMgPSBzZWFyY2hTdGF0ZS5xdWVyeTtcbiAgaWYgKGFjdGl2ZVF1ZXJ5U2NoZW1hICE9IG51bGwpIHtcbiAgICByb3V0ZUlucHV0ID0gc2VhcmNoU3RhdGUuZmlsdGVycyA/PyB7fTtcbiAgfVxuICBjb25zdCBwcmVwYXJlZE1hdGNoID0gcHJlcGFyZU1hdGNoKFxuICAgIHJvdXRlLFxuICAgIHJvdXRlSW5wdXQsXG4gICAgdW5kZWZpbmVkLFxuICAgIHJvdXRlQ29udGV4dCxcbiAgKTtcblxuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBwcmVwYXJlZE1hdGNoLnNlZ21lbnRzLm1hcChhc3luYyAoc2VnbWVudCkgPT4ge1xuICAgICAgYXdhaXQgc2VnbWVudC5wcmVwYXJlZFJlc291cmNlPy5sb2FkKCk7XG4gICAgICBhd2FpdCBzZWdtZW50LnJlc291cmNlUGFnZT8ubG9hZCgpO1xuICAgIH0pLFxuICApO1xuICBjb25zdCB7IGFjdGl2ZUxvYWRTdGF0ZSwgbG9hZFN0YXRlIH0gPSBidWlsZFJlc29sdmVkTG9hZFN0YXRlKHByZXBhcmVkTWF0Y2gpO1xuXG4gIGNvbnN0IGVudHJ5OiBSb3V0ZUVudHJ5PFBhcmFtRGF0YSwgUm91dGVyUXVlcnlTY2hlbWEsIFRDb250ZXh0PiA9IHtcbiAgICBhY3RpdmVRdWVyeVNjaGVtYSxcbiAgICBhY3RpdmVMb2FkU3RhdGUsXG4gICAgY29udGV4dDogcm91dGVDb250ZXh0LFxuICAgIGZpbHRlckRpYWdub3N0aWNzOiBzZWFyY2hTdGF0ZS5maWx0ZXJEaWFnbm9zdGljcyxcbiAgICBmaWx0ZXJzOiBzZWFyY2hTdGF0ZS5maWx0ZXJzLFxuICAgIGZvcmNlUmVyZW5kZXI6IGZhbHNlLFxuICAgIGxvY2F0aW9uLFxuICAgIHByZXBhcmVkTWF0Y2gsXG4gICAgcXVlcnk6IHNlYXJjaFN0YXRlLnF1ZXJ5LFxuICAgIHJhd1NlYXJjaDogbG9jYXRpb24uc2VhcmNoLFxuICAgIHJvdXRlLFxuICAgIGxvYWRTdGF0ZSxcbiAgfTtcblxuICBjb25zdCByb3V0ZXJDb250ZXh0ID0gY3JlYXRlU3RhdGljUm91dGluZ0NvbnRleHQoZW50cnkpO1xuXG4gIHJldHVybiB7XG4gICAgY29udGV4dDogcm91dGVyQ29udGV4dCxcbiAgICBlbnRyeSxcbiAgICByb3V0ZXM6IHJvdXRlcyBhcyBSLFxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVTdGF0aWNSb3V0ZXI7XG4iXX0=
@@ -16,6 +16,7 @@ export declare function getMatchedRoute<TParams extends ParamData>(routes: FlatR
16
16
  declare function buildHighlightId(routePath: string | undefined, index: number, moduleId?: string): string;
17
17
  export declare const __testTools: {
18
18
  readonly buildHighlightId: typeof buildHighlightId;
19
+ readonly areSegmentParamsEqual: (paramNames: readonly string[], left: ParamData | undefined, right: ParamData) => boolean;
19
20
  };
20
21
  export declare function prepareMatch<TParams extends ParamData, TContext = unknown>(match: RouterMatchedRoute<TParams> | null, query?: Record<string, unknown>, instrumentation?: PrepareInstrumentation, context?: TContext, reuse?: PrepareReuseInput<TContext>): PreparedMatch<TParams, TContext>;
21
22
  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>>;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAE1B,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,EAAE,sBAAsB,CAAC;CAClC,CAAC;AAEF,KAAK,iBAAiB,CAAC,QAAQ,IAAI;IACjC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACpD,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAqDF,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EACvD,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAC5B,QAAQ,EAAE,QAAQ,GACjB,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,CAepC;AAKD,iBAAS,gBAAgB,CACvB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAaR;AAED,eAAO,MAAM,WAAW;;CAEd,CAAC;AAUX,wBAAgB,YAAY,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ,GAAG,OAAO,EACxE,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,EACzC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,eAAe,CAAC,EAAE,sBAAsB,EACxC,OAAO,CAAC,EAAE,QAAQ,EAClB,KAAK,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAClC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAwJlC;AAWD,wBAAsB,iBAAiB,CACrC,OAAO,SAAS,SAAS,EACzB,QAAQ,GAAG,OAAO,EAElB,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,EACzC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,eAAe,CAAC,EAAE,sBAAsB,EACxC,OAAO,CAAC,EAAE,QAAQ,GACjB,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CA8BnD;AAOD,wBAAgB,CAAC,CACf,QAAQ,GAAG,OAAO,EAClB,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,SAAS,SAAS,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,GAAG,SAAS,GAC3D,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,GACjC,SAAS,EAEb,KAAK,EAAE,KAAK,CACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,MAAM,EACN,YAAY,GAAG,SAAS,EACxB,SAAS,CACV,GACA,KAAK,CACN,QAAQ,EACR,SAAS,EACT,UAAU,EACV,MAAM,EACN,YAAY,GAAG,SAAS,EACxB,SAAS,CACV,CAEA"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"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"}
package/lib/esm/tools.js CHANGED
@@ -13,14 +13,15 @@ const isParamValueEqual = (left, right) => {
13
13
  }
14
14
  return left === right;
15
15
  };
16
- const areParamsEqual = (left, right) => {
17
- const leftEntries = Object.entries(left);
18
- const rightKeys = new Set(Object.keys(right));
19
- if (leftEntries.length !== rightKeys.size) {
16
+ const areSegmentParamsEqual = (paramNames, left, right) => {
17
+ if (paramNames.length === 0) {
18
+ return true;
19
+ }
20
+ if (left == null) {
20
21
  return false;
21
22
  }
22
- return leftEntries.every(([key, value]) => {
23
- return rightKeys.has(key) && isParamValueEqual(value, right[key]);
23
+ return paramNames.every((paramName) => {
24
+ return isParamValueEqual(left[paramName], right[paramName]);
24
25
  });
25
26
  };
26
27
  function emitPrepareInstrumentation(instrumentation, event) {
@@ -64,6 +65,7 @@ function buildHighlightId(routePath, index, moduleId) {
64
65
  }
65
66
  export const __testTools = {
66
67
  buildHighlightId,
68
+ areSegmentParamsEqual,
67
69
  };
68
70
  export function prepareMatch(match, query, instrumentation, context, reuse) {
69
71
  if (match == null) {
@@ -75,14 +77,14 @@ export function prepareMatch(match, query, instrumentation, context, reuse) {
75
77
  }
76
78
  const matchedRoute = match.route;
77
79
  const segments = match.route.routes.map((route, routeIndex) => {
78
- const { path, prepare, querySchema, resourcePage, render } = route;
80
+ const { path, prepare, querySchema, resourcePage, render, suspenseBoundary, fallback, } = route;
81
+ const routeSegment = match.route.routeSegments?.[routeIndex];
79
82
  const previousSegment = reuse?.previousSegments?.[routeIndex];
80
83
  if (previousSegment?.routeNode === route &&
81
84
  (reuse?.sameSearch === true ||
82
85
  route.prepareSearchBehavior === 'path' ||
83
86
  prepare == null) &&
84
- reuse?.previousParams != null &&
85
- areParamsEqual(reuse.previousParams, match.params)) {
87
+ areSegmentParamsEqual(routeSegment?.paramNames ?? [], reuse?.previousParams, match.params)) {
86
88
  return previousSegment;
87
89
  }
88
90
  let moduleId;
@@ -179,12 +181,16 @@ export function prepareMatch(match, query, instrumentation, context, reuse) {
179
181
  return {
180
182
  routeNode: route,
181
183
  path,
182
- fullPath: path,
184
+ fullPath: routeSegment?.fullPath ?? path,
185
+ segmentKey: routeSegment?.key ?? buildHighlightId(path, routeIndex, moduleId),
186
+ paramNames: routeSegment?.paramNames ?? [],
183
187
  segmentIndex: routeIndex,
184
188
  preparedResource,
185
189
  redirectTo: matchedRoute.redirectTo ?? null,
186
190
  render,
187
191
  resourcePage,
192
+ suspenseBoundary: suspenseBoundary ?? 'inherit',
193
+ fallback,
188
194
  highlightId: buildHighlightId(path, routeIndex, moduleId),
189
195
  querySchema,
190
196
  };
@@ -206,11 +212,15 @@ export async function prepareMatchAsync(match, query, instrumentation, context)
206
212
  routeNode: route.routeNode,
207
213
  path: route.path,
208
214
  fullPath: route.fullPath,
215
+ segmentKey: route.segmentKey,
216
+ paramNames: route.paramNames,
209
217
  segmentIndex: route.segmentIndex,
210
218
  prepared,
211
219
  redirectTo: route.redirectTo,
212
220
  render: route.render,
213
221
  resourcePage: route.resourcePage,
222
+ suspenseBoundary: route.suspenseBoundary,
223
+ fallback: route.fallback,
214
224
  highlightId: route.highlightId,
215
225
  querySchema: route.querySchema,
216
226
  };
@@ -224,4 +234,4 @@ export async function prepareMatchAsync(match, query, instrumentation, context)
224
234
  export function r(route) {
225
235
  return route;
226
236
  }
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUJBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBY25FLE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsSUFBdUIsRUFDdkIsS0FBd0IsRUFDZixFQUFFO0lBQ1gsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqQyxPQUFPLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBZSxFQUFFLEtBQWdCLEVBQVcsRUFBRTtJQUNwRSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5QyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUss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QVU7WUFDNUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CLENBQUM7SUFDSixDQUFDLENBQ0YsQ0FDRixDQUFDO0lBRUYsT0FBTztRQUNMLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSztRQUMxQixRQUFRO1FBQ1IsTUFBTSxFQUFFLFFBQVE7S0FDakIsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFNLFVBQVUsQ0FBQyxDQVNmLEtBT0M7SUFTRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHtcbiAgdHlwZSBGaWx0ZXJTY2hlbWEsXG4gIHR5cGUgUHJlcGFyZVJlc3VsdCxcbiAgdHlwZSBQcmVwYXJlZE1hdGNoLFxuICB0eXBlIFByZXBhcmVkTWF0Y2hSb3V0ZSxcbiAgdHlwZSBQcmVwYXJlZFJvdXRlU2VnbWVudCxcbiAgdHlwZSBSZWRpcmVjdCxcbiAgdHlwZSBSZXNvbHZlZFByZXBhcmVkTWF0Y2gsXG4gIHR5cGUgUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudCxcbiAgdHlwZSBSb3V0ZSxcbiAgdHlwZSBSb3V0ZU5vZGUsXG4gIHR5cGUgUm91dGVyTWF0Y2hlZFJvdXRlLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuaW1wb3J0IHR5cGUge1xuICBSb3V0ZXJQcmVwYXJlRXZlbnQsXG4gIFJvdXRlck5hdmlnYXRpb25Tb3VyY2UsXG4gIFJvdXRlckxvY2F0aW9uU25hcHNob3QsXG59IGZyb20gJy4vaW5zdHJ1bWVudGF0aW9uL0luc3RydW1lbnRhdGlvbi5qcyc7XG5cbmltcG9ydCB0eXBlIHsgRmxhdFJvdXRlIH0gZnJvbSAnLi9idWlsZGVyLmpzJztcbmltcG9ydCB7IGNyZWF0ZVByZXBhcmVkVmFsdWVSZXNvdXJjZSB9IGZyb20gJy4vcHJlcGFyZVJlc291cmNlLmpzJztcblxudHlwZSBQcmVwYXJlSW5zdHJ1bWVudGF0aW9uID0ge1xuICBlbWl0OiAoZXZlbnQ6IFJvdXRlclByZXBhcmVFdmVudCkgPT4gdm9pZDtcbiAgc291cmNlOiBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlO1xuICBsb2NhdGlvbjogUm91dGVyTG9jYXRpb25TbmFwc2hvdDtcbn07XG5cbnR5cGUgUHJlcGFyZVJldXNlSW5wdXQ8VENvbnRleHQ+ID0ge1xuICBwcmV2aW91c1NlZ21lbnRzPzogUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W107XG4gIHByZXZpb3VzUGFyYW1zPzogUGFyYW1EYXRhO1xuICBzYW1lU2VhcmNoPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGlzUGFyYW1WYWx1ZUVxdWFsID0gKFxuICBsZWZ0OiBQYXJhbURhdGFbc3RyaW5nXSxcbiAgcmlnaHQ6IFBhcmFtRGF0YVtzdHJpbmddLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGxlZnQpIHx8IEFycmF5LmlzQXJyYXkocmlnaHQpKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGxlZnQpIHx8ICFBcnJheS5pc0FycmF5KHJpZ2h0KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobGVmdC5sZW5ndGggIT09IHJpZ2h0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gbGVmdC5ldmVyeSgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4gdmFsdWUgPT09IHJpZ2h0W2luZGV4XTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gbGVmdCA9PT0gcmlnaHQ7XG59O1xuXG5jb25zdCBhcmVQYXJhbXNFcXVhbCA9IChsZWZ0OiBQYXJhbURhdGEsIHJpZ2h0OiBQYXJhbURhdGEpOiBib29sZWFuID0+IHtcbiAgY29uc3QgbGVmdEVudHJpZXMgPSBPYmplY3QuZW50cmllcyhsZWZ0KTtcbiAgY29uc3QgcmlnaHRLZXlzID0gbmV3IFNldChPYmplY3Qua2V5cyhyaWdodCkpO1xuICBpZiAobGVmdEVudHJpZXMubGVuZ3RoICE9PSByaWdodEtleXMuc2l6ZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gbGVmdEVudHJpZXMuZXZlcnkoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIHJldHVybiByaWdodEtleXMuaGFzKGtleSkgJiYgaXNQYXJhbVZhbHVlRXF1YWwodmFsdWUsIHJpZ2h0W2tleV0pO1xuICB9KTtcbn07XG5cbi8qKiBFbWl0cyBwcmVwYXJlIGluc3RydW1lbnRhdGlvbiB3aXRob3V0IGFsbG93aW5nIGluc3RydW1lbnRhdGlvbiBmYWlsdXJlcyB0byBhZmZlY3Qgcm91dGluZy4gKi9cbmZ1bmN0aW9uIGVtaXRQcmVwYXJlSW5zdHJ1bWVudGF0aW9uKFxuICBpbnN0cnVtZW50YXRpb246IFByZXBhcmVJbnN0cnVtZW50YXRpb24gfCB1bmRlZmluZWQsXG4gIGV2ZW50OiBSb3V0ZXJQcmVwYXJlRXZlbnQsXG4pOiB2b2lkIHtcbiAgaWYgKGluc3RydW1lbnRhdGlvbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHRyeSB7XG4gICAgaW5zdHJ1bWVudGF0aW9uLmVtaXQoZXZlbnQpO1xuICB9IGNhdGNoIHtcbiAgICAvLyBJbnN0cnVtZW50YXRpb24gbXVzdCBuZXZlciBicmVhayByb3V0aW5nIG9yIHByZXBhcmUgbGlmZWN5Y2xlLlxuICB9XG59XG5cbi8qKlxuICogRmluZHMgdGhlIGZpcnN0IGZsYXQgcm91dGUgbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIGxvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSByb3V0ZXMgLSBGbGF0dGVuZWQgcm91dGUgbGlzdCB0byBldmFsdWF0ZS5cbiAqIEBwYXJhbSBsb2NhdGlvbiAtIEJyb3dzZXIgbG9jYXRpb24gd2hvc2UgcGF0aG5hbWUgc2hvdWxkIGJlIG1hdGNoZWQuXG4gKiBAcmV0dXJucyBNYXRjaGVkIHJvdXRlIHdpdGggcGFyYW1zIG9yIGBudWxsYCBpZiBub25lIG1hdGNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF0Y2hlZFJvdXRlPFRQYXJhbXMgZXh0ZW5kcyBQYXJhbURhdGE+KFxuICByb3V0ZXM6IEZsYXRSb3V0ZTxUUGFyYW1zPltdLFxuICBsb2NhdGlvbjogTG9jYXRpb24sXG4pOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFBhcmFtcz4gfCBudWxsIHtcbiAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZXMpIHtcbiAgICBjb25zdCBtYXRjaCA9IHJvdXRlLm1hdGNoRnVuY3Rpb24obG9jYXRpb24ucGF0aG5hbWUpO1xuICAgIGlmIChtYXRjaCAhPT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHsgcGF0aCwgcGFyYW1zIH0gPSBtYXRjaDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1hdGNoLFxuICAgICAgICByb3V0ZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBEZXJpdmVzIGEgZGV0ZXJtaW5pc3RpYyBpZGVudGlmaWVyIHRoYXQgbGlua3MgcHJlcGFyZWQgcm91dGVzIHRvIERPTSBtYXJrZXJzLlxuICovXG5mdW5jdGlvbiBidWlsZEhpZ2hsaWdodElkKFxuICByb3V0ZVBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgaW5kZXg6IG51bWJlcixcbiAgbW9kdWxlSWQ/OiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgaWYgKHR5cGVvZiBtb2R1bGVJZCA9PT0gJ3N0cmluZycgJiYgbW9kdWxlSWQudHJpbSgpICE9PSAnJykge1xuICAgIHBhcnRzLnB1c2goYG1vZHVsZToke21vZHVsZUlkfWApO1xuICB9XG4gIGlmICh0eXBlb2Ygcm91dGVQYXRoID09PSAnc3RyaW5nJyAmJiByb3V0ZVBhdGgudHJpbSgpICE9PSAnJykge1xuICAgIHBhcnRzLnB1c2goYHBhdGg6JHtyb3V0ZVBhdGh9YCk7XG4gIH1cbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHBhcnRzLnB1c2goJ3JvdXRlJyk7XG4gIH1cbiAgcGFydHMucHVzaChgaW5kZXg6JHtpbmRleH1gKTtcbiAgcmV0dXJuIHBhcnRzLmpvaW4oJ3wnKTtcbn1cblxuZXhwb3J0IGNvbnN0IF9fdGVzdFRvb2xzID0ge1xuICBidWlsZEhpZ2hsaWdodElkLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBQcmVwYXJlcyBhIG1hdGNoZWQgcm91dGUgYnkgZXhlY3V0aW5nIGBwcmVwYXJlYCBjYWxsYmFja3MgYW5kIHJlc29sdmluZyByZXNvdXJjZSBwYWdlcy5cbiAqXG4gKiBAcGFyYW0gbWF0Y2ggLSBNYXRjaGVkIHJvdXRlIGRlc2NyaXB0b3IgKG9yIGBudWxsYCB3aGVuIG5vdGhpbmcgbWF0Y2hlZCkuXG4gKiBAcGFyYW0gcXVlcnkgLSBPcHRpb25hbCBxdWVyeSBvYmplY3QgZm9yd2FyZGVkIHRvIHByZXBhcmUgZnVuY3Rpb25zLlxuICogQHBhcmFtIGNvbnRleHQgLSBPcHRpb25hbCByb3V0ZXIgY29udGV4dCBmb3J3YXJkZWQgdG8gcHJlcGFyZSBmdW5jdGlvbnMuXG4gKiBAcmV0dXJucyBQcmVwYXJlZCBoaWVyYXJjaHkgcmVhZHkgZm9yIHRoZSByZW5kZXJlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVNYXRjaDxUUGFyYW1zIGV4dGVuZHMgUGFyYW1EYXRhLCBUQ29udGV4dCA9IHVua25vd24+KFxuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRQYXJhbXM+IHwgbnVsbCxcbiAgcXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgaW5zdHJ1bWVudGF0aW9uPzogUHJlcGFyZUluc3RydW1lbnRhdGlvbixcbiAgY29udGV4dD86IFRDb250ZXh0LFxuICByZXVzZT86IFByZXBhcmVSZXVzZUlucHV0PFRDb250ZXh0Pixcbik6IFByZXBhcmVkTWF0Y2g8VFBhcmFtcywgVENvbnRleHQ+IHtcbiAgLy8gTk9URTogUnVudGltZSByZXRhaW5zIGEgZ2VuZXJpYyBQcmVwYXJlZFJlc3VsdDsgdHlwZS1sZXZlbCBuYXJyb3dpbmcgaXMgYWNoaWV2ZWQgZXh0ZXJuYWxseVxuICAvLyB0aHJvdWdoIHRoZSByb3V0ZSB1bmlvbiBhbmQgUHJlcGFyZWRBY2Nlc3MgaGVscGVycy4gV2UgaW50ZW50aW9uYWxseSBhdm9pZCBpbmplY3RpbmdcbiAgLy8gZ2VuZXJpYyBwYXJhbWV0ZXJzIGhlcmUgdG8ga2VlcCBydW50aW1lIGxpZ2h0d2VpZ2h0IHdoaWxlIHN0aWxsIGVuYWJsaW5nIGNvbXBpbGUtdGltZVxuICAvLyBkaXNjcmltaW5hdGlvbiBpbiB1c2VybGFuZCB2aWEgY3JlYXRlUm91dGVyIGdlbmVyaWNzLlxuICBpZiAobWF0Y2ggPT0gbnVsbCkge1xuICAgIHJldHVybiB7XG4gICAgICBtYXRjaCxcbiAgICAgIHNlZ21lbnRzOiBbXSxcbiAgICAgIHJvdXRlczogW10sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoZWRSb3V0ZSA9IG1hdGNoLnJvdXRlO1xuXG4gIGNvbnN0IHNlZ21lbnRzOiBQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD5bXSA9IG1hdGNoLnJvdXRlLnJvdXRlcy5tYXAoXG4gICAgKHJvdXRlLCByb3V0ZUluZGV4KSA9PiB7XG4gICAgICBjb25zdCB7IHBhdGgsIHByZXBhcmUsIHF1ZXJ5U2NoZW1hLCByZXNvdXJjZVBhZ2UsIHJlbmRlciB9ID0gcm91dGU7XG4gICAgICBjb25zdCBwcmV2aW91c1NlZ21lbnQgPSByZXVzZT8ucHJldmlvdXNTZWdtZW50cz8uW3JvdXRlSW5kZXhdO1xuICAgICAgaWYgKFxuICAgICAgICBwcmV2aW91c1NlZ21lbnQ/LnJvdXRlTm9kZSA9PT0gcm91dGUgJiZcbiAgICAgICAgKHJldXNlPy5zYW1lU2VhcmNoID09PSB0cnVlIHx8XG4gICAgICAgICAgcm91dGUucHJlcGFyZVNlYXJjaEJlaGF2aW9yID09PSAncGF0aCcgfHxcbiAgICAgICAgICBwcmVwYXJlID09IG51bGwpICYmXG4gICAgICAgIHJldXNlPy5wcmV2aW91c1BhcmFtcyAhPSBudWxsICYmXG4gICAgICAgIGFyZVBhcmFtc0VxdWFsKHJldXNlLnByZXZpb3VzUGFyYW1zLCBtYXRjaC5wYXJhbXMpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHByZXZpb3VzU2VnbWVudDtcbiAgICAgIH1cblxuICAgICAgbGV0IG1vZHVsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAoXG4gICAgICAgIHJlc291cmNlUGFnZSAhPSBudWxsICYmXG4gICAgICAgIHR5cGVvZiByZXNvdXJjZVBhZ2UuZ2V0TW9kdWxlSWQgPT09ICdmdW5jdGlvbidcbiAgICAgICkge1xuICAgICAgICBjb25zdCByZXNvbHZlZE1vZHVsZUlkID0gcmVzb3VyY2VQYWdlLmdldE1vZHVsZUlkKCk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZWRNb2R1bGVJZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBtb2R1bGVJZCA9IHJlc29sdmVkTW9kdWxlSWQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGV0IHByZXBhcmVTdGFydGVkQXQgPSAwO1xuICAgICAgaWYgKGluc3RydW1lbnRhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgIHByZXBhcmVTdGFydGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICBlbWl0UHJlcGFyZUluc3RydW1lbnRhdGlvbihpbnN0cnVtZW50YXRpb24sIHtcbiAgICAgICAgICBraW5kOiAncHJlcGFyZS1zdGFydCcsXG4gICAgICAgICAgc291cmNlOiBpbnN0cnVtZW50YXRpb24uc291cmNlLFxuICAgICAgICAgIHRpbWVzdGFtcDogcHJlcGFyZVN0YXJ0ZWRBdCxcbiAgICAgICAgICBsb2NhdGlvbjogaW5zdHJ1bWVudGF0aW9uLmxvY2F0aW9uLFxuICAgICAgICAgIHJvdXRlUGF0aDogcGF0aCxcbiAgICAgICAgICBtb2R1bGVJZCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBwcmVwYXJlZFJlc291cmNlOiBQcmVwYXJlZE1hdGNoUm91dGVbJ3ByZXBhcmVkUmVzb3VyY2UnXTtcbiAgICAgIGlmIChwcmVwYXJlICE9IG51bGwpIHtcbiAgICAgICAgcHJlcGFyZWRSZXNvdXJjZSA9IGNyZWF0ZVByZXBhcmVkVmFsdWVSZXNvdXJjZSgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHByZXBhcmUoe1xuICAgICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgICBtYXRjaGVkUm91dGUsXG4gICAgICAgICAgICBjb250ZXh0OiBjb250ZXh0IGFzIFRDb250ZXh0LFxuICAgICAgICAgICAgcmVzb3VyY2VQYWdlLFxuICAgICAgICAgICAgLy8gRml4IE9iamVjdC5jcmVhdGUobnVsbCkgaXNzdWUgaW4gcGF0aC10by1yZWdleHBcbiAgICAgICAgICAgIHZhcmlhYmxlczogeyAuLi5tYXRjaC5wYXJhbXMgfSxcbiAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSA/PyB7fSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIEVhZ2VybHkgZXZhbHVhdGUgcHJlcGFyZSBzbyB0aGUgcHJlcGFyZWQgcmVzb3VyY2UgaW1tZWRpYXRlbHkgcmVmbGVjdHNcbiAgICAgICAgLy8gc3luYyByZXNvbHV0aW9uIG9yIGFzeW5jIHBlbmRpbmcgc3RhdGUgZm9yIHRoZSBjdXJyZW50IHJvdXRlIHNuYXBzaG90LlxuICAgICAgICBjb25zdCBwcmVwYXJlZExvYWQgPSBwcmVwYXJlZFJlc291cmNlLmxvYWQoKTtcblxuICAgICAgICBpZiAoaW5zdHJ1bWVudGF0aW9uICE9IG51bGwpIHtcbiAgICAgICAgICBwcmVwYXJlZExvYWRcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmluaXNoZWRBdCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgIGVtaXRQcmVwYXJlSW5zdHJ1bWVudGF0aW9uKGluc3RydW1lbnRhdGlvbiwge1xuICAgICAgICAgICAgICAgIGtpbmQ6ICdwcmVwYXJlLWNvbXBsZXRlJyxcbiAgICAgICAgICAgICAgICBzb3VyY2U6IGluc3RydW1lbnRhdGlvbi5zb3VyY2UsXG4gICAgICAgICAgICAgICAgdGltZXN0YW1wOiBmaW5pc2hlZEF0LFxuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBpbnN0cnVtZW50YXRpb24ubG9jYXRpb24sXG4gICAgICAgICAgICAgICAgcm91dGVQYXRoOiBwYXRoLFxuICAgICAgICAgICAgICAgIG1vZHVsZUlkLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uTXM6IGZpbmlzaGVkQXQgLSBwcmVwYXJlU3RhcnRlZEF0LFxuICAgICAgICAgICAgICAgIGhhc1ByZXBhcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ3Jlc29sdmVkJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmluaXNoZWRBdCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgIGVtaXRQcmVwYXJlSW5zdHJ1bWVudGF0aW9uKGluc3RydW1lbnRhdGlvbiwge1xuICAgICAgICAgICAgICAgIGtpbmQ6ICdwcmVwYXJlLWNvbXBsZXRlJyxcbiAgICAgICAgICAgICAgICBzb3VyY2U6IGluc3RydW1lbnRhdGlvbi5zb3VyY2UsXG4gICAgICAgICAgICAgICAgdGltZXN0YW1wOiBmaW5pc2hlZEF0LFxuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBpbnN0cnVtZW50YXRpb24ubG9jYXRpb24sXG4gICAgICAgICAgICAgICAgcm91dGVQYXRoOiBwYXRoLFxuICAgICAgICAgICAgICAgIG1vZHVsZUlkLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uTXM6IGZpbmlzaGVkQXQgLSBwcmVwYXJlU3RhcnRlZEF0LFxuICAgICAgICAgICAgICAgIGhhc1ByZXBhcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ3JlamVjdGVkJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmVwYXJlZExvYWQuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgLy8gSW50ZW50aW9uYWxseSBpZ25vcmVkOiByb3V0ZSByZW5kZXJpbmcvZXJyb3IgYm91bmRhcmllcyBvd24gdGhlIGZhaWx1cmUuXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGluc3RydW1lbnRhdGlvbiAhPSBudWxsICYmIHByZXBhcmUgPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmaW5pc2hlZEF0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgZW1pdFByZXBhcmVJbnN0cnVtZW50YXRpb24oaW5zdHJ1bWVudGF0aW9uLCB7XG4gICAgICAgICAga2luZDogJ3ByZXBhcmUtY29tcGxldGUnLFxuICAgICAgICAgIHNvdXJjZTogaW5zdHJ1bWVudGF0aW9uLnNvdXJjZSxcbiAgICAgICAgICB0aW1lc3RhbXA6IGZpbmlzaGVkQXQsXG4gICAgICAgICAgbG9jYXRpb246IGluc3RydW1lbnRhdGlvbi5sb2NhdGlvbixcbiAgICAgICAgICByb3V0ZVBhdGg6IHBhdGgsXG4gICAgICAgICAgbW9kdWxlSWQsXG4gICAgICAgICAgZHVyYXRpb25NczogZmluaXNoZWRBdCAtIHByZXBhcmVTdGFydGVkQXQsXG4gICAgICAgICAgaGFzUHJlcGFyZWQ6IGZhbHNlLFxuICAgICAgICAgIHN0YXR1czogJ3Jlc29sdmVkJyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNvdXJjZVBhZ2UgIT0gbnVsbCAmJiByZXNvdXJjZVBhZ2UuZ2V0KCkgPT0gbnVsbCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIFByb21pc2UucmVzb2x2ZShyZXNvdXJjZVBhZ2UubG9hZCgpKS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBJbnRlbnRpb25hbGx5IGlnbm9yZWQ6IHJvdXRlIHJlbmRlcmluZy9lcnJvciBib3VuZGFyaWVzIG93biB0aGUgZmFpbHVyZS5cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSW50ZW50aW9uYWxseSBpZ25vcmVkOiByb3V0ZSByZW5kZXJpbmcvZXJyb3IgYm91bmRhcmllcyBvd24gdGhlIGZhaWx1cmUuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJvdXRlTm9kZTogcm91dGUsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIGZ1bGxQYXRoOiBwYXRoLFxuICAgICAgICBzZWdtZW50SW5kZXg6IHJvdXRlSW5kZXgsXG4gICAgICAgIHByZXBhcmVkUmVzb3VyY2UsXG4gICAgICAgIHJlZGlyZWN0VG86IG1hdGNoZWRSb3V0ZS5yZWRpcmVjdFRvID8/IG51bGwsXG4gICAgICAgIHJlbmRlcixcbiAgICAgICAgcmVzb3VyY2VQYWdlLFxuICAgICAgICBoaWdobGlnaHRJZDogYnVpbGRIaWdobGlnaHRJZChwYXRoLCByb3V0ZUluZGV4LCBtb2R1bGVJZCksXG4gICAgICAgIHF1ZXJ5U2NoZW1hLFxuICAgICAgfTtcbiAgICB9LFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgbWF0Y2gsXG4gICAgc2VnbWVudHMsXG4gICAgcm91dGVzOiBzZWdtZW50cyxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBldmVyeSBhc3luYyBwcmVwYXJlIHJlc291cmNlIGZvciBhIG1hdGNoZWQgcm91dGUgaGllcmFyY2h5LlxuICpcbiAqIEBwYXJhbSBtYXRjaCAtIE1hdGNoZWQgcm91dGUgZGVzY3JpcHRvciAob3IgYG51bGxgIHdoZW4gbm90aGluZyBtYXRjaGVkKS5cbiAqIEBwYXJhbSBxdWVyeSAtIE9wdGlvbmFsIHF1ZXJ5IG9iamVjdCBmb3J3YXJkZWQgdG8gcHJlcGFyZSBmdW5jdGlvbnMuXG4gKiBAcGFyYW0gaW5zdHJ1bWVudGF0aW9uIC0gT3B0aW9uYWwgaW5zdHJ1bWVudGF0aW9uIHNpbmsgZm9yIHByZXBhcmUgbGlmZWN5Y2xlIGV2ZW50cy5cbiAqIEBwYXJhbSBjb250ZXh0IC0gT3B0aW9uYWwgcm91dGVyIGNvbnRleHQgZm9yd2FyZGVkIHRvIHByZXBhcmUgZnVuY3Rpb25zLlxuICogQHJldHVybnMgUHJlcGFyZWQgaGllcmFyY2h5IHdpdGggY29uY3JldGUgcHJlcGFyZWQgdmFsdWVzIGluc3RlYWQgb2YgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZU1hdGNoQXN5bmM8XG4gIFRQYXJhbXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4oXG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFBhcmFtcz4gfCBudWxsLFxuICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBpbnN0cnVtZW50YXRpb24/OiBQcmVwYXJlSW5zdHJ1bWVudGF0aW9uLFxuICBjb250ZXh0PzogVENvbnRleHQsXG4pOiBQcm9taXNlPFJlc29sdmVkUHJlcGFyZWRNYXRjaDxUUGFyYW1zLCBUQ29udGV4dD4+IHtcbiAgY29uc3QgcHJlcGFyZWRNYXRjaCA9IHByZXBhcmVNYXRjaChtYXRjaCwgcXVlcnksIGluc3RydW1lbnRhdGlvbiwgY29udGV4dCk7XG4gIGNvbnN0IHNlZ21lbnRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgcHJlcGFyZWRNYXRjaC5zZWdtZW50cy5tYXAoXG4gICAgICBhc3luYyAocm91dGUpOiBQcm9taXNlPFJlc29sdmVkUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+PiA9PiB7XG4gICAgICAgIGxldCBwcmVwYXJlZDogdW5rbm93bjtcbiAgICAgICAgaWYgKHJvdXRlLnByZXBhcmVkUmVzb3VyY2UgIT0gbnVsbCkge1xuICAgICAgICAgIHByZXBhcmVkID0gYXdhaXQgcm91dGUucHJlcGFyZWRSZXNvdXJjZS5sb2FkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByb3V0ZU5vZGU6IHJvdXRlLnJvdXRlTm9kZSxcbiAgICAgICAgICBwYXRoOiByb3V0ZS5wYXRoLFxuICAgICAgICAgIGZ1bGxQYXRoOiByb3V0ZS5mdWxsUGF0aCxcbiAgICAgICAgICBzZWdtZW50SW5kZXg6IHJvdXRlLnNlZ21lbnRJbmRleCxcbiAgICAgICAgICBwcmVwYXJlZCxcbiAgICAgICAgICByZWRpcmVjdFRvOiByb3V0ZS5yZWRpcmVjdFRvLFxuICAgICAgICAgIHJlbmRlcjogcm91dGUucmVuZGVyLFxuICAgICAgICAgIHJlc291cmNlUGFnZTogcm91dGUucmVzb3VyY2VQYWdlLFxuICAgICAgICAgIGhpZ2hsaWdodElkOiByb3V0ZS5oaWdobGlnaHRJZCxcbiAgICAgICAgICBxdWVyeVNjaGVtYTogcm91dGUucXVlcnlTY2hlbWEsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICksXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBtYXRjaDogcHJlcGFyZWRNYXRjaC5tYXRjaCxcbiAgICBzZWdtZW50cyxcbiAgICByb3V0ZXM6IHNlZ21lbnRzLFxuICB9O1xufVxuXG4vKipcbiAqIFJvdXRlIGhlbHBlciB0aGF0IHByZXNlcnZlcyBUeXBlU2NyaXB0IGluZmVyZW5jZSAoaW5jbHVkaW5nIGNvbmRpdGlvbmFsIHF1ZXJ5LXNjaGVtYSBpbmZlcmVuY2UpLlxuICpcbiAqIEBwYXJhbSByb3V0ZSAtIFJvdXRlIGRlZmluaXRpb24gdG8gcmV0dXJuIHVuY2hhbmdlZCB3aXRoIGluZmVycmVkIGdlbmVyaWNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcjxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVENoaWxkcmVuIGV4dGVuZHMgcmVhZG9ubHkgKFJvdXRlTm9kZSB8IFJlZGlyZWN0KVtdIHwgdW5kZWZpbmVkID1cbiAgICB8IHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXVxuICAgIHwgdW5kZWZpbmVkLFxuPihcbiAgcm91dGU6IFJvdXRlPFxuICAgIFRDb250ZXh0LFxuICAgIFRQcmVwYXJlZCxcbiAgICBUVmFyaWFibGVzLFxuICAgIFRRdWVyeSxcbiAgICBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gICAgVENoaWxkcmVuXG4gID4sXG4pOiBSb3V0ZTxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCxcbiAgVFZhcmlhYmxlcyxcbiAgVFF1ZXJ5LFxuICBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRDaGlsZHJlblxuPiB7XG4gIHJldHVybiByb3V0ZTtcbn1cbiJdfQ==
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUJBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBY25FLE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsSUFBdUIsRUFDdkIsS0FBd0IsRUFDZixFQUFFO0lBQ1gsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqQyxPQUFPLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsVUFBNkIsRUFDN0IsSUFBMkIsRUFDM0IsS0FBZ0IsRUFDUCxFQUFFO0lBQ1gsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2pCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNE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SSxFQUFFLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU87WUFDTCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxRQUFRO1lBQ1IsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztTQUMvQixDQUFDO0lBQ0osQ0FBQyxDQUNGLENBQ0YsQ0FBQztJQUVGLE9BQU87UUFDTCxLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUs7UUFDMUIsUUFBUTtRQUNSLE1BQU0sRUFBRSxRQUFRO0tBQ2pCLENBQUM7QUFDSixDQUFDO0FBT0QsTUFBTSxVQUFVLENBQUMsQ0FTZixLQU9DO0lBU0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJhbURhdGEgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmltcG9ydCB7XG4gIHR5cGUgRmlsdGVyU2NoZW1hLFxuICB0eXBlIFByZXBhcmVSZXN1bHQsXG4gIHR5cGUgUHJlcGFyZWRNYXRjaCxcbiAgdHlwZSBQcmVwYXJlZE1hdGNoUm91dGUsXG4gIHR5cGUgUHJlcGFyZWRSb3V0ZVNlZ21lbnQsXG4gIHR5cGUgUmVkaXJlY3QsXG4gIHR5cGUgUmVzb2x2ZWRQcmVwYXJlZE1hdGNoLFxuICB0eXBlIFJlc29sdmVkUHJlcGFyZWRSb3V0ZVNlZ21lbnQsXG4gIHR5cGUgUm91dGUsXG4gIHR5cGUgUm91dGVOb2RlLFxuICB0eXBlIFJvdXRlck1hdGNoZWRSb3V0ZSxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgUm91dGVyUHJlcGFyZUV2ZW50LFxuICBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlLFxuICBSb3V0ZXJMb2NhdGlvblNuYXBzaG90LFxufSBmcm9tICcuL2luc3RydW1lbnRhdGlvbi9JbnN0cnVtZW50YXRpb24uanMnO1xuXG5pbXBvcnQgdHlwZSB7IEZsYXRSb3V0ZSB9IGZyb20gJy4vYnVpbGRlci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVQcmVwYXJlZFZhbHVlUmVzb3VyY2UgfSBmcm9tICcuL3ByZXBhcmVSZXNvdXJjZS5qcyc7XG5cbnR5cGUgUHJlcGFyZUluc3RydW1lbnRhdGlvbiA9IHtcbiAgZW1pdDogKGV2ZW50OiBSb3V0ZXJQcmVwYXJlRXZlbnQpID0+IHZvaWQ7XG4gIHNvdXJjZTogUm91dGVyTmF2aWdhdGlvblNvdXJjZTtcbiAgbG9jYXRpb246IFJvdXRlckxvY2F0aW9uU25hcHNob3Q7XG59O1xuXG50eXBlIFByZXBhcmVSZXVzZUlucHV0PFRDb250ZXh0PiA9IHtcbiAgcHJldmlvdXNTZWdtZW50cz86IFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PltdO1xuICBwcmV2aW91c1BhcmFtcz86IFBhcmFtRGF0YTtcbiAgc2FtZVNlYXJjaD86IGJvb2xlYW47XG59O1xuXG5jb25zdCBpc1BhcmFtVmFsdWVFcXVhbCA9IChcbiAgbGVmdDogUGFyYW1EYXRhW3N0cmluZ10sXG4gIHJpZ2h0OiBQYXJhbURhdGFbc3RyaW5nXSxcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShsZWZ0KSB8fCBBcnJheS5pc0FycmF5KHJpZ2h0KSkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShsZWZ0KSB8fCAhQXJyYXkuaXNBcnJheShyaWdodCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGxlZnQubGVuZ3RoICE9PSByaWdodC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGxlZnQuZXZlcnkoKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSByaWdodFtpbmRleF07XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0O1xufTtcblxuY29uc3QgYXJlU2VnbWVudFBhcmFtc0VxdWFsID0gKFxuICBwYXJhbU5hbWVzOiByZWFkb25seSBzdHJpbmdbXSxcbiAgbGVmdDogUGFyYW1EYXRhIHwgdW5kZWZpbmVkLFxuICByaWdodDogUGFyYW1EYXRhLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChwYXJhbU5hbWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChsZWZ0ID09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHBhcmFtTmFtZXMuZXZlcnkoKHBhcmFtTmFtZSkgPT4ge1xuICAgIHJldHVybiBpc1BhcmFtVmFsdWVFcXVhbChsZWZ0W3BhcmFtTmFtZV0sIHJpZ2h0W3BhcmFtTmFtZV0pO1xuICB9KTtcbn07XG5cbi8qKiBFbWl0cyBwcmVwYXJlIGluc3RydW1lbnRhdGlvbiB3aXRob3V0IGFsbG93aW5nIGluc3RydW1lbnRhdGlvbiBmYWlsdXJlcyB0byBhZmZlY3Qgcm91dGluZy4gKi9cbmZ1bmN0aW9uIGVtaXRQcmVwYXJlSW5zdHJ1bWVudGF0aW9uKFxuICBpbnN0cnVtZW50YXRpb246IFByZXBhcmVJbnN0cnVtZW50YXRpb24gfCB1bmRlZmluZWQsXG4gIGV2ZW50OiBSb3V0ZXJQcmVwYXJlRXZlbnQsXG4pOiB2b2lkIHtcbiAgaWYgKGluc3RydW1lbnRhdGlvbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHRyeSB7XG4gICAgaW5zdHJ1bWVudGF0aW9uLmVtaXQoZXZlbnQpO1xuICB9IGNhdGNoIHtcbiAgICAvLyBJbnN0cnVtZW50YXRpb24gbXVzdCBuZXZlciBicmVhayByb3V0aW5nIG9yIHByZXBhcmUgbGlmZWN5Y2xlLlxuICB9XG59XG5cbi8qKlxuICogRmluZHMgdGhlIGZpcnN0IGZsYXQgcm91dGUgbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIGxvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSByb3V0ZXMgLSBGbGF0dGVuZWQgcm91dGUgbGlzdCB0byBldmFsdWF0ZS5cbiAqIEBwYXJhbSBsb2NhdGlvbiAtIEJyb3dzZXIgbG9jYXRpb24gd2hvc2UgcGF0aG5hbWUgc2hvdWxkIGJlIG1hdGNoZWQuXG4gKiBAcmV0dXJucyBNYXRjaGVkIHJvdXRlIHdpdGggcGFyYW1zIG9yIGBudWxsYCBpZiBub25lIG1hdGNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF0Y2hlZFJvdXRlPFRQYXJhbXMgZXh0ZW5kcyBQYXJhbURhdGE+KFxuICByb3V0ZXM6IEZsYXRSb3V0ZTxUUGFyYW1zPltdLFxuICBsb2NhdGlvbjogTG9jYXRpb24sXG4pOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFBhcmFtcz4gfCBudWxsIHtcbiAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZXMpIHtcbiAgICBjb25zdCBtYXRjaCA9IHJvdXRlLm1hdGNoRnVuY3Rpb24obG9jYXRpb24ucGF0aG5hbWUpO1xuICAgIGlmIChtYXRjaCAhPT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHsgcGF0aCwgcGFyYW1zIH0gPSBtYXRjaDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1hdGNoLFxuICAgICAgICByb3V0ZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBEZXJpdmVzIGEgZGV0ZXJtaW5pc3RpYyBpZGVudGlmaWVyIHRoYXQgbGlua3MgcHJlcGFyZWQgcm91dGVzIHRvIERPTSBtYXJrZXJzLlxuICovXG5mdW5jdGlvbiBidWlsZEhpZ2hsaWdodElkKFxuICByb3V0ZVBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgaW5kZXg6IG51bWJlcixcbiAgbW9kdWxlSWQ/OiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgaWYgKHR5cGVvZiBtb2R1bGVJZCA9PT0gJ3N0cmluZycgJiYgbW9kdWxlSWQudHJpbSgpICE9PSAnJykge1xuICAgIHBhcnRzLnB1c2goYG1vZHVsZToke21vZHVsZUlkfWApO1xuICB9XG4gIGlmICh0eXBlb2Ygcm91dGVQYXRoID09PSAnc3RyaW5nJyAmJiByb3V0ZVBhdGgudHJpbSgpICE9PSAnJykge1xuICAgIHBhcnRzLnB1c2goYHBhdGg6JHtyb3V0ZVBhdGh9YCk7XG4gIH1cbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHBhcnRzLnB1c2goJ3JvdXRlJyk7XG4gIH1cbiAgcGFydHMucHVzaChgaW5kZXg6JHtpbmRleH1gKTtcbiAgcmV0dXJuIHBhcnRzLmpvaW4oJ3wnKTtcbn1cblxuZXhwb3J0IGNvbnN0IF9fdGVzdFRvb2xzID0ge1xuICBidWlsZEhpZ2hsaWdodElkLFxuICBhcmVTZWdtZW50UGFyYW1zRXF1YWwsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIFByZXBhcmVzIGEgbWF0Y2hlZCByb3V0ZSBieSBleGVjdXRpbmcgYHByZXBhcmVgIGNhbGxiYWNrcyBhbmQgcmVzb2x2aW5nIHJlc291cmNlIHBhZ2VzLlxuICpcbiAqIEBwYXJhbSBtYXRjaCAtIE1hdGNoZWQgcm91dGUgZGVzY3JpcHRvciAob3IgYG51bGxgIHdoZW4gbm90aGluZyBtYXRjaGVkKS5cbiAqIEBwYXJhbSBxdWVyeSAtIE9wdGlvbmFsIHF1ZXJ5IG9iamVjdCBmb3J3YXJkZWQgdG8gcHJlcGFyZSBmdW5jdGlvbnMuXG4gKiBAcGFyYW0gY29udGV4dCAtIE9wdGlvbmFsIHJvdXRlciBjb250ZXh0IGZvcndhcmRlZCB0byBwcmVwYXJlIGZ1bmN0aW9ucy5cbiAqIEByZXR1cm5zIFByZXBhcmVkIGhpZXJhcmNoeSByZWFkeSBmb3IgdGhlIHJlbmRlcmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZU1hdGNoPFRQYXJhbXMgZXh0ZW5kcyBQYXJhbURhdGEsIFRDb250ZXh0ID0gdW5rbm93bj4oXG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFBhcmFtcz4gfCBudWxsLFxuICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBpbnN0cnVtZW50YXRpb24/OiBQcmVwYXJlSW5zdHJ1bWVudGF0aW9uLFxuICBjb250ZXh0PzogVENvbnRleHQsXG4gIHJldXNlPzogUHJlcGFyZVJldXNlSW5wdXQ8VENvbnRleHQ+LFxuKTogUHJlcGFyZWRNYXRjaDxUUGFyYW1zLCBUQ29udGV4dD4ge1xuICAvLyBOT1RFOiBSdW50aW1lIHJldGFpbnMgYSBnZW5lcmljIFByZXBhcmVkUmVzdWx0OyB0eXBlLWxldmVsIG5hcnJvd2luZyBpcyBhY2hpZXZlZCBleHRlcm5hbGx5XG4gIC8vIHRocm91Z2ggdGhlIHJvdXRlIHVuaW9uIGFuZCBQcmVwYXJlZEFjY2VzcyBoZWxwZXJzLiBXZSBpbnRlbnRpb25hbGx5IGF2b2lkIGluamVjdGluZ1xuICAvLyBnZW5lcmljIHBhcmFtZXRlcnMgaGVyZSB0byBrZWVwIHJ1bnRpbWUgbGlnaHR3ZWlnaHQgd2hpbGUgc3RpbGwgZW5hYmxpbmcgY29tcGlsZS10aW1lXG4gIC8vIGRpc2NyaW1pbmF0aW9uIGluIHVzZXJsYW5kIHZpYSBjcmVhdGVSb3V0ZXIgZ2VuZXJpY3MuXG4gIGlmIChtYXRjaCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1hdGNoLFxuICAgICAgc2VnbWVudHM6IFtdLFxuICAgICAgcm91dGVzOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgbWF0Y2hlZFJvdXRlID0gbWF0Y2gucm91dGU7XG5cbiAgY29uc3Qgc2VnbWVudHM6IFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PltdID0gbWF0Y2gucm91dGUucm91dGVzLm1hcChcbiAgICAocm91dGUsIHJvdXRlSW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcHJlcGFyZSxcbiAgICAgICAgcXVlcnlTY2hlbWEsXG4gICAgICAgIHJlc291cmNlUGFnZSxcbiAgICAgICAgcmVuZGVyLFxuICAgICAgICBzdXNwZW5zZUJvdW5kYXJ5LFxuICAgICAgICBmYWxsYmFjayxcbiAgICAgIH0gPSByb3V0ZTtcbiAgICAgIGNvbnN0IHJvdXRlU2VnbWVudCA9IG1hdGNoLnJvdXRlLnJvdXRlU2VnbWVudHM/Lltyb3V0ZUluZGV4XTtcbiAgICAgIGNvbnN0IHByZXZpb3VzU2VnbWVudCA9IHJldXNlPy5wcmV2aW91c1NlZ21lbnRzPy5bcm91dGVJbmRleF07XG4gICAgICBpZiAoXG4gICAgICAgIHByZXZpb3VzU2VnbWVudD8ucm91dGVOb2RlID09PSByb3V0ZSAmJlxuICAgICAgICAocmV1c2U/LnNhbWVTZWFyY2ggPT09IHRydWUgfHxcbiAgICAgICAgICByb3V0ZS5wcmVwYXJlU2VhcmNoQmVoYXZpb3IgPT09ICdwYXRoJyB8fFxuICAgICAgICAgIHByZXBhcmUgPT0gbnVsbCkgJiZcbiAgICAgICAgYXJlU2VnbWVudFBhcmFtc0VxdWFsKFxuICAgICAgICAgIHJvdXRlU2VnbWVudD8ucGFyYW1OYW1lcyA/PyBbXSxcbiAgICAgICAgICByZXVzZT8ucHJldmlvdXNQYXJhbXMsXG4gICAgICAgICAgbWF0Y2gucGFyYW1zLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHByZXZpb3VzU2VnbWVudDtcbiAgICAgIH1cblxuICAgICAgbGV0IG1vZHVsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAoXG4gICAgICAgIHJlc291cmNlUGFnZSAhPSBudWxsICYmXG4gICAgICAgIHR5cGVvZiByZXNvdXJjZVBhZ2UuZ2V0TW9kdWxlSWQgPT09ICdmdW5jdGlvbidcbiAgICAgICkge1xuICAgICAgICBjb25zdCByZXNvbHZlZE1vZHVsZUlkID0gcmVzb3VyY2VQYWdlLmdldE1vZHVsZUlkKCk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZWRNb2R1bGVJZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBtb2R1bGVJZCA9IHJlc29sdmVkTW9kdWxlSWQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGV0IHByZXBhcmVTdGFydGVkQXQgPSAwO1xuICAgICAgaWYgKGluc3RydW1lbnRhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgIHByZXBhcmVTdGFydGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICBlbWl0UHJlcGFyZUluc3RydW1lbnRhdGlvbihpbnN0cnVtZW50YXRpb24sIHtcbiAgICAgICAgICBraW5kOiAncHJlcGFyZS1zdGFydCcsXG4gICAgICAgICAgc291cmNlOiBpbnN0cnVtZW50YXRpb24uc291cmNlLFxuICAgICAgICAgIHRpbWVzdGFtcDogcHJlcGFyZVN0YXJ0ZWRBdCxcbiAgICAgICAgICBsb2NhdGlvbjogaW5zdHJ1bWVudGF0aW9uLmxvY2F0aW9uLFxuICAgICAgICAgIHJvdXRlUGF0aDogcGF0aCxcbiAgICAgICAgICBtb2R1bGVJZCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBwcmVwYXJlZFJlc291cmNlOiBQcmVwYXJlZE1hdGNoUm91dGVbJ3ByZXBhcmVkUmVzb3VyY2UnXTtcbiAgICAgIGlmIChwcmVwYXJlICE9IG51bGwpIHtcbiAgICAgICAgcHJlcGFyZWRSZXNvdXJjZSA9IGNyZWF0ZVByZXBhcmVkVmFsdWVSZXNvdXJjZSgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHByZXBhcmUoe1xuICAgICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgICBtYXRjaGVkUm91dGUsXG4gICAgICAgICAgICBjb250ZXh0OiBjb250ZXh0IGFzIFRDb250ZXh0LFxuICAgICAgICAgICAgcmVzb3VyY2VQYWdlLFxuICAgICAgICAgICAgLy8gRml4IE9iamVjdC5jcmVhdGUobnVsbCkgaXNzdWUgaW4gcGF0aC10by1yZWdleHBcbiAgICAgICAgICAgIHZhcmlhYmxlczogeyAuLi5tYXRjaC5wYXJhbXMgfSxcbiAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSA/PyB7fSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIEVhZ2VybHkgZXZhbHVhdGUgcHJlcGFyZSBzbyB0aGUgcHJlcGFyZWQgcmVzb3VyY2UgaW1tZWRpYXRlbHkgcmVmbGVjdHNcbiAgICAgICAgLy8gc3luYyByZXNvbHV0aW9uIG9yIGFzeW5jIHBlbmRpbmcgc3RhdGUgZm9yIHRoZSBjdXJyZW50IHJvdXRlIHNuYXBzaG90LlxuICAgICAgICBjb25zdCBwcmVwYXJlZExvYWQgPSBwcmVwYXJlZFJlc291cmNlLmxvYWQoKTtcblxuICAgICAgICBpZiAoaW5zdHJ1bWVudGF0aW9uICE9IG51bGwpIHtcbiAgICAgICAgICBwcmVwYXJlZExvYWRcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmluaXNoZWRBdCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgIGVtaXRQcmVwYXJlSW5zdHJ1bWVudGF0aW9uKGluc3RydW1lbnRhdGlvbiwge1xuICAgICAgICAgICAgICAgIGtpbmQ6ICdwcmVwYXJlLWNvbXBsZXRlJyxcbiAgICAgICAgICAgICAgICBzb3VyY2U6IGluc3RydW1lbnRhdGlvbi5zb3VyY2UsXG4gICAgICAgICAgICAgICAgdGltZXN0YW1wOiBmaW5pc2hlZEF0LFxuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBpbnN0cnVtZW50YXRpb24ubG9jYXRpb24sXG4gICAgICAgICAgICAgICAgcm91dGVQYXRoOiBwYXRoLFxuICAgICAgICAgICAgICAgIG1vZHVsZUlkLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uTXM6IGZpbmlzaGVkQXQgLSBwcmVwYXJlU3RhcnRlZEF0LFxuICAgICAgICAgICAgICAgIGhhc1ByZXBhcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ3Jlc29sdmVkJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmluaXNoZWRBdCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgIGVtaXRQcmVwYXJlSW5zdHJ1bWVudGF0aW9uKGluc3RydW1lbnRhdGlvbiwge1xuICAgICAgICAgICAgICAgIGtpbmQ6ICdwcmVwYXJlLWNvbXBsZXRlJyxcbiAgICAgICAgICAgICAgICBzb3VyY2U6IGluc3RydW1lbnRhdGlvbi5zb3VyY2UsXG4gICAgICAgICAgICAgICAgdGltZXN0YW1wOiBmaW5pc2hlZEF0LFxuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBpbnN0cnVtZW50YXRpb24ubG9jYXRpb24sXG4gICAgICAgICAgICAgICAgcm91dGVQYXRoOiBwYXRoLFxuICAgICAgICAgICAgICAgIG1vZHVsZUlkLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uTXM6IGZpbmlzaGVkQXQgLSBwcmVwYXJlU3RhcnRlZEF0LFxuICAgICAgICAgICAgICAgIGhhc1ByZXBhcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ3JlamVjdGVkJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmVwYXJlZExvYWQuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgLy8gSW50ZW50aW9uYWxseSBpZ25vcmVkOiByb3V0ZSByZW5kZXJpbmcvZXJyb3IgYm91bmRhcmllcyBvd24gdGhlIGZhaWx1cmUuXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGluc3RydW1lbnRhdGlvbiAhPSBudWxsICYmIHByZXBhcmUgPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmaW5pc2hlZEF0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgZW1pdFByZXBhcmVJbnN0cnVtZW50YXRpb24oaW5zdHJ1bWVudGF0aW9uLCB7XG4gICAgICAgICAga2luZDogJ3ByZXBhcmUtY29tcGxldGUnLFxuICAgICAgICAgIHNvdXJjZTogaW5zdHJ1bWVudGF0aW9uLnNvdXJjZSxcbiAgICAgICAgICB0aW1lc3RhbXA6IGZpbmlzaGVkQXQsXG4gICAgICAgICAgbG9jYXRpb246IGluc3RydW1lbnRhdGlvbi5sb2NhdGlvbixcbiAgICAgICAgICByb3V0ZVBhdGg6IHBhdGgsXG4gICAgICAgICAgbW9kdWxlSWQsXG4gICAgICAgICAgZHVyYXRpb25NczogZmluaXNoZWRBdCAtIHByZXBhcmVTdGFydGVkQXQsXG4gICAgICAgICAgaGFzUHJlcGFyZWQ6IGZhbHNlLFxuICAgICAgICAgIHN0YXR1czogJ3Jlc29sdmVkJyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNvdXJjZVBhZ2UgIT0gbnVsbCAmJiByZXNvdXJjZVBhZ2UuZ2V0KCkgPT0gbnVsbCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIFByb21pc2UucmVzb2x2ZShyZXNvdXJjZVBhZ2UubG9hZCgpKS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBJbnRlbnRpb25hbGx5IGlnbm9yZWQ6IHJvdXRlIHJlbmRlcmluZy9lcnJvciBib3VuZGFyaWVzIG93biB0aGUgZmFpbHVyZS5cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSW50ZW50aW9uYWxseSBpZ25vcmVkOiByb3V0ZSByZW5kZXJpbmcvZXJyb3IgYm91bmRhcmllcyBvd24gdGhlIGZhaWx1cmUuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJvdXRlTm9kZTogcm91dGUsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIGZ1bGxQYXRoOiByb3V0ZVNlZ21lbnQ/LmZ1bGxQYXRoID8/IHBhdGgsXG4gICAgICAgIHNlZ21lbnRLZXk6XG4gICAgICAgICAgcm91dGVTZWdtZW50Py5rZXkgPz8gYnVpbGRIaWdobGlnaHRJZChwYXRoLCByb3V0ZUluZGV4LCBtb2R1bGVJZCksXG4gICAgICAgIHBhcmFtTmFtZXM6IHJvdXRlU2VnbWVudD8ucGFyYW1OYW1lcyA/PyBbXSxcbiAgICAgICAgc2VnbWVudEluZGV4OiByb3V0ZUluZGV4LFxuICAgICAgICBwcmVwYXJlZFJlc291cmNlLFxuICAgICAgICByZWRpcmVjdFRvOiBtYXRjaGVkUm91dGUucmVkaXJlY3RUbyA/PyBudWxsLFxuICAgICAgICByZW5kZXIsXG4gICAgICAgIHJlc291cmNlUGFnZSxcbiAgICAgICAgc3VzcGVuc2VCb3VuZGFyeTogc3VzcGVuc2VCb3VuZGFyeSA/PyAnaW5oZXJpdCcsXG4gICAgICAgIGZhbGxiYWNrLFxuICAgICAgICBoaWdobGlnaHRJZDogYnVpbGRIaWdobGlnaHRJZChwYXRoLCByb3V0ZUluZGV4LCBtb2R1bGVJZCksXG4gICAgICAgIHF1ZXJ5U2NoZW1hLFxuICAgICAgfTtcbiAgICB9LFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgbWF0Y2gsXG4gICAgc2VnbWVudHMsXG4gICAgcm91dGVzOiBzZWdtZW50cyxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBldmVyeSBhc3luYyBwcmVwYXJlIHJlc291cmNlIGZvciBhIG1hdGNoZWQgcm91dGUgaGllcmFyY2h5LlxuICpcbiAqIEBwYXJhbSBtYXRjaCAtIE1hdGNoZWQgcm91dGUgZGVzY3JpcHRvciAob3IgYG51bGxgIHdoZW4gbm90aGluZyBtYXRjaGVkKS5cbiAqIEBwYXJhbSBxdWVyeSAtIE9wdGlvbmFsIHF1ZXJ5IG9iamVjdCBmb3J3YXJkZWQgdG8gcHJlcGFyZSBmdW5jdGlvbnMuXG4gKiBAcGFyYW0gaW5zdHJ1bWVudGF0aW9uIC0gT3B0aW9uYWwgaW5zdHJ1bWVudGF0aW9uIHNpbmsgZm9yIHByZXBhcmUgbGlmZWN5Y2xlIGV2ZW50cy5cbiAqIEBwYXJhbSBjb250ZXh0IC0gT3B0aW9uYWwgcm91dGVyIGNvbnRleHQgZm9yd2FyZGVkIHRvIHByZXBhcmUgZnVuY3Rpb25zLlxuICogQHJldHVybnMgUHJlcGFyZWQgaGllcmFyY2h5IHdpdGggY29uY3JldGUgcHJlcGFyZWQgdmFsdWVzIGluc3RlYWQgb2YgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZU1hdGNoQXN5bmM8XG4gIFRQYXJhbXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4oXG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFBhcmFtcz4gfCBudWxsLFxuICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBpbnN0cnVtZW50YXRpb24/OiBQcmVwYXJlSW5zdHJ1bWVudGF0aW9uLFxuICBjb250ZXh0PzogVENvbnRleHQsXG4pOiBQcm9taXNlPFJlc29sdmVkUHJlcGFyZWRNYXRjaDxUUGFyYW1zLCBUQ29udGV4dD4+IHtcbiAgY29uc3QgcHJlcGFyZWRNYXRjaCA9IHByZXBhcmVNYXRjaChtYXRjaCwgcXVlcnksIGluc3RydW1lbnRhdGlvbiwgY29udGV4dCk7XG4gIGNvbnN0IHNlZ21lbnRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgcHJlcGFyZWRNYXRjaC5zZWdtZW50cy5tYXAoXG4gICAgICBhc3luYyAocm91dGUpOiBQcm9taXNlPFJlc29sdmVkUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+PiA9PiB7XG4gICAgICAgIGxldCBwcmVwYXJlZDogdW5rbm93bjtcbiAgICAgICAgaWYgKHJvdXRlLnByZXBhcmVkUmVzb3VyY2UgIT0gbnVsbCkge1xuICAgICAgICAgIHByZXBhcmVkID0gYXdhaXQgcm91dGUucHJlcGFyZWRSZXNvdXJjZS5sb2FkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByb3V0ZU5vZGU6IHJvdXRlLnJvdXRlTm9kZSxcbiAgICAgICAgICBwYXRoOiByb3V0ZS5wYXRoLFxuICAgICAgICAgIGZ1bGxQYXRoOiByb3V0ZS5mdWxsUGF0aCxcbiAgICAgICAgICBzZWdtZW50S2V5OiByb3V0ZS5zZWdtZW50S2V5LFxuICAgICAgICAgIHBhcmFtTmFtZXM6IHJvdXRlLnBhcmFtTmFtZXMsXG4gICAgICAgICAgc2VnbWVudEluZGV4OiByb3V0ZS5zZWdtZW50SW5kZXgsXG4gICAgICAgICAgcHJlcGFyZWQsXG4gICAgICAgICAgcmVkaXJlY3RUbzogcm91dGUucmVkaXJlY3RUbyxcbiAgICAgICAgICByZW5kZXI6IHJvdXRlLnJlbmRlcixcbiAgICAgICAgICByZXNvdXJjZVBhZ2U6IHJvdXRlLnJlc291cmNlUGFnZSxcbiAgICAgICAgICBzdXNwZW5zZUJvdW5kYXJ5OiByb3V0ZS5zdXNwZW5zZUJvdW5kYXJ5LFxuICAgICAgICAgIGZhbGxiYWNrOiByb3V0ZS5mYWxsYmFjayxcbiAgICAgICAgICBoaWdobGlnaHRJZDogcm91dGUuaGlnaGxpZ2h0SWQsXG4gICAgICAgICAgcXVlcnlTY2hlbWE6IHJvdXRlLnF1ZXJ5U2NoZW1hLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICApLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgbWF0Y2g6IHByZXBhcmVkTWF0Y2gubWF0Y2gsXG4gICAgc2VnbWVudHMsXG4gICAgcm91dGVzOiBzZWdtZW50cyxcbiAgfTtcbn1cblxuLyoqXG4gKiBSb3V0ZSBoZWxwZXIgdGhhdCBwcmVzZXJ2ZXMgVHlwZVNjcmlwdCBpbmZlcmVuY2UgKGluY2x1ZGluZyBjb25kaXRpb25hbCBxdWVyeS1zY2hlbWEgaW5mZXJlbmNlKS5cbiAqXG4gKiBAcGFyYW0gcm91dGUgLSBSb3V0ZSBkZWZpbml0aW9uIHRvIHJldHVybiB1bmNoYW5nZWQgd2l0aCBpbmZlcnJlZCBnZW5lcmljcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHI8XG4gIFRDb250ZXh0ID0gdW5rbm93bixcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCA9IFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFRDaGlsZHJlbiBleHRlbmRzIHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXSB8IHVuZGVmaW5lZCA9XG4gICAgfCByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW11cbiAgICB8IHVuZGVmaW5lZCxcbj4oXG4gIHJvdXRlOiBSb3V0ZTxcbiAgICBUQ29udGV4dCxcbiAgICBUUHJlcGFyZWQsXG4gICAgVFZhcmlhYmxlcyxcbiAgICBUUXVlcnksXG4gICAgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICAgIFRDaGlsZHJlblxuICA+LFxuKTogUm91dGU8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQsXG4gIFRWYXJpYWJsZXMsXG4gIFRRdWVyeSxcbiAgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUQ2hpbGRyZW5cbj4ge1xuICByZXR1cm4gcm91dGU7XG59XG4iXX0=
@@ -11,7 +11,36 @@ export type RawQuery = Record<string, RawQueryValue>;
11
11
  export type UnknownQueryShape = Record<string, unknown>;
12
12
  export type UnknownFilters = Record<string, unknown>;
13
13
  export type AsyncResourceStatus = 'idle' | 'pending' | 'resolved' | 'rejected';
14
+ export type RouterActiveLoadStatus = AsyncResourceStatus;
15
+ export type RouterActiveLoadState = {
16
+ status: RouterActiveLoadStatus;
17
+ pendingCount: number;
18
+ rejectedCount: number;
19
+ version: number;
20
+ };
21
+ export type RouterSegmentLoadState = {
22
+ path?: string;
23
+ fullPath?: string;
24
+ segmentIndex: number;
25
+ prepareStatus: AsyncResourceStatus;
26
+ codeStatus: AsyncResourceStatus;
27
+ status: RouterActiveLoadStatus;
28
+ };
29
+ export type RouterLoadState = {
30
+ status: RouterActiveLoadStatus;
31
+ pendingCount: number;
32
+ rejectedCount: number;
33
+ version: number;
34
+ segments: RouterSegmentLoadState[];
35
+ };
14
36
  export type RoutePrepareSearchBehavior = 'always' | 'path';
37
+ export type RouteSuspenseBoundary = 'inherit' | 'segment' | 'none';
38
+ export type RouteFallbackArgs<TContext = unknown> = {
39
+ segment: PreparedRouteSegment<TContext>;
40
+ match: RouterMatchedRoute<ParamData> | null;
41
+ children?: ReactNode;
42
+ };
43
+ export type RouteFallback<TContext = unknown> = ReactNode | ((args: RouteFallbackArgs<TContext>) => ReactNode);
15
44
  export type ReadableResource<T> = {
16
45
  get: () => T | undefined;
17
46
  getError: () => unknown;
@@ -21,10 +50,17 @@ export type ReadableResource<T> = {
21
50
  };
22
51
  export type FlatRouteInput<TVariables extends ParamData> = {
23
52
  path: string;
53
+ routeSegments?: FlatRouteSegment[];
24
54
  redirectTo?: string;
25
55
  matchFunction: MatchFunction<TVariables>;
26
56
  routes: AnyRoute[];
27
57
  };
58
+ export type FlatRouteSegment = {
59
+ key: string;
60
+ path?: string;
61
+ fullPath: string;
62
+ paramNames: readonly string[];
63
+ };
28
64
  export type RouterMatchedRoute<TVariables extends ParamData> = {
29
65
  match: Match<TVariables>;
30
66
  params: TVariables;
@@ -55,11 +91,15 @@ export type PreparedRouteSegment<TContext = unknown, TPrepared extends PrepareRe
55
91
  routeNode?: RouteNode;
56
92
  path?: string;
57
93
  fullPath?: string;
94
+ segmentKey: string;
95
+ paramNames: readonly string[];
58
96
  segmentIndex: number;
59
97
  preparedResource?: PreparedValueResource<TPrepared>;
60
98
  render?: RouteRender<TContext, TPrepared, TVariables, TQueryShape>;
61
99
  redirectTo: string | null;
62
100
  resourcePage?: ResourcePage | null;
101
+ suspenseBoundary: RouteSuspenseBoundary;
102
+ fallback?: RouteFallback<TContext>;
63
103
  highlightId?: string;
64
104
  querySchema?: FilterSchema;
65
105
  };
@@ -69,10 +109,14 @@ export type PreparedRouteSegmentSnapshot = {
69
109
  routeNode?: RouteNode;
70
110
  path?: string;
71
111
  fullPath?: string;
112
+ segmentKey: string;
113
+ paramNames: readonly string[];
72
114
  segmentIndex: number;
73
115
  preparedResource?: PreparedValueResource;
74
116
  redirectTo: string | null;
75
117
  resourcePage?: ResourcePage | null;
118
+ suspenseBoundary: RouteSuspenseBoundary;
119
+ fallback?: RouteFallback;
76
120
  highlightId?: string;
77
121
  querySchema?: FilterSchema;
78
122
  };
@@ -86,11 +130,15 @@ export type ResolvedPreparedRouteSegment<TContext = unknown, TPrepared extends P
86
130
  routeNode?: RouteNode;
87
131
  path?: string;
88
132
  fullPath?: string;
133
+ segmentKey: string;
134
+ paramNames: readonly string[];
89
135
  segmentIndex: number;
90
136
  prepared: TPrepared | undefined;
91
137
  render?: RouteRender<TContext, TPrepared, TVariables, TQueryShape>;
92
138
  redirectTo: string | null;
93
139
  resourcePage?: ResourcePage | null;
140
+ suspenseBoundary: RouteSuspenseBoundary;
141
+ fallback?: RouteFallback<TContext>;
94
142
  highlightId?: string;
95
143
  querySchema?: FilterSchema;
96
144
  };
@@ -103,6 +151,8 @@ export type ResolvedPreparedRouteChain<TVariables extends ParamData, TContext =
103
151
  export type ResolvedPreparedMatch<TVariables extends ParamData, TContext = unknown> = ResolvedPreparedRouteChain<TVariables, TContext>;
104
152
  export type RouteEntry<TVariables extends ParamData, S extends FilterSchema | undefined = FilterSchema | undefined, TContext = unknown> = {
105
153
  preparedMatch: PreparedRouteChain<TVariables, TContext>;
154
+ activeLoadState: RouterActiveLoadState;
155
+ loadState: RouterLoadState;
106
156
  context: TContext;
107
157
  location: Location;
108
158
  route: RouterMatchedRoute<TVariables> | null;
@@ -131,6 +181,8 @@ export type RouteNode = {
131
181
  querySchema?: FilterSchema;
132
182
  render?: (opts: RouteRenderOpts<any, any, any, any>) => ReactElement | null | undefined | Promise<ReactElement | null | undefined>;
133
183
  resourcePage?: ResourcePage | null;
184
+ suspenseBoundary?: RouteSuspenseBoundary;
185
+ fallback?: RouteFallback<any>;
134
186
  };
135
187
  export type PrepareResult = unknown;
136
188
  export type PrepareParams<TContext, TVariables extends ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = {
@@ -146,6 +198,8 @@ export type RoutePrepare<TContext, TPrepared extends PrepareResult, TVariables e
146
198
  export type Route<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined, TChildren extends readonly (RouteNode | Redirect)[] | undefined = readonly (RouteNode | Redirect)[] | undefined> = {
147
199
  children?: TChildren;
148
200
  resourcePage?: ResourcePage | null;
201
+ suspenseBoundary?: RouteSuspenseBoundary;
202
+ fallback?: RouteFallback<TContext>;
149
203
  path?: string;
150
204
  prepare?: RoutePrepare<TContext, TPrepared, TVariables, TQueryShape>;
151
205
  prepareSearchBehavior?: RoutePrepareSearchBehavior;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}