@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.
- package/README.md +26 -6
- package/lib/esm/index.d.ts +1 -0
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +2 -1
- package/lib/esm/instrumentation/Instrumentation.d.ts +66 -0
- package/lib/esm/instrumentation/Instrumentation.d.ts.map +1 -0
- package/lib/esm/instrumentation/Instrumentation.js +59 -0
- package/lib/esm/instrumentation/adapters/devtoolsBridge.d.ts +14 -0
- package/lib/esm/instrumentation/adapters/devtoolsBridge.d.ts.map +1 -0
- package/lib/esm/instrumentation/adapters/devtoolsBridge.js +118 -0
- package/lib/esm/instrumentation/adapters/logger.d.ts +10 -0
- package/lib/esm/instrumentation/adapters/logger.d.ts.map +1 -0
- package/lib/esm/instrumentation/adapters/logger.js +19 -0
- package/lib/esm/instrumentation/index.d.ts +4 -0
- package/lib/esm/instrumentation/index.d.ts.map +1 -0
- package/lib/esm/instrumentation/index.js +4 -0
- package/lib/esm/routing/Link.d.ts.map +1 -1
- package/lib/esm/routing/Link.js +8 -17
- package/lib/esm/routing/createRouter.d.ts +2 -1
- package/lib/esm/routing/createRouter.d.ts.map +1 -1
- package/lib/esm/routing/createRouter.js +184 -261
- package/lib/esm/tools.d.ts +6 -5
- package/lib/esm/tools.d.ts.map +1 -1
- package/lib/esm/tools.js +17 -34
- package/lib/esm/types.d.ts +7 -49
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +2 -28
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/instrumentation/Instrumentation.d.ts +66 -0
- package/lib/types/instrumentation/Instrumentation.d.ts.map +1 -0
- package/lib/types/instrumentation/adapters/devtoolsBridge.d.ts +14 -0
- package/lib/types/instrumentation/adapters/devtoolsBridge.d.ts.map +1 -0
- package/lib/types/instrumentation/adapters/logger.d.ts +10 -0
- package/lib/types/instrumentation/adapters/logger.d.ts.map +1 -0
- package/lib/types/instrumentation/index.d.ts +4 -0
- package/lib/types/instrumentation/index.d.ts.map +1 -0
- package/lib/types/routing/Link.d.ts.map +1 -1
- package/lib/types/routing/createRouter.d.ts +2 -1
- package/lib/types/routing/createRouter.d.ts.map +1 -1
- package/lib/types/tools.d.ts +6 -5
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/types.d.ts +7 -49
- package/lib/types/types.d.ts.map +1 -1
- 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 &
|
|
370
|
+
#### Inspection & Instrumentation
|
|
371
371
|
|
|
372
|
-
Activez
|
|
372
|
+
Activez l’instrumentation en développement pour exposer un bridge DevTools :
|
|
373
373
|
|
|
374
374
|
```ts
|
|
375
|
-
|
|
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
|
-
|
|
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 (
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.d.ts.map
CHANGED
|
@@ -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
|
-
|
|
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 @@
|
|
|
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;
|
|
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"}
|
package/lib/esm/routing/Link.js
CHANGED
|
@@ -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:
|
|
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.
|
|
108
|
-
router.preload(pathname);
|
|
101
|
+
router.preload(target);
|
|
109
102
|
}
|
|
110
103
|
else {
|
|
111
|
-
router.
|
|
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.
|
|
120
|
-
|
|
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
|
-
|
|
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,
|
|
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"}
|