@plumile/router 0.1.33 → 0.1.34

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 (46) hide show
  1. package/README.md +26 -6
  2. package/lib/esm/index.d.ts +1 -0
  3. package/lib/esm/index.d.ts.map +1 -1
  4. package/lib/esm/index.js +2 -1
  5. package/lib/esm/instrumentation/Instrumentation.d.ts +66 -0
  6. package/lib/esm/instrumentation/Instrumentation.d.ts.map +1 -0
  7. package/lib/esm/instrumentation/Instrumentation.js +59 -0
  8. package/lib/esm/instrumentation/adapters/devtoolsBridge.d.ts +14 -0
  9. package/lib/esm/instrumentation/adapters/devtoolsBridge.d.ts.map +1 -0
  10. package/lib/esm/instrumentation/adapters/devtoolsBridge.js +118 -0
  11. package/lib/esm/instrumentation/adapters/logger.d.ts +10 -0
  12. package/lib/esm/instrumentation/adapters/logger.d.ts.map +1 -0
  13. package/lib/esm/instrumentation/adapters/logger.js +19 -0
  14. package/lib/esm/instrumentation/index.d.ts +4 -0
  15. package/lib/esm/instrumentation/index.d.ts.map +1 -0
  16. package/lib/esm/instrumentation/index.js +4 -0
  17. package/lib/esm/routing/Link.d.ts.map +1 -1
  18. package/lib/esm/routing/Link.js +8 -17
  19. package/lib/esm/routing/createRouter.d.ts +2 -1
  20. package/lib/esm/routing/createRouter.d.ts.map +1 -1
  21. package/lib/esm/routing/createRouter.js +184 -261
  22. package/lib/esm/tools.d.ts +6 -5
  23. package/lib/esm/tools.d.ts.map +1 -1
  24. package/lib/esm/tools.js +17 -34
  25. package/lib/esm/types.d.ts +7 -49
  26. package/lib/esm/types.d.ts.map +1 -1
  27. package/lib/esm/types.js +2 -28
  28. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  29. package/lib/types/index.d.ts +1 -0
  30. package/lib/types/index.d.ts.map +1 -1
  31. package/lib/types/instrumentation/Instrumentation.d.ts +66 -0
  32. package/lib/types/instrumentation/Instrumentation.d.ts.map +1 -0
  33. package/lib/types/instrumentation/adapters/devtoolsBridge.d.ts +14 -0
  34. package/lib/types/instrumentation/adapters/devtoolsBridge.d.ts.map +1 -0
  35. package/lib/types/instrumentation/adapters/logger.d.ts +10 -0
  36. package/lib/types/instrumentation/adapters/logger.d.ts.map +1 -0
  37. package/lib/types/instrumentation/index.d.ts +4 -0
  38. package/lib/types/instrumentation/index.d.ts.map +1 -0
  39. package/lib/types/routing/Link.d.ts.map +1 -1
  40. package/lib/types/routing/createRouter.d.ts +2 -1
  41. package/lib/types/routing/createRouter.d.ts.map +1 -1
  42. package/lib/types/tools.d.ts +6 -5
  43. package/lib/types/tools.d.ts.map +1 -1
  44. package/lib/types/types.d.ts +7 -49
  45. package/lib/types/types.d.ts.map +1 -1
  46. package/package.json +3 -3
