@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
package/README.md CHANGED
@@ -216,8 +216,8 @@ Navigation component that handles client-side routing.
216
216
  - `exact?`: boolean - Exact path matching for active state
217
217
  - `activeClassName?`: string - CSS class when link is active
218
218
  - `className?`: string - Base CSS class
219
- - `preloadOnMouseEnter?`: boolean - Preload route on hover
220
- - `preloadOnMouseDown?`: boolean - Preload route on mouse down
219
+ - `preloadOnHover?`: `'none' | 'code' | 'code-and-data'` - Preload behavior on hover
220
+ - `preloadOnMouseDown?`: `'none' | 'code-and-data'` - Preload behavior on mouse down
221
221
  - `href?`: string - Explicit href override
222
222
  - `target?`: string - Target attribute for the link
223
223
  - `onClick?`: (event) => void - Click handler
@@ -1,10 +1,12 @@
1
- import type { ResourcePageLoader, ResourcePageReturn } from './types.js';
1
+ import type { AsyncResourceStatus, ResourcePageLoader, ResourcePageReturn } from './types.js';
2
2
  export declare class ResourcePage {
3
3
  private __resource;
4
4
  private __moduleId;
5
5
  constructor(loader: ResourcePageLoader, moduleId: string);
6
6
  load(): Promise<ResourcePageReturn>;
7
7
  get(): ResourcePageReturn | undefined;
8
+ getStatus(): AsyncResourceStatus;
9
+ getError(): unknown;
8
10
  getModuleId(): string;
9
11
  read(): ResourcePageReturn | Promise<ResourcePageReturn> | Error;
10
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ResourcePage.d.ts","sourceRoot":"","sources":["../../src/ResourcePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA4BzE,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAC;IAGnB,OAAO,CAAC,UAAU,CAAS;gBAQR,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM;IAoBlD,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAWzC,GAAG,IAAI,kBAAkB,GAAG,SAAS;IAOrC,WAAW,IAAI,MAAM;IAerB,IAAI,IAAI,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,KAAK;CAGxE;AAsBD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,GACzB,YAAY,GAAG,IAAI,CAOrB"}
1
+ {"version":3,"file":"ResourcePage.d.ts","sourceRoot":"","sources":["../../src/ResourcePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AA4BpB,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAC;IAGnB,OAAO,CAAC,UAAU,CAAS;gBAQR,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM;IAoBlD,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAWzC,GAAG,IAAI,kBAAkB,GAAG,SAAS;IAOrC,SAAS,IAAI,mBAAmB;IAOhC,QAAQ,IAAI,OAAO;IAOnB,WAAW,IAAI,MAAM;IAerB,IAAI,IAAI,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,KAAK;CAGxE;AAsBD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,GACzB,YAAY,GAAG,IAAI,CAOrB"}
@@ -20,6 +20,12 @@ export class ResourcePage {
20
20
  get() {
21
21
  return this.__resource.get();
22
22
  }
23
+ getStatus() {
24
+ return this.__resource.getStatus();
25
+ }
26
+ getError() {
27
+ return this.__resource.getError();
28
+ }
23
29
  getModuleId() {
24
30
  return this.__moduleId;
25
31
  }
@@ -35,4 +41,4 @@ export function getResourcePage(moduleId, loader) {
35
41
  }
36
42
  return resource;
37
43
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VQYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Jlc291cmNlUGFnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRekQsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7QUFtQnhELE1BQU0sT0FBTyxZQUFZO0lBQ2YsVUFBVSxDQUFDO0lBR1gsVUFBVSxDQUFTO0lBUTNCLFlBQW1CLE1BQTBCLEVBQUUsUUFBZ0I7UUFDN0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUU7WUFDNUMsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBRXBCLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFFM0IsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUN4QixDQUFDO2dCQUNELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBUU0sS0FBSyxDQUFDLElBQUk7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQVNNLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUtNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFhTSxJQUFJO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQXNCRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixRQUFnQixFQUNoQixNQUEwQjtJQUUxQixJQUFJLFFBQVEsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JCLFFBQVEsR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlc291cmNlUGFnZUxvYWRlciwgUmVzb3VyY2VQYWdlUmV0dXJuIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVBc3luY1Jlc291cmNlIH0gZnJvbSAnLi9hc3luY1Jlc291cmNlLmpzJztcblxuLyoqXG4gKiBBIGNhY2hlIG9mIHJlc291cmNlcyB0byBhdm9pZCBsb2FkaW5nIHRoZSBzYW1lIG1vZHVsZSB0d2ljZS4gVGhpcyBpcyBpbXBvcnRhbnRcbiAqIGJlY2F1c2UgV2VicGFjayBkeW5hbWljIGltcG9ydHMgb25seSBleHBvc2UgYW4gYXN5bmNocm9ub3VzIEFQSSBmb3IgbG9hZGluZ1xuICogbW9kdWxlcywgc28gdG8gYmUgYWJsZSB0byBhY2Nlc3MgYWxyZWFkeS1sb2FkZWQgbW9kdWxlcyBzeW5jaHJvbm91c2x5IHdlXG4gKiBtdXN0IGhhdmUgc3RvcmVkIHRoZSBwcmV2aW91cyByZXN1bHQgc29tZXdoZXJlLlxuICovXG5jb25zdCByZXNvdXJjZVBhZ2VNYXAgPSBuZXcgTWFwPHN0cmluZywgUmVzb3VyY2VQYWdlPigpO1xuXG4vKipcbiAqIEEgcmVzb3VyY2UgbWFuYWdlciBmb3IgbGF6eS1sb2FkZWQgUmVhY3QgY29tcG9uZW50cyB3aXRoIFN1c3BlbnNlIGludGVncmF0aW9uLlxuICogVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSBsb2FkaW5nIHN0YXRlLCBjYWNoaW5nLCBhbmQgU3VzcGVuc2UgaW50ZWdyYXRpb24gZm9yXG4gKiBkeW5hbWljYWxseSBpbXBvcnRlZCBjb21wb25lbnRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXNvdXJjZSA9IG5ldyBSZXNvdXJjZVBhZ2UoXG4gKiAgICgpID0+IGltcG9ydCgnLi9NeUNvbXBvbmVudCcpLFxuICogICAnTXlDb21wb25lbnQnXG4gKiApO1xuICpcbiAqIC8vIEluIGEgUmVhY3QgY29tcG9uZW50IHdpdGggU3VzcGVuc2UgYm91bmRhcnk6XG4gKiBjb25zdCBDb21wb25lbnQgPSByZXNvdXJjZS5yZWFkKCk7XG4gKiByZXR1cm4gPENvbXBvbmVudCAvPjtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VQYWdlIHtcbiAgcHJpdmF0ZSBfX3Jlc291cmNlO1xuXG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyByZXNvdXJjZSAqL1xuICBwcml2YXRlIF9fbW9kdWxlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBSZXNvdXJjZVBhZ2UgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBsb2FkZXIgLSBGdW5jdGlvbiB0aGF0IHJldHVybnMgYSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29tcG9uZW50XG4gICAqIEBwYXJhbSBtb2R1bGVJZCAtIFVuaXF1ZSBpZGVudGlmaWVyIGZvciBjYWNoaW5nIHB1cnBvc2VzXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IobG9hZGVyOiBSZXNvdXJjZVBhZ2VMb2FkZXIsIG1vZHVsZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fbW9kdWxlSWQgPSBtb2R1bGVJZDtcbiAgICB0aGlzLl9fcmVzb3VyY2UgPSBjcmVhdGVBc3luY1Jlc291cmNlKGxvYWRlciwge1xuICAgICAgbm9ybWFsaXplOiAocmVzdWx0KSA9PiB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IE9LXG4gICAgICAgIGlmIChyZXN1bHQuZGVmYXVsdCAhPSBudWxsKSB7XG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgICAgICAgICByZXR1cm4gcmVzdWx0LmRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHJlc291cmNlIGlmIG5vdCBhbHJlYWR5IGxvYWRlZCBvciBsb2FkaW5nLlxuICAgKiBUaGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHNhZmVseSAtIGl0IHdpbGwgcmV0dXJuIHRoZSBzYW1lIHByb21pc2UuXG4gICAqXG4gICAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgbG9hZGVkIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvYWQoKTogUHJvbWlzZTxSZXNvdXJjZVBhZ2VSZXR1cm4+IHtcbiAgICByZXR1cm4gdGhpcy5fX3Jlc291cmNlLmxvYWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsb2FkZWQgY29tcG9uZW50IGlmIGF2YWlsYWJsZSwgdW5kZWZpbmVkIG90aGVyd2lzZS5cbiAgICogVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgdG8gY2hlY2sgaWYgdGhlIGNvbXBvbmVudCBpcyBhbHJlYWR5IGxvYWRlZFxuICAgKiB3aXRob3V0IHRyaWdnZXJpbmcgYSBsb2FkIG9yIHRocm93aW5nIGFuIGVycm9yLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbG9hZGVkIGNvbXBvbmVudCBvciB1bmRlZmluZWQgaWYgbm90IHlldCBsb2FkZWRcbiAgICovXG4gIHB1YmxpYyBnZXQoKTogUmVzb3VyY2VQYWdlUmV0dXJuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fX3Jlc291cmNlLmdldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG1vZHVsZSBpZGVudGlmaWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlc291cmNlIChkZWJ1ZyBoZWxwZXIpLlxuICAgKi9cbiAgcHVibGljIGdldE1vZHVsZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX19tb2R1bGVJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyB0aGUgcmVzb3VyY2Ugd2l0aCBSZWFjdCBTdXNwZW5zZSBpbnRlZ3JhdGlvbi5cbiAgICogVGhpcyBpcyB0aGUga2V5IG1ldGhvZCBmb3IgaW50ZWdyYXRpbmcgd2l0aCBSZWFjdCBTdXNwZW5zZTpcbiAgICogLSBSZXR1cm5zIHRoZSBjb21wb25lbnQgaWYgbG9hZGVkXG4gICAqIC0gVGhyb3dzIGFuIGVycm9yIGlmIGxvYWRpbmcgZmFpbGVkXG4gICAqIC0gVGhyb3dzIGEgUHJvbWlzZSBpZiBzdGlsbCBsb2FkaW5nIChTdXNwZW5zZSB3aWxsIGNhdGNoIHRoaXMpXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBsb2FkZWQgY29tcG9uZW50XG4gICAqIEB0aHJvd3MgUHJvbWlzZSB3aGVuIGxvYWRpbmcgKGNhdWdodCBieSBTdXNwZW5zZSlcbiAgICogQHRocm93cyBFcnJvciB3aGVuIGxvYWRpbmcgZmFpbGVkXG4gICAqL1xuICBwdWJsaWMgcmVhZCgpOiBSZXNvdXJjZVBhZ2VSZXR1cm4gfCBQcm9taXNlPFJlc291cmNlUGFnZVJldHVybj4gfCBFcnJvciB7XG4gICAgcmV0dXJuIHRoaXMuX19yZXNvdXJjZS5yZWFkKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBvciByZXRyaWV2ZSBhIGNhY2hlZCBSZXNvdXJjZVBhZ2UgaW5zdGFuY2UuXG4gKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgYSBzaW5nbGV0b24gcGF0dGVybiBwZXIgbW9kdWxlSWQgdG8gZW5zdXJlIHRoYXRcbiAqIHRoZSBzYW1lIGNvbXBvbmVudCBpcyBub3QgbG9hZGVkIG11bHRpcGxlIHRpbWVzLlxuICpcbiAqIEBwYXJhbSBtb2R1bGVJZCAtIEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UgdXNlZCBmb3IgY2FjaGluZ1xuICogQHBhcmFtIGxvYWRlciAtIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjb21wb25lbnRcbiAqIEByZXR1cm5zIFJlc291cmNlUGFnZSBpbnN0YW5jZSAoY2FjaGVkIGlmIHByZXZpb3VzbHkgY3JlYXRlZClcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgcmVzb3VyY2UgZm9yIGxhenkgbG9hZGluZ1xuICogY29uc3QgcmVzb3VyY2UgPSBnZXRSZXNvdXJjZVBhZ2UoJ1VzZXJQcm9maWxlJywgKCkgPT4gaW1wb3J0KCcuL1VzZXJQcm9maWxlJykpO1xuICogcmVzb3VyY2UubG9hZCgpO1xuICpcbiAqIC8vIEluIGEgUmVhY3QgY29tcG9uZW50IHdpdGggU3VzcGVuc2UgYm91bmRhcnk6XG4gKiBjb25zdCBVc2VyUHJvZmlsZSA9IHJlc291cmNlLnJlYWQoKTtcbiAqIHJldHVybiA8VXNlclByb2ZpbGUgdXNlcklkPXt1c2VySWR9IC8+O1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZVBhZ2UoXG4gIG1vZHVsZUlkOiBzdHJpbmcsXG4gIGxvYWRlcjogUmVzb3VyY2VQYWdlTG9hZGVyLFxuKTogUmVzb3VyY2VQYWdlIHwgbnVsbCB7XG4gIGxldCByZXNvdXJjZSA9IHJlc291cmNlUGFnZU1hcC5nZXQobW9kdWxlSWQpO1xuICBpZiAocmVzb3VyY2UgPT0gbnVsbCkge1xuICAgIHJlc291cmNlID0gbmV3IFJlc291cmNlUGFnZShsb2FkZXIsIG1vZHVsZUlkKTtcbiAgICByZXNvdXJjZVBhZ2VNYXAuc2V0KG1vZHVsZUlkLCByZXNvdXJjZSk7XG4gIH1cbiAgcmV0dXJuIHJlc291cmNlO1xufVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VQYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Jlc291cmNlUGFnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRekQsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7QUFtQnhELE1BQU0sT0FBTyxZQUFZO0lBQ2YsVUFBVSxDQUFDO0lBR1gsVUFBVSxDQUFTO0lBUTNCLFlBQW1CLE1BQTBCLEVBQUUsUUFBZ0I7UUFDN0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUU7WUFDNUMsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBRXBCLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFFM0IsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUN4QixDQUFDO2dCQUNELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBUU0sS0FBSyxDQUFDLElBQUk7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQVNNLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUtNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUtNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUtNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFhTSxJQUFJO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQXNCRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixRQUFnQixFQUNoQixNQUEwQjtJQUUxQixJQUFJLFFBQVEsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JCLFFBQVEsR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEFzeW5jUmVzb3VyY2VTdGF0dXMsXG4gIFJlc291cmNlUGFnZUxvYWRlcixcbiAgUmVzb3VyY2VQYWdlUmV0dXJuLFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IGNyZWF0ZUFzeW5jUmVzb3VyY2UgfSBmcm9tICcuL2FzeW5jUmVzb3VyY2UuanMnO1xuXG4vKipcbiAqIEEgY2FjaGUgb2YgcmVzb3VyY2VzIHRvIGF2b2lkIGxvYWRpbmcgdGhlIHNhbWUgbW9kdWxlIHR3aWNlLiBUaGlzIGlzIGltcG9ydGFudFxuICogYmVjYXVzZSBXZWJwYWNrIGR5bmFtaWMgaW1wb3J0cyBvbmx5IGV4cG9zZSBhbiBhc3luY2hyb25vdXMgQVBJIGZvciBsb2FkaW5nXG4gKiBtb2R1bGVzLCBzbyB0byBiZSBhYmxlIHRvIGFjY2VzcyBhbHJlYWR5LWxvYWRlZCBtb2R1bGVzIHN5bmNocm9ub3VzbHkgd2VcbiAqIG11c3QgaGF2ZSBzdG9yZWQgdGhlIHByZXZpb3VzIHJlc3VsdCBzb21ld2hlcmUuXG4gKi9cbmNvbnN0IHJlc291cmNlUGFnZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBSZXNvdXJjZVBhZ2U+KCk7XG5cbi8qKlxuICogQSByZXNvdXJjZSBtYW5hZ2VyIGZvciBsYXp5LWxvYWRlZCBSZWFjdCBjb21wb25lbnRzIHdpdGggU3VzcGVuc2UgaW50ZWdyYXRpb24uXG4gKiBUaGlzIGNsYXNzIGhhbmRsZXMgdGhlIGxvYWRpbmcgc3RhdGUsIGNhY2hpbmcsIGFuZCBTdXNwZW5zZSBpbnRlZ3JhdGlvbiBmb3JcbiAqIGR5bmFtaWNhbGx5IGltcG9ydGVkIGNvbXBvbmVudHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlc291cmNlID0gbmV3IFJlc291cmNlUGFnZShcbiAqICAgKCkgPT4gaW1wb3J0KCcuL015Q29tcG9uZW50JyksXG4gKiAgICdNeUNvbXBvbmVudCdcbiAqICk7XG4gKlxuICogLy8gSW4gYSBSZWFjdCBjb21wb25lbnQgd2l0aCBTdXNwZW5zZSBib3VuZGFyeTpcbiAqIGNvbnN0IENvbXBvbmVudCA9IHJlc291cmNlLnJlYWQoKTtcbiAqIHJldHVybiA8Q29tcG9uZW50IC8+O1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVBhZ2Uge1xuICBwcml2YXRlIF9fcmVzb3VyY2U7XG5cbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIHJlc291cmNlICovXG4gIHByaXZhdGUgX19tb2R1bGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFJlc291cmNlUGFnZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGxvYWRlciAtIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjb21wb25lbnRcbiAgICogQHBhcmFtIG1vZHVsZUlkIC0gVW5pcXVlIGlkZW50aWZpZXIgZm9yIGNhY2hpbmcgcHVycG9zZXNcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihsb2FkZXI6IFJlc291cmNlUGFnZUxvYWRlciwgbW9kdWxlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuX19tb2R1bGVJZCA9IG1vZHVsZUlkO1xuICAgIHRoaXMuX19yZXNvdXJjZSA9IGNyZWF0ZUFzeW5jUmVzb3VyY2UobG9hZGVyLCB7XG4gICAgICBub3JtYWxpemU6IChyZXN1bHQpID0+IHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgICAgICAgaWYgKHJlc3VsdC5kZWZhdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBPS1xuICAgICAgICAgIHJldHVybiByZXN1bHQuZGVmYXVsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgcmVzb3VyY2UgaWYgbm90IGFscmVhZHkgbG9hZGVkIG9yIGxvYWRpbmcuXG4gICAqIFRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgc2FmZWx5IC0gaXQgd2lsbCByZXR1cm4gdGhlIHNhbWUgcHJvbWlzZS5cbiAgICpcbiAgICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBsb2FkZWQgY29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9hZCgpOiBQcm9taXNlPFJlc291cmNlUGFnZVJldHVybj4ge1xuICAgIHJldHVybiB0aGlzLl9fcmVzb3VyY2UubG9hZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxvYWRlZCBjb21wb25lbnQgaWYgYXZhaWxhYmxlLCB1bmRlZmluZWQgb3RoZXJ3aXNlLlxuICAgKiBUaGlzIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBjaGVjayBpZiB0aGUgY29tcG9uZW50IGlzIGFscmVhZHkgbG9hZGVkXG4gICAqIHdpdGhvdXQgdHJpZ2dlcmluZyBhIGxvYWQgb3IgdGhyb3dpbmcgYW4gZXJyb3IuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBsb2FkZWQgY29tcG9uZW50IG9yIHVuZGVmaW5lZCBpZiBub3QgeWV0IGxvYWRlZFxuICAgKi9cbiAgcHVibGljIGdldCgpOiBSZXNvdXJjZVBhZ2VSZXR1cm4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9fcmVzb3VyY2UuZ2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBsb2FkaW5nIHN0YXR1cyBvZiB0aGUgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0U3RhdHVzKCk6IEFzeW5jUmVzb3VyY2VTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLl9fcmVzb3VyY2UuZ2V0U3RhdHVzKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGFzdCBsb2FkaW5nIGVycm9yLCB3aGVuIHRoZSByZXNvdXJjZSByZWplY3RlZC5cbiAgICovXG4gIHB1YmxpYyBnZXRFcnJvcigpOiB1bmtub3duIHtcbiAgICByZXR1cm4gdGhpcy5fX3Jlc291cmNlLmdldEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbW9kdWxlIGlkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVzb3VyY2UgKGRlYnVnIGhlbHBlcikuXG4gICAqL1xuICBwdWJsaWMgZ2V0TW9kdWxlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fX21vZHVsZUlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIHRoZSByZXNvdXJjZSB3aXRoIFJlYWN0IFN1c3BlbnNlIGludGVncmF0aW9uLlxuICAgKiBUaGlzIGlzIHRoZSBrZXkgbWV0aG9kIGZvciBpbnRlZ3JhdGluZyB3aXRoIFJlYWN0IFN1c3BlbnNlOlxuICAgKiAtIFJldHVybnMgdGhlIGNvbXBvbmVudCBpZiBsb2FkZWRcbiAgICogLSBUaHJvd3MgYW4gZXJyb3IgaWYgbG9hZGluZyBmYWlsZWRcbiAgICogLSBUaHJvd3MgYSBQcm9taXNlIGlmIHN0aWxsIGxvYWRpbmcgKFN1c3BlbnNlIHdpbGwgY2F0Y2ggdGhpcylcbiAgICpcbiAgICogQHJldHVybnMgVGhlIGxvYWRlZCBjb21wb25lbnRcbiAgICogQHRocm93cyBQcm9taXNlIHdoZW4gbG9hZGluZyAoY2F1Z2h0IGJ5IFN1c3BlbnNlKVxuICAgKiBAdGhyb3dzIEVycm9yIHdoZW4gbG9hZGluZyBmYWlsZWRcbiAgICovXG4gIHB1YmxpYyByZWFkKCk6IFJlc291cmNlUGFnZVJldHVybiB8IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPiB8IEVycm9yIHtcbiAgICByZXR1cm4gdGhpcy5fX3Jlc291cmNlLnJlYWQoKTtcbiAgfVxufVxuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIG9yIHJldHJpZXZlIGEgY2FjaGVkIFJlc291cmNlUGFnZSBpbnN0YW5jZS5cbiAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyBhIHNpbmdsZXRvbiBwYXR0ZXJuIHBlciBtb2R1bGVJZCB0byBlbnN1cmUgdGhhdFxuICogdGhlIHNhbWUgY29tcG9uZW50IGlzIG5vdCBsb2FkZWQgbXVsdGlwbGUgdGltZXMuXG4gKlxuICogQHBhcmFtIG1vZHVsZUlkIC0gR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSB1c2VkIGZvciBjYWNoaW5nXG4gKiBAcGFyYW0gbG9hZGVyIC0gRnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNvbXBvbmVudFxuICogQHJldHVybnMgUmVzb3VyY2VQYWdlIGluc3RhbmNlIChjYWNoZWQgaWYgcHJldmlvdXNseSBjcmVhdGVkKVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDcmVhdGUgYSByZXNvdXJjZSBmb3IgbGF6eSBsb2FkaW5nXG4gKiBjb25zdCByZXNvdXJjZSA9IGdldFJlc291cmNlUGFnZSgnVXNlclByb2ZpbGUnLCAoKSA9PiBpbXBvcnQoJy4vVXNlclByb2ZpbGUnKSk7XG4gKiByZXNvdXJjZS5sb2FkKCk7XG4gKlxuICogLy8gSW4gYSBSZWFjdCBjb21wb25lbnQgd2l0aCBTdXNwZW5zZSBib3VuZGFyeTpcbiAqIGNvbnN0IFVzZXJQcm9maWxlID0gcmVzb3VyY2UucmVhZCgpO1xuICogcmV0dXJuIDxVc2VyUHJvZmlsZSB1c2VySWQ9e3VzZXJJZH0gLz47XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlUGFnZShcbiAgbW9kdWxlSWQ6IHN0cmluZyxcbiAgbG9hZGVyOiBSZXNvdXJjZVBhZ2VMb2FkZXIsXG4pOiBSZXNvdXJjZVBhZ2UgfCBudWxsIHtcbiAgbGV0IHJlc291cmNlID0gcmVzb3VyY2VQYWdlTWFwLmdldChtb2R1bGVJZCk7XG4gIGlmIChyZXNvdXJjZSA9PSBudWxsKSB7XG4gICAgcmVzb3VyY2UgPSBuZXcgUmVzb3VyY2VQYWdlKGxvYWRlciwgbW9kdWxlSWQpO1xuICAgIHJlc291cmNlUGFnZU1hcC5zZXQobW9kdWxlSWQsIHJlc291cmNlKTtcbiAgfVxuICByZXR1cm4gcmVzb3VyY2U7XG59XG4iXX0=
@@ -1,13 +1,14 @@
1
1
  import { type MatchFunction, type ParamData } from 'path-to-regexp';
2
- import type { FlatRouteInput, Redirect, AnyRoute } from './types.js';
2
+ import type { FlatRouteInput, FlatRouteSegment, Redirect, AnyRoute } from './types.js';
3
3
  export declare class FlatRoute<TParams extends ParamData> {
4
4
  path: string;
5
5
  routes: AnyRoute[];
6
+ routeSegments?: FlatRouteSegment[];
6
7
  matchFunction: MatchFunction<TParams>;
7
8
  redirectTo?: string;
8
9
  constructor(input: FlatRouteInput<TParams>);
9
10
  }
10
11
  export declare function isRedirect(route: AnyRoute | Redirect): route is Redirect;
11
- export declare function buildRoute(routeConfig: readonly (AnyRoute | Redirect)[], parentRoutes?: AnyRoute[], prefix?: string): FlatRoute<ParamData>[];
12
+ export declare function buildRoute(routeConfig: readonly (AnyRoute | Redirect)[], parentRoutes?: AnyRoute[], parentRouteSegments?: FlatRouteSegment[], prefix?: string): FlatRoute<ParamData>[];
12
13
  export declare function buildRoutes(routeConfig: readonly AnyRoute[]): FlatRoute<ParamData>[];
13
14
  //# sourceMappingURL=builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQrE,qBAAa,SAAS,CAAC,OAAO,SAAS,SAAS;IAEvC,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,QAAQ,EAAE,CAAC;IAGnB,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAGtC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAOR,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;CAOlD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAGxE;AASD,wBAAgB,UAAU,CACxB,WAAW,EAAE,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAC7C,YAAY,GAAE,QAAQ,EAAO,EAC7B,MAAM,SAAK,GACV,SAAS,CAAC,SAAS,CAAC,EAAE,CAmExB;AAOD,wBAAgB,WAAW,CACzB,WAAW,EAAE,SAAS,QAAQ,EAAE,GAC/B,SAAS,CAAC,SAAS,CAAC,EAAE,CAExB"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEf,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACT,MAAM,YAAY,CAAC;AAQpB,qBAAa,SAAS,CAAC,OAAO,SAAS,SAAS;IAEvC,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,QAAQ,EAAE,CAAC;IAGnB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAGnC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAGtC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAOR,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;CAQlD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAGxE;AA0ED,wBAAgB,UAAU,CACxB,WAAW,EAAE,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAC7C,YAAY,GAAE,QAAQ,EAAO,EAC7B,mBAAmB,GAAE,gBAAgB,EAAO,EAC5C,MAAM,SAAK,GACV,SAAS,CAAC,SAAS,CAAC,EAAE,CAiFxB;AAOD,wBAAgB,WAAW,CACzB,WAAW,EAAE,SAAS,QAAQ,EAAE,GAC/B,SAAS,CAAC,SAAS,CAAC,EAAE,CAExB"}
@@ -1,13 +1,15 @@
1
- import { match } from 'path-to-regexp';
1
+ import { match, parse, } from 'path-to-regexp';
2
2
  export class FlatRoute {
3
3
  path;
4
4
  routes;
5
+ routeSegments;
5
6
  matchFunction;
6
7
  redirectTo;
7
8
  constructor(input) {
8
- const { matchFunction, path, redirectTo, routes } = input;
9
+ const { matchFunction, path, redirectTo, routeSegments, routes } = input;
9
10
  this.path = path;
10
11
  this.redirectTo = redirectTo;
12
+ this.routeSegments = routeSegments;
11
13
  this.routes = routes;
12
14
  this.matchFunction = matchFunction;
13
15
  }
@@ -15,35 +17,94 @@ export class FlatRoute {
15
17
  export function isRedirect(route) {
16
18
  return route.to != null;
17
19
  }
18
- export function buildRoute(routeConfig, parentRoutes = [], prefix = '') {
20
+ const normalizeRoutePath = (path) => {
21
+ if (path == null || path === '' || path === '/') {
22
+ return '';
23
+ }
24
+ if (path.startsWith('/')) {
25
+ return path.slice(1);
26
+ }
27
+ return path;
28
+ };
29
+ const collectTokenParamNames = (token, params) => {
30
+ if (token.type === 'param' || token.type === 'wildcard') {
31
+ params.add(token.name);
32
+ return;
33
+ }
34
+ if (token.type === 'group') {
35
+ token.tokens.forEach((childToken) => {
36
+ collectTokenParamNames(childToken, params);
37
+ });
38
+ }
39
+ };
40
+ const readRouteParamNames = (path) => {
41
+ const normalizedPath = normalizeRoutePath(path);
42
+ if (normalizedPath === '') {
43
+ return [];
44
+ }
45
+ const params = new Set();
46
+ parse(normalizedPath).tokens.forEach((token) => {
47
+ collectTokenParamNames(token, params);
48
+ });
49
+ return Array.from(params);
50
+ };
51
+ const buildSegmentKey = (input) => {
52
+ const path = input.path ?? '';
53
+ return `${input.index}:${input.fullPath}:${path}`;
54
+ };
55
+ const buildFlatRouteSegment = (input) => {
56
+ const localParamNames = readRouteParamNames(input.route.path);
57
+ const paramNames = Array.from(new Set([...input.parentParamNames, ...localParamNames]));
58
+ return {
59
+ key: buildSegmentKey({
60
+ fullPath: input.fullPath,
61
+ path: input.route.path,
62
+ index: input.index,
63
+ }),
64
+ path: input.route.path,
65
+ fullPath: input.fullPath,
66
+ paramNames,
67
+ };
68
+ };
69
+ export function buildRoute(routeConfig, parentRoutes = [], parentRouteSegments = [], prefix = '') {
19
70
  const flatRoutes = [];
20
71
  for (const route of routeConfig) {
21
72
  const parts = [];
22
73
  if (prefix !== '') {
23
74
  parts.push(prefix);
24
75
  }
25
- if (route.path != null && route.path !== '' && route.path !== '/') {
26
- let normalized = route.path;
27
- if (normalized.startsWith('/')) {
28
- normalized = normalized.slice(1);
29
- }
76
+ const normalized = normalizeRoutePath(route.path);
77
+ if (normalized !== '') {
30
78
  parts.push(normalized);
31
79
  }
32
80
  const newPath = parts.join('/');
33
81
  const routeDefinition = route;
34
82
  const { children } = routeDefinition;
83
+ let path = newPath;
84
+ if (!newPath.startsWith('/')) {
85
+ path = `/${newPath}`;
86
+ }
87
+ const nextRoutes = [...parentRoutes, routeDefinition];
88
+ let nextRouteSegments = parentRouteSegments;
89
+ if (!isRedirect(route)) {
90
+ nextRouteSegments = [
91
+ ...parentRouteSegments,
92
+ buildFlatRouteSegment({
93
+ route: routeDefinition,
94
+ fullPath: path,
95
+ index: parentRouteSegments.length,
96
+ parentParamNames: parentRouteSegments.at(-1)?.paramNames ?? [],
97
+ }),
98
+ ];
99
+ }
35
100
  if (!isRedirect(route) && children != null) {
36
- const routes = buildRoute(children, [...parentRoutes, routeDefinition], newPath);
101
+ const routes = buildRoute(children, nextRoutes, nextRouteSegments, newPath);
37
102
  flatRoutes.push(...routes);
38
103
  continue;
39
104
  }
40
105
  const matchFunction = match(`/${newPath}`, {
41
106
  trailing: false,
42
107
  });
43
- let path = newPath;
44
- if (!newPath.startsWith('/')) {
45
- path = `/${newPath}`;
46
- }
47
108
  if (isRedirect(route)) {
48
109
  let redirectTo = route.to;
49
110
  if (!redirectTo.startsWith('/')) {
@@ -53,6 +114,7 @@ export function buildRoute(routeConfig, parentRoutes = [], prefix = '') {
53
114
  path,
54
115
  redirectTo,
55
116
  matchFunction,
117
+ routeSegments: parentRouteSegments,
56
118
  routes: [...parentRoutes],
57
119
  }));
58
120
  }
@@ -60,7 +122,8 @@ export function buildRoute(routeConfig, parentRoutes = [], prefix = '') {
60
122
  flatRoutes.push(new FlatRoute({
61
123
  path,
62
124
  matchFunction,
63
- routes: [...parentRoutes, routeDefinition],
125
+ routeSegments: nextRouteSegments,
126
+ routes: nextRoutes,
64
127
  }));
65
128
  }
66
129
  }
@@ -69,4 +132,4 @@ export function buildRoute(routeConfig, parentRoutes = [], prefix = '') {
69
132
  export function buildRoutes(routeConfig) {
70
133
  return buildRoute(routeConfig);
71
134
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQXNDLE1BQU0sZ0JBQWdCLENBQUM7QUFVM0UsTUFBTSxPQUFPLFNBQVM7SUFFYixJQUFJLENBQVM7SUFHYixNQUFNLENBQWE7SUFHbkIsYUFBYSxDQUF5QjtJQUd0QyxVQUFVLENBQVU7SUFPM0IsWUFBbUIsS0FBOEI7UUFDL0MsTUFBTSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFHRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQTBCO0lBRW5ELE9BQVEsS0FBa0IsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDO0FBQ3hDLENBQUM7QUFTRCxNQUFNLFVBQVUsVUFBVSxDQUN4QixXQUE2QyxFQUM3QyxlQUEyQixFQUFFLEVBQzdCLE1BQU0sR0FBRyxFQUFFO0lBRVgsTUFBTSxVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUU5QyxLQUFLLE1BQU0sS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbEUsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEMsTUFBTSxlQUFlLEdBQUcsS0FBaUIsQ0FBQztRQUMxQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsZUFBZSxDQUFDO1FBRXJDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzNDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FDdkIsUUFBUSxFQUNSLENBQUMsR0FBRyxZQUFZLEVBQUUsZUFBZSxDQUFDLEVBQ2xDLE9BQU8sQ0FDUixDQUFDO1lBQ0YsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBRTNCLFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksT0FBTyxFQUFFLEVBQUU7WUFDekMsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUUxQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxVQUFVLEdBQUcsR0FBRyxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7WUFDdkMsQ0FBQztZQUNELFVBQVUsQ0FBQyxJQUFJLENBQ2IsSUFBSSxTQUFTLENBQUM7Z0JBQ1osSUFBSTtnQkFDSixVQUFVO2dCQUNWLGFBQWE7Z0JBQ2IsTUFBTSxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUM7YUFDMUIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxJQUFJLENBQ2IsSUFBSSxTQUFTLENBQUM7Z0JBQ1osSUFBSTtnQkFDSixhQUFhO2dCQUNiLE1BQU0sRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLGVBQWUsQ0FBQzthQUMzQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQU9ELE1BQU0sVUFBVSxXQUFXLENBQ3pCLFdBQWdDO0lBRWhDLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXRjaCwgdHlwZSBNYXRjaEZ1bmN0aW9uLCB0eXBlIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGVJbnB1dCwgUmVkaXJlY3QsIEFueVJvdXRlIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGZsYXR0ZW5lZCByb3V0ZSB3aXRoIGEgY29tcGlsZWQgbWF0Y2ggZnVuY3Rpb24uXG4gKiBUaGlzIGlzIGFuIGludGVybmFsIHJlcHJlc2VudGF0aW9uIHVzZWQgYnkgdGhlIHJvdXRlciB0byBlZmZpY2llbnRseSBtYXRjaCBVUkxzLlxuICpcbiAqIEB0ZW1wbGF0ZSBUUGFyYW1zIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgY2xhc3MgRmxhdFJvdXRlPFRQYXJhbXMgZXh0ZW5kcyBQYXJhbURhdGE+IHtcbiAgLyoqIFRoZSBVUkwgcGF0aCBwYXR0ZXJuIGZvciB0aGlzIHJvdXRlICovXG4gIHB1YmxpYyBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqIE5lc3RlZCByb3V0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgcHVibGljIHJvdXRlczogQW55Um91dGVbXTtcblxuICAvKiogQ29tcGlsZWQgZnVuY3Rpb24gdG8gbWF0Y2ggVVJMIHBhdGhzIGFnYWluc3QgdGhpcyByb3V0ZSBwYXR0ZXJuICovXG4gIHB1YmxpYyBtYXRjaEZ1bmN0aW9uOiBNYXRjaEZ1bmN0aW9uPFRQYXJhbXM+O1xuXG4gIC8qKiBPcHRpb25hbCByZWRpcmVjdCBkZXN0aW5hdGlvbiBpZiB0aGlzIHJvdXRlIHNob3VsZCByZWRpcmVjdCAqL1xuICBwdWJsaWMgcmVkaXJlY3RUbz86IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBGbGF0Um91dGUgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBpbnB1dCAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBmbGF0IHJvdXRlXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoaW5wdXQ6IEZsYXRSb3V0ZUlucHV0PFRQYXJhbXM+KSB7XG4gICAgY29uc3QgeyBtYXRjaEZ1bmN0aW9uLCBwYXRoLCByZWRpcmVjdFRvLCByb3V0ZXMgfSA9IGlucHV0O1xuICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgdGhpcy5yZWRpcmVjdFRvID0gcmVkaXJlY3RUbztcbiAgICB0aGlzLnJvdXRlcyA9IHJvdXRlcztcbiAgICB0aGlzLm1hdGNoRnVuY3Rpb24gPSBtYXRjaEZ1bmN0aW9uO1xuICB9XG59XG5cbi8qKiBOYXJyb3cgYSByb3V0ZSBjb25maWd1cmF0aW9uIHRvIGEgcmVkaXJlY3QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZWRpcmVjdChyb3V0ZTogQW55Um91dGUgfCBSZWRpcmVjdCk6IHJvdXRlIGlzIFJlZGlyZWN0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgcmV0dXJuIChyb3V0ZSBhcyBSZWRpcmVjdCkudG8gIT0gbnVsbDtcbn1cblxuLyoqXG4gKiBSZWN1cnNpdmVseSBmbGF0dGVucyBuZXN0ZWQgcm91dGUgZGVmaW5pdGlvbnMgaW50byBgRmxhdFJvdXRlYCBlbnRyaWVzLlxuICpcbiAqIEBwYXJhbSByb3V0ZUNvbmZpZyAtIFJvdXRlIG9yIHJlZGlyZWN0IGRlZmluaXRpb25zIHRvIHByb2Nlc3MuXG4gKiBAcGFyYW0gcGFyZW50Um91dGVzIC0gQWNjdW11bGF0ZWQgcGFyZW50IHJvdXRlcyBmb3IgbmVzdGluZyBjb250ZXh0LlxuICogQHBhcmFtIHByZWZpeCAtIEN1cnJlbnQgcGF0aCBwcmVmaXggcHJvcGFnYXRlZCBmcm9tIHBhcmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJvdXRlKFxuICByb3V0ZUNvbmZpZzogcmVhZG9ubHkgKEFueVJvdXRlIHwgUmVkaXJlY3QpW10sXG4gIHBhcmVudFJvdXRlczogQW55Um91dGVbXSA9IFtdLFxuICBwcmVmaXggPSAnJyxcbik6IEZsYXRSb3V0ZTxQYXJhbURhdGE+W10ge1xuICBjb25zdCBmbGF0Um91dGVzOiBGbGF0Um91dGU8UGFyYW1EYXRhPltdID0gW107XG5cbiAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZUNvbmZpZykge1xuICAgIGNvbnN0IHBhcnRzID0gW107XG4gICAgaWYgKHByZWZpeCAhPT0gJycpIHtcbiAgICAgIHBhcnRzLnB1c2gocHJlZml4KTtcbiAgICB9XG4gICAgaWYgKHJvdXRlLnBhdGggIT0gbnVsbCAmJiByb3V0ZS5wYXRoICE9PSAnJyAmJiByb3V0ZS5wYXRoICE9PSAnLycpIHtcbiAgICAgIGxldCBub3JtYWxpemVkID0gcm91dGUucGF0aDtcbiAgICAgIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zbGljZSgxKTtcbiAgICAgIH1cbiAgICAgIHBhcnRzLnB1c2gobm9ybWFsaXplZCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3UGF0aCA9IHBhcnRzLmpvaW4oJy8nKTtcblxuICAgIGNvbnN0IHJvdXRlRGVmaW5pdGlvbiA9IHJvdXRlIGFzIEFueVJvdXRlO1xuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHJvdXRlRGVmaW5pdGlvbjtcblxuICAgIGlmICghaXNSZWRpcmVjdChyb3V0ZSkgJiYgY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgY29uc3Qgcm91dGVzID0gYnVpbGRSb3V0ZShcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlRGVmaW5pdGlvbl0sXG4gICAgICAgIG5ld1BhdGgsXG4gICAgICApO1xuICAgICAgZmxhdFJvdXRlcy5wdXNoKC4uLnJvdXRlcyk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udGludWVcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoRnVuY3Rpb24gPSBtYXRjaChgLyR7bmV3UGF0aH1gLCB7XG4gICAgICB0cmFpbGluZzogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBsZXQgcGF0aCA9IG5ld1BhdGg7XG4gICAgaWYgKCFuZXdQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgcGF0aCA9IGAvJHtuZXdQYXRofWA7XG4gICAgfVxuXG4gICAgaWYgKGlzUmVkaXJlY3Qocm91dGUpKSB7XG4gICAgICBsZXQgcmVkaXJlY3RUbyA9IHJvdXRlLnRvO1xuXG4gICAgICBpZiAoIXJlZGlyZWN0VG8uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJlZGlyZWN0VG8gPSBgJHtwYXRofS8ke3JlZGlyZWN0VG99YDtcbiAgICAgIH1cbiAgICAgIGZsYXRSb3V0ZXMucHVzaChcbiAgICAgICAgbmV3IEZsYXRSb3V0ZSh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByZWRpcmVjdFRvLFxuICAgICAgICAgIG1hdGNoRnVuY3Rpb24sXG4gICAgICAgICAgcm91dGVzOiBbLi4ucGFyZW50Um91dGVzXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGF0Um91dGVzLnB1c2goXG4gICAgICAgIG5ldyBGbGF0Um91dGUoe1xuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgbWF0Y2hGdW5jdGlvbixcbiAgICAgICAgICByb3V0ZXM6IFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlRGVmaW5pdGlvbl0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmxhdFJvdXRlcztcbn1cblxuLyoqXG4gKiBUb3AtbGV2ZWwgY29udmVuaWVuY2UgdG8gZmxhdHRlbiBhIHJvdXRlIGNvbmZpZ3VyYXRpb24gaW50byBgRmxhdFJvdXRlYHMuXG4gKlxuICogQHBhcmFtIHJvdXRlQ29uZmlnIC0gUm91dGUgZGVmaW5pdGlvbnMgdG8gZmxhdHRlbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUm91dGVzKFxuICByb3V0ZUNvbmZpZzogcmVhZG9ubHkgQW55Um91dGVbXSxcbik6IEZsYXRSb3V0ZTxQYXJhbURhdGE+W10ge1xuICByZXR1cm4gYnVpbGRSb3V0ZShyb3V0ZUNvbmZpZyk7XG59XG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsS0FBSyxHQUlOLE1BQU0sZ0JBQWdCLENBQUM7QUFleEIsTUFBTSxPQUFPLFNBQVM7SUFFYixJQUFJLENBQVM7SUFHYixNQUFNLENBQWE7SUFHbkIsYUFBYSxDQUFzQjtJQUduQyxhQUFhLENBQXlCO0lBR3RDLFVBQVUsQ0FBVTtJQU8zQixZQUFtQixLQUE4QjtRQUMvQyxNQUFNLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUN6RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFHRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQTBCO0lBRW5ELE9BQVEsS0FBa0IsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBd0IsRUFBVSxFQUFFO0lBQzlELElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQVksRUFBRSxNQUFtQixFQUFRLEVBQUU7SUFDekUsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE9BQU87SUFDVCxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDbEMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUF3QixFQUFZLEVBQUU7SUFDakUsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsSUFBSSxjQUFjLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDMUIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUNqQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzdDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxDQUFDLEtBSXhCLEVBQVUsRUFBRTtJQUNYLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzlCLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7QUFDcEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBSzlCLEVBQW9CLEVBQUU7SUFDckIsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUMzQixJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FDekQsQ0FBQztJQUNGLE9BQU87UUFDTCxHQUFHLEVBQUUsZUFBZSxDQUFDO1lBQ25CLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztTQUNuQixDQUFDO1FBQ0YsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSTtRQUN0QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7UUFDeEIsVUFBVTtLQUNYLENBQUM7QUFDSixDQUFDLENBQUM7QUFTRixNQUFNLFVBQVUsVUFBVSxDQUN4QixXQUE2QyxFQUM3QyxlQUEyQixFQUFFLEVBQzdCLHNCQUEwQyxFQUFFLEVBQzVDLE1BQU0sR0FBRyxFQUFFO0lBRVgsTUFBTSxVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUU5QyxLQUFLLE1BQU0sS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxVQUFVLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDdEIsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVoQyxNQUFNLGVBQWUsR0FBRyxLQUFpQixDQUFDO1FBQzFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxlQUFlLENBQUM7UUFFckMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDdEQsSUFBSSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkIsaUJBQWlCLEdBQUc7Z0JBQ2xCLEdBQUcsbUJBQW1CO2dCQUN0QixxQkFBcUIsQ0FBQztvQkFDcEIsS0FBSyxFQUFFLGVBQWU7b0JBQ3RCLFFBQVEsRUFBRSxJQUFJO29CQUNkLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO29CQUNqQyxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLElBQUksRUFBRTtpQkFDL0QsQ0FBQzthQUNILENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0MsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUN2QixRQUFRLEVBQ1IsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixPQUFPLENBQ1IsQ0FBQztZQUNGLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztZQUUzQixTQUFTO1FBQ1gsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxFQUFFO1lBQ3pDLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUUxQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxVQUFVLEdBQUcsR0FBRyxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7WUFDdkMsQ0FBQztZQUNELFVBQVUsQ0FBQyxJQUFJLENBQ2IsSUFBSSxTQUFTLENBQUM7Z0JBQ1osSUFBSTtnQkFDSixVQUFVO2dCQUNWLGFBQWE7Z0JBQ2IsYUFBYSxFQUFFLG1CQUFtQjtnQkFDbEMsTUFBTSxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUM7YUFDMUIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxJQUFJLENBQ2IsSUFBSSxTQUFTLENBQUM7Z0JBQ1osSUFBSTtnQkFDSixhQUFhO2dCQUNiLGFBQWEsRUFBRSxpQkFBaUI7Z0JBQ2hDLE1BQU0sRUFBRSxVQUFVO2FBQ25CLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBT0QsTUFBTSxVQUFVLFdBQVcsQ0FDekIsV0FBZ0M7SUFFaEMsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIG1hdGNoLFxuICBwYXJzZSxcbiAgdHlwZSBNYXRjaEZ1bmN0aW9uLFxuICB0eXBlIFBhcmFtRGF0YSxcbiAgdHlwZSBUb2tlbixcbn0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZsYXRSb3V0ZUlucHV0LFxuICBGbGF0Um91dGVTZWdtZW50LFxuICBSZWRpcmVjdCxcbiAgQW55Um91dGUsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBmbGF0dGVuZWQgcm91dGUgd2l0aCBhIGNvbXBpbGVkIG1hdGNoIGZ1bmN0aW9uLlxuICogVGhpcyBpcyBhbiBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiB1c2VkIGJ5IHRoZSByb3V0ZXIgdG8gZWZmaWNpZW50bHkgbWF0Y2ggVVJMcy5cbiAqXG4gKiBAdGVtcGxhdGUgVFBhcmFtcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IGNsYXNzIEZsYXRSb3V0ZTxUUGFyYW1zIGV4dGVuZHMgUGFyYW1EYXRhPiB7XG4gIC8qKiBUaGUgVVJMIHBhdGggcGF0dGVybiBmb3IgdGhpcyByb3V0ZSAqL1xuICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuXG4gIC8qKiBOZXN0ZWQgcm91dGVzIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIHdpdGhpbiB0aGlzIHJvdXRlICovXG4gIHB1YmxpYyByb3V0ZXM6IEFueVJvdXRlW107XG5cbiAgLyoqIFBlci1yZW5kZXJlZC1yb3V0ZSBtZXRhZGF0YSBhbGlnbmVkIHdpdGggYHJvdXRlc2AuICovXG4gIHB1YmxpYyByb3V0ZVNlZ21lbnRzPzogRmxhdFJvdXRlU2VnbWVudFtdO1xuXG4gIC8qKiBDb21waWxlZCBmdW5jdGlvbiB0byBtYXRjaCBVUkwgcGF0aHMgYWdhaW5zdCB0aGlzIHJvdXRlIHBhdHRlcm4gKi9cbiAgcHVibGljIG1hdGNoRnVuY3Rpb246IE1hdGNoRnVuY3Rpb248VFBhcmFtcz47XG5cbiAgLyoqIE9wdGlvbmFsIHJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHB1YmxpYyByZWRpcmVjdFRvPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEZsYXRSb3V0ZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGlucHV0IC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGZsYXQgcm91dGVcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihpbnB1dDogRmxhdFJvdXRlSW5wdXQ8VFBhcmFtcz4pIHtcbiAgICBjb25zdCB7IG1hdGNoRnVuY3Rpb24sIHBhdGgsIHJlZGlyZWN0VG8sIHJvdXRlU2VnbWVudHMsIHJvdXRlcyB9ID0gaW5wdXQ7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICB0aGlzLnJlZGlyZWN0VG8gPSByZWRpcmVjdFRvO1xuICAgIHRoaXMucm91dGVTZWdtZW50cyA9IHJvdXRlU2VnbWVudHM7XG4gICAgdGhpcy5yb3V0ZXMgPSByb3V0ZXM7XG4gICAgdGhpcy5tYXRjaEZ1bmN0aW9uID0gbWF0Y2hGdW5jdGlvbjtcbiAgfVxufVxuXG4vKiogTmFycm93IGEgcm91dGUgY29uZmlndXJhdGlvbiB0byBhIHJlZGlyZWN0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3Qocm91dGU6IEFueVJvdXRlIHwgUmVkaXJlY3QpOiByb3V0ZSBpcyBSZWRpcmVjdCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gIHJldHVybiAocm91dGUgYXMgUmVkaXJlY3QpLnRvICE9IG51bGw7XG59XG5cbmNvbnN0IG5vcm1hbGl6ZVJvdXRlUGF0aCA9IChwYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuICBpZiAocGF0aCA9PSBudWxsIHx8IHBhdGggPT09ICcnIHx8IHBhdGggPT09ICcvJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBpZiAocGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gcGF0aC5zbGljZSgxKTtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn07XG5cbmNvbnN0IGNvbGxlY3RUb2tlblBhcmFtTmFtZXMgPSAodG9rZW46IFRva2VuLCBwYXJhbXM6IFNldDxzdHJpbmc+KTogdm9pZCA9PiB7XG4gIGlmICh0b2tlbi50eXBlID09PSAncGFyYW0nIHx8IHRva2VuLnR5cGUgPT09ICd3aWxkY2FyZCcpIHtcbiAgICBwYXJhbXMuYWRkKHRva2VuLm5hbWUpO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAodG9rZW4udHlwZSA9PT0gJ2dyb3VwJykge1xuICAgIHRva2VuLnRva2Vucy5mb3JFYWNoKChjaGlsZFRva2VuKSA9PiB7XG4gICAgICBjb2xsZWN0VG9rZW5QYXJhbU5hbWVzKGNoaWxkVG9rZW4sIHBhcmFtcyk7XG4gICAgfSk7XG4gIH1cbn07XG5cbmNvbnN0IHJlYWRSb3V0ZVBhcmFtTmFtZXMgPSAocGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vcm1hbGl6ZVJvdXRlUGF0aChwYXRoKTtcbiAgaWYgKG5vcm1hbGl6ZWRQYXRoID09PSAnJykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBjb25zdCBwYXJhbXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcGFyc2Uobm9ybWFsaXplZFBhdGgpLnRva2Vucy5mb3JFYWNoKCh0b2tlbikgPT4ge1xuICAgIGNvbGxlY3RUb2tlblBhcmFtTmFtZXModG9rZW4sIHBhcmFtcyk7XG4gIH0pO1xuICByZXR1cm4gQXJyYXkuZnJvbShwYXJhbXMpO1xufTtcblxuY29uc3QgYnVpbGRTZWdtZW50S2V5ID0gKGlucHV0OiB7XG4gIGZ1bGxQYXRoOiBzdHJpbmc7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG59KTogc3RyaW5nID0+IHtcbiAgY29uc3QgcGF0aCA9IGlucHV0LnBhdGggPz8gJyc7XG4gIHJldHVybiBgJHtpbnB1dC5pbmRleH06JHtpbnB1dC5mdWxsUGF0aH06JHtwYXRofWA7XG59O1xuXG5jb25zdCBidWlsZEZsYXRSb3V0ZVNlZ21lbnQgPSAoaW5wdXQ6IHtcbiAgcm91dGU6IEFueVJvdXRlO1xuICBmdWxsUGF0aDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBwYXJlbnRQYXJhbU5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcbn0pOiBGbGF0Um91dGVTZWdtZW50ID0+IHtcbiAgY29uc3QgbG9jYWxQYXJhbU5hbWVzID0gcmVhZFJvdXRlUGFyYW1OYW1lcyhpbnB1dC5yb3V0ZS5wYXRoKTtcbiAgY29uc3QgcGFyYW1OYW1lcyA9IEFycmF5LmZyb20oXG4gICAgbmV3IFNldChbLi4uaW5wdXQucGFyZW50UGFyYW1OYW1lcywgLi4ubG9jYWxQYXJhbU5hbWVzXSksXG4gICk7XG4gIHJldHVybiB7XG4gICAga2V5OiBidWlsZFNlZ21lbnRLZXkoe1xuICAgICAgZnVsbFBhdGg6IGlucHV0LmZ1bGxQYXRoLFxuICAgICAgcGF0aDogaW5wdXQucm91dGUucGF0aCxcbiAgICAgIGluZGV4OiBpbnB1dC5pbmRleCxcbiAgICB9KSxcbiAgICBwYXRoOiBpbnB1dC5yb3V0ZS5wYXRoLFxuICAgIGZ1bGxQYXRoOiBpbnB1dC5mdWxsUGF0aCxcbiAgICBwYXJhbU5hbWVzLFxuICB9O1xufTtcblxuLyoqXG4gKiBSZWN1cnNpdmVseSBmbGF0dGVucyBuZXN0ZWQgcm91dGUgZGVmaW5pdGlvbnMgaW50byBgRmxhdFJvdXRlYCBlbnRyaWVzLlxuICpcbiAqIEBwYXJhbSByb3V0ZUNvbmZpZyAtIFJvdXRlIG9yIHJlZGlyZWN0IGRlZmluaXRpb25zIHRvIHByb2Nlc3MuXG4gKiBAcGFyYW0gcGFyZW50Um91dGVzIC0gQWNjdW11bGF0ZWQgcGFyZW50IHJvdXRlcyBmb3IgbmVzdGluZyBjb250ZXh0LlxuICogQHBhcmFtIHByZWZpeCAtIEN1cnJlbnQgcGF0aCBwcmVmaXggcHJvcGFnYXRlZCBmcm9tIHBhcmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJvdXRlKFxuICByb3V0ZUNvbmZpZzogcmVhZG9ubHkgKEFueVJvdXRlIHwgUmVkaXJlY3QpW10sXG4gIHBhcmVudFJvdXRlczogQW55Um91dGVbXSA9IFtdLFxuICBwYXJlbnRSb3V0ZVNlZ21lbnRzOiBGbGF0Um91dGVTZWdtZW50W10gPSBbXSxcbiAgcHJlZml4ID0gJycsXG4pOiBGbGF0Um91dGU8UGFyYW1EYXRhPltdIHtcbiAgY29uc3QgZmxhdFJvdXRlczogRmxhdFJvdXRlPFBhcmFtRGF0YT5bXSA9IFtdO1xuXG4gIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVDb25maWcpIHtcbiAgICBjb25zdCBwYXJ0cyA9IFtdO1xuICAgIGlmIChwcmVmaXggIT09ICcnKSB7XG4gICAgICBwYXJ0cy5wdXNoKHByZWZpeCk7XG4gICAgfVxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVSb3V0ZVBhdGgocm91dGUucGF0aCk7XG4gICAgaWYgKG5vcm1hbGl6ZWQgIT09ICcnKSB7XG4gICAgICBwYXJ0cy5wdXNoKG5vcm1hbGl6ZWQpO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1BhdGggPSBwYXJ0cy5qb2luKCcvJyk7XG5cbiAgICBjb25zdCByb3V0ZURlZmluaXRpb24gPSByb3V0ZSBhcyBBbnlSb3V0ZTtcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSByb3V0ZURlZmluaXRpb247XG5cbiAgICBsZXQgcGF0aCA9IG5ld1BhdGg7XG4gICAgaWYgKCFuZXdQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgcGF0aCA9IGAvJHtuZXdQYXRofWA7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFJvdXRlcyA9IFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlRGVmaW5pdGlvbl07XG4gICAgbGV0IG5leHRSb3V0ZVNlZ21lbnRzID0gcGFyZW50Um91dGVTZWdtZW50cztcbiAgICBpZiAoIWlzUmVkaXJlY3Qocm91dGUpKSB7XG4gICAgICBuZXh0Um91dGVTZWdtZW50cyA9IFtcbiAgICAgICAgLi4ucGFyZW50Um91dGVTZWdtZW50cyxcbiAgICAgICAgYnVpbGRGbGF0Um91dGVTZWdtZW50KHtcbiAgICAgICAgICByb3V0ZTogcm91dGVEZWZpbml0aW9uLFxuICAgICAgICAgIGZ1bGxQYXRoOiBwYXRoLFxuICAgICAgICAgIGluZGV4OiBwYXJlbnRSb3V0ZVNlZ21lbnRzLmxlbmd0aCxcbiAgICAgICAgICBwYXJlbnRQYXJhbU5hbWVzOiBwYXJlbnRSb3V0ZVNlZ21lbnRzLmF0KC0xKT8ucGFyYW1OYW1lcyA/PyBbXSxcbiAgICAgICAgfSksXG4gICAgICBdO1xuICAgIH1cblxuICAgIGlmICghaXNSZWRpcmVjdChyb3V0ZSkgJiYgY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgY29uc3Qgcm91dGVzID0gYnVpbGRSb3V0ZShcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIG5leHRSb3V0ZXMsXG4gICAgICAgIG5leHRSb3V0ZVNlZ21lbnRzLFxuICAgICAgICBuZXdQYXRoLFxuICAgICAgKTtcbiAgICAgIGZsYXRSb3V0ZXMucHVzaCguLi5yb3V0ZXMpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnRpbnVlXG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaEZ1bmN0aW9uID0gbWF0Y2goYC8ke25ld1BhdGh9YCwge1xuICAgICAgdHJhaWxpbmc6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgaWYgKGlzUmVkaXJlY3Qocm91dGUpKSB7XG4gICAgICBsZXQgcmVkaXJlY3RUbyA9IHJvdXRlLnRvO1xuXG4gICAgICBpZiAoIXJlZGlyZWN0VG8uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJlZGlyZWN0VG8gPSBgJHtwYXRofS8ke3JlZGlyZWN0VG99YDtcbiAgICAgIH1cbiAgICAgIGZsYXRSb3V0ZXMucHVzaChcbiAgICAgICAgbmV3IEZsYXRSb3V0ZSh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByZWRpcmVjdFRvLFxuICAgICAgICAgIG1hdGNoRnVuY3Rpb24sXG4gICAgICAgICAgcm91dGVTZWdtZW50czogcGFyZW50Um91dGVTZWdtZW50cyxcbiAgICAgICAgICByb3V0ZXM6IFsuLi5wYXJlbnRSb3V0ZXNdLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsYXRSb3V0ZXMucHVzaChcbiAgICAgICAgbmV3IEZsYXRSb3V0ZSh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBtYXRjaEZ1bmN0aW9uLFxuICAgICAgICAgIHJvdXRlU2VnbWVudHM6IG5leHRSb3V0ZVNlZ21lbnRzLFxuICAgICAgICAgIHJvdXRlczogbmV4dFJvdXRlcyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmbGF0Um91dGVzO1xufVxuXG4vKipcbiAqIFRvcC1sZXZlbCBjb252ZW5pZW5jZSB0byBmbGF0dGVuIGEgcm91dGUgY29uZmlndXJhdGlvbiBpbnRvIGBGbGF0Um91dGVgcy5cbiAqXG4gKiBAcGFyYW0gcm91dGVDb25maWcgLSBSb3V0ZSBkZWZpbml0aW9ucyB0byBmbGF0dGVuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRSb3V0ZXMoXG4gIHJvdXRlQ29uZmlnOiByZWFkb25seSBBbnlSb3V0ZVtdLFxuKTogRmxhdFJvdXRlPFBhcmFtRGF0YT5bXSB7XG4gIHJldHVybiBidWlsZFJvdXRlKHJvdXRlQ29uZmlnKTtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import type { AsyncResourceStatus, PreparedValueResource, UnknownFilters } from '../types.js';
1
+ import type { AsyncResourceStatus, RouterActiveLoadState, RouterLoadState, PreparedValueResource, RouteNode, UnknownFilters } from '../types.js';
2
2
  import type { Schema as FilterSchema } from '@plumile/filter-query/types.js';
3
3
  import type { RouterHistoryActionValue, RouterNavigationSourceValue, RouterPopstateDirectionValue, RouterPreloadModeValue, RouterPrepareStatusValue } from '../values.js';
4
4
  export type RouterNavigationSource = RouterNavigationSourceValue;
@@ -8,6 +8,7 @@ export type RouterLocationSnapshot = {
8
8
  hash: string;
9
9
  };
10
10
  export type RouterPreparedSegmentSnapshot = {
11
+ routeNode?: RouteNode;
11
12
  path?: string;
12
13
  fullPath?: string;
13
14
  segmentIndex: number;
@@ -25,6 +26,8 @@ export type RouterEntrySnapshot = {
25
26
  location: RouterLocationSnapshot;
26
27
  routePath?: string;
27
28
  preparedMatch?: RouterPreparedMatchSnapshot;
29
+ activeLoadState?: RouterActiveLoadState;
30
+ loadState?: RouterLoadState;
28
31
  filters?: UnknownFilters;
29
32
  filterDiagnostics?: unknown[];
30
33
  activeQuerySchema?: FilterSchema;
@@ -72,7 +75,16 @@ export type RouterPrepareCompleteEvent = RouterEventBase & {
72
75
  status: Exclude<RouterPrepareStatusValue, 'pending'>;
73
76
  };
74
77
  export type RouterPrepareEvent = RouterPrepareStartEvent | RouterPrepareCompleteEvent;
75
- export type RouterEvent = RouterSnapshotEvent | RouterPreloadEvent | RouterHistoryEvent | RouterPopstateEvent | RouterPrepareEvent;
78
+ export type RouterActiveLoadStateEvent = RouterEventBase & {
79
+ kind: 'active-load-state';
80
+ source: RouterNavigationSource;
81
+ routePath?: string;
82
+ status: RouterActiveLoadState['status'];
83
+ pendingCount: number;
84
+ rejectedCount: number;
85
+ version: number;
86
+ };
87
+ export type RouterEvent = RouterSnapshotEvent | RouterPreloadEvent | RouterHistoryEvent | RouterPopstateEvent | RouterPrepareEvent | RouterActiveLoadStateEvent;
76
88
  export type InstrumentationAPI = {
77
89
  onEvent?: (event: RouterEvent) => void;
78
90
  onEntryChange?: (entry: RouterEntrySnapshot) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Instrumentation.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/Instrumentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Instrumentation.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/Instrumentation.ts"],"names":[],"mappings":"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"}
@@ -56,4 +56,4 @@ export function createInstrumentationRegistry(initial = []) {
56
56
  },
57
57
  };
58
58
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luc3RydW1lbnRhdGlvbi9JbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUpBLE1BQU0sVUFBVSw2QkFBNkIsQ0FDM0MsVUFBZ0MsRUFBRTtJQUVsQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztJQUNoRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7UUFDbEMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUtyQixTQUFTLEtBQUs7UUFDWixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBTUQsU0FBUyxVQUFVLENBQ2pCLGVBQW1DLEVBQ25DLE1BQWdDLEVBQ2hDLE9BQWtCO1FBRWxCLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0YsT0FBd0MsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFBQyxNQUFNLENBQUM7UUFFVCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxRQUFRLENBQUMsZUFBZTtZQUN0QixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELFVBQVUsQ0FBQyxlQUFlO1lBQ3hCLEtBQUssRUFBRSxDQUFDO1lBQ1IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsU0FBUyxDQUFDLEtBQUs7WUFDYixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDcEMsVUFBVSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELGlCQUFpQixDQUFDLEtBQUs7WUFDckIsS0FBSyxFQUFFLENBQUM7WUFDUixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQ3BDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPO1lBQ0wsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixPQUFPO1lBQ1QsQ0FBQztZQUNELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDcEMsVUFBVSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7WUFDSCxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxJQUFJO1lBQ04sT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ3hCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQXN5bmNSZXNvdXJjZVN0YXR1cyxcbiAgUHJlcGFyZWRWYWx1ZVJlc291cmNlLFxuICBVbmtub3duRmlsdGVycyxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTY2hlbWEgYXMgRmlsdGVyU2NoZW1hIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgUm91dGVySGlzdG9yeUFjdGlvblZhbHVlLFxuICBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlVmFsdWUsXG4gIFJvdXRlclBvcHN0YXRlRGlyZWN0aW9uVmFsdWUsXG4gIFJvdXRlclByZWxvYWRNb2RlVmFsdWUsXG4gIFJvdXRlclByZXBhcmVTdGF0dXNWYWx1ZSxcbn0gZnJvbSAnLi4vdmFsdWVzLmpzJztcblxuLyoqXG4gKiBFbnVtZXJhdGVzIHRoZSBvcmlnaW4gb2YgbmF2aWdhdGlvbi1yZWxhdGVkIGV2ZW50cyBleHBvc2VkIHRvIGluc3RydW1lbnRhdGlvbnMuXG4gKlxuICogS2VwdCBhcyBzdHJpbmcgbGl0ZXJhbHMgdG8gYXZvaWQgbGVha2luZyBkZWJ1ZyBlbnVtcyBpbnRvIHRoZSBwcm9kdWN0aW9uIGJ1bmRsZS5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyTmF2aWdhdGlvblNvdXJjZSA9IFJvdXRlck5hdmlnYXRpb25Tb3VyY2VWYWx1ZTtcblxuLyoqXG4gKiBDb21wYWN0IGxvY2F0aW9uIHNuYXBzaG90IHNoYXJlZCBieSBhbGwgaW5zdHJ1bWVudGF0aW9uIGV2ZW50cy5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyTG9jYXRpb25TbmFwc2hvdCA9IHtcbiAgcGF0aG5hbWU6IHN0cmluZztcbiAgc2VhcmNoOiBzdHJpbmc7XG4gIGhhc2g6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlclByZXBhcmVkU2VnbWVudFNuYXBzaG90ID0ge1xuICBwYXRoPzogc3RyaW5nO1xuICBmdWxsUGF0aD86IHN0cmluZztcbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIHByZXBhcmVkUmVzb3VyY2U/OiBQcmVwYXJlZFZhbHVlUmVzb3VyY2U7XG4gIHJlZGlyZWN0VG86IHN0cmluZyB8IG51bGw7XG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbiAgcHJlcGFyZWRTdGF0dXM/OiBBc3luY1Jlc291cmNlU3RhdHVzO1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyUHJlcGFyZWRNYXRjaFNuYXBzaG90ID0ge1xuICBzZWdtZW50czogUm91dGVyUHJlcGFyZWRTZWdtZW50U25hcHNob3RbXTtcbiAgcm91dGVzOiBSb3V0ZXJQcmVwYXJlZFNlZ21lbnRTbmFwc2hvdFtdO1xufTtcblxuLyoqXG4gKiBTdW1tYXJ5IG9mIHRoZSBjdXJyZW50IHJvdXRlciBlbnRyeSB0aGF0IGNhbiBiZSBicm9hZGNhc3QgdG8gaW5zdHJ1bWVudGF0aW9ucy5cbiAqIFRoZSBzaGFwZSBpbnRlbnRpb25hbGx5IG1pcnJvcnMgcHVibGljIGRhdGEgYWxyZWFkeSBhdmFpbGFibGUgdG8gYXBwbGljYXRpb25zLlxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJFbnRyeVNuYXBzaG90ID0ge1xuICBsb2NhdGlvbjogUm91dGVyTG9jYXRpb25TbmFwc2hvdDtcbiAgcm91dGVQYXRoPzogc3RyaW5nO1xuICBwcmVwYXJlZE1hdGNoPzogUm91dGVyUHJlcGFyZWRNYXRjaFNuYXBzaG90O1xuICBmaWx0ZXJzPzogVW5rbm93bkZpbHRlcnM7XG4gIGZpbHRlckRpYWdub3N0aWNzPzogdW5rbm93bltdO1xuICBhY3RpdmVRdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbn07XG5cbi8qKlxuICogQmFzZSBwYXlsb2FkIHNoYXJlZCBieSByb3V0ZXIgZXZlbnRzLiBFYWNoIGV2ZW50IGV4dGVuZHMgdGhlIGJhc2Ugd2l0aFxuICogc3BlY2lmaWMgZGV0YWlscyByZWxldmFudCB0byB0aGUgaW5zdHJ1bWVudGF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJFdmVudEJhc2UgPSB7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuICBsb2NhdGlvbjogUm91dGVyTG9jYXRpb25TbmFwc2hvdDtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlclNuYXBzaG90RXZlbnQgPSBSb3V0ZXJFdmVudEJhc2UgJiB7XG4gIGtpbmQ6ICdzbmFwc2hvdCc7XG4gIHNvdXJjZTogUm91dGVyTmF2aWdhdGlvblNvdXJjZTtcbiAgcm91dGVQYXRoPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyUHJlbG9hZEV2ZW50ID0gUm91dGVyRXZlbnRCYXNlICYge1xuICBraW5kOiAncHJlbG9hZCc7XG4gIHNvdXJjZTogUm91dGVyTmF2aWdhdGlvblNvdXJjZTtcbiAgdGFyZ2V0UGF0aG5hbWU6IHN0cmluZztcbiAgbW9kZTogUm91dGVyUHJlbG9hZE1vZGVWYWx1ZTtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlckhpc3RvcnlFdmVudCA9IFJvdXRlckV2ZW50QmFzZSAmIHtcbiAga2luZDogJ2hpc3RvcnknO1xuICBzb3VyY2U6IFJvdXRlck5hdmlnYXRpb25Tb3VyY2U7XG4gIGFjdGlvbjogUm91dGVySGlzdG9yeUFjdGlvblZhbHVlO1xuICBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJQb3BzdGF0ZUV2ZW50ID0gUm91dGVyRXZlbnRCYXNlICYge1xuICBraW5kOiAncG9wc3RhdGUnO1xuICBzb3VyY2U6IFJvdXRlck5hdmlnYXRpb25Tb3VyY2U7XG4gIGRpcmVjdGlvbjogUm91dGVyUG9wc3RhdGVEaXJlY3Rpb25WYWx1ZTtcbiAgZGV0YWlscz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyUHJlcGFyZVN0YXJ0RXZlbnQgPSBSb3V0ZXJFdmVudEJhc2UgJiB7XG4gIGtpbmQ6ICdwcmVwYXJlLXN0YXJ0JztcbiAgc291cmNlOiBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlO1xuICByb3V0ZVBhdGg/OiBzdHJpbmc7XG4gIG1vZHVsZUlkPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyUHJlcGFyZUNvbXBsZXRlRXZlbnQgPSBSb3V0ZXJFdmVudEJhc2UgJiB7XG4gIGtpbmQ6ICdwcmVwYXJlLWNvbXBsZXRlJztcbiAgc291cmNlOiBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlO1xuICByb3V0ZVBhdGg/OiBzdHJpbmc7XG4gIG1vZHVsZUlkPzogc3RyaW5nO1xuICBkdXJhdGlvbk1zOiBudW1iZXI7XG4gIGhhc1ByZXBhcmVkOiBib29sZWFuO1xuICBzdGF0dXM6IEV4Y2x1ZGU8Um91dGVyUHJlcGFyZVN0YXR1c1ZhbHVlLCAncGVuZGluZyc+O1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyUHJlcGFyZUV2ZW50ID1cbiAgfCBSb3V0ZXJQcmVwYXJlU3RhcnRFdmVudFxuICB8IFJvdXRlclByZXBhcmVDb21wbGV0ZUV2ZW50O1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJFdmVudCA9XG4gIHwgUm91dGVyU25hcHNob3RFdmVudFxuICB8IFJvdXRlclByZWxvYWRFdmVudFxuICB8IFJvdXRlckhpc3RvcnlFdmVudFxuICB8IFJvdXRlclBvcHN0YXRlRXZlbnRcbiAgfCBSb3V0ZXJQcmVwYXJlRXZlbnQ7XG5cbi8qKlxuICogSW5zdHJ1bWVudGF0aW9ucyBjYW4gb2JzZXJ2ZSByb3V0ZXIgZXZlbnRzLCBlbnRyeSBjaGFuZ2VzLCBhbmQgb3B0aW9uYWxseVxuICogZGlzcG9zZSByZXNvdXJjZXMgd2hlbiB0aGUgcmVnaXN0cnkgaXMgdG9ybiBkb3duLlxuICovXG5leHBvcnQgdHlwZSBJbnN0cnVtZW50YXRpb25BUEkgPSB7XG4gIG9uRXZlbnQ/OiAoZXZlbnQ6IFJvdXRlckV2ZW50KSA9PiB2b2lkO1xuICBvbkVudHJ5Q2hhbmdlPzogKGVudHJ5OiBSb3V0ZXJFbnRyeVNuYXBzaG90KSA9PiB2b2lkO1xuICBkaXNwb3NlPzogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIEluc3RydW1lbnRhdGlvblJlZ2lzdHJ5ID0ge1xuICByZWdpc3RlcjogKGluc3RydW1lbnRhdGlvbjogSW5zdHJ1bWVudGF0aW9uQVBJKSA9PiB2b2lkO1xuICB1bnJlZ2lzdGVyOiAoaW5zdHJ1bWVudGF0aW9uOiBJbnN0cnVtZW50YXRpb25BUEkpID0+IHZvaWQ7XG4gIGVtaXRFdmVudDogKGV2ZW50OiBSb3V0ZXJFdmVudCkgPT4gdm9pZDtcbiAgbm90aWZ5RW50cnlDaGFuZ2U6IChlbnRyeTogUm91dGVyRW50cnlTbmFwc2hvdCkgPT4gdm9pZDtcbiAgZGlzcG9zZTogKCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgcmVnaXN0cnkgY29vcmRpbmF0aW5nIGEgc2V0IG9mIGluc3RydW1lbnRhdGlvbnMuIFRoZSByZWdpc3RyeSBrZWVwc1xuICogY29uc3VtZXIgY29kZSBzaW1wbGU6IHJvdXRlciBpbnRlcm5hbHMgYnJvYWRjYXN0IGV2ZW50cyB3aXRob3V0IGNhcmluZyBhYm91dFxuICogdGhlIG51bWJlciBvciBuYXR1cmUgb2YgYXR0YWNoZWQgaW5zdHJ1bWVudGF0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluc3RydW1lbnRhdGlvblJlZ2lzdHJ5KFxuICBpbml0aWFsOiBJbnN0cnVtZW50YXRpb25BUElbXSA9IFtdLFxuKTogSW5zdHJ1bWVudGF0aW9uUmVnaXN0cnkge1xuICBjb25zdCBsaXN0ZW5lcnMgPSBuZXcgU2V0PEluc3RydW1lbnRhdGlvbkFQST4oKTtcbiAgaW5pdGlhbC5mb3JFYWNoKChpbnN0cnVtZW50YXRpb24pID0+IHtcbiAgICBsaXN0ZW5lcnMuYWRkKGluc3RydW1lbnRhdGlvbik7XG4gIH0pO1xuXG4gIGxldCBkaXNwb3NlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaHJvd3Mgd2hlbiB0aGUgcmVnaXN0cnkgaGFzIGFscmVhZHkgYmVlbiBkaXNwb3NlZC4gR3VhcmRzIGV2ZW50IGVtaXNzaW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gZ3VhcmQoKSB7XG4gICAgaWYgKGRpc3Bvc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luc3RydW1lbnRhdGlvbiByZWdpc3RyeSB3YXMgZGlzcG9zZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2FmZWx5IGludm9rZXMgYW4gb3B0aW9uYWwgaGFuZGxlciBwcm92aWRlZCBieSBhbiBpbnN0cnVtZW50YXRpb24uXG4gICAqIEZhaWx1cmVzIGFyZSBzd2FsbG93ZWQgc28gcm91dGVyIGV4ZWN1dGlvbiBjb250aW51ZXMgdW5pbnRlcnJ1cHRlZC5cbiAgICovXG4gIGZ1bmN0aW9uIHNhZmVJbnZva2UoXG4gICAgaW5zdHJ1bWVudGF0aW9uOiBJbnN0cnVtZW50YXRpb25BUEksXG4gICAgbWV0aG9kOiBrZXlvZiBJbnN0cnVtZW50YXRpb25BUEksXG4gICAgcGF5bG9hZDogdW5rbm93bltdLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kbGVyID0gaW5zdHJ1bWVudGF0aW9uW21ldGhvZF07XG4gICAgaWYgKHR5cGVvZiBoYW5kbGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAoaGFuZGxlciBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkKSguLi5wYXlsb2FkKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEluc3RydW1lbnRhdGlvbnMgc2hvdWxkIG5ldmVyIGJyZWFrIHJvdXRlciBleGVjdXRpb24uIEVycm9ycyBhcmUgc3dhbGxvd2VkLlxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmVnaXN0ZXIoaW5zdHJ1bWVudGF0aW9uKSB7XG4gICAgICBndWFyZCgpO1xuICAgICAgbGlzdGVuZXJzLmFkZChpbnN0cnVtZW50YXRpb24pO1xuICAgIH0sXG4gICAgdW5yZWdpc3RlcihpbnN0cnVtZW50YXRpb24pIHtcbiAgICAgIGd1YXJkKCk7XG4gICAgICBsaXN0ZW5lcnMuZGVsZXRlKGluc3RydW1lbnRhdGlvbik7XG4gICAgfSxcbiAgICBlbWl0RXZlbnQoZXZlbnQpIHtcbiAgICAgIGd1YXJkKCk7XG4gICAgICBsaXN0ZW5lcnMuZm9yRWFjaCgoaW5zdHJ1bWVudGF0aW9uKSA9PiB7XG4gICAgICAgIHNhZmVJbnZva2UoaW5zdHJ1bWVudGF0aW9uLCAnb25FdmVudCcsIFtldmVudF0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBub3RpZnlFbnRyeUNoYW5nZShlbnRyeSkge1xuICAgICAgZ3VhcmQoKTtcbiAgICAgIGxpc3RlbmVycy5mb3JFYWNoKChpbnN0cnVtZW50YXRpb24pID0+IHtcbiAgICAgICAgc2FmZUludm9rZShpbnN0cnVtZW50YXRpb24sICdvbkVudHJ5Q2hhbmdlJywgW2VudHJ5XSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGRpc3Bvc2UoKSB7XG4gICAgICBpZiAoZGlzcG9zZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXJzLmZvckVhY2goKGluc3RydW1lbnRhdGlvbikgPT4ge1xuICAgICAgICBzYWZlSW52b2tlKGluc3RydW1lbnRhdGlvbiwgJ2Rpc3Bvc2UnLCBbXSk7XG4gICAgICB9KTtcbiAgICAgIGxpc3RlbmVycy5jbGVhcigpO1xuICAgICAgZGlzcG9zZWQgPSB0cnVlO1xuICAgIH0sXG4gICAgZ2V0IHNpemUoKSB7XG4gICAgICByZXR1cm4gbGlzdGVuZXJzLnNpemU7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luc3RydW1lbnRhdGlvbi9JbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0tBLE1BQU0sVUFBVSw2QkFBNkIsQ0FDM0MsVUFBZ0MsRUFBRTtJQUVsQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztJQUNoRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7UUFDbEMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUtyQixTQUFTLEtBQUs7UUFDWixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBTUQsU0FBUyxVQUFVLENBQ2pCLGVBQW1DLEVBQ25DLE1BQWdDLEVBQ2hDLE9BQWtCO1FBRWxCLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0YsT0FBd0MsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFBQyxNQUFNLENBQUM7UUFFVCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxRQUFRLENBQUMsZUFBZTtZQUN0QixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELFVBQVUsQ0FBQyxlQUFlO1lBQ3hCLEtBQUssRUFBRSxDQUFDO1lBQ1IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsU0FBUyxDQUFDLEtBQUs7WUFDYixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDcEMsVUFBVSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELGlCQUFpQixDQUFDLEtBQUs7WUFDckIsS0FBSyxFQUFFLENBQUM7WUFDUixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQ3BDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPO1lBQ0wsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixPQUFPO1lBQ1QsQ0FBQztZQUNELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDcEMsVUFBVSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7WUFDSCxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxJQUFJO1lBQ04sT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ3hCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQXN5bmNSZXNvdXJjZVN0YXR1cyxcbiAgUm91dGVyQWN0aXZlTG9hZFN0YXRlLFxuICBSb3V0ZXJMb2FkU3RhdGUsXG4gIFByZXBhcmVkVmFsdWVSZXNvdXJjZSxcbiAgUm91dGVOb2RlLFxuICBVbmtub3duRmlsdGVycyxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTY2hlbWEgYXMgRmlsdGVyU2NoZW1hIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgUm91dGVySGlzdG9yeUFjdGlvblZhbHVlLFxuICBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlVmFsdWUsXG4gIFJvdXRlclBvcHN0YXRlRGlyZWN0aW9uVmFsdWUsXG4gIFJvdXRlclByZWxvYWRNb2RlVmFsdWUsXG4gIFJvdXRlclByZXBhcmVTdGF0dXNWYWx1ZSxcbn0gZnJvbSAnLi4vdmFsdWVzLmpzJztcblxuLyoqXG4gKiBFbnVtZXJhdGVzIHRoZSBvcmlnaW4gb2YgbmF2aWdhdGlvbi1yZWxhdGVkIGV2ZW50cyBleHBvc2VkIHRvIGluc3RydW1lbnRhdGlvbnMuXG4gKlxuICogS2VwdCBhcyBzdHJpbmcgbGl0ZXJhbHMgdG8gYXZvaWQgbGVha2luZyBkZWJ1ZyBlbnVtcyBpbnRvIHRoZSBwcm9kdWN0aW9uIGJ1bmRsZS5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyTmF2aWdhdGlvblNvdXJjZSA9IFJvdXRlck5hdmlnYXRpb25Tb3VyY2VWYWx1ZTtcblxuLyoqXG4gKiBDb21wYWN0IGxvY2F0aW9uIHNuYXBzaG90IHNoYXJlZCBieSBhbGwgaW5zdHJ1bWVudGF0aW9uIGV2ZW50cy5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyTG9jYXRpb25TbmFwc2hvdCA9IHtcbiAgcGF0aG5hbWU6IHN0cmluZztcbiAgc2VhcmNoOiBzdHJpbmc7XG4gIGhhc2g6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlclByZXBhcmVkU2VnbWVudFNuYXBzaG90ID0ge1xuICByb3V0ZU5vZGU/OiBSb3V0ZU5vZGU7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZWRSZXNvdXJjZT86IFByZXBhcmVkVmFsdWVSZXNvdXJjZTtcbiAgcmVkaXJlY3RUbzogc3RyaW5nIHwgbnVsbDtcbiAgaGlnaGxpZ2h0SWQ/OiBzdHJpbmc7XG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xuICBwcmVwYXJlZFN0YXR1cz86IEFzeW5jUmVzb3VyY2VTdGF0dXM7XG59O1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJQcmVwYXJlZE1hdGNoU25hcHNob3QgPSB7XG4gIHNlZ21lbnRzOiBSb3V0ZXJQcmVwYXJlZFNlZ21lbnRTbmFwc2hvdFtdO1xuICByb3V0ZXM6IFJvdXRlclByZXBhcmVkU2VnbWVudFNuYXBzaG90W107XG59O1xuXG4vKipcbiAqIFN1bW1hcnkgb2YgdGhlIGN1cnJlbnQgcm91dGVyIGVudHJ5IHRoYXQgY2FuIGJlIGJyb2FkY2FzdCB0byBpbnN0cnVtZW50YXRpb25zLlxuICogVGhlIHNoYXBlIGludGVudGlvbmFsbHkgbWlycm9ycyBwdWJsaWMgZGF0YSBhbHJlYWR5IGF2YWlsYWJsZSB0byBhcHBsaWNhdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlckVudHJ5U25hcHNob3QgPSB7XG4gIGxvY2F0aW9uOiBSb3V0ZXJMb2NhdGlvblNuYXBzaG90O1xuICByb3V0ZVBhdGg/OiBzdHJpbmc7XG4gIHByZXBhcmVkTWF0Y2g/OiBSb3V0ZXJQcmVwYXJlZE1hdGNoU25hcHNob3Q7XG4gIGFjdGl2ZUxvYWRTdGF0ZT86IFJvdXRlckFjdGl2ZUxvYWRTdGF0ZTtcbiAgbG9hZFN0YXRlPzogUm91dGVyTG9hZFN0YXRlO1xuICBmaWx0ZXJzPzogVW5rbm93bkZpbHRlcnM7XG4gIGZpbHRlckRpYWdub3N0aWNzPzogdW5rbm93bltdO1xuICBhY3RpdmVRdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbn07XG5cbi8qKlxuICogQmFzZSBwYXlsb2FkIHNoYXJlZCBieSByb3V0ZXIgZXZlbnRzLiBFYWNoIGV2ZW50IGV4dGVuZHMgdGhlIGJhc2Ugd2l0aFxuICogc3BlY2lmaWMgZGV0YWlscyByZWxldmFudCB0byB0aGUgaW5zdHJ1bWVudGF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJFdmVudEJhc2UgPSB7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuICBsb2NhdGlvbjogUm91dGVyTG9jYXRpb25TbmFwc2hvdDtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlclNuYXBzaG90RXZlbnQgPSBSb3V0ZXJFdmVudEJhc2UgJiB7XG4gIGtpbmQ6ICdzbmFwc2hvdCc7XG4gIHNvdXJjZTogUm91dGVyTmF2aWdhdGlvblNvdXJjZTtcbiAgcm91dGVQYXRoPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyUHJlbG9hZEV2ZW50ID0gUm91dGVyRXZlbnRCYXNlICYge1xuICBraW5kOiAncHJlbG9hZCc7XG4gIHNvdXJjZTogUm91dGVyTmF2aWdhdGlvblNvdXJjZTtcbiAgdGFyZ2V0UGF0aG5hbWU6IHN0cmluZztcbiAgbW9kZTogUm91dGVyUHJlbG9hZE1vZGVWYWx1ZTtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlckhpc3RvcnlFdmVudCA9IFJvdXRlckV2ZW50QmFzZSAmIHtcbiAga2luZDogJ2hpc3RvcnknO1xuICBzb3VyY2U6IFJvdXRlck5hdmlnYXRpb25Tb3VyY2U7XG4gIGFjdGlvbjogUm91dGVySGlzdG9yeUFjdGlvblZhbHVlO1xuICBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJQb3BzdGF0ZUV2ZW50ID0gUm91dGVyRXZlbnRCYXNlICYge1xuICBraW5kOiAncG9wc3RhdGUnO1xuICBzb3VyY2U6IFJvdXRlck5hdmlnYXRpb25Tb3VyY2U7XG4gIGRpcmVjdGlvbjogUm91dGVyUG9wc3RhdGVEaXJlY3Rpb25WYWx1ZTtcbiAgZGV0YWlscz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyUHJlcGFyZVN0YXJ0RXZlbnQgPSBSb3V0ZXJFdmVudEJhc2UgJiB7XG4gIGtpbmQ6ICdwcmVwYXJlLXN0YXJ0JztcbiAgc291cmNlOiBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlO1xuICByb3V0ZVBhdGg/OiBzdHJpbmc7XG4gIG1vZHVsZUlkPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyUHJlcGFyZUNvbXBsZXRlRXZlbnQgPSBSb3V0ZXJFdmVudEJhc2UgJiB7XG4gIGtpbmQ6ICdwcmVwYXJlLWNvbXBsZXRlJztcbiAgc291cmNlOiBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlO1xuICByb3V0ZVBhdGg/OiBzdHJpbmc7XG4gIG1vZHVsZUlkPzogc3RyaW5nO1xuICBkdXJhdGlvbk1zOiBudW1iZXI7XG4gIGhhc1ByZXBhcmVkOiBib29sZWFuO1xuICBzdGF0dXM6IEV4Y2x1ZGU8Um91dGVyUHJlcGFyZVN0YXR1c1ZhbHVlLCAncGVuZGluZyc+O1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyUHJlcGFyZUV2ZW50ID1cbiAgfCBSb3V0ZXJQcmVwYXJlU3RhcnRFdmVudFxuICB8IFJvdXRlclByZXBhcmVDb21wbGV0ZUV2ZW50O1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJBY3RpdmVMb2FkU3RhdGVFdmVudCA9IFJvdXRlckV2ZW50QmFzZSAmIHtcbiAga2luZDogJ2FjdGl2ZS1sb2FkLXN0YXRlJztcbiAgc291cmNlOiBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlO1xuICByb3V0ZVBhdGg/OiBzdHJpbmc7XG4gIHN0YXR1czogUm91dGVyQWN0aXZlTG9hZFN0YXRlWydzdGF0dXMnXTtcbiAgcGVuZGluZ0NvdW50OiBudW1iZXI7XG4gIHJlamVjdGVkQ291bnQ6IG51bWJlcjtcbiAgdmVyc2lvbjogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyRXZlbnQgPVxuICB8IFJvdXRlclNuYXBzaG90RXZlbnRcbiAgfCBSb3V0ZXJQcmVsb2FkRXZlbnRcbiAgfCBSb3V0ZXJIaXN0b3J5RXZlbnRcbiAgfCBSb3V0ZXJQb3BzdGF0ZUV2ZW50XG4gIHwgUm91dGVyUHJlcGFyZUV2ZW50XG4gIHwgUm91dGVyQWN0aXZlTG9hZFN0YXRlRXZlbnQ7XG5cbi8qKlxuICogSW5zdHJ1bWVudGF0aW9ucyBjYW4gb2JzZXJ2ZSByb3V0ZXIgZXZlbnRzLCBlbnRyeSBjaGFuZ2VzLCBhbmQgb3B0aW9uYWxseVxuICogZGlzcG9zZSByZXNvdXJjZXMgd2hlbiB0aGUgcmVnaXN0cnkgaXMgdG9ybiBkb3duLlxuICovXG5leHBvcnQgdHlwZSBJbnN0cnVtZW50YXRpb25BUEkgPSB7XG4gIG9uRXZlbnQ/OiAoZXZlbnQ6IFJvdXRlckV2ZW50KSA9PiB2b2lkO1xuICBvbkVudHJ5Q2hhbmdlPzogKGVudHJ5OiBSb3V0ZXJFbnRyeVNuYXBzaG90KSA9PiB2b2lkO1xuICBkaXNwb3NlPzogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIEluc3RydW1lbnRhdGlvblJlZ2lzdHJ5ID0ge1xuICByZWdpc3RlcjogKGluc3RydW1lbnRhdGlvbjogSW5zdHJ1bWVudGF0aW9uQVBJKSA9PiB2b2lkO1xuICB1bnJlZ2lzdGVyOiAoaW5zdHJ1bWVudGF0aW9uOiBJbnN0cnVtZW50YXRpb25BUEkpID0+IHZvaWQ7XG4gIGVtaXRFdmVudDogKGV2ZW50OiBSb3V0ZXJFdmVudCkgPT4gdm9pZDtcbiAgbm90aWZ5RW50cnlDaGFuZ2U6IChlbnRyeTogUm91dGVyRW50cnlTbmFwc2hvdCkgPT4gdm9pZDtcbiAgZGlzcG9zZTogKCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgcmVnaXN0cnkgY29vcmRpbmF0aW5nIGEgc2V0IG9mIGluc3RydW1lbnRhdGlvbnMuIFRoZSByZWdpc3RyeSBrZWVwc1xuICogY29uc3VtZXIgY29kZSBzaW1wbGU6IHJvdXRlciBpbnRlcm5hbHMgYnJvYWRjYXN0IGV2ZW50cyB3aXRob3V0IGNhcmluZyBhYm91dFxuICogdGhlIG51bWJlciBvciBuYXR1cmUgb2YgYXR0YWNoZWQgaW5zdHJ1bWVudGF0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluc3RydW1lbnRhdGlvblJlZ2lzdHJ5KFxuICBpbml0aWFsOiBJbnN0cnVtZW50YXRpb25BUElbXSA9IFtdLFxuKTogSW5zdHJ1bWVudGF0aW9uUmVnaXN0cnkge1xuICBjb25zdCBsaXN0ZW5lcnMgPSBuZXcgU2V0PEluc3RydW1lbnRhdGlvbkFQST4oKTtcbiAgaW5pdGlhbC5mb3JFYWNoKChpbnN0cnVtZW50YXRpb24pID0+IHtcbiAgICBsaXN0ZW5lcnMuYWRkKGluc3RydW1lbnRhdGlvbik7XG4gIH0pO1xuXG4gIGxldCBkaXNwb3NlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaHJvd3Mgd2hlbiB0aGUgcmVnaXN0cnkgaGFzIGFscmVhZHkgYmVlbiBkaXNwb3NlZC4gR3VhcmRzIGV2ZW50IGVtaXNzaW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gZ3VhcmQoKSB7XG4gICAgaWYgKGRpc3Bvc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luc3RydW1lbnRhdGlvbiByZWdpc3RyeSB3YXMgZGlzcG9zZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2FmZWx5IGludm9rZXMgYW4gb3B0aW9uYWwgaGFuZGxlciBwcm92aWRlZCBieSBhbiBpbnN0cnVtZW50YXRpb24uXG4gICAqIEZhaWx1cmVzIGFyZSBzd2FsbG93ZWQgc28gcm91dGVyIGV4ZWN1dGlvbiBjb250aW51ZXMgdW5pbnRlcnJ1cHRlZC5cbiAgICovXG4gIGZ1bmN0aW9uIHNhZmVJbnZva2UoXG4gICAgaW5zdHJ1bWVudGF0aW9uOiBJbnN0cnVtZW50YXRpb25BUEksXG4gICAgbWV0aG9kOiBrZXlvZiBJbnN0cnVtZW50YXRpb25BUEksXG4gICAgcGF5bG9hZDogdW5rbm93bltdLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kbGVyID0gaW5zdHJ1bWVudGF0aW9uW21ldGhvZF07XG4gICAgaWYgKHR5cGVvZiBoYW5kbGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAoaGFuZGxlciBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkKSguLi5wYXlsb2FkKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEluc3RydW1lbnRhdGlvbnMgc2hvdWxkIG5ldmVyIGJyZWFrIHJvdXRlciBleGVjdXRpb24uIEVycm9ycyBhcmUgc3dhbGxvd2VkLlxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmVnaXN0ZXIoaW5zdHJ1bWVudGF0aW9uKSB7XG4gICAgICBndWFyZCgpO1xuICAgICAgbGlzdGVuZXJzLmFkZChpbnN0cnVtZW50YXRpb24pO1xuICAgIH0sXG4gICAgdW5yZWdpc3RlcihpbnN0cnVtZW50YXRpb24pIHtcbiAgICAgIGd1YXJkKCk7XG4gICAgICBsaXN0ZW5lcnMuZGVsZXRlKGluc3RydW1lbnRhdGlvbik7XG4gICAgfSxcbiAgICBlbWl0RXZlbnQoZXZlbnQpIHtcbiAgICAgIGd1YXJkKCk7XG4gICAgICBsaXN0ZW5lcnMuZm9yRWFjaCgoaW5zdHJ1bWVudGF0aW9uKSA9PiB7XG4gICAgICAgIHNhZmVJbnZva2UoaW5zdHJ1bWVudGF0aW9uLCAnb25FdmVudCcsIFtldmVudF0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBub3RpZnlFbnRyeUNoYW5nZShlbnRyeSkge1xuICAgICAgZ3VhcmQoKTtcbiAgICAgIGxpc3RlbmVycy5mb3JFYWNoKChpbnN0cnVtZW50YXRpb24pID0+IHtcbiAgICAgICAgc2FmZUludm9rZShpbnN0cnVtZW50YXRpb24sICdvbkVudHJ5Q2hhbmdlJywgW2VudHJ5XSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGRpc3Bvc2UoKSB7XG4gICAgICBpZiAoZGlzcG9zZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXJzLmZvckVhY2goKGluc3RydW1lbnRhdGlvbikgPT4ge1xuICAgICAgICBzYWZlSW52b2tlKGluc3RydW1lbnRhdGlvbiwgJ2Rpc3Bvc2UnLCBbXSk7XG4gICAgICB9KTtcbiAgICAgIGxpc3RlbmVycy5jbGVhcigpO1xuICAgICAgZGlzcG9zZWQgPSB0cnVlO1xuICAgIH0sXG4gICAgZ2V0IHNpemUoKSB7XG4gICAgICByZXR1cm4gbGlzdGVuZXJzLnNpemU7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
@@ -1,13 +1,15 @@
1
1
  import React, { type AnchorHTMLAttributes, type HTMLAttributeAnchorTarget, type Ref, type ReactNode } from 'react';
2
2
  import type { BrowserHistory, HistoryLocation } from '../history/index.js';
3
+ export type LinkHoverPreload = 'none' | 'code' | 'code-and-data';
4
+ export type LinkMouseDownPreload = 'none' | 'code-and-data';
3
5
  export declare function isCurrentPathname(exact: boolean, history: BrowserHistory | undefined, pathname: string): boolean;
4
6
  type Props<TFilters extends Record<string, unknown> = Record<string, unknown>, TRawQuery extends Record<string, unknown> = Record<string, unknown>> = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'children' | 'className' | 'href' | 'onClick' | 'onFocus' | 'onMouseDown' | 'onMouseEnter' | 'onMouseOver' | 'ref' | 'target'> & {
5
7
  activeClassName?: string;
6
8
  children: ReactNode;
7
9
  className?: string;
8
10
  exact?: boolean;
9
- preloadOnMouseEnter?: boolean;
10
- preloadOnMouseDown?: boolean;
11
+ preloadOnHover?: LinkHoverPreload;
12
+ preloadOnMouseDown?: LinkMouseDownPreload;
11
13
  href?: string;
12
14
  isDisabled?: boolean;
13
15
  onClick?: React.MouseEventHandler<HTMLAnchorElement>;
@@ -1 +1 @@
1
- {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/routing/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAE9B,KAAK,GAAG,EACR,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAa3E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAmBT;AAKD,KAAK,KAAK,CACR,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACjE,IAAI,CACN,oBAAoB,CAAC,iBAAiB,CAAC,EACrC,UAAU,GACV,WAAW,GACX,MAAM,GACN,SAAS,GACT,SAAS,GACT,aAAa,GACb,cAAc,GACd,aAAa,GACb,KAAK,GACL,QAAQ,CACX,GAAG;IAEF,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,EAAE,SAAS,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAErD,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAErD,WAAW,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAEzD,YAAY,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAE1D,WAAW,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAEzD,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAE7B,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAE9B,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAyBF,QAAA,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,KAAK,CAAC,YAiOlC,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/routing/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAE9B,KAAK,GAAG,EACR,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAU3E,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,eAAe,CAAC;AAK5D,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAmBT;AAKD,KAAK,KAAK,CACR,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACjE,IAAI,CACN,oBAAoB,CAAC,iBAAiB,CAAC,EACrC,UAAU,GACV,WAAW,GACX,MAAM,GACN,SAAS,GACT,SAAS,GACT,aAAa,GACb,cAAc,GACd,aAAa,GACb,KAAK,GACL,QAAQ,CACX,GAAG;IAEF,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,EAAE,SAAS,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAElC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAE1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAErD,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAErD,WAAW,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAEzD,YAAY,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAE1D,WAAW,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAEzD,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAE7B,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAE9B,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAyBF,QAAA,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,KAAK,CAAC,YAyOlC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -20,7 +20,7 @@ export function isCurrentPathname(exact, history, pathname) {
20
20
  }
21
21
  const Link = (props) => {
22
22
  const router = useContext(RoutingContext);
23
- const { activeClassName, children, className, exact = false, isDisabled = false, onClick, onFocus, onMouseDown, onMouseEnter, onMouseOver, preloadOnMouseEnter = false, preloadOnMouseDown = true, target, to, href, filters, query, ref, ...anchorProps } = props;
23
+ const { activeClassName, children, className, exact = false, isDisabled = false, onClick, onFocus, onMouseDown, onMouseEnter, onMouseOver, preloadOnHover = 'code', preloadOnMouseDown = 'code-and-data', target, to, href, filters, query, ref, ...anchorProps } = props;
24
24
  const pathname = useMemo(() => {
25
25
  if (isDisabled) {
26
26
  return '#';
@@ -137,14 +137,20 @@ const Link = (props) => {
137
137
  if (router == null || isDisabled) {
138
138
  return;
139
139
  }
140
- const target = { pathname, search, source: 'preload-hover' };
141
- if (preloadOnMouseEnter) {
142
- router.preload(target);
140
+ if (preloadOnHover === 'none') {
141
+ return;
143
142
  }
144
- else {
145
- router.preloadCode(target);
143
+ const preloadTarget = {
144
+ pathname,
145
+ search,
146
+ source: 'preload-hover',
147
+ };
148
+ if (preloadOnHover === 'code-and-data') {
149
+ router.preload(preloadTarget);
150
+ return;
146
151
  }
147
- }, [router, isDisabled, onMouseEnter, preloadOnMouseEnter, pathname, search]);
152
+ router.preloadCode(preloadTarget);
153
+ }, [router, isDisabled, onMouseEnter, preloadOnHover, pathname, search]);
148
154
  const handleMouseDown = useCallback((event) => {
149
155
  if (typeof onMouseDown === 'function') {
150
156
  onMouseDown(event);
@@ -155,7 +161,7 @@ const Link = (props) => {
155
161
  if (router == null || isDisabled) {
156
162
  return;
157
163
  }
158
- if (preloadOnMouseDown) {
164
+ if (preloadOnMouseDown === 'code-and-data') {
159
165
  router.preload({ pathname, search, source: 'link-click' });
160
166
  }
161
167
  }, [router, isDisabled, onMouseDown, preloadOnMouseDown, pathname, search]);
@@ -169,4 +175,4 @@ const Link = (props) => {
169
175
  return (_jsx("a", { ...anchorProps, className: cx(classNames), href: hrefValue, onClick: handleClick, onFocus: onFocus, onMouseDown: handleMouseDown, onMouseEnter: handleMouseEnter, onMouseOver: onMouseOver, ref: ref, target: target, children: children }));
170
176
  };
171
177
  export default Link;
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL0xpbmsudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQU1aLFNBQVMsRUFDVCxPQUFPLEdBQ1IsTUFBTSxPQUFPLENBQUM7QUFJZixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekMsT0FBTyxtQkFBbUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUVsRSxPQUFPLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUdqRCxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztBQUsxQyxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLEtBQWMsRUFDZCxPQUFtQyxFQUNuQyxRQUFnQjtJQUVoQixJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFHRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXpELE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUU5QyxJQUFJLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUNyRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFrRkQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFZLEVBQXNCLEVBQUU7SUFDaEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FB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QztRQUM3RCxDQUFDO0lBQ0gsQ0FBQyxFQUNELENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUN4RSxDQUFDO0lBRUYsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQ3pCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEQsU0FBUyxHQUFHLEdBQUcsUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hELFNBQVMsR0FBRyxHQUFHLFNBQVMsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsT0FBTyxDQUNMLGVBQ00sV0FBVyxFQUNmLFNBQVMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQ3pCLElBQUksRUFBRSxTQUFTLEVBQ2YsT0FBTyxFQUFFLFdBQVcsRUFDcEIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsV0FBVyxFQUFFLGVBQWUsRUFDNUIsWUFBWSxFQUFFLGdCQUFnQixFQUM5QixXQUFXLEVBQUUsV0FBVyxFQUN4QixHQUFHLEVBQUUsR0FBRyxFQUNSLE1BQU0sRUFBRSxNQUFNLFlBRWIsUUFBUSxHQUNQLENBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLGVBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHR5cGUgQW5jaG9ySFRNTEF0dHJpYnV0ZXMsXG4gIHR5cGUgSFRNTEF0dHJpYnV0ZUFuY2hvclRhcmdldCxcbiAgdHlwZSBNb3VzZUV2ZW50LFxuICB0eXBlIFJlZixcbiAgdHlwZSBSZWFjdE5vZGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbn0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IEJyb3dzZXJIaXN0b3J5LCBIaXN0b3J5TG9jYXRpb24gfSBmcm9tICcuLi9oaXN0b3J5L2luZGV4LmpzJztcblxuaW1wb3J0IHsgY3ggfSBmcm9tICcuLy4uL3Rvb2xzL2luZGV4LmpzJztcbmltcG9ydCBidWlsZENvbWJpbmVkU2VhcmNoIGZyb20gJy4uL3Rvb2xzL2J1aWxkQ29tYmluZWRTZWFyY2guanMnO1xuXG5pbXBvcnQgUm91dGluZ0NvbnRleHQgZnJvbSAnLi9Sb3V0aW5nQ29udGV4dC5qcyc7XG4vLyAoZmlsdGVyLXF1ZXJ5IHN0cmluZ2lmeSBub3QgdXNlZCBoZXJlIGFmdGVyIHNpbXBsaWZ5aW5nIG1hbnVhbCBzZXJpYWxpemF0aW9uKVxuXG5jb25zdCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0IH0gPSBSZWFjdDtcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgY3VycmVudCBwYXRobmFtZSBtYXRjaGVzIHRoZSBnaXZlbiBwYXRobmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ3VycmVudFBhdGhuYW1lKFxuICBleGFjdDogYm9vbGVhbixcbiAgaGlzdG9yeTogQnJvd3Nlckhpc3RvcnkgfCB1bmRlZmluZWQsXG4gIHBhdGhuYW1lOiBzdHJpbmcsXG4pOiBib29sZWFuIHtcbiAgaWYgKGhpc3RvcnkgPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IE9LXG4gIGNvbnN0IHJlc29sdmVkVXJsID0gbmV3IFVSTChwYXRobmFtZSwgZG9jdW1lbnQubG9jYXRpb24pO1xuXG4gIGNvbnN0IHJlc29sdmVkUGF0aG5hbWUgPSByZXNvbHZlZFVybC5wYXRobmFtZTtcblxuICBpZiAoZXhhY3QgJiYgaGlzdG9yeS5sb2NhdGlvbi5wYXRobmFtZSA9PT0gcmVzb2x2ZWRQYXRobmFtZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKCFleGFjdCAmJiBoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lLnN0YXJ0c1dpdGgocmVzb2x2ZWRQYXRobmFtZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBQcm9wcyBmb3IgdGhlIExpbmsgY29tcG9uZW50LlxuICovXG50eXBlIFByb3BzPFxuICBURmlsdGVycyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFRSYXdRdWVyeSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+ID0gT21pdDxcbiAgQW5jaG9ySFRNTEF0dHJpYnV0ZXM8SFRNTEFuY2hvckVsZW1lbnQ+LFxuICB8ICdjaGlsZHJlbidcbiAgfCAnY2xhc3NOYW1lJ1xuICB8ICdocmVmJ1xuICB8ICdvbkNsaWNrJ1xuICB8ICdvbkZvY3VzJ1xuICB8ICdvbk1vdXNlRG93bidcbiAgfCAnb25Nb3VzZUVudGVyJ1xuICB8ICdvbk1vdXNlT3ZlcidcbiAgfCAncmVmJ1xuICB8ICd0YXJnZXQnXG4+ICYge1xuICAvKiogQ1NTIGNsYXNzIHRvIGFwcGx5IHdoZW4gdGhlIGxpbmsgaXMgYWN0aXZlIChtYXRjaGVzIGN1cnJlbnQgcm91dGUpICovXG4gIGFjdGl2ZUNsYXNzTmFtZT86IHN0cmluZztcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdG8gcmVuZGVyIGluc2lkZSB0aGUgbGluayAqL1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICAvKiogQmFzZSBDU1MgY2xhc3MgZm9yIHRoZSBsaW5rICovXG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgdG8gdXNlIGV4YWN0IHBhdGggbWF0Y2hpbmcgZm9yIGFjdGl2ZSBzdGF0ZSAqL1xuICBleGFjdD86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIHByZWxvYWQgdGhlIHJvdXRlIHdoZW4gbW91c2UgZW50ZXJzIHRoZSBsaW5rICovXG4gIHByZWxvYWRPbk1vdXNlRW50ZXI/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0byBwcmVsb2FkIHRoZSByb3V0ZSB3aGVuIG1vdXNlIGlzIHByZXNzZWQgZG93biAqL1xuICBwcmVsb2FkT25Nb3VzZURvd24/OiBib29sZWFuO1xuICAvKiogRGlyZWN0IGhyZWYgYXR0cmlidXRlIChvdmVycmlkZXMgJ3RvJyBwcm9wKSAqL1xuICBocmVmPzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0aGUgbGluayBzaG91bGQgYmUgZGlzYWJsZWQgKi9cbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKiBDbGljayBoYW5kbGVyICovXG4gIG9uQ2xpY2s/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIC8qKiBGb2N1cyBoYW5kbGVyICovXG4gIG9uRm9jdXM/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIC8qKiBNb3VzZSBkb3duIGhhbmRsZXIgKi9cbiAgb25Nb3VzZURvd24/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIC8qKiBNb3VzZSBlbnRlciBoYW5kbGVyICovXG4gIG9uTW91c2VFbnRlcj86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIE1vdXNlIG92ZXIgaGFuZGxlciAqL1xuICBvbk1vdXNlT3Zlcj86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIEFuY2hvciByZWYgKi9cbiAgcmVmPzogUmVmPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIFRhcmdldCBhdHRyaWJ1dGUgZm9yIHRoZSBsaW5rICovXG4gIHRhcmdldD86IEhUTUxBdHRyaWJ1dGVBbmNob3JUYXJnZXQ7XG4gIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGxpbmsgKGNhbiBiZSBzdHJpbmcgcGF0aCBvciBsb2NhdGlvbiBvYmplY3QpICovXG4gIHRvPzogSGlzdG9yeUxvY2F0aW9uIHwgc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgZmlsdGVycyBvYmplY3QgdG8gc2VyaWFsaXplIHVzaW5nIGRlc3RpbmF0aW9uIHJvdXRlIHNjaGVtYSAoaWdub3JlZCBpZiBgdG8uc2VhcmNoYCBpcyBzZXQpICovXG4gIGZpbHRlcnM/OiBURmlsdGVycztcbiAgLyoqIE9wdGlvbmFsIHJhdyBxdWVyeSBwYXJhbXMgKG5vbi1zY2hlbWEga2V5cykgdG8gbWVyZ2UgKGlnbm9yZWQgaWYgYHRvLnNlYXJjaGAgaXMgc2V0KSAqL1xuICBxdWVyeT86IFRSYXdRdWVyeTtcbn07XG5cbi8qKlxuICogTmF2aWdhdGlvbiBjb21wb25lbnQgdGhhdCBwcm92aWRlcyBjbGllbnQtc2lkZSByb3V0aW5nIHdpdGggcHJlbG9hZGluZyBjYXBhYmlsaXRpZXMuXG4gKlxuICogVGhpcyBjb21wb25lbnQgaW50ZWdyYXRlcyB3aXRoIHRoZSByb3V0ZXIncyBSb3V0aW5nQ29udGV4dCB0byBwcm92aWRlIHNtb290aCBuYXZpZ2F0aW9uXG4gKiB3aXRoIG9wdGlvbmFsIHByZWxvYWRpbmcgb2Ygcm91dGUgY29tcG9uZW50cyBhbmQgZGF0YS4gSXQgYXV0b21hdGljYWxseSBhcHBsaWVzIGFjdGl2ZVxuICogc3R5bGluZyB3aGVuIHRoZSBjdXJyZW50IHJvdXRlIG1hdGNoZXMgdGhlIGxpbmsncyBkZXN0aW5hdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiAvLyBCYXNpYyB1c2FnZVxuICogPExpbmsgdG89XCIvdXNlcnMvMTIzXCI+VmlldyBQcm9maWxlPC9MaW5rPlxuICpcbiAqIC8vIFdpdGggYWN0aXZlIHN0eWxpbmdcbiAqIDxMaW5rIHRvPVwiL2Rhc2hib2FyZFwiIGFjdGl2ZUNsYXNzTmFtZT1cImFjdGl2ZVwiIGV4YWN0PlxuICogICBEYXNoYm9hcmRcbiAqIDwvTGluaz5cbiAqXG4gKiAvLyBXaXRoIHByZWxvYWRpbmcgb24gaG92ZXJcbiAqIDxMaW5rIHRvPVwiL2hlYXZ5LXBhZ2VcIiBwcmVsb2FkT25Nb3VzZUVudGVyPlxuICogICBIZWF2eSBQYWdlXG4gKiA8L0xpbms+XG4gKiBgYGBcbiAqL1xuY29uc3QgTGluayA9IChwcm9wczogUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT4ge1xuICBjb25zdCByb3V0ZXIgPSB1c2VDb250ZXh0KFJvdXRpbmdDb250ZXh0KTtcbiAgY29uc3Qge1xuICAgIGFjdGl2ZUNsYXNzTmFtZSxcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUsXG4gICAgZXhhY3QgPSBmYWxzZSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgb25DbGljayxcbiAgICBvbkZvY3VzLFxuICAgIG9uTW91c2VEb3duLFxuICAgIG9uTW91c2VFbnRlcixcbiAgICBvbk1vdXNlT3ZlcixcbiAgICBwcmVsb2FkT25Nb3VzZUVudGVyID0gZmFsc2UsXG4gICAgcHJlbG9hZE9uTW91c2VEb3duID0gdHJ1ZSxcbiAgICB0YXJnZXQsXG4gICAgdG8sXG4gICAgaHJlZixcbiAgICBmaWx0ZXJzLFxuICAgIHF1ZXJ5LFxuICAgIHJlZixcbiAgICAuLi5hbmNob3JQcm9wc1xuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICcjJztcbiAgICB9XG5cbiAgICBsZXQgbmV3SHJlZiA9IGhyZWY7XG5cbiAgICBpZiAobmV3SHJlZiA9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZW9mIHRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBuZXdIcmVmID0gdG87XG4gICAgICB9IGVsc2UgaWYgKHRvPy5wYXRobmFtZSAhPSBudWxsKSB7XG4gICAgICAgIG5ld0hyZWYgPSB0by5wYXRobmFtZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdIcmVmID8/PSAnIyc7XG5cbiAgICByZXR1cm4gbmV3SHJlZjtcbiAgfSwgW2hyZWYsIGlzRGlzYWJsZWQsIHRvXSk7XG5cbiAgLy8gUmVzb2x2ZSBzZWFyY2ggc3RyaW5nIGZyb20gZXhwbGljaXQgYHRvLnNlYXJjaGAgb3IgZnJvbSBwcm92aWRlZCBxdWVyeVxuICAvLyB0cmVhdGVkIGFzIGZpbHRlcnMgd2l0aCB0aGUgYWN0aXZlIHNjaGVtYS5cbiAgY29uc3Qgc2VhcmNoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKHRvICE9IG51bGwgJiYgdHlwZW9mIHRvID09PSAnb2JqZWN0JyAmJiB0by5zZWFyY2ggIT0gbnVsbCkge1xuICAgICAgaWYgKHRvLnNlYXJjaCA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgICAgaWYgKHRvLnNlYXJjaC5zdGFydHNXaXRoKCc/JykpIHtcbiAgICAgICAgcmV0dXJuIHRvLnNlYXJjaDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBgPyR7dG8uc2VhcmNofWA7XG4gICAgfVxuICAgIGNvbnN0IGZpbHRlcklucHV0ID0gZmlsdGVycyA/PyBxdWVyeTtcbiAgICBsZXQgcmF3UXVlcnlJbnB1dDogdHlwZW9mIHF1ZXJ5IHwgdW5kZWZpbmVkO1xuICAgIGlmIChmaWx0ZXJzICE9IG51bGwpIHtcbiAgICAgIHJhd1F1ZXJ5SW5wdXQgPSBxdWVyeTtcbiAgICB9XG4gICAgaWYgKGZpbHRlcklucHV0ID09IG51bGwgJiYgcmF3UXVlcnlJbnB1dCA9PSBudWxsKSByZXR1cm4gJyc7XG4gICAgaWYgKHJvdXRlciA9PSBudWxsKSByZXR1cm4gJyc7XG4gICAgY29uc3QgZW50cnkgPSByb3V0ZXIuZ2V0KCk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tYmluZWRTZWFyY2goe1xuICAgICAgZmlsdGVyczogZmlsdGVySW5wdXQsXG4gICAgICBxdWVyeTogcmF3UXVlcnlJbnB1dCxcbiAgICAgIHF1ZXJ5U2NoZW1hOiBlbnRyeS5hY3RpdmVRdWVyeVNjaGVtYSxcbiAgICB9KTtcbiAgfSwgW2ZpbHRlcnMsIGlzRGlzYWJsZWQsIHF1ZXJ5LCByb3V0ZXIsIHRvXSk7XG5cbiAgY29uc3QgaGFzaCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmICh0byAhPSBudWxsICYmIHR5cGVvZiB0byA9PT0gJ29iamVjdCcgJiYgdG8uaGFzaCAhPSBudWxsKSB7XG4gICAgICBpZiAodG8uaGFzaCA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgICAgaWYgKHRvLmhhc2guc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgICAgIHJldHVybiB0by5oYXNoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGAjJHt0by5oYXNofWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSwgW2lzRGlzYWJsZWQsIHRvXSk7XG5cbiAgY29uc3QgaW5pdGlhbElzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICBjb25zdCBbaXNBY3RpdmUsIHNldElzQWN0aXZlXSA9IFJlYWN0LnVzZVN0YXRlKGluaXRpYWxJc0FjdGl2ZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG5ld0lzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICAgICAgc2V0SXNBY3RpdmUobmV3SXNBY3RpdmUpO1xuICAgIH07XG5cbiAgICBpZiAocm91dGVyID09IG51bGwpIHtcbiAgICAgIHJldHVybiAoKSA9PiB7fTtcbiAgICB9XG5cbiAgICByb3V0ZXIuaGlzdG9yeS5zdWJzY3JpYmUob25DaGFuZ2UpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJvdXRlci5oaXN0b3J5LnVuc3Vic2NyaWJlKG9uQ2hhbmdlKTtcbiAgICB9O1xuICB9LCBbZXhhY3QsIHBhdGhuYW1lLCByb3V0ZXJdKTtcblxuICBjb25zdCBjbGFzc05hbWVzID0gW2NsYXNzTmFtZV07XG5cbiAgaWYgKGlzQWN0aXZlKSB7XG4gICAgY2xhc3NOYW1lcy5wdXNoKGFjdGl2ZUNsYXNzTmFtZSk7XG4gIH1cblxuICAvLyBXaGVuIHRoZSB1c2VyIGNsaWNrcywgY2hhbmdlIHJvdXRlXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKCFpc0Rpc2FibGVkICYmIHR5cGVvZiBvbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9uQ2xpY2soZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHxcbiAgICAgICAgZXZlbnQubWV0YUtleSB8fFxuICAgICAgICBldmVudC5hbHRLZXkgfHxcbiAgICAgICAgZXZlbnQuY3RybEtleSB8fFxuICAgICAgICBldmVudC5zaGlmdEtleSB8fFxuICAgICAgICBldmVudC5idXR0b24gIT09IDAgfHxcbiAgICAgICAgKHRhcmdldCAhPSBudWxsICYmIHRhcmdldCAhPT0gJ19zZWxmJylcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJvdXRlci5oaXN0b3J5LnB1c2goe1xuICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgc2VhcmNoLFxuICAgICAgICBoYXNoLFxuICAgICAgICBkZWJ1Z0NvbnRleHQ6IHtcbiAgICAgICAgICBvcmlnaW46ICdsaW5rLWNsaWNrJyxcbiAgICAgICAgICB0cmlnZ2VyOiAnbGluaycsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtoYXNoLCBpc0Rpc2FibGVkLCBvbkNsaWNrLCBwYXRobmFtZSwgcm91dGVyLCB0YXJnZXQsIHNlYXJjaF0sXG4gICk7XG5cbiAgLy8gQ2FsbGJhY2sgdG8gcHJlbG9hZCBqdXN0IHRoZSBjb2RlIGZvciB0aGUgcm91dGU6XG4gIC8vIHdlIHBhc3MgdGhpcyB0byBvbk1vdXNlRW50ZXIsIHdoaWNoIGlzIGEgd2Vha2VyIHNpZ25hbFxuICAvLyB0aGF0IHRoZSB1c2VyICptYXkqIG5hdmlnYXRlIHRvIHRoZSByb3V0ZS5cbiAgY29uc3QgaGFuZGxlTW91c2VFbnRlciA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygb25Nb3VzZUVudGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9uTW91c2VFbnRlcihldmVudCk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyb3V0ZXIgPT0gbnVsbCB8fCBpc0Rpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGFyZ2V0ID0geyBwYXRobmFtZSwgc2VhcmNoLCBzb3VyY2U6ICdwcmVsb2FkLWhvdmVyJyB9IGFzIGNvbnN0O1xuICAgICAgaWYgKHByZWxvYWRPbk1vdXNlRW50ZXIpIHtcbiAgICAgICAgcm91dGVyLnByZWxvYWQodGFyZ2V0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvdXRlci5wcmVsb2FkQ29kZSh0YXJnZXQpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3JvdXRlciwgaXNEaXNhYmxlZCwgb25Nb3VzZUVudGVyLCBwcmVsb2FkT25Nb3VzZUVudGVyLCBwYXRobmFtZSwgc2VhcmNoXSxcbiAgKTtcblxuICAvLyBDYWxsYmFjayB0byBwcmVsb2FkIHRoZSBjb2RlIGFuZCBkYXRhIGZvciB0aGUgcm91dGU6XG4gIC8vIHdlIHBhc3MgdGhpcyB0byBvbk1vdXNlRG93biwgc2luY2UgdGhpcyBpcyBhIHN0cm9uZ2VyXG4gIC8vIHNpZ25hbCB0aGF0IHRoZSB1c2VyIHdpbGwgbGlrZWx5IGNvbXBsZXRlIHRoZSBuYXZpZ2F0aW9uXG4gIGNvbnN0IGhhbmRsZU1vdXNlRG93biA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygb25Nb3VzZURvd24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb25Nb3VzZURvd24oZXZlbnQpO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChwcmVsb2FkT25Nb3VzZURvd24pIHtcbiAgICAgICAgcm91dGVyLnByZWxvYWQoeyBwYXRobmFtZSwgc2VhcmNoLCBzb3VyY2U6ICdsaW5rLWNsaWNrJyB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtyb3V0ZXIsIGlzRGlzYWJsZWQsIG9uTW91c2VEb3duLCBwcmVsb2FkT25Nb3VzZURvd24sIHBhdGhuYW1lLCBzZWFyY2hdLFxuICApO1xuXG4gIGxldCBocmVmVmFsdWUgPSBwYXRobmFtZTtcbiAgaWYgKHR5cGVvZiBzZWFyY2ggPT09ICdzdHJpbmcnICYmIHNlYXJjaC5sZW5ndGggPiAwKSB7XG4gICAgaHJlZlZhbHVlID0gYCR7cGF0aG5hbWV9JHtzZWFyY2h9YDtcbiAgfVxuICBpZiAodHlwZW9mIGhhc2ggPT09ICdzdHJpbmcnICYmIGhhc2gubGVuZ3RoID4gMCkge1xuICAgIGhyZWZWYWx1ZSA9IGAke2hyZWZWYWx1ZX0ke2hhc2h9YDtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxhXG4gICAgICB7Li4uYW5jaG9yUHJvcHN9XG4gICAgICBjbGFzc05hbWU9e2N4KGNsYXNzTmFtZXMpfVxuICAgICAgaHJlZj17aHJlZlZhbHVlfVxuICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgb25Nb3VzZURvd249e2hhbmRsZU1vdXNlRG93bn1cbiAgICAgIG9uTW91c2VFbnRlcj17aGFuZGxlTW91c2VFbnRlcn1cbiAgICAgIG9uTW91c2VPdmVyPXtvbk1vdXNlT3Zlcn1cbiAgICAgIHJlZj17cmVmfVxuICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYT5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExpbms7XG4iXX0=
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL0xpbmsudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQU1aLFNBQVMsRUFDVCxPQUFPLEdBQ1IsTUFBTSxPQUFPLENBQUM7QUFJZixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekMsT0FBTyxtQkFBbUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUVsRSxPQUFPLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUdqRCxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztBQVExQyxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLEtBQWMsRUFDZCxPQUFtQyxFQUNuQyxRQUFnQjtJQUVoQixJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFHRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXpELE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUU5QyxJQUFJLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUNyRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFrRkQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFZLEVBQXNCLEVBQUU7SUFDaEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FB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TyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQyxFQUNELENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUN4RSxDQUFDO0lBRUYsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQ3pCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEQsU0FBUyxHQUFHLEdBQUcsUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hELFNBQVMsR0FBRyxHQUFHLFNBQVMsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsT0FBTyxDQUNMLGVBQ00sV0FBVyxFQUNmLFNBQVMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQ3pCLElBQUksRUFBRSxTQUFTLEVBQ2YsT0FBTyxFQUFFLFdBQVcsRUFDcEIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsV0FBVyxFQUFFLGVBQWUsRUFDNUIsWUFBWSxFQUFFLGdCQUFnQixFQUM5QixXQUFXLEVBQUUsV0FBVyxFQUN4QixHQUFHLEVBQUUsR0FBRyxFQUNSLE1BQU0sRUFBRSxNQUFNLFlBRWIsUUFBUSxHQUNQLENBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLGVBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHR5cGUgQW5jaG9ySFRNTEF0dHJpYnV0ZXMsXG4gIHR5cGUgSFRNTEF0dHJpYnV0ZUFuY2hvclRhcmdldCxcbiAgdHlwZSBNb3VzZUV2ZW50LFxuICB0eXBlIFJlZixcbiAgdHlwZSBSZWFjdE5vZGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbn0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IEJyb3dzZXJIaXN0b3J5LCBIaXN0b3J5TG9jYXRpb24gfSBmcm9tICcuLi9oaXN0b3J5L2luZGV4LmpzJztcblxuaW1wb3J0IHsgY3ggfSBmcm9tICcuLy4uL3Rvb2xzL2luZGV4LmpzJztcbmltcG9ydCBidWlsZENvbWJpbmVkU2VhcmNoIGZyb20gJy4uL3Rvb2xzL2J1aWxkQ29tYmluZWRTZWFyY2guanMnO1xuXG5pbXBvcnQgUm91dGluZ0NvbnRleHQgZnJvbSAnLi9Sb3V0aW5nQ29udGV4dC5qcyc7XG4vLyAoZmlsdGVyLXF1ZXJ5IHN0cmluZ2lmeSBub3QgdXNlZCBoZXJlIGFmdGVyIHNpbXBsaWZ5aW5nIG1hbnVhbCBzZXJpYWxpemF0aW9uKVxuXG5jb25zdCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0IH0gPSBSZWFjdDtcblxuZXhwb3J0IHR5cGUgTGlua0hvdmVyUHJlbG9hZCA9ICdub25lJyB8ICdjb2RlJyB8ICdjb2RlLWFuZC1kYXRhJztcbmV4cG9ydCB0eXBlIExpbmtNb3VzZURvd25QcmVsb2FkID0gJ25vbmUnIHwgJ2NvZGUtYW5kLWRhdGEnO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBjdXJyZW50IHBhdGhuYW1lIG1hdGNoZXMgdGhlIGdpdmVuIHBhdGhuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDdXJyZW50UGF0aG5hbWUoXG4gIGV4YWN0OiBib29sZWFuLFxuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeSB8IHVuZGVmaW5lZCxcbiAgcGF0aG5hbWU6IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBpZiAoaGlzdG9yeSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgY29uc3QgcmVzb2x2ZWRVcmwgPSBuZXcgVVJMKHBhdGhuYW1lLCBkb2N1bWVudC5sb2NhdGlvbik7XG5cbiAgY29uc3QgcmVzb2x2ZWRQYXRobmFtZSA9IHJlc29sdmVkVXJsLnBhdGhuYW1lO1xuXG4gIGlmIChleGFjdCAmJiBoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lID09PSByZXNvbHZlZFBhdGhuYW1lKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoIWV4YWN0ICYmIGhpc3RvcnkubG9jYXRpb24ucGF0aG5hbWUuc3RhcnRzV2l0aChyZXNvbHZlZFBhdGhuYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgTGluayBjb21wb25lbnQuXG4gKi9cbnR5cGUgUHJvcHM8XG4gIFRGaWx0ZXJzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFJhd1F1ZXJ5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4gPSBPbWl0PFxuICBBbmNob3JIVE1MQXR0cmlidXRlczxIVE1MQW5jaG9yRWxlbWVudD4sXG4gIHwgJ2NoaWxkcmVuJ1xuICB8ICdjbGFzc05hbWUnXG4gIHwgJ2hyZWYnXG4gIHwgJ29uQ2xpY2snXG4gIHwgJ29uRm9jdXMnXG4gIHwgJ29uTW91c2VEb3duJ1xuICB8ICdvbk1vdXNlRW50ZXInXG4gIHwgJ29uTW91c2VPdmVyJ1xuICB8ICdyZWYnXG4gIHwgJ3RhcmdldCdcbj4gJiB7XG4gIC8qKiBDU1MgY2xhc3MgdG8gYXBwbHkgd2hlbiB0aGUgbGluayBpcyBhY3RpdmUgKG1hdGNoZXMgY3VycmVudCByb3V0ZSkgKi9cbiAgYWN0aXZlQ2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgaW5zaWRlIHRoZSBsaW5rICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBCYXNlIENTUyBjbGFzcyBmb3IgdGhlIGxpbmsgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0byB1c2UgZXhhY3QgcGF0aCBtYXRjaGluZyBmb3IgYWN0aXZlIHN0YXRlICovXG4gIGV4YWN0PzogYm9vbGVhbjtcbiAgLyoqIFByZWxvYWQgYmVoYXZpb3Igd2hlbiBtb3VzZSBlbnRlcnMgdGhlIGxpbmsuICovXG4gIHByZWxvYWRPbkhvdmVyPzogTGlua0hvdmVyUHJlbG9hZDtcbiAgLyoqIFByZWxvYWQgYmVoYXZpb3Igd2hlbiBtb3VzZSBpcyBwcmVzc2VkIGRvd24uICovXG4gIHByZWxvYWRPbk1vdXNlRG93bj86IExpbmtNb3VzZURvd25QcmVsb2FkO1xuICAvKiogRGlyZWN0IGhyZWYgYXR0cmlidXRlIChvdmVycmlkZXMgJ3RvJyBwcm9wKSAqL1xuICBocmVmPzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0aGUgbGluayBzaG91bGQgYmUgZGlzYWJsZWQgKi9cbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKiBDbGljayBoYW5kbGVyICovXG4gIG9uQ2xpY2s/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIC8qKiBGb2N1cyBoYW5kbGVyICovXG4gIG9uRm9jdXM/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIC8qKiBNb3VzZSBkb3duIGhhbmRsZXIgKi9cbiAgb25Nb3VzZURvd24/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIC8qKiBNb3VzZSBlbnRlciBoYW5kbGVyICovXG4gIG9uTW91c2VFbnRlcj86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIE1vdXNlIG92ZXIgaGFuZGxlciAqL1xuICBvbk1vdXNlT3Zlcj86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIEFuY2hvciByZWYgKi9cbiAgcmVmPzogUmVmPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIFRhcmdldCBhdHRyaWJ1dGUgZm9yIHRoZSBsaW5rICovXG4gIHRhcmdldD86IEhUTUxBdHRyaWJ1dGVBbmNob3JUYXJnZXQ7XG4gIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGxpbmsgKGNhbiBiZSBzdHJpbmcgcGF0aCBvciBsb2NhdGlvbiBvYmplY3QpICovXG4gIHRvPzogSGlzdG9yeUxvY2F0aW9uIHwgc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgZmlsdGVycyBvYmplY3QgdG8gc2VyaWFsaXplIHVzaW5nIGRlc3RpbmF0aW9uIHJvdXRlIHNjaGVtYSAoaWdub3JlZCBpZiBgdG8uc2VhcmNoYCBpcyBzZXQpICovXG4gIGZpbHRlcnM/OiBURmlsdGVycztcbiAgLyoqIE9wdGlvbmFsIHJhdyBxdWVyeSBwYXJhbXMgKG5vbi1zY2hlbWEga2V5cykgdG8gbWVyZ2UgKGlnbm9yZWQgaWYgYHRvLnNlYXJjaGAgaXMgc2V0KSAqL1xuICBxdWVyeT86IFRSYXdRdWVyeTtcbn07XG5cbi8qKlxuICogTmF2aWdhdGlvbiBjb21wb25lbnQgdGhhdCBwcm92aWRlcyBjbGllbnQtc2lkZSByb3V0aW5nIHdpdGggcHJlbG9hZGluZyBjYXBhYmlsaXRpZXMuXG4gKlxuICogVGhpcyBjb21wb25lbnQgaW50ZWdyYXRlcyB3aXRoIHRoZSByb3V0ZXIncyBSb3V0aW5nQ29udGV4dCB0byBwcm92aWRlIHNtb290aCBuYXZpZ2F0aW9uXG4gKiB3aXRoIG9wdGlvbmFsIHByZWxvYWRpbmcgb2Ygcm91dGUgY29tcG9uZW50cyBhbmQgZGF0YS4gSXQgYXV0b21hdGljYWxseSBhcHBsaWVzIGFjdGl2ZVxuICogc3R5bGluZyB3aGVuIHRoZSBjdXJyZW50IHJvdXRlIG1hdGNoZXMgdGhlIGxpbmsncyBkZXN0aW5hdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiAvLyBCYXNpYyB1c2FnZVxuICogPExpbmsgdG89XCIvdXNlcnMvMTIzXCI+VmlldyBQcm9maWxlPC9MaW5rPlxuICpcbiAqIC8vIFdpdGggYWN0aXZlIHN0eWxpbmdcbiAqIDxMaW5rIHRvPVwiL2Rhc2hib2FyZFwiIGFjdGl2ZUNsYXNzTmFtZT1cImFjdGl2ZVwiIGV4YWN0PlxuICogICBEYXNoYm9hcmRcbiAqIDwvTGluaz5cbiAqXG4gKiAvLyBXaXRoIGZ1bGwgcHJlbG9hZGluZyBvbiBob3ZlclxuICogPExpbmsgdG89XCIvaGVhdnktcGFnZVwiIHByZWxvYWRPbkhvdmVyPVwiY29kZS1hbmQtZGF0YVwiPlxuICogICBIZWF2eSBQYWdlXG4gKiA8L0xpbms+XG4gKiBgYGBcbiAqL1xuY29uc3QgTGluayA9IChwcm9wczogUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT4ge1xuICBjb25zdCByb3V0ZXIgPSB1c2VDb250ZXh0KFJvdXRpbmdDb250ZXh0KTtcbiAgY29uc3Qge1xuICAgIGFjdGl2ZUNsYXNzTmFtZSxcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUsXG4gICAgZXhhY3QgPSBmYWxzZSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgb25DbGljayxcbiAgICBvbkZvY3VzLFxuICAgIG9uTW91c2VEb3duLFxuICAgIG9uTW91c2VFbnRlcixcbiAgICBvbk1vdXNlT3ZlcixcbiAgICBwcmVsb2FkT25Ib3ZlciA9ICdjb2RlJyxcbiAgICBwcmVsb2FkT25Nb3VzZURvd24gPSAnY29kZS1hbmQtZGF0YScsXG4gICAgdGFyZ2V0LFxuICAgIHRvLFxuICAgIGhyZWYsXG4gICAgZmlsdGVycyxcbiAgICBxdWVyeSxcbiAgICByZWYsXG4gICAgLi4uYW5jaG9yUHJvcHNcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnIyc7XG4gICAgfVxuXG4gICAgbGV0IG5ld0hyZWYgPSBocmVmO1xuXG4gICAgaWYgKG5ld0hyZWYgPT0gbnVsbCkge1xuICAgICAgaWYgKHR5cGVvZiB0byA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgbmV3SHJlZiA9IHRvO1xuICAgICAgfSBlbHNlIGlmICh0bz8ucGF0aG5hbWUgIT0gbnVsbCkge1xuICAgICAgICBuZXdIcmVmID0gdG8ucGF0aG5hbWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmV3SHJlZiA/Pz0gJyMnO1xuXG4gICAgcmV0dXJuIG5ld0hyZWY7XG4gIH0sIFtocmVmLCBpc0Rpc2FibGVkLCB0b10pO1xuXG4gIC8vIFJlc29sdmUgc2VhcmNoIHN0cmluZyBmcm9tIGV4cGxpY2l0IGB0by5zZWFyY2hgIG9yIGZyb20gcHJvdmlkZWQgcXVlcnlcbiAgLy8gdHJlYXRlZCBhcyBmaWx0ZXJzIHdpdGggdGhlIGFjdGl2ZSBzY2hlbWEuXG4gIGNvbnN0IHNlYXJjaCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmICh0byAhPSBudWxsICYmIHR5cGVvZiB0byA9PT0gJ29iamVjdCcgJiYgdG8uc2VhcmNoICE9IG51bGwpIHtcbiAgICAgIGlmICh0by5zZWFyY2ggPT09ICcnKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICAgIGlmICh0by5zZWFyY2guc3RhcnRzV2l0aCgnPycpKSB7XG4gICAgICAgIHJldHVybiB0by5zZWFyY2g7XG4gICAgICB9XG4gICAgICByZXR1cm4gYD8ke3RvLnNlYXJjaH1gO1xuICAgIH1cbiAgICBjb25zdCBmaWx0ZXJJbnB1dCA9IGZpbHRlcnMgPz8gcXVlcnk7XG4gICAgbGV0IHJhd1F1ZXJ5SW5wdXQ6IHR5cGVvZiBxdWVyeSB8IHVuZGVmaW5lZDtcbiAgICBpZiAoZmlsdGVycyAhPSBudWxsKSB7XG4gICAgICByYXdRdWVyeUlucHV0ID0gcXVlcnk7XG4gICAgfVxuICAgIGlmIChmaWx0ZXJJbnB1dCA9PSBudWxsICYmIHJhd1F1ZXJ5SW5wdXQgPT0gbnVsbCkgcmV0dXJuICcnO1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCkgcmV0dXJuICcnO1xuICAgIGNvbnN0IGVudHJ5ID0gcm91dGVyLmdldCgpO1xuICAgIHJldHVybiBidWlsZENvbWJpbmVkU2VhcmNoKHtcbiAgICAgIGZpbHRlcnM6IGZpbHRlcklucHV0LFxuICAgICAgcXVlcnk6IHJhd1F1ZXJ5SW5wdXQsXG4gICAgICBxdWVyeVNjaGVtYTogZW50cnkuYWN0aXZlUXVlcnlTY2hlbWEsXG4gICAgfSk7XG4gIH0sIFtmaWx0ZXJzLCBpc0Rpc2FibGVkLCBxdWVyeSwgcm91dGVyLCB0b10pO1xuXG4gIGNvbnN0IGhhc2ggPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBpZiAodG8gIT0gbnVsbCAmJiB0eXBlb2YgdG8gPT09ICdvYmplY3QnICYmIHRvLmhhc2ggIT0gbnVsbCkge1xuICAgICAgaWYgKHRvLmhhc2ggPT09ICcnKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICAgIGlmICh0by5oYXNoLnN0YXJ0c1dpdGgoJyMnKSkge1xuICAgICAgICByZXR1cm4gdG8uaGFzaDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBgIyR7dG8uaGFzaH1gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH0sIFtpc0Rpc2FibGVkLCB0b10pO1xuXG4gIGNvbnN0IGluaXRpYWxJc0FjdGl2ZSA9IGlzQ3VycmVudFBhdGhuYW1lKGV4YWN0LCByb3V0ZXI/Lmhpc3RvcnksIHBhdGhuYW1lKTtcbiAgY29uc3QgW2lzQWN0aXZlLCBzZXRJc0FjdGl2ZV0gPSBSZWFjdC51c2VTdGF0ZShpbml0aWFsSXNBY3RpdmUpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBjb25zdCBuZXdJc0FjdGl2ZSA9IGlzQ3VycmVudFBhdGhuYW1lKGV4YWN0LCByb3V0ZXI/Lmhpc3RvcnksIHBhdGhuYW1lKTtcbiAgICAgIHNldElzQWN0aXZlKG5ld0lzQWN0aXZlKTtcbiAgICB9O1xuXG4gICAgaWYgKHJvdXRlciA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgfVxuXG4gICAgcm91dGVyLmhpc3Rvcnkuc3Vic2NyaWJlKG9uQ2hhbmdlKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICByb3V0ZXIuaGlzdG9yeS51bnN1YnNjcmliZShvbkNoYW5nZSk7XG4gICAgfTtcbiAgfSwgW2V4YWN0LCBwYXRobmFtZSwgcm91dGVyXSk7XG5cbiAgY29uc3QgY2xhc3NOYW1lcyA9IFtjbGFzc05hbWVdO1xuXG4gIGlmIChpc0FjdGl2ZSkge1xuICAgIGNsYXNzTmFtZXMucHVzaChhY3RpdmVDbGFzc05hbWUpO1xuICB9XG5cbiAgLy8gV2hlbiB0aGUgdXNlciBjbGlja3MsIGNoYW5nZSByb3V0ZVxuICBjb25zdCBoYW5kbGVDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICAgIGlmICghaXNEaXNhYmxlZCAmJiB0eXBlb2Ygb25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbkNsaWNrKGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBldmVudC5kZWZhdWx0UHJldmVudGVkIHx8XG4gICAgICAgIGV2ZW50Lm1ldGFLZXkgfHxcbiAgICAgICAgZXZlbnQuYWx0S2V5IHx8XG4gICAgICAgIGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgZXZlbnQuc2hpZnRLZXkgfHxcbiAgICAgICAgZXZlbnQuYnV0dG9uICE9PSAwIHx8XG4gICAgICAgICh0YXJnZXQgIT0gbnVsbCAmJiB0YXJnZXQgIT09ICdfc2VsZicpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKHJvdXRlciA9PSBudWxsIHx8IGlzRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByb3V0ZXIuaGlzdG9yeS5wdXNoKHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIHNlYXJjaCxcbiAgICAgICAgaGFzaCxcbiAgICAgICAgZGVidWdDb250ZXh0OiB7XG4gICAgICAgICAgb3JpZ2luOiAnbGluay1jbGljaycsXG4gICAgICAgICAgdHJpZ2dlcjogJ2xpbmsnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBbaGFzaCwgaXNEaXNhYmxlZCwgb25DbGljaywgcGF0aG5hbWUsIHJvdXRlciwgdGFyZ2V0LCBzZWFyY2hdLFxuICApO1xuXG4gIC8vIENhbGxiYWNrIHRvIHByZWxvYWQganVzdCB0aGUgY29kZSBmb3IgdGhlIHJvdXRlOlxuICAvLyB3ZSBwYXNzIHRoaXMgdG8gb25Nb3VzZUVudGVyLCB3aGljaCBpcyBhIHdlYWtlciBzaWduYWxcbiAgLy8gdGhhdCB0aGUgdXNlciAqbWF5KiBuYXZpZ2F0ZSB0byB0aGUgcm91dGUuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRW50ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG9uTW91c2VFbnRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbk1vdXNlRW50ZXIoZXZlbnQpO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChwcmVsb2FkT25Ib3ZlciA9PT0gJ25vbmUnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJlbG9hZFRhcmdldCA9IHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIHNlYXJjaCxcbiAgICAgICAgc291cmNlOiAncHJlbG9hZC1ob3ZlcicsXG4gICAgICB9IGFzIGNvbnN0O1xuICAgICAgaWYgKHByZWxvYWRPbkhvdmVyID09PSAnY29kZS1hbmQtZGF0YScpIHtcbiAgICAgICAgcm91dGVyLnByZWxvYWQocHJlbG9hZFRhcmdldCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJvdXRlci5wcmVsb2FkQ29kZShwcmVsb2FkVGFyZ2V0KTtcbiAgICB9LFxuICAgIFtyb3V0ZXIsIGlzRGlzYWJsZWQsIG9uTW91c2VFbnRlciwgcHJlbG9hZE9uSG92ZXIsIHBhdGhuYW1lLCBzZWFyY2hdLFxuICApO1xuXG4gIC8vIENhbGxiYWNrIHRvIHByZWxvYWQgdGhlIGNvZGUgYW5kIGRhdGEgZm9yIHRoZSByb3V0ZTpcbiAgLy8gd2UgcGFzcyB0aGlzIHRvIG9uTW91c2VEb3duLCBzaW5jZSB0aGlzIGlzIGEgc3Ryb25nZXJcbiAgLy8gc2lnbmFsIHRoYXQgdGhlIHVzZXIgd2lsbCBsaWtlbHkgY29tcGxldGUgdGhlIG5hdmlnYXRpb25cbiAgY29uc3QgaGFuZGxlTW91c2VEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBvbk1vdXNlRG93biA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbk1vdXNlRG93bihldmVudCk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyb3V0ZXIgPT0gbnVsbCB8fCBpc0Rpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHByZWxvYWRPbk1vdXNlRG93biA9PT0gJ2NvZGUtYW5kLWRhdGEnKSB7XG4gICAgICAgIHJvdXRlci5wcmVsb2FkKHsgcGF0aG5hbWUsIHNlYXJjaCwgc291cmNlOiAnbGluay1jbGljaycgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbcm91dGVyLCBpc0Rpc2FibGVkLCBvbk1vdXNlRG93biwgcHJlbG9hZE9uTW91c2VEb3duLCBwYXRobmFtZSwgc2VhcmNoXSxcbiAgKTtcblxuICBsZXQgaHJlZlZhbHVlID0gcGF0aG5hbWU7XG4gIGlmICh0eXBlb2Ygc2VhcmNoID09PSAnc3RyaW5nJyAmJiBzZWFyY2gubGVuZ3RoID4gMCkge1xuICAgIGhyZWZWYWx1ZSA9IGAke3BhdGhuYW1lfSR7c2VhcmNofWA7XG4gIH1cbiAgaWYgKHR5cGVvZiBoYXNoID09PSAnc3RyaW5nJyAmJiBoYXNoLmxlbmd0aCA+IDApIHtcbiAgICBocmVmVmFsdWUgPSBgJHtocmVmVmFsdWV9JHtoYXNofWA7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8YVxuICAgICAgey4uLmFuY2hvclByb3BzfVxuICAgICAgY2xhc3NOYW1lPXtjeChjbGFzc05hbWVzKX1cbiAgICAgIGhyZWY9e2hyZWZWYWx1ZX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIG9uTW91c2VEb3duPXtoYW5kbGVNb3VzZURvd259XG4gICAgICBvbk1vdXNlRW50ZXI9e2hhbmRsZU1vdXNlRW50ZXJ9XG4gICAgICBvbk1vdXNlT3Zlcj17b25Nb3VzZU92ZXJ9XG4gICAgICByZWY9e3JlZn1cbiAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2E+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBMaW5rO1xuIl19
@@ -1,8 +1,9 @@
1
1
  import { type JSX, type ReactNode } from 'react';
2
- import type { PreparedMatchRoute, RouterMatchedRoute } from '../types.js';
2
+ import type { PreparedMatchRoute, RouteEntry, RouterMatchedRoute } from '../types.js';
3
3
  import type { ParamData } from 'path-to-regexp';
4
4
  type Props<TVars extends ParamData = ParamData> = {
5
5
  children?: ReactNode;
6
+ entry?: RouteEntry<TVars>;
6
7
  match: RouterMatchedRoute<TVars> | null;
7
8
  preparedRoute: PreparedMatchRoute;
8
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RouteComponentWrapper.d.ts","sourceRoot":"","sources":["../../../src/routing/RouteComponentWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAkChD,KAAK,KAAK,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,IAAI;IAChD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACxC,aAAa,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAaF,QAAA,MAAM,qBAAqB,GAAI,KAAK,SAAS,SAAS,GAAG,SAAS,EAChE,OAAO,KAAK,CAAC,KAAK,CAAC,KAClB,GAAG,CAAC,OAAO,GAAG,IAgIhB,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"RouteComponentWrapper.d.ts","sourceRoot":"","sources":["../../../src/routing/RouteComponentWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAkChD,KAAK,KAAK,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,IAAI;IAChD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACxC,aAAa,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAaF,QAAA,MAAM,qBAAqB,GAAI,KAAK,SAAS,SAAS,GAAG,SAAS,EAChE,OAAO,KAAK,CAAC,KAAK,CAAC,KAClB,GAAG,CAAC,OAAO,GAAG,IAgIhB,CAAC;AAEF,eAAe,qBAAqB,CAAC"}