package/README.md CHANGED
@@ -367,15 +367,35 @@ const search = buildCombinedSearch({
367
367
 
368
368
  Guideline: If you need to derive lightweight projections (e.g. `const { page } = typed`), you can still destructure; but avoid spreading into a new object if you rely on reference equality downstream.
369
369
 
370
- #### Inspection & Debugging
370
+ #### Inspection & Instrumentation
371
371
 
372
- Activez le bridge de debug en développement avec l’option `debug` :
372
+ Activez l’instrumentation en développement pour exposer un bridge DevTools :
373
373
 
374
374
  ```ts
375
- createRouter(routes, { debug: true });
375
+ import {
376
+ createRouter,
377
+ createDevtoolsBridgeInstrumentation,
378
+ } from '@plumile/router';
379
+
380
+ const devtools = createDevtoolsBridgeInstrumentation();
381
+ const { context } = createRouter(routes, { instrumentations: [devtools] });
376
382
  ```
377
383
 
378
- Cela expose `window.__PLUMILE_ROUTER__` avec `get()` et `subscribe()` (non présent en production).
384
+ Aucun bridge n’est publié en production. Vous pouvez chaîner plusieurs instrumentations (par exemple la console) :
385
+
386
+ ```ts
387
+ import {
388
+ createConsoleLoggerInstrumentation,
389
+ createDevtoolsBridgeInstrumentation,
390
+ } from '@plumile/router';
391
+
392
+ const instrumentations = [
393
+ createDevtoolsBridgeInstrumentation(),
394
+ createConsoleLoggerInstrumentation({ label: 'router' }),
395
+ ];
396
+
397
+ createRouter(routes, { instrumentations });
398
+ ```
379
399
 
380
400
  Pour l’inspection visuelle (timeline, filtres, prepared data), installez la Plumile Router DevTools extension (voir [docs/router-devtools-extension.md](../../docs/router-devtools-extension.md)).
381
401
 
@@ -585,10 +605,10 @@ function MyComponent() {
585
605
 
586
606
  const handleHover = () => {
587
607
  // Preload code only
588
- router.preloadCode('/users/123');
608
+ router.preloadCode({ pathname: '/users/123' });
589
609
 
590
610
  // Preload code and data
591
- router.preload('/users/123');
611
+ router.preload({ pathname: '/users/123' });
592
612
  };
593
613
 
594
614
  return (
@@ -5,4 +5,5 @@ export * from './builder.js';
5
5
  export * from './ResourcePage.js';
6
6
  export * from './tools.js';
7
7
  export type * from './types.js';
8
+ export * from './instrumentation/index.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,cAAc,CAAC;AAG7B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,YAAY,CAAC;AAG3B,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,cAAc,CAAC;AAG7B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,YAAY,CAAC;AAG3B,mBAAmB,YAAY,CAAC;AAGhC,cAAc,4BAA4B,CAAC"}
package/lib/esm/index.js CHANGED
@@ -4,4 +4,5 @@ export * from './routing/index.js';
4
4
  export * from './builder.js';
5
5
  export * from './ResourcePage.js';
6
6
  export * from './tools.js';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyxtQkFBbUIsQ0FBQztBQUdsQyxjQUFjLG9CQUFvQixDQUFDO0FBR25DLGNBQWMsb0JBQW9CLENBQUM7QUFHbkMsY0FBYyxjQUFjLENBQUM7QUFHN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUdsQyxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEV4cG9ydCBlcnJvciBoYW5kbGluZyB1dGlsaXRpZXNcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzL2luZGV4LmpzJztcblxuLy8gRXhwb3J0IGJyb3dzZXIgaGlzdG9yeSBtYW5hZ2VtZW50XG5leHBvcnQgKiBmcm9tICcuL2hpc3RvcnkvaW5kZXguanMnO1xuXG4vLyBFeHBvcnQgcm91dGluZyBjb21wb25lbnRzIGFuZCB1dGlsaXRpZXNcbmV4cG9ydCAqIGZyb20gJy4vcm91dGluZy9pbmRleC5qcyc7XG5cbi8vIEV4cG9ydCByb3V0ZSBidWlsZGluZyB1dGlsaXRpZXNcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGRlci5qcyc7XG5cbi8vIEV4cG9ydCByZXNvdXJjZSBwYWdlIG1hbmFnZW1lbnQgZm9yIGxhenkgbG9hZGluZ1xuZXhwb3J0ICogZnJvbSAnLi9SZXNvdXJjZVBhZ2UuanMnO1xuXG4vLyBFeHBvcnQgdXRpbGl0eSBmdW5jdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vdG9vbHMuanMnO1xuXG4vLyBFeHBvcnQgYWxsIFR5cGVTY3JpcHQgdHlwZXNcbmV4cG9ydCB0eXBlICogZnJvbSAnLi90eXBlcy5qcyc7XG4iXX0=
7
+ export * from './instrumentation/index.js';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyxtQkFBbUIsQ0FBQztBQUdsQyxjQUFjLG9CQUFvQixDQUFDO0FBR25DLGNBQWMsb0JBQW9CLENBQUM7QUFHbkMsY0FBYyxjQUFjLENBQUM7QUFHN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUdsQyxjQUFjLFlBQVksQ0FBQztBQU0zQixjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0IGVycm9yIGhhbmRsaW5nIHV0aWxpdGllc1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMvaW5kZXguanMnO1xuXG4vLyBFeHBvcnQgYnJvd3NlciBoaXN0b3J5IG1hbmFnZW1lbnRcbmV4cG9ydCAqIGZyb20gJy4vaGlzdG9yeS9pbmRleC5qcyc7XG5cbi8vIEV4cG9ydCByb3V0aW5nIGNvbXBvbmVudHMgYW5kIHV0aWxpdGllc1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0aW5nL2luZGV4LmpzJztcblxuLy8gRXhwb3J0IHJvdXRlIGJ1aWxkaW5nIHV0aWxpdGllc1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZGVyLmpzJztcblxuLy8gRXhwb3J0IHJlc291cmNlIHBhZ2UgbWFuYWdlbWVudCBmb3IgbGF6eSBsb2FkaW5nXG5leHBvcnQgKiBmcm9tICcuL1Jlc291cmNlUGFnZS5qcyc7XG5cbi8vIEV4cG9ydCB1dGlsaXR5IGZ1bmN0aW9uc1xuZXhwb3J0ICogZnJvbSAnLi90b29scy5qcyc7XG5cbi8vIEV4cG9ydCBhbGwgVHlwZVNjcmlwdCB0eXBlc1xuZXhwb3J0IHR5cGUgKiBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gRXhwb3J0IGluc3RydW1lbnRhdGlvbiBoZWxwZXJzXG5leHBvcnQgKiBmcm9tICcuL2luc3RydW1lbnRhdGlvbi9pbmRleC5qcyc7XG4iXX0=
@@ -0,0 +1,66 @@
1
+ import type { RouteEntry } from '../types.js';
2
+ export type RouterNavigationSource = 'link-click' | 'link-hover' | 'preload-hover' | 'programmatic' | 'popstate-back' | 'popstate-forward' | 'popstate-unknown' | 'external' | 'normalize';
3
+ export type RouterLocationSnapshot = {
4
+ pathname: string;
5
+ search: string;
6
+ hash: string;
7
+ };
8
+ export type RouterEntrySnapshot = {
9
+ location: RouterLocationSnapshot;
10
+ routePath?: string;
11
+ preparedMatch?: RouteEntry<any>['preparedMatch'];
12
+ filters?: RouteEntry<any>['filters'];
13
+ filterDiagnostics?: RouteEntry<any>['filterDiagnostics'];
14
+ activeQuerySchema?: RouteEntry<any>['activeQuerySchema'];
15
+ };
16
+ export type RouterEventBase = {
17
+ timestamp: number;
18
+ location: RouterLocationSnapshot;
19
+ };
20
+ export type RouterSnapshotEvent = RouterEventBase & {
21
+ kind: 'snapshot';
22
+ source: RouterNavigationSource;
23
+ routePath?: string;
24
+ };
25
+ export type RouterPreloadEvent = RouterEventBase & {
26
+ kind: 'preload';
27
+ source: RouterNavigationSource;
28
+ targetPathname: string;
29
+ mode: 'code' | 'full';
30
+ };
31
+ export type RouterHistoryEvent = RouterEventBase & {
32
+ kind: 'history';
33
+ source: RouterNavigationSource;
34
+ action: 'push' | 'replace' | 'normalize';
35
+ details?: Record<string, unknown>;
36
+ };
37
+ export type RouterPopstateEvent = RouterEventBase & {
38
+ kind: 'popstate';
39
+ source: RouterNavigationSource;
40
+ direction: 'back' | 'forward' | 'unknown';
41
+ details?: Record<string, unknown>;
42
+ };
43
+ export type RouterPrepareEvent = RouterEventBase & {
44
+ kind: 'prepare-start' | 'prepare-end';
45
+ source: RouterNavigationSource;
46
+ routePath?: string;
47
+ moduleId?: string;
48
+ durationMs?: number;
49
+ hasPrepared?: boolean;
50
+ };
51
+ export type RouterEvent = RouterSnapshotEvent | RouterPreloadEvent | RouterHistoryEvent | RouterPopstateEvent | RouterPrepareEvent;
52
+ export type InstrumentationAPI = {
53
+ onEvent?: (event: RouterEvent) => void;
54
+ onEntryChange?: (entry: RouterEntrySnapshot) => void;
55
+ dispose?: () => void;
56
+ };
57
+ export type InstrumentationRegistry = {
58
+ register: (instrumentation: InstrumentationAPI) => void;
59
+ unregister: (instrumentation: InstrumentationAPI) => void;
60
+ emitEvent: (event: RouterEvent) => void;
61
+ notifyEntryChange: (entry: RouterEntrySnapshot) => void;
62
+ dispose: () => void;
63
+ readonly size: number;
64
+ };
65
+ export declare function createInstrumentationRegistry(initial?: InstrumentationAPI[]): InstrumentationRegistry;
66
+ //# sourceMappingURL=Instrumentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Instrumentation.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/Instrumentation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ export function createInstrumentationRegistry(initial = []) {
2
+ const listeners = new Set();
3
+ initial.forEach((instrumentation) => {
4
+ listeners.add(instrumentation);
5
+ });
6
+ let disposed = false;
7
+ function guard() {
8
+ if (disposed) {
9
+ throw new Error('Instrumentation registry was disposed');
10
+ }
11
+ }
12
+ function safeInvoke(instrumentation, method, payload) {
13
+ const handler = instrumentation[method];
14
+ if (typeof handler !== 'function') {
15
+ return;
16
+ }
17
+ try {
18
+ handler(...payload);
19
+ }
20
+ catch {
21
+ }
22
+ }
23
+ return {
24
+ register(instrumentation) {
25
+ guard();
26
+ listeners.add(instrumentation);
27
+ },
28
+ unregister(instrumentation) {
29
+ guard();
30
+ listeners.delete(instrumentation);
31
+ },
32
+ emitEvent(event) {
33
+ guard();
34
+ listeners.forEach((instrumentation) => {
35
+ safeInvoke(instrumentation, 'onEvent', [event]);
36
+ });
37
+ },
38
+ notifyEntryChange(entry) {
39
+ guard();
40
+ listeners.forEach((instrumentation) => {
41
+ safeInvoke(instrumentation, 'onEntryChange', [entry]);
42
+ });
43
+ },
44
+ dispose() {
45
+ if (disposed) {
46
+ return;
47
+ }
48
+ listeners.forEach((instrumentation) => {
49
+ safeInvoke(instrumentation, 'dispose', []);
50
+ });
51
+ listeners.clear();
52
+ disposed = true;
53
+ },
54
+ get size() {
55
+ return listeners.size;
56
+ },
57
+ };
58
+ }
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luc3RydW1lbnRhdGlvbi9JbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0hBLE1BQU0sVUFBVSw2QkFBNkIsQ0FDM0MsVUFBZ0MsRUFBRTtJQUVsQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztJQUNoRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7UUFDbEMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUtyQixTQUFTLEtBQUs7UUFDWixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBTUQsU0FBUyxVQUFVLENBQ2pCLGVBQW1DLEVBQ25DLE1BQWdDLEVBQ2hDLE9BQWtCO1FBRWxCLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0YsT0FBd0MsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFBQyxNQUFNLENBQUM7UUFFVCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxRQUFRLENBQUMsZUFBZTtZQUN0QixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELFVBQVUsQ0FBQyxlQUFlO1lBQ3hCLEtBQUssRUFBRSxDQUFDO1lBQ1IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsU0FBUyxDQUFDLEtBQUs7WUFDYixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDcEMsVUFBVSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELGlCQUFpQixDQUFDLEtBQUs7WUFDckIsS0FBSyxFQUFFLENBQUM7WUFDUixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQ3BDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPO1lBQ0wsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixPQUFPO1lBQ1QsQ0FBQztZQUNELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDcEMsVUFBVSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7WUFDSCxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxJQUFJO1lBQ04sT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ3hCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUm91dGVFbnRyeSB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLyoqXG4gKiBFbnVtZXJhdGVzIHRoZSBvcmlnaW4gb2YgbmF2aWdhdGlvbi1yZWxhdGVkIGV2ZW50cyBleHBvc2VkIHRvIGluc3RydW1lbnRhdGlvbnMuXG4gKlxuICogS2VwdCBhcyBzdHJpbmcgbGl0ZXJhbHMgdG8gYXZvaWQgbGVha2luZyBkZWJ1ZyBlbnVtcyBpbnRvIHRoZSBwcm9kdWN0aW9uIGJ1bmRsZS5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyTmF2aWdhdGlvblNvdXJjZSA9XG4gIHwgJ2xpbmstY2xpY2snXG4gIHwgJ2xpbmstaG92ZXInXG4gIHwgJ3ByZWxvYWQtaG92ZXInXG4gIHwgJ3Byb2dyYW1tYXRpYydcbiAgfCAncG9wc3RhdGUtYmFjaydcbiAgfCAncG9wc3RhdGUtZm9yd2FyZCdcbiAgfCAncG9wc3RhdGUtdW5rbm93bidcbiAgfCAnZXh0ZXJuYWwnXG4gIHwgJ25vcm1hbGl6ZSc7XG5cbi8qKlxuICogQ29tcGFjdCBsb2NhdGlvbiBzbmFwc2hvdCBzaGFyZWQgYnkgYWxsIGluc3RydW1lbnRhdGlvbiBldmVudHMuXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlckxvY2F0aW9uU25hcHNob3QgPSB7XG4gIHBhdGhuYW1lOiBzdHJpbmc7XG4gIHNlYXJjaDogc3RyaW5nO1xuICBoYXNoOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFN1bW1hcnkgb2YgdGhlIGN1cnJlbnQgcm91dGVyIGVudHJ5IHRoYXQgY2FuIGJlIGJyb2FkY2FzdCB0byBpbnN0cnVtZW50YXRpb25zLlxuICogVGhlIHNoYXBlIGludGVudGlvbmFsbHkgbWlycm9ycyBwdWJsaWMgZGF0YSBhbHJlYWR5IGF2YWlsYWJsZSB0byBhcHBsaWNhdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlckVudHJ5U25hcHNob3QgPSB7XG4gIGxvY2F0aW9uOiBSb3V0ZXJMb2NhdGlvblNuYXBzaG90O1xuICByb3V0ZVBhdGg/OiBzdHJpbmc7XG4gIHByZXBhcmVkTWF0Y2g/OiBSb3V0ZUVudHJ5PGFueT5bJ3ByZXBhcmVkTWF0Y2gnXTtcbiAgZmlsdGVycz86IFJvdXRlRW50cnk8YW55PlsnZmlsdGVycyddO1xuICBmaWx0ZXJEaWFnbm9zdGljcz86IFJvdXRlRW50cnk8YW55PlsnZmlsdGVyRGlhZ25vc3RpY3MnXTtcbiAgYWN0aXZlUXVlcnlTY2hlbWE/OiBSb3V0ZUVudHJ5PGFueT5bJ2FjdGl2ZVF1ZXJ5U2NoZW1hJ107XG59O1xuXG4vKipcbiAqIEJhc2UgcGF5bG9hZCBzaGFyZWQgYnkgcm91dGVyIGV2ZW50cy4gRWFjaCBldmVudCBleHRlbmRzIHRoZSBiYXNlIHdpdGhcbiAqIHNwZWNpZmljIGRldGFpbHMgcmVsZXZhbnQgdG8gdGhlIGluc3RydW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyRXZlbnRCYXNlID0ge1xuICB0aW1lc3RhbXA6IG51bWJlcjtcbiAgbG9jYXRpb246IFJvdXRlckxvY2F0aW9uU25hcHNob3Q7XG59O1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJTbmFwc2hvdEV2ZW50ID0gUm91dGVyRXZlbnRCYXNlICYge1xuICBraW5kOiAnc25hcHNob3QnO1xuICBzb3VyY2U6IFJvdXRlck5hdmlnYXRpb25Tb3VyY2U7XG4gIHJvdXRlUGF0aD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlclByZWxvYWRFdmVudCA9IFJvdXRlckV2ZW50QmFzZSAmIHtcbiAga2luZDogJ3ByZWxvYWQnO1xuICBzb3VyY2U6IFJvdXRlck5hdmlnYXRpb25Tb3VyY2U7XG4gIHRhcmdldFBhdGhuYW1lOiBzdHJpbmc7XG4gIG1vZGU6ICdjb2RlJyB8ICdmdWxsJztcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlckhpc3RvcnlFdmVudCA9IFJvdXRlckV2ZW50QmFzZSAmIHtcbiAga2luZDogJ2hpc3RvcnknO1xuICBzb3VyY2U6IFJvdXRlck5hdmlnYXRpb25Tb3VyY2U7XG4gIGFjdGlvbjogJ3B1c2gnIHwgJ3JlcGxhY2UnIHwgJ25vcm1hbGl6ZSc7XG4gIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlclBvcHN0YXRlRXZlbnQgPSBSb3V0ZXJFdmVudEJhc2UgJiB7XG4gIGtpbmQ6ICdwb3BzdGF0ZSc7XG4gIHNvdXJjZTogUm91dGVyTmF2aWdhdGlvblNvdXJjZTtcbiAgZGlyZWN0aW9uOiAnYmFjaycgfCAnZm9yd2FyZCcgfCAndW5rbm93bic7XG4gIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlclByZXBhcmVFdmVudCA9IFJvdXRlckV2ZW50QmFzZSAmIHtcbiAga2luZDogJ3ByZXBhcmUtc3RhcnQnIHwgJ3ByZXBhcmUtZW5kJztcbiAgc291cmNlOiBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlO1xuICByb3V0ZVBhdGg/OiBzdHJpbmc7XG4gIG1vZHVsZUlkPzogc3RyaW5nO1xuICBkdXJhdGlvbk1zPzogbnVtYmVyO1xuICBoYXNQcmVwYXJlZD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJFdmVudCA9XG4gIHwgUm91dGVyU25hcHNob3RFdmVudFxuICB8IFJvdXRlclByZWxvYWRFdmVudFxuICB8IFJvdXRlckhpc3RvcnlFdmVudFxuICB8IFJvdXRlclBvcHN0YXRlRXZlbnRcbiAgfCBSb3V0ZXJQcmVwYXJlRXZlbnQ7XG5cbi8qKlxuICogSW5zdHJ1bWVudGF0aW9ucyBjYW4gb2JzZXJ2ZSByb3V0ZXIgZXZlbnRzLCBlbnRyeSBjaGFuZ2VzLCBhbmQgb3B0aW9uYWxseVxuICogZGlzcG9zZSByZXNvdXJjZXMgd2hlbiB0aGUgcmVnaXN0cnkgaXMgdG9ybiBkb3duLlxuICovXG5leHBvcnQgdHlwZSBJbnN0cnVtZW50YXRpb25BUEkgPSB7XG4gIG9uRXZlbnQ/OiAoZXZlbnQ6IFJvdXRlckV2ZW50KSA9PiB2b2lkO1xuICBvbkVudHJ5Q2hhbmdlPzogKGVudHJ5OiBSb3V0ZXJFbnRyeVNuYXBzaG90KSA9PiB2b2lkO1xuICBkaXNwb3NlPzogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIEluc3RydW1lbnRhdGlvblJlZ2lzdHJ5ID0ge1xuICByZWdpc3RlcjogKGluc3RydW1lbnRhdGlvbjogSW5zdHJ1bWVudGF0aW9uQVBJKSA9PiB2b2lkO1xuICB1bnJlZ2lzdGVyOiAoaW5zdHJ1bWVudGF0aW9uOiBJbnN0cnVtZW50YXRpb25BUEkpID0+IHZvaWQ7XG4gIGVtaXRFdmVudDogKGV2ZW50OiBSb3V0ZXJFdmVudCkgPT4gdm9pZDtcbiAgbm90aWZ5RW50cnlDaGFuZ2U6IChlbnRyeTogUm91dGVyRW50cnlTbmFwc2hvdCkgPT4gdm9pZDtcbiAgZGlzcG9zZTogKCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgcmVnaXN0cnkgY29vcmRpbmF0aW5nIGEgc2V0IG9mIGluc3RydW1lbnRhdGlvbnMuIFRoZSByZWdpc3RyeSBrZWVwc1xuICogY29uc3VtZXIgY29kZSBzaW1wbGU6IHJvdXRlciBpbnRlcm5hbHMgYnJvYWRjYXN0IGV2ZW50cyB3aXRob3V0IGNhcmluZyBhYm91dFxuICogdGhlIG51bWJlciBvciBuYXR1cmUgb2YgYXR0YWNoZWQgaW5zdHJ1bWVudGF0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluc3RydW1lbnRhdGlvblJlZ2lzdHJ5KFxuICBpbml0aWFsOiBJbnN0cnVtZW50YXRpb25BUElbXSA9IFtdLFxuKTogSW5zdHJ1bWVudGF0aW9uUmVnaXN0cnkge1xuICBjb25zdCBsaXN0ZW5lcnMgPSBuZXcgU2V0PEluc3RydW1lbnRhdGlvbkFQST4oKTtcbiAgaW5pdGlhbC5mb3JFYWNoKChpbnN0cnVtZW50YXRpb24pID0+IHtcbiAgICBsaXN0ZW5lcnMuYWRkKGluc3RydW1lbnRhdGlvbik7XG4gIH0pO1xuXG4gIGxldCBkaXNwb3NlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaHJvd3Mgd2hlbiB0aGUgcmVnaXN0cnkgaGFzIGFscmVhZHkgYmVlbiBkaXNwb3NlZC4gR3VhcmRzIGV2ZW50IGVtaXNzaW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gZ3VhcmQoKSB7XG4gICAgaWYgKGRpc3Bvc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luc3RydW1lbnRhdGlvbiByZWdpc3RyeSB3YXMgZGlzcG9zZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2FmZWx5IGludm9rZXMgYW4gb3B0aW9uYWwgaGFuZGxlciBwcm92aWRlZCBieSBhbiBpbnN0cnVtZW50YXRpb24uXG4gICAqIEZhaWx1cmVzIGFyZSBzd2FsbG93ZWQgc28gcm91dGVyIGV4ZWN1dGlvbiBjb250aW51ZXMgdW5pbnRlcnJ1cHRlZC5cbiAgICovXG4gIGZ1bmN0aW9uIHNhZmVJbnZva2UoXG4gICAgaW5zdHJ1bWVudGF0aW9uOiBJbnN0cnVtZW50YXRpb25BUEksXG4gICAgbWV0aG9kOiBrZXlvZiBJbnN0cnVtZW50YXRpb25BUEksXG4gICAgcGF5bG9hZDogdW5rbm93bltdLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kbGVyID0gaW5zdHJ1bWVudGF0aW9uW21ldGhvZF07XG4gICAgaWYgKHR5cGVvZiBoYW5kbGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAoaGFuZGxlciBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkKSguLi5wYXlsb2FkKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEluc3RydW1lbnRhdGlvbnMgc2hvdWxkIG5ldmVyIGJyZWFrIHJvdXRlciBleGVjdXRpb24uIEVycm9ycyBhcmUgc3dhbGxvd2VkLlxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmVnaXN0ZXIoaW5zdHJ1bWVudGF0aW9uKSB7XG4gICAgICBndWFyZCgpO1xuICAgICAgbGlzdGVuZXJzLmFkZChpbnN0cnVtZW50YXRpb24pO1xuICAgIH0sXG4gICAgdW5yZWdpc3RlcihpbnN0cnVtZW50YXRpb24pIHtcbiAgICAgIGd1YXJkKCk7XG4gICAgICBsaXN0ZW5lcnMuZGVsZXRlKGluc3RydW1lbnRhdGlvbik7XG4gICAgfSxcbiAgICBlbWl0RXZlbnQoZXZlbnQpIHtcbiAgICAgIGd1YXJkKCk7XG4gICAgICBsaXN0ZW5lcnMuZm9yRWFjaCgoaW5zdHJ1bWVudGF0aW9uKSA9PiB7XG4gICAgICAgIHNhZmVJbnZva2UoaW5zdHJ1bWVudGF0aW9uLCAnb25FdmVudCcsIFtldmVudF0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBub3RpZnlFbnRyeUNoYW5nZShlbnRyeSkge1xuICAgICAgZ3VhcmQoKTtcbiAgICAgIGxpc3RlbmVycy5mb3JFYWNoKChpbnN0cnVtZW50YXRpb24pID0+IHtcbiAgICAgICAgc2FmZUludm9rZShpbnN0cnVtZW50YXRpb24sICdvbkVudHJ5Q2hhbmdlJywgW2VudHJ5XSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGRpc3Bvc2UoKSB7XG4gICAgICBpZiAoZGlzcG9zZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXJzLmZvckVhY2goKGluc3RydW1lbnRhdGlvbikgPT4ge1xuICAgICAgICBzYWZlSW52b2tlKGluc3RydW1lbnRhdGlvbiwgJ2Rpc3Bvc2UnLCBbXSk7XG4gICAgICB9KTtcbiAgICAgIGxpc3RlbmVycy5jbGVhcigpO1xuICAgICAgZGlzcG9zZWQgPSB0cnVlO1xuICAgIH0sXG4gICAgZ2V0IHNpemUoKSB7XG4gICAgICByZXR1cm4gbGlzdGVuZXJzLnNpemU7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import type { InstrumentationAPI, RouterEntrySnapshot, RouterEvent } from '../Instrumentation.js';
2
+ export type DevtoolsBridgeOptions = {
3
+ historyLimit?: number;
4
+ global?: Record<string, unknown>;
5
+ };
6
+ export type DevtoolsBridge = {
7
+ getEntry: () => RouterEntrySnapshot | null;
8
+ getEvents: () => RouterEvent[];
9
+ subscribeEntries: (callback: (entry: RouterEntrySnapshot) => void) => () => void;
10
+ subscribeEvents: (callback: (event: RouterEvent) => void) => () => void;
11
+ historyLimit: number;
12
+ };
13
+ export declare function createDevtoolsBridgeInstrumentation(options?: DevtoolsBridgeOptions): InstrumentationAPI;
14
+ //# sourceMappingURL=devtoolsBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtoolsBridge.d.ts","sourceRoot":"","sources":["../../../../src/instrumentation/adapters/devtoolsBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAK/B,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,mBAAmB,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,MAAM,WAAW,EAAE,CAAC;IAC/B,gBAAgB,EAAE,CAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,KAC3C,MAAM,IAAI,CAAC;IAChB,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IACxE,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAYF,wBAAgB,mCAAmC,CACjD,OAAO,GAAE,qBAA0B,GAClC,kBAAkB,CA8HpB"}
@@ -0,0 +1,118 @@
1
+ const BRIDGE_KEY = '__PLUMILE_ROUTER__';
2
+ const DEFAULT_HISTORY_LIMIT = 200;
3
+ function isObject(value) {
4
+ return typeof value === 'object' && value !== null;
5
+ }
6
+ export function createDevtoolsBridgeInstrumentation(options = {}) {
7
+ const historyLimit = options.historyLimit ?? DEFAULT_HISTORY_LIMIT;
8
+ let globalObject;
9
+ if (options.global != null) {
10
+ globalObject = options.global;
11
+ }
12
+ else if (typeof window !== 'undefined') {
13
+ globalObject = window;
14
+ }
15
+ const eventSubscribers = new Set();
16
+ const entrySubscribers = new Set();
17
+ let disposed = false;
18
+ let bridgeInstalled = false;
19
+ let lastEntry = null;
20
+ let events = [];
21
+ const bridge = {
22
+ getEntry() {
23
+ return lastEntry;
24
+ },
25
+ getEvents() {
26
+ return events.slice();
27
+ },
28
+ subscribeEntries(callback) {
29
+ entrySubscribers.add(callback);
30
+ if (lastEntry != null) {
31
+ callback(lastEntry);
32
+ }
33
+ return () => {
34
+ entrySubscribers.delete(callback);
35
+ };
36
+ },
37
+ subscribeEvents(callback) {
38
+ eventSubscribers.add(callback);
39
+ return () => {
40
+ eventSubscribers.delete(callback);
41
+ };
42
+ },
43
+ historyLimit,
44
+ };
45
+ function installBridge() {
46
+ if (bridgeInstalled || globalObject == null) {
47
+ return;
48
+ }
49
+ globalObject[BRIDGE_KEY] = bridge;
50
+ bridgeInstalled = true;
51
+ }
52
+ function removeBridge() {
53
+ if (!bridgeInstalled || globalObject == null) {
54
+ return;
55
+ }
56
+ if (Object.prototype.hasOwnProperty.call(globalObject, BRIDGE_KEY) &&
57
+ globalObject[BRIDGE_KEY] === bridge) {
58
+ globalObject[BRIDGE_KEY] = undefined;
59
+ }
60
+ bridgeInstalled = false;
61
+ }
62
+ installBridge();
63
+ function publishEvent(event) {
64
+ events = [...events, event];
65
+ if (events.length > historyLimit) {
66
+ events = events.slice(-historyLimit);
67
+ }
68
+ eventSubscribers.forEach((subscriber) => {
69
+ try {
70
+ subscriber(event);
71
+ }
72
+ catch {
73
+ }
74
+ });
75
+ }
76
+ function publishEntry(entry) {
77
+ lastEntry = entry;
78
+ entrySubscribers.forEach((subscriber) => {
79
+ try {
80
+ subscriber(entry);
81
+ }
82
+ catch {
83
+ }
84
+ });
85
+ }
86
+ return {
87
+ onEvent(event) {
88
+ if (disposed) {
89
+ return;
90
+ }
91
+ if (!isObject(event)) {
92
+ return;
93
+ }
94
+ publishEvent(event);
95
+ },
96
+ onEntryChange(entry) {
97
+ if (disposed) {
98
+ return;
99
+ }
100
+ if (!isObject(entry)) {
101
+ return;
102
+ }
103
+ publishEntry(entry);
104
+ },
105
+ dispose() {
106
+ if (disposed) {
107
+ return;
108
+ }
109
+ disposed = true;
110
+ eventSubscribers.clear();
111
+ entrySubscribers.clear();
112
+ events = [];
113
+ lastEntry = null;
114
+ removeBridge();
115
+ },
116
+ };
117
+ }
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2dG9vbHNCcmlkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW5zdHJ1bWVudGF0aW9uL2FkYXB0ZXJzL2RldnRvb2xzQnJpZGdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUFDO0FBQ3hDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO0FBa0JsQyxTQUFTLFFBQVEsQ0FBQyxLQUFjO0lBQzlCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDckQsQ0FBQztBQU9ELE1BQU0sVUFBVSxtQ0FBbUMsQ0FDakQsVUFBaUMsRUFBRTtJQUVuQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxJQUFJLHFCQUFxQixDQUFDO0lBRW5FLElBQUksWUFBaUQsQ0FBQztJQUN0RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7UUFDM0IsWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDaEMsQ0FBQztTQUFNLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDekMsWUFBWSxHQUFHLE1BQTRDLENBQUM7SUFDOUQsQ0FBQztJQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQWdDLENBQUM7SUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBd0MsQ0FBQztJQUV6RSxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDckIsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLElBQUksU0FBUyxHQUErQixJQUFJLENBQUM7SUFDakQsSUFBSSxNQUFNLEdBQWtCLEVBQUUsQ0FBQztJQUUvQixNQUFNLE1BQU0sR0FBbUI7UUFDN0IsUUFBUTtZQUNOLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxTQUFTO1lBQ1AsT0FBTyxNQUFNLENB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QyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTztZQUNMLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsT0FBTztZQUNULENBQUM7WUFDRCxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ2hCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDWixTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLFlBQVksRUFBRSxDQUFDO1FBQ2pCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgSW5zdHJ1bWVudGF0aW9uQVBJLFxuICBSb3V0ZXJFbnRyeVNuYXBzaG90LFxuICBSb3V0ZXJFdmVudCxcbn0gZnJvbSAnLi4vSW5zdHJ1bWVudGF0aW9uLmpzJztcblxuY29uc3QgQlJJREdFX0tFWSA9ICdfX1BMVU1JTEVfUk9VVEVSX18nO1xuY29uc3QgREVGQVVMVF9ISVNUT1JZX0xJTUlUID0gMjAwO1xuXG5leHBvcnQgdHlwZSBEZXZ0b29sc0JyaWRnZU9wdGlvbnMgPSB7XG4gIGhpc3RvcnlMaW1pdD86IG51bWJlcjtcbiAgZ2xvYmFsPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuXG5leHBvcnQgdHlwZSBEZXZ0b29sc0JyaWRnZSA9IHtcbiAgZ2V0RW50cnk6ICgpID0+IFJvdXRlckVudHJ5U25hcHNob3QgfCBudWxsO1xuICBnZXRFdmVudHM6ICgpID0+IFJvdXRlckV2ZW50W107XG4gIHN1YnNjcmliZUVudHJpZXM6IChcbiAgICBjYWxsYmFjazogKGVudHJ5OiBSb3V0ZXJFbnRyeVNuYXBzaG90KSA9PiB2b2lkLFxuICApID0+ICgpID0+IHZvaWQ7XG4gIHN1YnNjcmliZUV2ZW50czogKGNhbGxiYWNrOiAoZXZlbnQ6IFJvdXRlckV2ZW50KSA9PiB2b2lkKSA9PiAoKSA9PiB2b2lkO1xuICBoaXN0b3J5TGltaXQ6IG51bWJlcjtcbn07XG5cbi8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSB2YWx1ZSBpcyBhIG5vbi1udWxsIG9iamVjdC4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbDtcbn1cblxuLyoqXG4gKiBEZXZUb29scy1vcmllbnRlZCBpbnN0cnVtZW50YXRpb24gdGhhdCBwdWJsaXNoZXMgYSBicmlkZ2Ugb24gdGhlIGdsb2JhbFxuICogb2JqZWN0IChieSBkZWZhdWx0IGB3aW5kb3cuX19QTFVNSUxFX1JPVVRFUl9fYCkuIENvbnN1bWVycyBzdWNoIGFzIHRoZSBDaHJvbWVcbiAqIGV4dGVuc2lvbiBjYW4gc3Vic2NyaWJlIHRvIGV2ZW50cyBvciBpbnNwZWN0IHRoZSBsYXRlc3Qgcm91dGVyIGVudHJ5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGV2dG9vbHNCcmlkZ2VJbnN0cnVtZW50YXRpb24oXG4gIG9wdGlvbnM6IERldnRvb2xzQnJpZGdlT3B0aW9ucyA9IHt9LFxuKTogSW5zdHJ1bWVudGF0aW9uQVBJIHtcbiAgY29uc3QgaGlzdG9yeUxpbWl0ID0gb3B0aW9ucy5oaXN0b3J5TGltaXQgPz8gREVGQVVMVF9ISVNUT1JZX0xJTUlUO1xuXG4gIGxldCBnbG9iYWxPYmplY3Q6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICBpZiAob3B0aW9ucy5nbG9iYWwgIT0gbnVsbCkge1xuICAgIGdsb2JhbE9iamVjdCA9IG9wdGlvbnMuZ2xvYmFsO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgZ2xvYmFsT2JqZWN0ID0gd2luZG93IGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIH1cblxuICBjb25zdCBldmVudFN1YnNjcmliZXJzID0gbmV3IFNldDwoZXZlbnQ6IFJvdXRlckV2ZW50KSA9PiB2b2lkPigpO1xuICBjb25zdCBlbnRyeVN1YnNjcmliZXJzID0gbmV3IFNldDwoZW50cnk6IFJvdXRlckVudHJ5U25hcHNob3QpID0+IHZvaWQ+KCk7XG5cbiAgbGV0IGRpc3Bvc2VkID0gZmFsc2U7XG4gIGxldCBicmlkZ2VJbnN0YWxsZWQgPSBmYWxzZTtcbiAgbGV0IGxhc3RFbnRyeTogUm91dGVyRW50cnlTbmFwc2hvdCB8IG51bGwgPSBudWxsO1xuICBsZXQgZXZlbnRzOiBSb3V0ZXJFdmVudFtdID0gW107XG5cbiAgY29uc3QgYnJpZGdlOiBEZXZ0b29sc0JyaWRnZSA9IHtcbiAgICBnZXRFbnRyeSgpIHtcbiAgICAgIHJldHVybiBsYXN0RW50cnk7XG4gICAgfSxcbiAgICBnZXRFdmVudHMoKSB7XG4gICAgICByZXR1cm4gZXZlbnRzLnNsaWNlKCk7XG4gICAgfSxcbiAgICBzdWJzY3JpYmVFbnRyaWVzKGNhbGxiYWNrKSB7XG4gICAgICBlbnRyeVN1YnNjcmliZXJzLmFkZChjYWxsYmFjayk7XG4gICAgICBpZiAobGFzdEVudHJ5ICE9IG51bGwpIHtcbiAgICAgICAgY2FsbGJhY2sobGFzdEVudHJ5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGVudHJ5U3Vic2NyaWJlcnMuZGVsZXRlKGNhbGxiYWNrKTtcbiAgICAgIH07XG4gICAgfSxcbiAgICBzdWJzY3JpYmVFdmVudHMoY2FsbGJhY2spIHtcbiAgICAgIGV2ZW50U3Vic2NyaWJlcnMuYWRkKGNhbGxiYWNrKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGV2ZW50U3Vic2NyaWJlcnMuZGVsZXRlKGNhbGxiYWNrKTtcbiAgICAgIH07XG4gICAgfSxcbiAgICBoaXN0b3J5TGltaXQsXG4gIH07XG5cbiAgLyoqIFB1Ymxpc2hlcyB0aGUgYnJpZGdlIG9uIHRoZSBjaG9zZW4gZ2xvYmFsIG9iamVjdC4gKi9cbiAgZnVuY3Rpb24gaW5zdGFsbEJyaWRnZSgpOiB2b2lkIHtcbiAgICBpZiAoYnJpZGdlSW5zdGFsbGVkIHx8IGdsb2JhbE9iamVjdCA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGdsb2JhbE9iamVjdFtCUklER0VfS0VZXSA9IGJyaWRnZTtcbiAgICBicmlkZ2VJbnN0YWxsZWQgPSB0cnVlO1xuICB9XG5cbiAgLyoqIFJlbW92ZXMgdGhlIGJyaWRnZSBoYW5kbGUgZnJvbSB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNsZWFuaW5nIHVwLiAqL1xuICBmdW5jdGlvbiByZW1vdmVCcmlkZ2UoKTogdm9pZCB7XG4gICAgaWYgKCFicmlkZ2VJbnN0YWxsZWQgfHwgZ2xvYmFsT2JqZWN0ID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGdsb2JhbE9iamVjdCwgQlJJREdFX0tFWSkgJiZcbiAgICAgIGdsb2JhbE9iamVjdFtCUklER0VfS0VZXSA9PT0gYnJpZGdlXG4gICAgKSB7XG4gICAgICBnbG9iYWxPYmplY3RbQlJJREdFX0tFWV0gPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGJyaWRnZUluc3RhbGxlZCA9IGZhbHNlO1xuICB9XG5cbiAgaW5zdGFsbEJyaWRnZSgpO1xuXG4gIC8qKiBCcm9hZGNhc3RzIGFuIGluY29taW5nIHJvdXRlciBldmVudCB0byBEZXZUb29scyBzdWJzY3JpYmVycy4gKi9cbiAgZnVuY3Rpb24gcHVibGlzaEV2ZW50KGV2ZW50OiBSb3V0ZXJFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50cyA9IFsuLi5ldmVudHMsIGV2ZW50XTtcbiAgICBpZiAoZXZlbnRzLmxlbmd0aCA+IGhpc3RvcnlMaW1pdCkge1xuICAgICAgZXZlbnRzID0gZXZlbnRzLnNsaWNlKC1oaXN0b3J5TGltaXQpO1xuICAgIH1cbiAgICBldmVudFN1YnNjcmliZXJzLmZvckVhY2goKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHN1YnNjcmliZXIoZXZlbnQpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIElnbm9yZSBzdWJzY3JpYmVyIGZhaWx1cmVzLlxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEJyb2FkY2FzdHMgdGhlIGxhdGVzdCByb3V0ZXIgZW50cnkgc25hcHNob3QuICovXG4gIGZ1bmN0aW9uIHB1Ymxpc2hFbnRyeShlbnRyeTogUm91dGVyRW50cnlTbmFwc2hvdCk6IHZvaWQge1xuICAgIGxhc3RFbnRyeSA9IGVudHJ5O1xuICAgIGVudHJ5U3Vic2NyaWJlcnMuZm9yRWFjaCgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3Vic2NyaWJlcihlbnRyeSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gSWdub3JlIHN1YnNjcmliZXIgZmFpbHVyZXMuXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG9uRXZlbnQoZXZlbnQpIHtcbiAgICAgIGlmIChkaXNwb3NlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoIWlzT2JqZWN0KGV2ZW50KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBwdWJsaXNoRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgb25FbnRyeUNoYW5nZShlbnRyeSkge1xuICAgICAgaWYgKGRpc3Bvc2VkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICghaXNPYmplY3QoZW50cnkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHB1Ymxpc2hFbnRyeShlbnRyeSk7XG4gICAgfSxcbiAgICBkaXNwb3NlKCkge1xuICAgICAgaWYgKGRpc3Bvc2VkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGRpc3Bvc2VkID0gdHJ1ZTtcbiAgICAgIGV2ZW50U3Vic2NyaWJlcnMuY2xlYXIoKTtcbiAgICAgIGVudHJ5U3Vic2NyaWJlcnMuY2xlYXIoKTtcbiAgICAgIGV2ZW50cyA9IFtdO1xuICAgICAgbGFzdEVudHJ5ID0gbnVsbDtcbiAgICAgIHJlbW92ZUJyaWRnZSgpO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import type { InstrumentationAPI } from '../Instrumentation.js';
2
+ export type ConsoleLike = Pick<Console, 'log' | 'info' | 'warn' | 'error'>;
3
+ export type ConsoleLoggerOptions = {
4
+ level?: keyof ConsoleLike;
5
+ label?: string;
6
+ console?: ConsoleLike;
7
+ };
8
+ export declare function createConsoleLoggerInstrumentation(options?: ConsoleLoggerOptions): InstrumentationAPI;
9
+ export type { ConsoleLoggerOptions as LoggerOptions };
10
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/instrumentation/adapters/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAE3E,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,MAAM,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAMF,wBAAgB,kCAAkC,CAChD,OAAO,GAAE,oBAAyB,GACjC,kBAAkB,CA2BpB;AAED,YAAY,EAAE,oBAAoB,IAAI,aAAa,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ export function createConsoleLoggerInstrumentation(options = {}) {
2
+ const { level = 'info', label = 'router', console: targetConsole = console, } = options;
3
+ const log = targetConsole[level];
4
+ function formatEvent(event) {
5
+ return [`[${label}] event:${event.kind}`, event];
6
+ }
7
+ function formatEntry(entry) {
8
+ return [`[${label}] entry`, entry];
9
+ }
10
+ return {
11
+ onEvent(event) {
12
+ log.apply(targetConsole, formatEvent(event));
13
+ },
14
+ onEntryChange(entry) {
15
+ log.apply(targetConsole, formatEntry(entry));
16
+ },
17
+ };
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2luc3RydW1lbnRhdGlvbi9hZGFwdGVycy9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBLE1BQU0sVUFBVSxrQ0FBa0MsQ0FDaEQsVUFBZ0MsRUFBRTtJQUVsQyxNQUFNLEVBQ0osS0FBSyxHQUFHLE1BQU0sRUFDZCxLQUFLLEdBQUcsUUFBUSxFQUNoQixPQUFPLEVBQUUsYUFBYSxHQUFHLE9BQU8sR0FDakMsR0FBRyxPQUFPLENBQUM7SUFFWixNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFHakMsU0FBUyxXQUFXLENBQUMsS0FBa0I7UUFDckMsT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBR0QsU0FBUyxXQUFXLENBQUMsS0FBMEI7UUFDN0MsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLENBQUMsS0FBSztZQUNYLEdBQUcsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxhQUFhLENBQUMsS0FBSztZQUNqQixHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEluc3RydW1lbnRhdGlvbkFQSSxcbiAgUm91dGVyRW50cnlTbmFwc2hvdCxcbiAgUm91dGVyRXZlbnQsXG59IGZyb20gJy4uL0luc3RydW1lbnRhdGlvbi5qcyc7XG5cbmV4cG9ydCB0eXBlIENvbnNvbGVMaWtlID0gUGljazxDb25zb2xlLCAnbG9nJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdlcnJvcic+O1xuXG5leHBvcnQgdHlwZSBDb25zb2xlTG9nZ2VyT3B0aW9ucyA9IHtcbiAgbGV2ZWw/OiBrZXlvZiBDb25zb2xlTGlrZTtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGNvbnNvbGU/OiBDb25zb2xlTGlrZTtcbn07XG5cbi8qKlxuICogTGlnaHR3ZWlnaHQgaW5zdHJ1bWVudGF0aW9uIHRoYXQgbG9ncyByb3V0ZXIgZXZlbnRzIHRvIHRoZSBwcm92aWRlZCBjb25zb2xlLlxuICogVXNlZnVsIGR1cmluZyBkZXZlbG9wbWVudCBvciB3aGVuIGNvbXBvc2luZyBjdXN0b20gdG9vbGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGVMb2dnZXJJbnN0cnVtZW50YXRpb24oXG4gIG9wdGlvbnM6IENvbnNvbGVMb2dnZXJPcHRpb25zID0ge30sXG4pOiBJbnN0cnVtZW50YXRpb25BUEkge1xuICBjb25zdCB7XG4gICAgbGV2ZWwgPSAnaW5mbycsXG4gICAgbGFiZWwgPSAncm91dGVyJyxcbiAgICBjb25zb2xlOiB0YXJnZXRDb25zb2xlID0gY29uc29sZSxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgbG9nID0gdGFyZ2V0Q29uc29sZVtsZXZlbF07XG5cbiAgLyoqIEZvcm1hdHMgYW4gZXZlbnQgZW50cnkgZm9yIGxvZ2dpbmcuICovXG4gIGZ1bmN0aW9uIGZvcm1hdEV2ZW50KGV2ZW50OiBSb3V0ZXJFdmVudCk6IHVua25vd25bXSB7XG4gICAgcmV0dXJuIFtgWyR7bGFiZWx9XSBldmVudDoke2V2ZW50LmtpbmR9YCwgZXZlbnRdO1xuICB9XG5cbiAgLyoqIEZvcm1hdHMgdGhlIGxhdGVzdCByb3V0ZXIgZW50cnkgc25hcHNob3QgZm9yIGxvZ2dpbmcuICovXG4gIGZ1bmN0aW9uIGZvcm1hdEVudHJ5KGVudHJ5OiBSb3V0ZXJFbnRyeVNuYXBzaG90KTogdW5rbm93bltdIHtcbiAgICByZXR1cm4gW2BbJHtsYWJlbH1dIGVudHJ5YCwgZW50cnldO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBvbkV2ZW50KGV2ZW50KSB7XG4gICAgICBsb2cuYXBwbHkodGFyZ2V0Q29uc29sZSwgZm9ybWF0RXZlbnQoZXZlbnQpKTtcbiAgICB9LFxuICAgIG9uRW50cnlDaGFuZ2UoZW50cnkpIHtcbiAgICAgIGxvZy5hcHBseSh0YXJnZXRDb25zb2xlLCBmb3JtYXRFbnRyeShlbnRyeSkpO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIHsgQ29uc29sZUxvZ2dlck9wdGlvbnMgYXMgTG9nZ2VyT3B0aW9ucyB9O1xuIl19
@@ -0,0 +1,4 @@
1
+ export * from './Instrumentation.js';
2
+ export * from './adapters/logger.js';
3
+ export * from './adapters/devtoolsBridge.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './Instrumentation.js';
2
+ export * from './adapters/logger.js';
3
+ export * from './adapters/devtoolsBridge.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5zdHJ1bWVudGF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9JbnN0cnVtZW50YXRpb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hZGFwdGVycy9sb2dnZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hZGFwdGVycy9kZXZ0b29sc0JyaWRnZS5qcyc7XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/routing/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,yBAAyB,EAE9B,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAc3E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAmBT;AAKD,KAAK,KAAK,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAE7E,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,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAE9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAyBF,QAAA,MAAM,IAAI,0GAsLR,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/routing/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,yBAAyB,EAE9B,KAAK,SAAS,EAIf,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,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAE7E,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,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAE9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAyBF,QAAA,MAAM,IAAI,0GA6JR,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import React, { forwardRef, useEffect, useMemo, } from 'react';
3
- import { NavigationOrigin, RouterDebugEventKind } from '../types.js';
4
3
  import { cx } from './../tools/index.js';
5
4
  import buildCombinedSearch from '../tools/buildCombinedSearch.js';
6
5
  import RoutingContext from './RoutingContext.js';
@@ -83,18 +82,12 @@ const Link = forwardRef((props, ref) => {
83
82
  if (router == null || isDisabled) {
84
83
  return;
85
84
  }
86
- router.__debug?.recordNavigationIntent(NavigationOrigin.LinkClick);
87
- router.__debug?.recordHistoryAction(RouterDebugEventKind.HistoryPush, NavigationOrigin.LinkClick, {
88
- pathname,
89
- search,
90
- hash: '',
91
- }, { trigger: 'link' });
92
85
  router.history.push({
93
86
  pathname,
94
87
  search,
95
88
  hash: '',
96
89
  debugContext: {
97
- origin: NavigationOrigin.LinkClick,
90
+ origin: 'link-click',
98
91
  trigger: 'link',
99
92
  },
100
93
  });
@@ -103,22 +96,20 @@ const Link = forwardRef((props, ref) => {
103
96
  if (router == null || isDisabled) {
104
97
  return;
105
98
  }
99
+ const target = { pathname, search, source: 'preload-hover' };
106
100
  if (preloadOnMouseEnter) {
107
- router.__debug?.recordPreload(RouterDebugEventKind.Preload, NavigationOrigin.PreloadHover, pathname);
108
- router.preload(pathname);
101
+ router.preload(target);
109
102
  }
110
103
  else {
111
- router.__debug?.recordPreload(RouterDebugEventKind.PreloadCode, NavigationOrigin.PreloadHover, pathname);
112
- router.preloadCode(pathname);
104
+ router.preloadCode(target);
113
105
  }
114
- }, [router, isDisabled, preloadOnMouseEnter, pathname]);
106
+ }, [router, isDisabled, preloadOnMouseEnter, pathname, search]);
115
107
  const handleMouseDown = useCallback(() => {
116
108
  if (router == null || isDisabled || !preloadOnMouseDown) {
117
109
  return;
118
110
  }
119
- router.__debug?.recordPreload(RouterDebugEventKind.Preload, NavigationOrigin.LinkClick, pathname);
120
- router.preload(pathname);
121
- }, [router, isDisabled, preloadOnMouseDown, pathname]);
111
+ router.preload({ pathname, search, source: 'link-click' });
112
+ }, [router, isDisabled, preloadOnMouseDown, pathname, search]);
122
113
  let hrefValue = pathname;
123
114
  if (typeof search === 'string' && search.length > 0) {
124
115
  hrefValue = `${pathname}${search}`;
@@ -126,4 +117,4 @@ const Link = forwardRef((props, ref) => {
126
117
  return (_jsx("a", { className: cx(classNames), href: hrefValue, onClick: handleClick, onFocus: onFocus, onMouseDown: handleMouseDown, onMouseEnter: handleMouseEnter, onMouseOver: onMouseOver, ref: ref, target: target, children: children }));
127
118
  });
128
119
  export default Link;
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL0xpbmsudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQUlaLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0sT0FBTyxDQUFDO0FBR2YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6QyxPQUFPLG1CQUFtQixNQUFNLGlDQUFpQyxDQUFDO0FBRWxFLE9BQU8sY0FBYyxNQUFNLHFCQUFxQixDQUFDO0FBR2pELE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDO0FBSzFDLE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsS0FBYyxFQUNkLE9BQW1DLEVBQ25DLFFBQWdCO0lBRWhCLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUdELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFekQsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBRTlDLElBQUksS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLGdCQUFnQixFQUFFLENBQUM7UUFDNUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ3JFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQTJERCxNQUFNLElBQUks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QUV2RCxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDekIsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwRCxTQUFTLEdBQUcsR0FBRyxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUNELE9BQU8sQ0FDTCxZQUNFLFNBQVMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQ3pCLElBQUksRUFBRSxTQUFTLEVBQ2YsT0FBTyxFQUFFLFdBQVcsRUFDcEIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsV0FBVyxFQUFFLGVBQWUsRUFDNUIsWUFBWSxFQUFFLGdCQUFnQixFQUM5QixXQUFXLEVBQUUsV0FBVyxFQUN4QixHQUFHLEVBQUUsR0FBRyxFQUNSLE1BQU0sRUFBRSxNQUFNLFlBRWIsUUFBUSxHQUNQLENBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUgsZUFBZSxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgdHlwZSBIVE1MQXR0cmlidXRlQW5jaG9yVGFyZ2V0LFxuICB0eXBlIE1vdXNlRXZlbnQsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICBmb3J3YXJkUmVmLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG59IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBCcm93c2VySGlzdG9yeSwgSGlzdG9yeUxvY2F0aW9uIH0gZnJvbSAnLi4vaGlzdG9yeS9pbmRleC5qcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uT3JpZ2luLCBSb3V0ZXJEZWJ1Z0V2ZW50S2luZCB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuaW1wb3J0IHsgY3ggfSBmcm9tICcuLy4uL3Rvb2xzL2luZGV4LmpzJztcbmltcG9ydCBidWlsZENvbWJpbmVkU2VhcmNoIGZyb20gJy4uL3Rvb2xzL2J1aWxkQ29tYmluZWRTZWFyY2guanMnO1xuXG5pbXBvcnQgUm91dGluZ0NvbnRleHQgZnJvbSAnLi9Sb3V0aW5nQ29udGV4dC5qcyc7XG4vLyAoZmlsdGVyLXF1ZXJ5IHN0cmluZ2lmeSBub3QgdXNlZCBoZXJlIGFmdGVyIHNpbXBsaWZ5aW5nIG1hbnVhbCBzZXJpYWxpemF0aW9uKVxuXG5jb25zdCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0IH0gPSBSZWFjdDtcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgY3VycmVudCBwYXRobmFtZSBtYXRjaGVzIHRoZSBnaXZlbiBwYXRobmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ3VycmVudFBhdGhuYW1lKFxuICBleGFjdDogYm9vbGVhbixcbiAgaGlzdG9yeTogQnJvd3Nlckhpc3RvcnkgfCB1bmRlZmluZWQsXG4gIHBhdGhuYW1lOiBzdHJpbmcsXG4pOiBib29sZWFuIHtcbiAgaWYgKGhpc3RvcnkgPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IE9LXG4gIGNvbnN0IHJlc29sdmVkVXJsID0gbmV3IFVSTChwYXRobmFtZSwgZG9jdW1lbnQubG9jYXRpb24pO1xuXG4gIGNvbnN0IHJlc29sdmVkUGF0aG5hbWUgPSByZXNvbHZlZFVybC5wYXRobmFtZTtcblxuICBpZiAoZXhhY3QgJiYgaGlzdG9yeS5sb2NhdGlvbi5wYXRobmFtZSA9PT0gcmVzb2x2ZWRQYXRobmFtZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKCFleGFjdCAmJiBoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lLnN0YXJ0c1dpdGgocmVzb2x2ZWRQYXRobmFtZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBQcm9wcyBmb3IgdGhlIExpbmsgY29tcG9uZW50LlxuICovXG50eXBlIFByb3BzPFRRdWVyeSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0ge1xuICAvKiogQ1NTIGNsYXNzIHRvIGFwcGx5IHdoZW4gdGhlIGxpbmsgaXMgYWN0aXZlIChtYXRjaGVzIGN1cnJlbnQgcm91dGUpICovXG4gIGFjdGl2ZUNsYXNzTmFtZT86IHN0cmluZztcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdG8gcmVuZGVyIGluc2lkZSB0aGUgbGluayAqL1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICAvKiogQmFzZSBDU1MgY2xhc3MgZm9yIHRoZSBsaW5rICovXG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgdG8gdXNlIGV4YWN0IHBhdGggbWF0Y2hpbmcgZm9yIGFjdGl2ZSBzdGF0ZSAqL1xuICBleGFjdD86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIHByZWxvYWQgdGhlIHJvdXRlIHdoZW4gbW91c2UgZW50ZXJzIHRoZSBsaW5rICovXG4gIHByZWxvYWRPbk1vdXNlRW50ZXI/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0byBwcmVsb2FkIHRoZSByb3V0ZSB3aGVuIG1vdXNlIGlzIHByZXNzZWQgZG93biAqL1xuICBwcmVsb2FkT25Nb3VzZURvd24/OiBib29sZWFuO1xuICAvKiogRGlyZWN0IGhyZWYgYXR0cmlidXRlIChvdmVycmlkZXMgJ3RvJyBwcm9wKSAqL1xuICBocmVmPzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0aGUgbGluayBzaG91bGQgYmUgZGlzYWJsZWQgKi9cbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKiBDbGljayBoYW5kbGVyICovXG4gIG9uQ2xpY2s/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIC8qKiBGb2N1cyBoYW5kbGVyICovXG4gIG9uRm9jdXM/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIC8qKiBNb3VzZSBvdmVyIGhhbmRsZXIgKi9cbiAgb25Nb3VzZU92ZXI/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIC8qKiBUYXJnZXQgYXR0cmlidXRlIGZvciB0aGUgbGluayAqL1xuICB0YXJnZXQ/OiBIVE1MQXR0cmlidXRlQW5jaG9yVGFyZ2V0O1xuICAvKiogRGVzdGluYXRpb24gZm9yIHRoZSBsaW5rIChjYW4gYmUgc3RyaW5nIHBhdGggb3IgbG9jYXRpb24gb2JqZWN0KSAqL1xuICB0bz86IEhpc3RvcnlMb2NhdGlvbiB8IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHF1ZXJ5IG9iamVjdCB0byBzZXJpYWxpemUgdXNpbmcgZGVzdGluYXRpb24gcm91dGUgc2NoZW1hICovXG4gIHF1ZXJ5PzogVFF1ZXJ5O1xufTtcblxuLyoqXG4gKiBOYXZpZ2F0aW9uIGNvbXBvbmVudCB0aGF0IHByb3ZpZGVzIGNsaWVudC1zaWRlIHJvdXRpbmcgd2l0aCBwcmVsb2FkaW5nIGNhcGFiaWxpdGllcy5cbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBpbnRlZ3JhdGVzIHdpdGggdGhlIHJvdXRlcidzIFJvdXRpbmdDb250ZXh0IHRvIHByb3ZpZGUgc21vb3RoIG5hdmlnYXRpb25cbiAqIHdpdGggb3B0aW9uYWwgcHJlbG9hZGluZyBvZiByb3V0ZSBjb21wb25lbnRzIGFuZCBkYXRhLiBJdCBhdXRvbWF0aWNhbGx5IGFwcGxpZXMgYWN0aXZlXG4gKiBzdHlsaW5nIHdoZW4gdGhlIGN1cnJlbnQgcm91dGUgbWF0Y2hlcyB0aGUgbGluaydzIGRlc3RpbmF0aW9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIC8vIEJhc2ljIHVzYWdlXG4gKiA8TGluayB0bz1cIi91c2Vycy8xMjNcIj5WaWV3IFByb2ZpbGU8L0xpbms+XG4gKlxuICogLy8gV2l0aCBhY3RpdmUgc3R5bGluZ1xuICogPExpbmsgdG89XCIvZGFzaGJvYXJkXCIgYWN0aXZlQ2xhc3NOYW1lPVwiYWN0aXZlXCIgZXhhY3Q+XG4gKiAgIERhc2hib2FyZFxuICogPC9MaW5rPlxuICpcbiAqIC8vIFdpdGggcHJlbG9hZGluZyBvbiBob3ZlclxuICogPExpbmsgdG89XCIvaGVhdnktcGFnZVwiIHByZWxvYWRPbk1vdXNlRW50ZXI+XG4gKiAgIEhlYXZ5IFBhZ2VcbiAqIDwvTGluaz5cbiAqIGBgYFxuICovXG5jb25zdCBMaW5rID0gZm9yd2FyZFJlZjxIVE1MQW5jaG9yRWxlbWVudCwgUHJvcHM+KChwcm9wczogUHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCByb3V0ZXIgPSB1c2VDb250ZXh0KFJvdXRpbmdDb250ZXh0KTtcbiAgY29uc3Qge1xuICAgIGFjdGl2ZUNsYXNzTmFtZSxcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUsXG4gICAgZXhhY3QgPSBmYWxzZSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgb25DbGljayxcbiAgICBvbkZvY3VzLFxuICAgIG9uTW91c2VPdmVyLFxuICAgIHByZWxvYWRPbk1vdXNlRW50ZXIgPSBmYWxzZSxcbiAgICBwcmVsb2FkT25Nb3VzZURvd24gPSB0cnVlLFxuICAgIHRhcmdldCxcbiAgICB0byxcbiAgICBocmVmLFxuICAgIHF1ZXJ5LFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICcjJztcbiAgICB9XG5cbiAgICBsZXQgbmV3SHJlZiA9IGhyZWY7XG5cbiAgICBpZiAobmV3SHJlZiA9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZW9mIHRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBuZXdIcmVmID0gdG87XG4gICAgICB9IGVsc2UgaWYgKHRvPy5wYXRobmFtZSAhPSBudWxsKSB7XG4gICAgICAgIG5ld0hyZWYgPSB0by5wYXRobmFtZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdIcmVmID8/PSAnIyc7XG5cbiAgICByZXR1cm4gbmV3SHJlZjtcbiAgfSwgW2hyZWYsIGlzRGlzYWJsZWQsIHRvXSk7XG5cbiAgLy8gUmVzb2x2ZSBzZWFyY2ggc3RyaW5nIGZyb20gcHJvdmlkZWQgcXVlcnkgdHJlYXRlZCBhcyBmaWx0ZXJzIHcvIGFjdGl2ZSBzY2hlbWEuXG4gIGNvbnN0IHNlYXJjaCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChxdWVyeSA9PSBudWxsIHx8IHJvdXRlciA9PSBudWxsKSByZXR1cm4gJyc7XG4gICAgY29uc3QgZW50cnkgPSByb3V0ZXIuZ2V0KCk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tYmluZWRTZWFyY2goe1xuICAgICAgZmlsdGVyczogcXVlcnkgYXMgYW55LFxuICAgICAgcXVlcnlTY2hlbWE6IGVudHJ5LmFjdGl2ZVF1ZXJ5U2NoZW1hIGFzIGFueSxcbiAgICB9KTtcbiAgfSwgW3F1ZXJ5LCByb3V0ZXJdKTtcblxuICBjb25zdCBpbml0aWFsSXNBY3RpdmUgPSBpc0N1cnJlbnRQYXRobmFtZShleGFjdCwgcm91dGVyPy5oaXN0b3J5LCBwYXRobmFtZSk7XG4gIGNvbnN0IFtpc0FjdGl2ZSwgc2V0SXNBY3RpdmVdID0gUmVhY3QudXNlU3RhdGUoaW5pdGlhbElzQWN0aXZlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbmV3SXNBY3RpdmUgPSBpc0N1cnJlbnRQYXRobmFtZShleGFjdCwgcm91dGVyPy5oaXN0b3J5LCBwYXRobmFtZSk7XG4gICAgICBzZXRJc0FjdGl2ZShuZXdJc0FjdGl2ZSk7XG4gICAgfTtcblxuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuICgpID0+IHt9O1xuICAgIH1cblxuICAgIHJvdXRlci5oaXN0b3J5LnN1YnNjcmliZShvbkNoYW5nZSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcm91dGVyLmhpc3RvcnkudW5zdWJzY3JpYmUob25DaGFuZ2UpO1xuICAgIH07XG4gIH0sIFtleGFjdCwgcGF0aG5hbWUsIHJvdXRlcl0pO1xuXG4gIGNvbnN0IGNsYXNzTmFtZXMgPSBbY2xhc3NOYW1lXTtcblxuICBpZiAoaXNBY3RpdmUpIHtcbiAgICBjbGFzc05hbWVzLnB1c2goYWN0aXZlQ2xhc3NOYW1lKTtcbiAgfVxuXG4gIC8vIFdoZW4gdGhlIHVzZXIgY2xpY2tzLCBjaGFuZ2Ugcm91dGVcbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoIWlzRGlzYWJsZWQgJiYgdHlwZW9mIG9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb25DbGljayhldmVudCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fFxuICAgICAgICBldmVudC5tZXRhS2V5IHx8XG4gICAgICAgIGV2ZW50LmFsdEtleSB8fFxuICAgICAgICBldmVudC5jdHJsS2V5IHx8XG4gICAgICAgIGV2ZW50LnNoaWZ0S2V5IHx8XG4gICAgICAgIGV2ZW50LmJ1dHRvbiAhPT0gMCB8fFxuICAgICAgICAodGFyZ2V0ICE9IG51bGwgJiYgdGFyZ2V0ICE9PSAnX3NlbGYnKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGlmIChyb3V0ZXIgPT0gbnVsbCB8fCBpc0Rpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcm91dGVyLl9fZGVidWc/LnJlY29yZE5hdmlnYXRpb25JbnRlbnQoTmF2aWdhdGlvbk9yaWdpbi5MaW5rQ2xpY2spO1xuICAgICAgcm91dGVyLl9fZGVidWc/LnJlY29yZEhpc3RvcnlBY3Rpb24oXG4gICAgICAgIFJvdXRlckRlYnVnRXZlbnRLaW5kLkhpc3RvcnlQdXNoLFxuICAgICAgICBOYXZpZ2F0aW9uT3JpZ2luLkxpbmtDbGljayxcbiAgICAgICAge1xuICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgIHNlYXJjaCxcbiAgICAgICAgICBoYXNoOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgeyB0cmlnZ2VyOiAnbGluaycgfSxcbiAgICAgICk7XG4gICAgICByb3V0ZXIuaGlzdG9yeS5wdXNoKHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIHNlYXJjaCxcbiAgICAgICAgaGFzaDogJycsXG4gICAgICAgIGRlYnVnQ29udGV4dDoge1xuICAgICAgICAgIG9yaWdpbjogTmF2aWdhdGlvbk9yaWdpbi5MaW5rQ2xpY2ssXG4gICAgICAgICAgdHJpZ2dlcjogJ2xpbmsnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBbaXNEaXNhYmxlZCwgb25DbGljaywgcGF0aG5hbWUsIHJvdXRlciwgdGFyZ2V0LCBzZWFyY2hdLFxuICApO1xuXG4gIC8vIENhbGxiYWNrIHRvIHByZWxvYWQganVzdCB0aGUgY29kZSBmb3IgdGhlIHJvdXRlOlxuICAvLyB3ZSBwYXNzIHRoaXMgdG8gb25Nb3VzZUVudGVyLCB3aGljaCBpcyBhIHdlYWtlciBzaWduYWxcbiAgLy8gdGhhdCB0aGUgdXNlciAqbWF5KiBuYXZpZ2F0ZSB0byB0aGUgcm91dGUuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRW50ZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHJvdXRlciA9PSBudWxsIHx8IGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJlbG9hZE9uTW91c2VFbnRlcikge1xuICAgICAgcm91dGVyLl9fZGVidWc/LnJlY29yZFByZWxvYWQoXG4gICAgICAgIFJvdXRlckRlYnVnRXZlbnRLaW5kLlByZWxvYWQsXG4gICAgICAgIE5hdmlnYXRpb25PcmlnaW4uUHJlbG9hZEhvdmVyLFxuICAgICAgICBwYXRobmFtZSxcbiAgICAgICk7XG4gICAgICByb3V0ZXIucHJlbG9hZChwYXRobmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdXRlci5fX2RlYnVnPy5yZWNvcmRQcmVsb2FkKFxuICAgICAgICBSb3V0ZXJEZWJ1Z0V2ZW50S2luZC5QcmVsb2FkQ29kZSxcbiAgICAgICAgTmF2aWdhdGlvbk9yaWdpbi5QcmVsb2FkSG92ZXIsXG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgKTtcbiAgICAgIHJvdXRlci5wcmVsb2FkQ29kZShwYXRobmFtZSk7XG4gICAgfVxuICB9LCBbcm91dGVyLCBpc0Rpc2FibGVkLCBwcmVsb2FkT25Nb3VzZUVudGVyLCBwYXRobmFtZV0pO1xuXG4gIC8vIENhbGxiYWNrIHRvIHByZWxvYWQgdGhlIGNvZGUgYW5kIGRhdGEgZm9yIHRoZSByb3V0ZTpcbiAgLy8gd2UgcGFzcyB0aGlzIHRvIG9uTW91c2VEb3duLCBzaW5jZSB0aGlzIGlzIGEgc3Ryb25nZXJcbiAgLy8gc2lnbmFsIHRoYXQgdGhlIHVzZXIgd2lsbCBsaWtlbHkgY29tcGxldGUgdGhlIG5hdmlnYXRpb25cbiAgY29uc3QgaGFuZGxlTW91c2VEb3duID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCB8fCBpc0Rpc2FibGVkIHx8ICFwcmVsb2FkT25Nb3VzZURvd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcm91dGVyLl9fZGVidWc/LnJlY29yZFByZWxvYWQoXG4gICAgICBSb3V0ZXJEZWJ1Z0V2ZW50S2luZC5QcmVsb2FkLFxuICAgICAgTmF2aWdhdGlvbk9yaWdpbi5MaW5rQ2xpY2ssXG4gICAgICBwYXRobmFtZSxcbiAgICApO1xuICAgIHJvdXRlci5wcmVsb2FkKHBhdGhuYW1lKTtcbiAgfSwgW3JvdXRlciwgaXNEaXNhYmxlZCwgcHJlbG9hZE9uTW91c2VEb3duLCBwYXRobmFtZV0pO1xuXG4gIGxldCBocmVmVmFsdWUgPSBwYXRobmFtZTtcbiAgaWYgKHR5cGVvZiBzZWFyY2ggPT09ICdzdHJpbmcnICYmIHNlYXJjaC5sZW5ndGggPiAwKSB7XG4gICAgaHJlZlZhbHVlID0gYCR7cGF0aG5hbWV9JHtzZWFyY2h9YDtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxhXG4gICAgICBjbGFzc05hbWU9e2N4KGNsYXNzTmFtZXMpfVxuICAgICAgaHJlZj17aHJlZlZhbHVlfVxuICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgb25Nb3VzZURvd249e2hhbmRsZU1vdXNlRG93bn1cbiAgICAgIG9uTW91c2VFbnRlcj17aGFuZGxlTW91c2VFbnRlcn1cbiAgICAgIG9uTW91c2VPdmVyPXtvbk1vdXNlT3Zlcn1cbiAgICAgIHJlZj17cmVmfVxuICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYT5cbiAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBMaW5rO1xuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL0xpbmsudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQUlaLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0sT0FBTyxDQUFDO0FBSWYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pDLE9BQU8sbUJBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFHakQsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUM7QUFLMUMsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFjLEVBQ2QsT0FBbUMsRUFDbkMsUUFBZ0I7SUFFaEIsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV6RCxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFFOUMsSUFBSSxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBMkRELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBMkIsQ0FBQyxLQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDdEUsTUFB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bXBvcnQgUmVhY3QsIHtcbiAgdHlwZSBIVE1MQXR0cmlidXRlQW5jaG9yVGFyZ2V0LFxuICB0eXBlIE1vdXNlRXZlbnQsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICBmb3J3YXJkUmVmLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG59IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBCcm93c2VySGlzdG9yeSwgSGlzdG9yeUxvY2F0aW9uIH0gZnJvbSAnLi4vaGlzdG9yeS9pbmRleC5qcyc7XG5cbmltcG9ydCB7IGN4IH0gZnJvbSAnLi8uLi90b29scy9pbmRleC5qcyc7XG5pbXBvcnQgYnVpbGRDb21iaW5lZFNlYXJjaCBmcm9tICcuLi90b29scy9idWlsZENvbWJpbmVkU2VhcmNoLmpzJztcblxuaW1wb3J0IFJvdXRpbmdDb250ZXh0IGZyb20gJy4vUm91dGluZ0NvbnRleHQuanMnO1xuLy8gKGZpbHRlci1xdWVyeSBzdHJpbmdpZnkgbm90IHVzZWQgaGVyZSBhZnRlciBzaW1wbGlmeWluZyBtYW51YWwgc2VyaWFsaXphdGlvbilcblxuY29uc3QgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCB9ID0gUmVhY3Q7XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGN1cnJlbnQgcGF0aG5hbWUgbWF0Y2hlcyB0aGUgZ2l2ZW4gcGF0aG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0N1cnJlbnRQYXRobmFtZShcbiAgZXhhY3Q6IGJvb2xlYW4sXG4gIGhpc3Rvcnk6IEJyb3dzZXJIaXN0b3J5IHwgdW5kZWZpbmVkLFxuICBwYXRobmFtZTogc3RyaW5nLFxuKTogYm9vbGVhbiB7XG4gIGlmIChoaXN0b3J5ID09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBAdHMtZXhwZWN0LWVycm9yOiBPS1xuICBjb25zdCByZXNvbHZlZFVybCA9IG5ldyBVUkwocGF0aG5hbWUsIGRvY3VtZW50LmxvY2F0aW9uKTtcblxuICBjb25zdCByZXNvbHZlZFBhdGhuYW1lID0gcmVzb2x2ZWRVcmwucGF0aG5hbWU7XG5cbiAgaWYgKGV4YWN0ICYmIGhpc3RvcnkubG9jYXRpb24ucGF0aG5hbWUgPT09IHJlc29sdmVkUGF0aG5hbWUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghZXhhY3QgJiYgaGlzdG9yeS5sb2NhdGlvbi5wYXRobmFtZS5zdGFydHNXaXRoKHJlc29sdmVkUGF0aG5hbWUpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIHRoZSBMaW5rIGNvbXBvbmVudC5cbiAqL1xudHlwZSBQcm9wczxUUXVlcnkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9IHtcbiAgLyoqIENTUyBjbGFzcyB0byBhcHBseSB3aGVuIHRoZSBsaW5rIGlzIGFjdGl2ZSAobWF0Y2hlcyBjdXJyZW50IHJvdXRlKSAqL1xuICBhY3RpdmVDbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKiBDaGlsZCBjb21wb25lbnRzIHRvIHJlbmRlciBpbnNpZGUgdGhlIGxpbmsgKi9cbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgLyoqIEJhc2UgQ1NTIGNsYXNzIGZvciB0aGUgbGluayAqL1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRvIHVzZSBleGFjdCBwYXRoIG1hdGNoaW5nIGZvciBhY3RpdmUgc3RhdGUgKi9cbiAgZXhhY3Q/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0byBwcmVsb2FkIHRoZSByb3V0ZSB3aGVuIG1vdXNlIGVudGVycyB0aGUgbGluayAqL1xuICBwcmVsb2FkT25Nb3VzZUVudGVyPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gcHJlbG9hZCB0aGUgcm91dGUgd2hlbiBtb3VzZSBpcyBwcmVzc2VkIGRvd24gKi9cbiAgcHJlbG9hZE9uTW91c2VEb3duPzogYm9vbGVhbjtcbiAgLyoqIERpcmVjdCBocmVmIGF0dHJpYnV0ZSAob3ZlcnJpZGVzICd0bycgcHJvcCkgKi9cbiAgaHJlZj86IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgdGhlIGxpbmsgc2hvdWxkIGJlIGRpc2FibGVkICovXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKiogQ2xpY2sgaGFuZGxlciAqL1xuICBvbkNsaWNrPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+O1xuICAvKiogRm9jdXMgaGFuZGxlciAqL1xuICBvbkZvY3VzPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+O1xuICAvKiogTW91c2Ugb3ZlciBoYW5kbGVyICovXG4gIG9uTW91c2VPdmVyPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+O1xuICAvKiogVGFyZ2V0IGF0dHJpYnV0ZSBmb3IgdGhlIGxpbmsgKi9cbiAgdGFyZ2V0PzogSFRNTEF0dHJpYnV0ZUFuY2hvclRhcmdldDtcbiAgLyoqIERlc3RpbmF0aW9uIGZvciB0aGUgbGluayAoY2FuIGJlIHN0cmluZyBwYXRoIG9yIGxvY2F0aW9uIG9iamVjdCkgKi9cbiAgdG8/OiBIaXN0b3J5TG9jYXRpb24gfCBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBxdWVyeSBvYmplY3QgdG8gc2VyaWFsaXplIHVzaW5nIGRlc3RpbmF0aW9uIHJvdXRlIHNjaGVtYSAqL1xuICBxdWVyeT86IFRRdWVyeTtcbn07XG5cbi8qKlxuICogTmF2aWdhdGlvbiBjb21wb25lbnQgdGhhdCBwcm92aWRlcyBjbGllbnQtc2lkZSByb3V0aW5nIHdpdGggcHJlbG9hZGluZyBjYXBhYmlsaXRpZXMuXG4gKlxuICogVGhpcyBjb21wb25lbnQgaW50ZWdyYXRlcyB3aXRoIHRoZSByb3V0ZXIncyBSb3V0aW5nQ29udGV4dCB0byBwcm92aWRlIHNtb290aCBuYXZpZ2F0aW9uXG4gKiB3aXRoIG9wdGlvbmFsIHByZWxvYWRpbmcgb2Ygcm91dGUgY29tcG9uZW50cyBhbmQgZGF0YS4gSXQgYXV0b21hdGljYWxseSBhcHBsaWVzIGFjdGl2ZVxuICogc3R5bGluZyB3aGVuIHRoZSBjdXJyZW50IHJvdXRlIG1hdGNoZXMgdGhlIGxpbmsncyBkZXN0aW5hdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiAvLyBCYXNpYyB1c2FnZVxuICogPExpbmsgdG89XCIvdXNlcnMvMTIzXCI+VmlldyBQcm9maWxlPC9MaW5rPlxuICpcbiAqIC8vIFdpdGggYWN0aXZlIHN0eWxpbmdcbiAqIDxMaW5rIHRvPVwiL2Rhc2hib2FyZFwiIGFjdGl2ZUNsYXNzTmFtZT1cImFjdGl2ZVwiIGV4YWN0PlxuICogICBEYXNoYm9hcmRcbiAqIDwvTGluaz5cbiAqXG4gKiAvLyBXaXRoIHByZWxvYWRpbmcgb24gaG92ZXJcbiAqIDxMaW5rIHRvPVwiL2hlYXZ5LXBhZ2VcIiBwcmVsb2FkT25Nb3VzZUVudGVyPlxuICogICBIZWF2eSBQYWdlXG4gKiA8L0xpbms+XG4gKiBgYGBcbiAqL1xuY29uc3QgTGluayA9IGZvcndhcmRSZWY8SFRNTEFuY2hvckVsZW1lbnQsIFByb3BzPigocHJvcHM6IFByb3BzLCByZWYpID0+IHtcbiAgY29uc3Qgcm91dGVyID0gdXNlQ29udGV4dChSb3V0aW5nQ29udGV4dCk7XG4gIGNvbnN0IHtcbiAgICBhY3RpdmVDbGFzc05hbWUsXG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGV4YWN0ID0gZmFsc2UsXG4gICAgaXNEaXNhYmxlZCA9IGZhbHNlLFxuICAgIG9uQ2xpY2ssXG4gICAgb25Gb2N1cyxcbiAgICBvbk1vdXNlT3ZlcixcbiAgICBwcmVsb2FkT25Nb3VzZUVudGVyID0gZmFsc2UsXG4gICAgcHJlbG9hZE9uTW91c2VEb3duID0gdHJ1ZSxcbiAgICB0YXJnZXQsXG4gICAgdG8sXG4gICAgaHJlZixcbiAgICBxdWVyeSxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnIyc7XG4gICAgfVxuXG4gICAgbGV0IG5ld0hyZWYgPSBocmVmO1xuXG4gICAgaWYgKG5ld0hyZWYgPT0gbnVsbCkge1xuICAgICAgaWYgKHR5cGVvZiB0byA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgbmV3SHJlZiA9IHRvO1xuICAgICAgfSBlbHNlIGlmICh0bz8ucGF0aG5hbWUgIT0gbnVsbCkge1xuICAgICAgICBuZXdIcmVmID0gdG8ucGF0aG5hbWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmV3SHJlZiA/Pz0gJyMnO1xuXG4gICAgcmV0dXJuIG5ld0hyZWY7XG4gIH0sIFtocmVmLCBpc0Rpc2FibGVkLCB0b10pO1xuXG4gIC8vIFJlc29sdmUgc2VhcmNoIHN0cmluZyBmcm9tIHByb3ZpZGVkIHF1ZXJ5IHRyZWF0ZWQgYXMgZmlsdGVycyB3LyBhY3RpdmUgc2NoZW1hLlxuICBjb25zdCBzZWFyY2ggPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAocXVlcnkgPT0gbnVsbCB8fCByb3V0ZXIgPT0gbnVsbCkgcmV0dXJuICcnO1xuICAgIGNvbnN0IGVudHJ5ID0gcm91dGVyLmdldCgpO1xuICAgIHJldHVybiBidWlsZENvbWJpbmVkU2VhcmNoKHtcbiAgICAgIGZpbHRlcnM6IHF1ZXJ5IGFzIGFueSxcbiAgICAgIHF1ZXJ5U2NoZW1hOiBlbnRyeS5hY3RpdmVRdWVyeVNjaGVtYSBhcyBhbnksXG4gICAgfSk7XG4gIH0sIFtxdWVyeSwgcm91dGVyXSk7XG5cbiAgY29uc3QgaW5pdGlhbElzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICBjb25zdCBbaXNBY3RpdmUsIHNldElzQWN0aXZlXSA9IFJlYWN0LnVzZVN0YXRlKGluaXRpYWxJc0FjdGl2ZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG5ld0lzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICAgICAgc2V0SXNBY3RpdmUobmV3SXNBY3RpdmUpO1xuICAgIH07XG5cbiAgICBpZiAocm91dGVyID09IG51bGwpIHtcbiAgICAgIHJldHVybiAoKSA9PiB7fTtcbiAgICB9XG5cbiAgICByb3V0ZXIuaGlzdG9yeS5zdWJzY3JpYmUob25DaGFuZ2UpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJvdXRlci5oaXN0b3J5LnVuc3Vic2NyaWJlKG9uQ2hhbmdlKTtcbiAgICB9O1xuICB9LCBbZXhhY3QsIHBhdGhuYW1lLCByb3V0ZXJdKTtcblxuICBjb25zdCBjbGFzc05hbWVzID0gW2NsYXNzTmFtZV07XG5cbiAgaWYgKGlzQWN0aXZlKSB7XG4gICAgY2xhc3NOYW1lcy5wdXNoKGFjdGl2ZUNsYXNzTmFtZSk7XG4gIH1cblxuICAvLyBXaGVuIHRoZSB1c2VyIGNsaWNrcywgY2hhbmdlIHJvdXRlXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKCFpc0Rpc2FibGVkICYmIHR5cGVvZiBvbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9uQ2xpY2soZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHxcbiAgICAgICAgZXZlbnQubWV0YUtleSB8fFxuICAgICAgICBldmVudC5hbHRLZXkgfHxcbiAgICAgICAgZXZlbnQuY3RybEtleSB8fFxuICAgICAgICBldmVudC5zaGlmdEtleSB8fFxuICAgICAgICBldmVudC5idXR0b24gIT09IDAgfHxcbiAgICAgICAgKHRhcmdldCAhPSBudWxsICYmIHRhcmdldCAhPT0gJ19zZWxmJylcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJvdXRlci5oaXN0b3J5LnB1c2goe1xuICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgc2VhcmNoLFxuICAgICAgICBoYXNoOiAnJyxcbiAgICAgICAgZGVidWdDb250ZXh0OiB7XG4gICAgICAgICAgb3JpZ2luOiAnbGluay1jbGljaycsXG4gICAgICAgICAgdHJpZ2dlcjogJ2xpbmsnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBbaXNEaXNhYmxlZCwgb25DbGljaywgcGF0aG5hbWUsIHJvdXRlciwgdGFyZ2V0LCBzZWFyY2hdLFxuICApO1xuXG4gIC8vIENhbGxiYWNrIHRvIHByZWxvYWQganVzdCB0aGUgY29kZSBmb3IgdGhlIHJvdXRlOlxuICAvLyB3ZSBwYXNzIHRoaXMgdG8gb25Nb3VzZUVudGVyLCB3aGljaCBpcyBhIHdlYWtlciBzaWduYWxcbiAgLy8gdGhhdCB0aGUgdXNlciAqbWF5KiBuYXZpZ2F0ZSB0byB0aGUgcm91dGUuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRW50ZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHJvdXRlciA9PSBudWxsIHx8IGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSB7IHBhdGhuYW1lLCBzZWFyY2gsIHNvdXJjZTogJ3ByZWxvYWQtaG92ZXInIH0gYXMgY29uc3Q7XG4gICAgaWYgKHByZWxvYWRPbk1vdXNlRW50ZXIpIHtcbiAgICAgIHJvdXRlci5wcmVsb2FkKHRhcmdldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdXRlci5wcmVsb2FkQ29kZSh0YXJnZXQpO1xuICAgIH1cbiAgfSwgW3JvdXRlciwgaXNEaXNhYmxlZCwgcHJlbG9hZE9uTW91c2VFbnRlciwgcGF0aG5hbWUsIHNlYXJjaF0pO1xuXG4gIC8vIENhbGxiYWNrIHRvIHByZWxvYWQgdGhlIGNvZGUgYW5kIGRhdGEgZm9yIHRoZSByb3V0ZTpcbiAgLy8gd2UgcGFzcyB0aGlzIHRvIG9uTW91c2VEb3duLCBzaW5jZSB0aGlzIGlzIGEgc3Ryb25nZXJcbiAgLy8gc2lnbmFsIHRoYXQgdGhlIHVzZXIgd2lsbCBsaWtlbHkgY29tcGxldGUgdGhlIG5hdmlnYXRpb25cbiAgY29uc3QgaGFuZGxlTW91c2VEb3duID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCB8fCBpc0Rpc2FibGVkIHx8ICFwcmVsb2FkT25Nb3VzZURvd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcm91dGVyLnByZWxvYWQoeyBwYXRobmFtZSwgc2VhcmNoLCBzb3VyY2U6ICdsaW5rLWNsaWNrJyB9KTtcbiAgfSwgW3JvdXRlciwgaXNEaXNhYmxlZCwgcHJlbG9hZE9uTW91c2VEb3duLCBwYXRobmFtZSwgc2VhcmNoXSk7XG5cbiAgbGV0IGhyZWZWYWx1ZSA9IHBhdGhuYW1lO1xuICBpZiAodHlwZW9mIHNlYXJjaCA9PT0gJ3N0cmluZycgJiYgc2VhcmNoLmxlbmd0aCA+IDApIHtcbiAgICBocmVmVmFsdWUgPSBgJHtwYXRobmFtZX0ke3NlYXJjaH1gO1xuICB9XG4gIHJldHVybiAoXG4gICAgPGFcbiAgICAgIGNsYXNzTmFtZT17Y3goY2xhc3NOYW1lcyl9XG4gICAgICBocmVmPXtocmVmVmFsdWV9XG4gICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3dufVxuICAgICAgb25Nb3VzZUVudGVyPXtoYW5kbGVNb3VzZUVudGVyfVxuICAgICAgb25Nb3VzZU92ZXI9e29uTW91c2VPdmVyfVxuICAgICAgcmVmPXtyZWZ9XG4gICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9hPlxuICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpbms7XG4iXX0=
@@ -1,10 +1,11 @@
1
1
  import { type RoutingContextType, type AnyRoute, type PreparedAccess } from '../types.js';
2
+ import { type InstrumentationAPI } from '../instrumentation/Instrumentation.js';
2
3
  export type CreateRouterReturn<R extends AnyRoute[]> = {
3
4
  cleanup: () => void;
4
5
  context: RoutingContextType<any> & PreparedAccess<R>;
5
6
  };
6
7
  export type CreateRouterOptions = {
7
- debug?: boolean;
8
+ instrumentations?: InstrumentationAPI[];
8
9
  };
9
10
  export default function createRouter<R extends AnyRoute[]>(routes: [...R] | AnyRoute[], options?: CreateRouterOptions): CreateRouterReturn<R extends AnyRoute[] ? R : AnyRoute[]>;
10
11
  //# sourceMappingURL=createRouter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/createRouter.ts"],"names":[],"mappings":"AAMA,OAAO,EAML,KAAK,kBAAkB,EAEvB,KAAK,QAAQ,EACb,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAC;AAMrB,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI;IAErD,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;AAwCF,MAAM,MAAM,mBAAmB,GAAG;IAKhC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,CAAC,SAAS,QAAQ,EAAE,EACvD,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,EAC3B,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,CAsyB3D"}
1
+ {"version":3,"file":"createRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/createRouter.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,QAAQ,EACb,KAAK,cAAc,EAGpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,kBAAkB,EAKxB,MAAM,uCAAuC,CAAC;AAM/C,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI;IAErD,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;AAwCF,MAAM,MAAM,mBAAmB,GAAG;IAEhC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACzC,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,CAAC,SAAS,QAAQ,EAAE,EACvD,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,EAC3B,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,CA8qB3D"}