@workflow/web-shared 4.1.10 → 4.1.12
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/dist/components/event-list-view.d.ts +1 -1
- package/dist/components/event-list-view.d.ts.map +1 -1
- package/dist/components/event-list-view.js +6 -2
- package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
- package/dist/components/sidebar/attribute-panel.js +29 -33
- package/dist/components/trace-viewer/components/map.d.ts +2 -2
- package/dist/components/trace-viewer/components/map.d.ts.map +1 -1
- package/dist/components/trace-viewer/components/node.d.ts +7 -7
- package/dist/components/trace-viewer/components/node.d.ts.map +1 -1
- package/dist/components/trace-viewer/trace-viewer.module.css +4 -4
- package/dist/components/ui/alert.js +2 -2
- package/dist/components/ui/card.js +2 -2
- package/dist/components/ui/context-card.d.ts +47 -0
- package/dist/components/ui/context-card.d.ts.map +1 -0
- package/dist/components/ui/context-card.js +471 -0
- package/dist/components/ui/error-card.js +2 -2
- package/dist/components/ui/skeleton.js +2 -2
- package/dist/components/ui/timestamp-tooltip.d.ts +34 -1
- package/dist/components/ui/timestamp-tooltip.d.ts.map +1 -1
- package/dist/components/ui/timestamp-tooltip.js +80 -132
- package/dist/components/workflow-traces/trace-span-construction.d.ts +4 -1
- package/dist/components/workflow-traces/trace-span-construction.d.ts.map +1 -1
- package/dist/components/workflow-traces/trace-span-construction.js +30 -9
- package/dist/hooks/use-reduced-motion.d.ts +10 -0
- package/dist/hooks/use-reduced-motion.d.ts.map +1 -0
- package/dist/hooks/use-reduced-motion.js +29 -0
- package/dist/lib/cn.d.ts +10 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/cn.js +83 -0
- package/dist/lib/event-materialization.d.ts +3 -0
- package/dist/lib/event-materialization.d.ts.map +1 -1
- package/dist/lib/event-materialization.js +13 -7
- package/dist/lib/utils.d.ts +0 -2
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +1 -6
- package/dist/styles.css +9 -0
- package/package.json +6 -4
- package/src/components/event-list-view.tsx +10 -1
- package/src/components/sidebar/attribute-panel.tsx +122 -121
- package/src/components/trace-viewer/trace-viewer.module.css +4 -4
- package/src/components/ui/alert.tsx +1 -1
- package/src/components/ui/card.tsx +1 -1
- package/src/components/ui/context-card.tsx +784 -0
- package/src/components/ui/error-card.tsx +1 -1
- package/src/components/ui/skeleton.tsx +1 -1
- package/src/components/ui/timestamp-tooltip.tsx +132 -194
- package/src/components/workflow-traces/trace-span-construction.ts +72 -30
- package/src/hooks/use-reduced-motion.ts +34 -0
- package/src/lib/cn.ts +93 -0
- package/src/lib/event-materialization.ts +68 -40
- package/src/lib/utils.ts +0 -6
- package/src/styles.css +9 -0
|
@@ -22,6 +22,20 @@ const MARKER_EVENT_TYPES = new Set([
|
|
|
22
22
|
'wait_created',
|
|
23
23
|
'wait_completed',
|
|
24
24
|
]);
|
|
25
|
+
const findEventByType = (events, eventTypes) => {
|
|
26
|
+
for (const eventType of eventTypes) {
|
|
27
|
+
const event = events.find((e) => e.eventType === eventType);
|
|
28
|
+
if (event)
|
|
29
|
+
return event;
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
};
|
|
33
|
+
const withOccurredAt = (entity, occurredAt) => {
|
|
34
|
+
if (!occurredAt || entity.occurredAt != null) {
|
|
35
|
+
return entity;
|
|
36
|
+
}
|
|
37
|
+
return { ...entity, occurredAt };
|
|
38
|
+
};
|
|
25
39
|
/**
|
|
26
40
|
* Convert workflow events to span events
|
|
27
41
|
* Only includes events that should be displayed as markers
|
|
@@ -47,13 +61,15 @@ export const waitEventsToWaitEntity = (events) => {
|
|
|
47
61
|
return null;
|
|
48
62
|
}
|
|
49
63
|
const completedEvent = events.find((event) => event.eventType === 'wait_completed');
|
|
50
|
-
return {
|
|
64
|
+
return withOccurredAt({
|
|
51
65
|
waitId: startEvent.correlationId,
|
|
52
66
|
runId: startEvent.runId,
|
|
53
67
|
createdAt: startEvent.createdAt,
|
|
54
|
-
resumeAt: startEvent.eventData?.resumeAt
|
|
68
|
+
resumeAt: startEvent.eventData?.resumeAt
|
|
69
|
+
? new Date(startEvent.eventData.resumeAt)
|
|
70
|
+
: undefined,
|
|
55
71
|
completedAt: completedEvent?.createdAt,
|
|
56
|
-
};
|
|
72
|
+
}, startEvent.occurredAt);
|
|
57
73
|
};
|
|
58
74
|
/**
|
|
59
75
|
* Converts a workflow Wait to an OpenTelemetry Span
|
|
@@ -129,7 +145,8 @@ export const stepEventsToStepEntity = (events) => {
|
|
|
129
145
|
if (attempt === 0)
|
|
130
146
|
attempt = 1;
|
|
131
147
|
const lastEvent = events[events.length - 1];
|
|
132
|
-
|
|
148
|
+
const occurrenceEvent = findEventByType(events, ['step_created', 'step_started']) ?? anchorEvent;
|
|
149
|
+
return withOccurredAt({
|
|
133
150
|
stepId: anchorEvent.correlationId ?? '',
|
|
134
151
|
runId: anchorEvent.runId,
|
|
135
152
|
stepName: createdEvent?.eventData?.stepName ?? '',
|
|
@@ -140,7 +157,7 @@ export const stepEventsToStepEntity = (events) => {
|
|
|
140
157
|
startedAt,
|
|
141
158
|
completedAt,
|
|
142
159
|
specVersion: anchorEvent.specVersion,
|
|
143
|
-
};
|
|
160
|
+
}, occurrenceEvent.occurredAt);
|
|
144
161
|
};
|
|
145
162
|
/**
|
|
146
163
|
* Converts step events to an OpenTelemetry Span
|
|
@@ -200,7 +217,7 @@ export const hookEventsToHookEntity = (events) => {
|
|
|
200
217
|
const receivedEvents = events.filter((event) => event.eventType === 'hook_received');
|
|
201
218
|
const disposedEvents = events.filter((event) => event.eventType === 'hook_disposed');
|
|
202
219
|
const lastReceivedEvent = receivedEvents.at(-1);
|
|
203
|
-
return {
|
|
220
|
+
return withOccurredAt({
|
|
204
221
|
hookId: createdEvent.correlationId,
|
|
205
222
|
runId: createdEvent.runId,
|
|
206
223
|
token: createdEvent.eventData?.token,
|
|
@@ -208,7 +225,7 @@ export const hookEventsToHookEntity = (events) => {
|
|
|
208
225
|
receivedCount: receivedEvents.length,
|
|
209
226
|
lastReceivedAt: lastReceivedEvent?.createdAt || undefined,
|
|
210
227
|
disposedAt: disposedEvents.at(-1)?.createdAt || undefined,
|
|
211
|
-
};
|
|
228
|
+
}, createdEvent.occurredAt);
|
|
212
229
|
};
|
|
213
230
|
/**
|
|
214
231
|
* Converts a workflow Hook to an OpenTelemetry Span
|
|
@@ -248,9 +265,13 @@ export function runToSpan(run, runEvents, nowTime) {
|
|
|
248
265
|
// Only embed identification fields — not the full object with
|
|
249
266
|
// input/output/error which may contain non-cloneable types.
|
|
250
267
|
const { input: _i, output: _o, error: _e, ...runIdentity } = run;
|
|
268
|
+
const occurrenceEvent = findEventByType(runEvents, [
|
|
269
|
+
'run_created',
|
|
270
|
+
'run_started',
|
|
271
|
+
]);
|
|
251
272
|
const attributes = {
|
|
252
273
|
resource: 'run',
|
|
253
|
-
data: runIdentity,
|
|
274
|
+
data: withOccurredAt(runIdentity, occurrenceEvent?.occurredAt),
|
|
254
275
|
};
|
|
255
276
|
// Use createdAt as span start time, with activeStartTime for when execution began
|
|
256
277
|
const spanStartTime = new Date(run.createdAt);
|
|
@@ -278,4 +299,4 @@ export function runToSpan(run, runEvents, nowTime) {
|
|
|
278
299
|
: undefined,
|
|
279
300
|
};
|
|
280
301
|
}
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2Utc3Bhbi1jb25zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy93b3JrZmxvdy10cmFjZXMvdHJhY2Utc3Bhbi1jb25zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLElBQUksRUFBRSwwQkFBMEI7SUFDaEMsT0FBTyxFQUFFLE9BQU87Q0FDakIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBNEIsSUFBSSxHQUFHLENBQUM7SUFDMUQsY0FBYztJQUNkLGVBQWU7SUFDZixlQUFlO0lBQ2YsY0FBYztJQUNkLGVBQWU7SUFDZixhQUFhO0lBQ2IsWUFBWTtJQUNaLGNBQWM7SUFDZCxnQkFBZ0I7Q0FDakIsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxNQUFlLEVBQ2YsV0FBVyxHQUFHLElBQUk7SUFFbEIsT0FBTyxNQUFNO1NBQ1YsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDaEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdEO1NBQ0EsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQ3JCLFNBQVMsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFD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LElBQUksZUFBZSxDQUFDLE9BQU8sRUFBRSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUU7WUFDcEUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7WUFDakMsQ0FBQyxDQUFDLFNBQVM7S0FDaEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZ1bmN0aW9ucyBmb3IgY29uc3RydWN0aW5nIE9wZW5UZWxlbWV0cnkgc3BhbnMgZnJvbSB3b3JrZmxvdyBlbnRpdGllc1xuICovXG5cbmltcG9ydCB7IHBhcnNlU3RlcE5hbWUsIHBhcnNlV29ya2Zsb3dOYW1lIH0gZnJvbSAnQHdvcmtmbG93L3V0aWxzL3BhcnNlLW5hbWUnO1xuaW1wb3J0IHR5cGUgeyBFdmVudCwgV29ya2Zsb3dSdW4gfSBmcm9tICdAd29ya2Zsb3cvd29ybGQnO1xuaW1wb3J0IHR5cGUgeyBTcGFuLCBTcGFuRXZlbnQgfSBmcm9tICcuLi90cmFjZS12aWV3ZXIvdHlwZXMnO1xuaW1wb3J0IHsgc2hvdWxkU2hvd1ZlcnRpY2FsTGluZSB9IGZyb20gJy4vZXZlbnQtY29sb3JzJztcbmltcG9ydCB7IGNhbGN1bGF0ZUR1cmF0aW9uLCBkYXRlVG9PdGVsVGltZSB9IGZyb20gJy4vdHJhY2UtdGltZS11dGlscyc7XG5cbmV4cG9ydCBjb25zdCBXT1JLRkxPV19MSUJSQVJZID0ge1xuICBuYW1lOiAnd29ya2Zsb3ctZGV2ZWxvcG1lbnQta2l0JyxcbiAgdmVyc2lvbjogJzQuMC4wJyxcbn07XG5cbi8qKlxuICogRXZlbnQgdHlwZXMgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIGFzIHZpc3VhbCBtYXJrZXJzIGluIHRoZSB0cmFjZSB2aWV3ZXJcbiAqL1xuY29uc3QgTUFSS0VSX0VWRU5UX1RZUEVTOiBTZXQ8RXZlbnRbJ2V2ZW50VHlwZSddPiA9IG5ldyBTZXQoW1xuICAnaG9va19jcmVhdGVkJyxcbiAgJ2hvb2tfcmVjZWl2ZWQnLFxuICAnaG9va19kaXNwb3NlZCcsXG4gICdzdGVwX3N0YXJ0ZWQnLFxuICAnc3RlcF9yZXRyeWluZycsXG4gICdzdGVwX2ZhaWxlZCcsXG4gICdydW5fZmFpbGVkJyxcbiAgJ3dhaXRfY3JlYXRlZCcsXG4gICd3YWl0X2NvbXBsZXRlZCcsXG5dKTtcblxuLyoqXG4gKiBDb252ZXJ0IHdvcmtmbG93IGV2ZW50cyB0byBzcGFuIGV2ZW50c1xuICogT25seSBpbmNsdWRlcyBldmVudHMgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIGFzIG1hcmtlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRFdmVudHNUb1NwYW5FdmVudHMoXG4gIGV2ZW50czogRXZlbnRbXSxcbiAgZmlsdGVyVHlwZXMgPSB0cnVlXG4pOiBTcGFuRXZlbnRbXSB7XG4gIHJldHVybiBldmVudHNcbiAgICAuZmlsdGVyKChldmVudCkgPT5cbiAgICAgIGZpbHRlclR5cGVzID8gTUFSS0VSX0VWRU5UX1RZUEVTLmhhcyhldmVudC5ldmVudFR5cGUpIDogdHJ1ZVxuICAgIClcbiAgICAubWFwKChldmVudCkgPT4gKHtcbiAgICAgIG5hbWU6IGV2ZW50LmV2ZW50VHlwZSxcbiAgICAgIHRpbWVzdGFtcDogZGF0ZVRvT3RlbFRpbWUoZXZlbnQuY3JlYXRlZEF0KSxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgZXZlbnRJZDogZXZlbnQuZXZlbnRJZCxcbiAgICAgICAgY29ycmVsYXRpb25JZDogZXZlbnQuY29ycmVsYXRpb25JZCxcbiAgICAgICAgZXZlbnREYXRhOiAnZXZlbnREYXRhJyBpbiBldmVudCA/IGV2ZW50LmV2ZW50RGF0YSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICAvLyBDb250cm9sIHdoZXRoZXIgdG8gc2hvdyB2ZXJ0aWNhbCBsaW5lIGluIHRpbWVsaW5lXG4gICAgICBzaG93VmVydGljYWxMaW5lOiBzaG91bGRTaG93VmVydGljYWxMaW5lKGV2ZW50LmV2ZW50VHlwZSksXG4gICAgfSkpO1xufVxuXG5leHBvcnQgY29uc3Qgd2FpdEV2ZW50c1RvV2FpdEVudGl0eSA9IChcbiAgZXZlbnRzOiBFdmVudFtdXG4pOiB7XG4gIHdhaXRJZDogc3RyaW5nO1xuICBydW5JZDogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHJlc3VtZUF0OiBEYXRlO1xuICBjb21wbGV0ZWRBdD86IERhdGU7XG59IHwgbnVsbCA9PiB7XG4gIGNvbnN0IHN0YXJ0RXZlbnQgPSBldmVudHMuZmluZCgoZXZlbnQpID0+IGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3dhaXRfY3JlYXRlZCcpO1xuICBpZiAoIXN0YXJ0RXZlbnQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBjb21wbGV0ZWRFdmVudCA9IGV2ZW50cy5maW5kKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnd2FpdF9jb21wbGV0ZWQnXG4gICk7XG4gIHJldHVybiB7XG4gICAgd2FpdElkOiBzdGFydEV2ZW50LmNvcnJlbGF0aW9uSWQsXG4gICAgcnVuSWQ6IHN0YXJ0RXZlbnQucnVuSWQsXG4gICAgY3JlYXRlZEF0OiBzdGFydEV2ZW50LmNyZWF0ZWRBdCxcbiAgICByZXN1bWVBdDogc3RhcnRFdmVudC5ldmVudERhdGE/LnJlc3VtZUF0LFxuICAgIGNvbXBsZXRlZEF0OiBjb21wbGV0ZWRFdmVudD8uY3JlYXRlZEF0LFxuICB9O1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIHdvcmtmbG93IFdhaXQgdG8gYW4gT3BlblRlbGVtZXRyeSBTcGFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3YWl0VG9TcGFuKGV2ZW50czogRXZlbnRbXSwgbWF4RW5kVGltZTogRGF0ZSk6IFNwYW4gfCBudWxsIHtcbiAgY29uc3Qgd2FpdCA9IHdhaXRFdmVudHNUb1dhaXRFbnRpdHkoZXZlbnRzKTtcbiAgaWYgKCF3YWl0KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3Qgc3RhcnRUaW1lID0gd2FpdC5jcmVhdGVkQXQ7XG4gIGNvbnN0IGVuZFRpbWUgPSB3YWl0LmNvbXBsZXRlZEF0ID8/IG1heEVuZFRpbWU7XG4gIGNvbnN0IHN0YXJ0ID0gZGF0ZVRvT3RlbFRpbWUoc3RhcnRUaW1lKTtcbiAgY29uc3QgZW5kID0gZGF0ZVRvT3RlbFRpbWUoZW5kVGltZSk7XG4gIGNvbnN0IGR1cmF0aW9uID0gY2FsY3VsYXRlRHVyYXRpb24oc3RhcnRUaW1lLCBlbmRUaW1lKTtcbiAgY29uc3Qgc3BhbkV2ZW50cyA9IGNvbnZlcnRFdmVudHNUb1NwYW5FdmVudHMoZXZlbnRzLCBmYWxzZSk7XG4gIHJldHVybiB7XG4gICAgc3BhbklkOiB3YWl0LndhaXRJZCxcbiAgICBuYW1lOiAnc2xlZXAnLFxuICAgIGtpbmQ6IDEsIC8vIElOVEVSTkFMIHNwYW4ga2luZFxuICAgIHJlc291cmNlOiAnc2xlZXAnLFxuICAgIGxpYnJhcnk6IFdPUktGTE9XX0xJQlJBUlksXG4gICAgc3RhdHVzOiB7IGNvZGU6IDAgfSxcbiAgICB0cmFjZUZsYWdzOiAxLFxuICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgIHJlc291cmNlOiAnc2xlZXAnIGFzIGNvbnN0LFxuICAgICAgZGF0YTogd2FpdCwgLy8gd2FpdCBpcyBhIHBsYWluIG9iamVjdCBidWlsdCBmcm9tIGV2ZW50cywgbm8gbm9uLWNsb25lYWJsZSB0eXBlc1xuICAgIH0sXG4gICAgbGlua3M6IFtdLFxuICAgIGV2ZW50czogc3BhbkV2ZW50cyxcbiAgICBkdXJhdGlvbixcbiAgICBzdGFydFRpbWU6IHN0YXJ0LFxuICAgIGVuZFRpbWU6IGVuZCxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHN0ZXBFdmVudHNUb1N0ZXBFbnRpdHkgPSAoXG4gIGV2ZW50czogRXZlbnRbXVxuKToge1xuICBzdGVwSWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgc3RlcE5hbWU6IHN0cmluZztcbiAgc3RhdHVzOiAncGVuZGluZycgfCAncnVubmluZycgfCAnY29tcGxldGVkJyB8ICdmYWlsZWQnIHwgJ2NhbmNlbGxlZCc7XG4gIGF0dGVtcHQ6IG51bWJlcjtcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICB1cGRhdGVkQXQ6IERhdGU7XG4gIHN0YXJ0ZWRBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbiAgc3BlY1ZlcnNpb24/OiBudW1iZXI7XG59IHwgbnVsbCA9PiB7XG4gIGNvbnN0IGNyZWF0ZWRFdmVudCA9IGV2ZW50cy5maW5kKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnc3RlcF9jcmVhdGVkJ1xuICApO1xuXG4gIC8vIFYxIHJ1bnMgZG9uJ3QgZW1pdCBzdGVwX2NyZWF0ZWQgZXZlbnRzLiBGYWxsIGJhY2sgdG8gdGhlIGVhcmxpZXN0IGV2ZW50XG4gIC8vIGluIHRoZSBncm91cCBzbyB3ZSBjYW4gc3RpbGwgYnVpbGQgYSBzdGVwIHNwYW4uXG4gIGNvbnN0IGFuY2hvckV2ZW50ID0gY3JlYXRlZEV2ZW50ID8/IGV2ZW50c1swXTtcbiAgaWYgKCFhbmNob3JFdmVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gV2FsayBldmVudHMgaW4gb3JkZXIgdG8gZGVyaXZlIHN0YXR1cywgYXR0ZW1wdCBjb3VudCwgYW5kIHRpbWVzdGFtcHMuXG4gIC8vIEhhbmRsZXMgYm90aCBzdGVwX3JldHJ5aW5nIGFuZCBjb25zZWN1dGl2ZSBzdGVwX3N0YXJ0ZWQgYXMgcmV0cnkgc2lnbmFscy5cbiAgbGV0IHN0YXR1czogJ3BlbmRpbmcnIHwgJ3J1bm5pbmcnIHwgJ2NvbXBsZXRlZCcgfCAnZmFpbGVkJyB8ICdjYW5jZWxsZWQnID1cbiAgICAncGVuZGluZyc7XG4gIGxldCBhdHRlbXB0ID0gMDtcbiAgbGV0IHN0YXJ0ZWRBdDogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNvbXBsZXRlZEF0OiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIGZvciAoY29uc3QgZSBvZiBldmVudHMpIHtcbiAgICBzd2l0Y2ggKGUuZXZlbnRUeXBlKSB7XG4gICAgICBjYXNlICdzdGVwX3N0YXJ0ZWQnOlxuICAgICAgICBzdGF0dXMgPSAncnVubmluZyc7XG4gICAgICAgIGF0dGVtcHQgKz0gMTtcbiAgICAgICAgaWYgKCFzdGFydGVkQXQpIHN0YXJ0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICBjb21wbGV0ZWRBdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdGVwX2NvbXBsZXRlZCc6XG4gICAgICAgIHN0YXR1cyA9ICdjb21wbGV0ZWQnO1xuICAgICAgICBjb21wbGV0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0ZXBfZmFpbGVkJzpcbiAgICAgICAgc3RhdHVzID0gJ2ZhaWxlZCc7XG4gICAgICAgIGNvbXBsZXRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RlcF9yZXRyeWluZyc6XG4gICAgICAgIHN0YXR1cyA9ICdwZW5kaW5nJztcbiAgICAgICAgY29tcGxldGVkQXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEVuc3VyZSBhdCBsZWFzdCBhdHRlbXB0IDEgaWYgd2UgbmV2ZXIgc2F3IHN0ZXBfc3RhcnRlZFxuICBpZiAoYXR0ZW1wdCA9PT0gMCkgYXR0ZW1wdCA9IDE7XG5cbiAgY29uc3QgbGFzdEV2ZW50ID0gZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXTtcbiAgcmV0dXJuIHtcbiAgICBzdGVwSWQ6IGFuY2hvckV2ZW50LmNvcnJlbGF0aW9uSWQgPz8gJycsXG4gICAgcnVuSWQ6IGFuY2hvckV2ZW50LnJ1bklkLFxuICAgIHN0ZXBOYW1lOiBjcmVhdGVkRXZlbnQ/LmV2ZW50RGF0YT8uc3RlcE5hbWUgPz8gJycsXG4gICAgc3RhdHVzLFxuICAgIGF0dGVtcHQsXG4gICAgY3JlYXRlZEF0OiBhbmNob3JFdmVudC5jcmVhdGVkQXQsXG4gICAgdXBkYXRlZEF0OiBsYXN0RXZlbnQ/LmNyZWF0ZWRBdCA/PyBhbmNob3JFdmVudC5jcmVhdGVkQXQsXG4gICAgc3RhcnRlZEF0LFxuICAgIGNvbXBsZXRlZEF0LFxuICAgIHNwZWNWZXJzaW9uOiBhbmNob3JFdmVudC5zcGVjVmVyc2lvbixcbiAgfTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgc3RlcCBldmVudHMgdG8gYW4gT3BlblRlbGVtZXRyeSBTcGFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGVwVG9TcGFuKHN0ZXBFdmVudHM6IEV2ZW50W10sIG1heEVuZFRpbWU6IERhdGUpOiBTcGFuIHwgbnVsbCB7XG4gIGNvbnN0IHN0ZXAgPSBzdGVwRXZlbnRzVG9TdGVwRW50aXR5KHN0ZXBFdmVudHMpO1xuICBpZiAoIXN0ZXApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBwYXJzZWROYW1lID0gcGFyc2VTdGVwTmFtZShTdHJpbmcoc3RlcC5zdGVwTmFtZSkpO1xuXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSB7XG4gICAgcmVzb3VyY2U6ICdzdGVwJyBhcyBjb25zdCxcbiAgICBkYXRhOiBzdGVwLFxuICB9O1xuXG4gIGNvbnN0IHJlc291cmNlID0gJ3N0ZXAnO1xuICBjb25zdCBlbmRUaW1lID0gbmV3IERhdGUoc3RlcC5jb21wbGV0ZWRBdCA/PyBtYXhFbmRUaW1lKTtcblxuICAvLyBJbmNsdWRlIEFMTCBjb3JyZWxhdGVkIGV2ZW50cyBvbiB0aGUgc3BhbiBzbyB0aGUgc2lkZWJhciBkZXRhaWwgdmlld1xuICAvLyBjYW4gZGlzcGxheSB0aGVtLiBUaGUgdGltZWxpbmUgdXNlcyB0aGUgYHNob3dWZXJ0aWNhbExpbmVgIGZsYWcgdG9cbiAgLy8gZGV0ZXJtaW5lIHdoaWNoIGV2ZW50cyBhcHBlYXIgYXMgbWFya2Vycy5cbiAgY29uc3QgZXZlbnRzID0gY29udmVydEV2ZW50c1RvU3BhbkV2ZW50cyhzdGVwRXZlbnRzLCBmYWxzZSk7XG5cbiAgLy8gVXNlIGNyZWF0ZWRBdCBhcyBzcGFuIHN0YXJ0IHRpbWUsIHdpdGggYWN0aXZlU3RhcnRUaW1lIGZvciB3aGVuIGV4ZWN1dGlvbiBiZWdhblxuICAvLyBUaGlzIGFsbG93cyB2aXN1YWxpemF0aW9uIG9mIHRoZSBcInF1ZXVlZFwiIHBlcmlvZCBiZWZvcmUgZXhlY3V0aW9uXG4gIGNvbnN0IHNwYW5TdGFydFRpbWUgPSBuZXcgRGF0ZShzdGVwLmNyZWF0ZWRBdCk7XG4gIGxldCBhY3RpdmVTdGFydFRpbWUgPSBzdGVwLnN0YXJ0ZWRBdCA/IG5ldyBEYXRlKHN0ZXAuc3RhcnRlZEF0KSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZmlyc3RTdGFydEV2ZW50ID0gc3RlcEV2ZW50cy5maW5kKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnc3RlcF9zdGFydGVkJ1xuICApO1xuICBpZiAoZmlyc3RTdGFydEV2ZW50KSB7XG4gICAgLy8gYHN0ZXAuc3RhcnRlZEF0YCBpcyB0aGUgc2VydmVyLXNpZGUgY3JlYXRpb24gdGltZXN0YW1wLCBhbmQgYGV2ZW50LmNyZWF0ZWRBdGAgaXNcbiAgICAvLyB0aGUgY2xpZW50LXNpZGUgY3JlYXRpb24gdGltZXN0YW1wLiBGb3Igbm93LCB0byBhbGlnbiB0aGUgZXZlbnQgbWFya2VyIHdpdGggdGhlXG4gICAgLy8gbGluZSB3ZSBzaG93IGZvciBzdGVwLnN0YXJ0ZWRBdCwgd2Ugb3ZlcndyaXRlIGhlcmUgdG8gYWx3YXlzIHVzZSBjbGllbnQtc2lkZSB0aW1lLlxuICAgIGFjdGl2ZVN0YXJ0VGltZSA9IG5ldyBEYXRlKGZpcnN0U3RhcnRFdmVudC5jcmVhdGVkQXQpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzcGFuSWQ6IFN0cmluZyhzdGVwLnN0ZXBJZCksXG4gICAgbmFtZTogcGFyc2VkTmFtZT8uc2hvcnROYW1lID8/ICcnLFxuICAgIGtpbmQ6IDEsIC8vIElOVEVSTkFMIHNwYW4ga2luZFxuICAgIHJlc291cmNlLFxuICAgIGxpYnJhcnk6IFdPUktGTE9XX0xJQlJBUlksXG4gICAgc3RhdHVzOiB7IGNvZGU6IDAgfSxcbiAgICB0cmFjZUZsYWdzOiAxLFxuICAgIGF0dHJpYnV0ZXMsXG4gICAgbGlua3M6IFtdLFxuICAgIGV2ZW50cyxcbiAgICBzdGFydFRpbWU6IGRhdGVUb090ZWxUaW1lKHNwYW5TdGFydFRpbWUpLFxuICAgIGVuZFRpbWU6IGRhdGVUb090ZWxUaW1lKGVuZFRpbWUpLFxuICAgIGR1cmF0aW9uOiBjYWxjdWxhdGVEdXJhdGlvbihzcGFuU3RhcnRUaW1lLCBlbmRUaW1lKSxcbiAgICAvLyBPbmx5IHNldCBhY3RpdmVTdGFydFRpbWUgaWYgaXQgZGlmZmVycyBmcm9tIHN0YXJ0VGltZSAoaS5lLiwgdGhlcmUgd2FzIGEgcXVldWVkIHBlcmlvZClcbiAgICBhY3RpdmVTdGFydFRpbWU6XG4gICAgICBhY3RpdmVTdGFydFRpbWUgJiYgYWN0aXZlU3RhcnRUaW1lLmdldFRpbWUoKSA+IHNwYW5TdGFydFRpbWUuZ2V0VGltZSgpXG4gICAgICAgID8gZGF0ZVRvT3RlbFRpbWUoYWN0aXZlU3RhcnRUaW1lKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGhvb2tFdmVudHNUb0hvb2tFbnRpdHkgPSAoXG4gIGV2ZW50czogRXZlbnRbXVxuKToge1xuICBob29rSWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogRGF0ZTtcbiAgcmVjZWl2ZWRDb3VudDogbnVtYmVyO1xuICBsYXN0UmVjZWl2ZWRBdD86IERhdGU7XG4gIGRpc3Bvc2VkQXQ/OiBEYXRlO1xufSB8IG51bGwgPT4ge1xuICBjb25zdCBjcmVhdGVkRXZlbnQgPSBldmVudHMuZmluZChcbiAgICAoZXZlbnQpID0+IGV2ZW50LmV2ZW50VHlwZSA9PT0gJ2hvb2tfY3JlYXRlZCdcbiAgKTtcbiAgaWYgKCFjcmVhdGVkRXZlbnQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCByZWNlaXZlZEV2ZW50cyA9IGV2ZW50cy5maWx0ZXIoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICdob29rX3JlY2VpdmVkJ1xuICApO1xuICBjb25zdCBkaXNwb3NlZEV2ZW50cyA9IGV2ZW50cy5maWx0ZXIoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICdob29rX2Rpc3Bvc2VkJ1xuICApO1xuICBjb25zdCBsYXN0UmVjZWl2ZWRFdmVudCA9IHJlY2VpdmVkRXZlbnRzLmF0KC0xKTtcbiAgcmV0dXJuIHtcbiAgICBob29rSWQ6IGNyZWF0ZWRFdmVudC5jb3JyZWxhdGlvbklkLFxuICAgIHJ1bklkOiBjcmVhdGVkRXZlbnQucnVuSWQsXG4gICAgdG9rZW46IGNyZWF0ZWRFdmVudC5ldmVudERhdGE/LnRva2VuLFxuICAgIGNyZWF0ZWRBdDogY3JlYXRlZEV2ZW50LmNyZWF0ZWRBdCxcbiAgICByZWNlaXZlZENvdW50OiByZWNlaXZlZEV2ZW50cy5sZW5ndGgsXG4gICAgbGFzdFJlY2VpdmVkQXQ6IGxhc3RSZWNlaXZlZEV2ZW50Py5jcmVhdGVkQXQgfHwgdW5kZWZpbmVkLFxuICAgIGRpc3Bvc2VkQXQ6IGRpc3Bvc2VkRXZlbnRzLmF0KC0xKT8uY3JlYXRlZEF0IHx8IHVuZGVmaW5lZCxcbiAgfTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgYSB3b3JrZmxvdyBIb29rIHRvIGFuIE9wZW5UZWxlbWV0cnkgU3BhblxuICovXG5leHBvcnQgZnVuY3Rpb24gaG9va1RvU3Bhbihob29rRXZlbnRzOiBFdmVudFtdLCBtYXhFbmRUaW1lOiBEYXRlKTogU3BhbiB8IG51bGwge1xuICBjb25zdCBob29rID0gaG9va0V2ZW50c1RvSG9va0VudGl0eShob29rRXZlbnRzKTtcbiAgaWYgKCFob29rKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBDb252ZXJ0IGhvb2stcmVsYXRlZCBldmVudHMgdG8gc3BhbiBldmVudHNcbiAgY29uc3QgZXZlbnRzID0gY29udmVydEV2ZW50c1RvU3BhbkV2ZW50cyhob29rRXZlbnRzLCBmYWxzZSk7XG5cbiAgY29uc3QgZW5kVGltZSA9IGhvb2suZGlzcG9zZWRBdCB8fCBtYXhFbmRUaW1lO1xuXG4gIHJldHVybiB7XG4gICAgc3BhbklkOiBTdHJpbmcoaG9vay5ob29rSWQpLFxuICAgIG5hbWU6IGhvb2sudG9rZW4gPz8gU3RyaW5nKGhvb2suaG9va0lkKSxcbiAgICBraW5kOiAxLCAvLyBJTlRFUk5BTCBzcGFuIGtpbmRcbiAgICByZXNvdXJjZTogJ2hvb2snLFxuICAgIGxpYnJhcnk6IFdPUktGTE9XX0xJQlJBUlksXG4gICAgc3RhdHVzOiB7IGNvZGU6IDEgfSxcbiAgICB0cmFjZUZsYWdzOiAxLFxuICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgIHJlc291cmNlOiAnaG9vaycgYXMgY29uc3QsXG4gICAgICBkYXRhOiBob29rLFxuICAgIH0sXG4gICAgbGlua3M6IFtdLFxuICAgIGV2ZW50cyxcbiAgICBzdGFydFRpbWU6IGRhdGVUb090ZWxUaW1lKGhvb2suY3JlYXRlZEF0KSxcbiAgICBlbmRUaW1lOiBkYXRlVG9PdGVsVGltZShlbmRUaW1lKSxcbiAgICBkdXJhdGlvbjogY2FsY3VsYXRlRHVyYXRpb24oaG9vay5jcmVhdGVkQXQsIGVuZFRpbWUpLFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSByb290IHNwYW4gZm9yIHRoZSB3b3JrZmxvdyBydW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1blRvU3BhbihcbiAgcnVuOiBXb3JrZmxvd1J1bixcbiAgcnVuRXZlbnRzOiBFdmVudFtdLFxuICBub3dUaW1lPzogRGF0ZVxuKTogU3BhbiB7XG4gIGNvbnN0IG5vdyA9IG5vd1RpbWUgPz8gbmV3IERhdGUoKTtcblxuICAvLyBPbmx5IGVtYmVkIGlkZW50aWZpY2F0aW9uIGZpZWxkcyDigJQgbm90IHRoZSBmdWxsIG9iamVjdCB3aXRoXG4gIC8vIGlucHV0L291dHB1dC9lcnJvciB3aGljaCBtYXkgY29udGFpbiBub24tY2xvbmVhYmxlIHR5cGVzLlxuICBjb25zdCB7IGlucHV0OiBfaSwgb3V0cHV0OiBfbywgZXJyb3I6IF9lLCAuLi5ydW5JZGVudGl0eSB9ID0gcnVuO1xuICBjb25zdCBhdHRyaWJ1dGVzID0ge1xuICAgIHJlc291cmNlOiAncnVuJyBhcyBjb25zdCxcbiAgICBkYXRhOiBydW5JZGVudGl0eSxcbiAgfTtcblxuICAvLyBVc2UgY3JlYXRlZEF0IGFzIHNwYW4gc3RhcnQgdGltZSwgd2l0aCBhY3RpdmVTdGFydFRpbWUgZm9yIHdoZW4gZXhlY3V0aW9uIGJlZ2FuXG4gIGNvbnN0IHNwYW5TdGFydFRpbWUgPSBuZXcgRGF0ZShydW4uY3JlYXRlZEF0KTtcbiAgY29uc3QgYWN0aXZlU3RhcnRUaW1lID0gcnVuLnN0YXJ0ZWRBdCA/IG5ldyBEYXRlKHJ1bi5zdGFydGVkQXQpIDogdW5kZWZpbmVkO1xuICBjb25zdCBlbmRUaW1lID0gcnVuLmNvbXBsZXRlZEF0ID8/IG5vdztcblxuICAvLyBDb252ZXJ0IHJ1bi1sZXZlbCBldmVudHMgdG8gc3BhbiBldmVudHNcbiAgY29uc3QgZXZlbnRzID0gY29udmVydEV2ZW50c1RvU3BhbkV2ZW50cyhydW5FdmVudHMsIGZhbHNlKTtcblxuICByZXR1cm4ge1xuICAgIHNwYW5JZDogU3RyaW5nKHJ1bi5ydW5JZCksXG4gICAgbmFtZTogU3RyaW5nKHBhcnNlV29ya2Zsb3dOYW1lKHJ1bi53b3JrZmxvd05hbWUpPy5zaG9ydE5hbWUgPz8gJz8nKSxcbiAgICBraW5kOiAxLCAvLyBJTlRFUk5BTCBzcGFuIGtpbmRcbiAgICByZXNvdXJjZTogJ3J1bicsXG4gICAgbGlicmFyeTogV09SS0ZMT1dfTElCUkFSWSxcbiAgICBzdGF0dXM6IHsgY29kZTogMCB9LFxuICAgIHRyYWNlRmxhZ3M6IDEsXG4gICAgYXR0cmlidXRlcyxcbiAgICBsaW5rczogW10sXG4gICAgZXZlbnRzLFxuICAgIHN0YXJ0VGltZTogZGF0ZVRvT3RlbFRpbWUoc3BhblN0YXJ0VGltZSksXG4gICAgZW5kVGltZTogZGF0ZVRvT3RlbFRpbWUoZW5kVGltZSksXG4gICAgZHVyYXRpb246IGNhbGN1bGF0ZUR1cmF0aW9uKHNwYW5TdGFydFRpbWUsIGVuZFRpbWUpLFxuICAgIC8vIE9ubHkgc2V0IGFjdGl2ZVN0YXJ0VGltZSBpZiBpdCBkaWZmZXJzIGZyb20gc3RhcnRUaW1lIChpLmUuLCB0aGVyZSB3YXMgYSBxdWV1ZWQgcGVyaW9kKVxuICAgIGFjdGl2ZVN0YXJ0VGltZTpcbiAgICAgIGFjdGl2ZVN0YXJ0VGltZSAmJiBhY3RpdmVTdGFydFRpbWUuZ2V0VGltZSgpID4gc3BhblN0YXJ0VGltZS5nZXRUaW1lKClcbiAgICAgICAgPyBkYXRlVG9PdGVsVGltZShhY3RpdmVTdGFydFRpbWUpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICB9O1xufVxuIl19
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2Utc3Bhbi1jb25zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy93b3JrZmxvdy10cmFjZXMvdHJhY2Utc3Bhbi1jb25zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLElBQUksRUFBRSwwQkFBMEI7SUFDaEMsT0FBTyxFQUFFLE9BQU87Q0FDakIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBNEIsSUFBSSxHQUFHLENBQUM7SUFDMUQsY0FBYztJQUNkLGVBQWU7SUFDZixlQUFlO0lBQ2YsY0FBYztJQUNkLGVBQWU7SUFDZixhQUFhO0lBQ2IsWUFBWTtJQUNaLGNBQWM7SUFDZCxnQkFBZ0I7Q0FDakIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsTUFBZSxFQUNmLFVBQWdDLEVBQ2IsRUFBRTtJQUNyQixLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ25DLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDNUQsSUFBSSxLQUFLO1lBQUUsT0FBTyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQ3JCLE1BQVMsRUFDVCxVQUEyQyxF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LEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRTtZQUNwRSxDQUFDLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQztZQUNqQyxDQUFDLENBQUMsU0FBUztLQUNoQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRnVuY3Rpb25zIGZvciBjb25zdHJ1Y3RpbmcgT3BlblRlbGVtZXRyeSBzcGFucyBmcm9tIHdvcmtmbG93IGVudGl0aWVzXG4gKi9cblxuaW1wb3J0IHsgcGFyc2VTdGVwTmFtZSwgcGFyc2VXb3JrZmxvd05hbWUgfSBmcm9tICdAd29ya2Zsb3cvdXRpbHMvcGFyc2UtbmFtZSc7XG5pbXBvcnQgdHlwZSB7IEV2ZW50LCBXb3JrZmxvd1J1biB9IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5pbXBvcnQgdHlwZSB7IFNwYW4sIFNwYW5FdmVudCB9IGZyb20gJy4uL3RyYWNlLXZpZXdlci90eXBlcyc7XG5pbXBvcnQgeyBzaG91bGRTaG93VmVydGljYWxMaW5lIH0gZnJvbSAnLi9ldmVudC1jb2xvcnMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlRHVyYXRpb24sIGRhdGVUb090ZWxUaW1lIH0gZnJvbSAnLi90cmFjZS10aW1lLXV0aWxzJztcblxuZXhwb3J0IGNvbnN0IFdPUktGTE9XX0xJQlJBUlkgPSB7XG4gIG5hbWU6ICd3b3JrZmxvdy1kZXZlbG9wbWVudC1raXQnLFxuICB2ZXJzaW9uOiAnNC4wLjAnLFxufTtcblxuLyoqXG4gKiBFdmVudCB0eXBlcyB0aGF0IHNob3VsZCBiZSBkaXNwbGF5ZWQgYXMgdmlzdWFsIG1hcmtlcnMgaW4gdGhlIHRyYWNlIHZpZXdlclxuICovXG5jb25zdCBNQVJLRVJfRVZFTlRfVFlQRVM6IFNldDxFdmVudFsnZXZlbnRUeXBlJ10+ID0gbmV3IFNldChbXG4gICdob29rX2NyZWF0ZWQnLFxuICAnaG9va19yZWNlaXZlZCcsXG4gICdob29rX2Rpc3Bvc2VkJyxcbiAgJ3N0ZXBfc3RhcnRlZCcsXG4gICdzdGVwX3JldHJ5aW5nJyxcbiAgJ3N0ZXBfZmFpbGVkJyxcbiAgJ3J1bl9mYWlsZWQnLFxuICAnd2FpdF9jcmVhdGVkJyxcbiAgJ3dhaXRfY29tcGxldGVkJyxcbl0pO1xuXG5jb25zdCBmaW5kRXZlbnRCeVR5cGUgPSAoXG4gIGV2ZW50czogRXZlbnRbXSxcbiAgZXZlbnRUeXBlczogRXZlbnRbJ2V2ZW50VHlwZSddW11cbik6IEV2ZW50IHwgdW5kZWZpbmVkID0+IHtcbiAgZm9yIChjb25zdCBldmVudFR5cGUgb2YgZXZlbnRUeXBlcykge1xuICAgIGNvbnN0IGV2ZW50ID0gZXZlbnRzLmZpbmQoKGUpID0+IGUuZXZlbnRUeXBlID09PSBldmVudFR5cGUpO1xuICAgIGlmIChldmVudCkgcmV0dXJuIGV2ZW50O1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCB3aXRoT2NjdXJyZWRBdCA9IDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgZW50aXR5OiBULFxuICBvY2N1cnJlZEF0OiBFdmVudFsnb2NjdXJyZWRBdCddIHwgdW5kZWZpbmVkXG4pOiBUICYgeyBvY2N1cnJlZEF0PzogRGF0ZSB9ID0+IHtcbiAgaWYgKCFvY2N1cnJlZEF0IHx8IChlbnRpdHkgYXMgeyBvY2N1cnJlZEF0PzogdW5rbm93biB9KS5vY2N1cnJlZEF0ICE9IG51bGwpIHtcbiAgICByZXR1cm4gZW50aXR5O1xuICB9XG4gIHJldHVybiB7IC4uLmVudGl0eSwgb2NjdXJyZWRBdCB9O1xufTtcblxuLyoqXG4gKiBDb252ZXJ0IHdvcmtmbG93IGV2ZW50cyB0byBzcGFuIGV2ZW50c1xuICogT25seSBpbmNsdWRlcyBldmVudHMgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIGFzIG1hcmtlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRFdmVudHNUb1NwYW5FdmVudHMoXG4gIGV2ZW50czogRXZlbnRbXSxcbiAgZmlsdGVyVHlwZXMgPSB0cnVlXG4pOiBTcGFuRXZlbnRbXSB7XG4gIHJldHVybiBldmVudHNcbiAgICAuZmlsdGVyKChldmVudCkgPT5cbiAgICAgIGZpbHRlclR5cGVzID8gTUFSS0VSX0VWRU5UX1RZUEVTLmhhcyhldmVudC5ldmVudFR5cGUpIDogdHJ1ZVxuICAgIClcbiAgICAubWFwKChldmVudCkgPT4gKHtcbiAgICAgIG5hbWU6IGV2ZW50LmV2ZW50VHlwZSxcbiAgICAgIHRpbWVzdGFtcDogZGF0ZVRvT3RlbFRpbWUoZXZlbnQuY3JlYXRlZEF0KSxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgZXZlbnRJZDogZXZlbnQuZXZlbnRJZCxcbiAgICAgICAgY29ycmVsYXRpb25JZDogZXZlbnQuY29ycmVsYXRpb25JZCxcbiAgICAgICAgZXZlbnREYXRhOiAnZXZlbnREYXRhJyBpbiBldmVudCA/IGV2ZW50LmV2ZW50RGF0YSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICAvLyBDb250cm9sIHdoZXRoZXIgdG8gc2hvdyB2ZXJ0aWNhbCBsaW5lIGluIHRpbWVsaW5lXG4gICAgICBzaG93VmVydGljYWxMaW5lOiBzaG91bGRTaG93VmVydGljYWxMaW5lKGV2ZW50LmV2ZW50VHlwZSksXG4gICAgfSkpO1xufVxuXG5leHBvcnQgY29uc3Qgd2FpdEV2ZW50c1RvV2FpdEVudGl0eSA9IChcbiAgZXZlbnRzOiBFdmVudFtdXG4pOiB7XG4gIHdhaXRJZDogc3RyaW5nO1xuICBydW5JZDogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIG9jY3VycmVkQXQ/OiBEYXRlO1xuICByZXN1bWVBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbn0gfCBudWxsID0+IHtcbiAgY29uc3Qgc3RhcnRFdmVudCA9IGV2ZW50cy5maW5kKChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnd2FpdF9jcmVhdGVkJyk7XG4gIGlmICghc3RhcnRFdmVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGNvbXBsZXRlZEV2ZW50ID0gZXZlbnRzLmZpbmQoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICd3YWl0X2NvbXBsZXRlZCdcbiAgKTtcbiAgcmV0dXJuIHdpdGhPY2N1cnJlZEF0KFxuICAgIHtcbiAgICAgIHdhaXRJZDogc3RhcnRFdmVudC5jb3JyZWxhdGlvbklkLFxuICAgICAgcnVuSWQ6IHN0YXJ0RXZlbnQucnVuSWQsXG4gICAgICBjcmVhdGVkQXQ6IHN0YXJ0RXZlbnQuY3JlYXRlZEF0LFxuICAgICAgcmVzdW1lQXQ6IHN0YXJ0RXZlbnQuZXZlbnREYXRhPy5yZXN1bWVBdFxuICAgICAgICA/IG5ldyBEYXRlKHN0YXJ0RXZlbnQuZXZlbnREYXRhLnJlc3VtZUF0KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGNvbXBsZXRlZEF0OiBjb21wbGV0ZWRFdmVudD8uY3JlYXRlZEF0LFxuICAgIH0sXG4gICAgc3RhcnRFdmVudC5vY2N1cnJlZEF0XG4gICk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgd29ya2Zsb3cgV2FpdCB0byBhbiBPcGVuVGVsZW1ldHJ5IFNwYW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhaXRUb1NwYW4oZXZlbnRzOiBFdmVudFtdLCBtYXhFbmRUaW1lOiBEYXRlKTogU3BhbiB8IG51bGwge1xuICBjb25zdCB3YWl0ID0gd2FpdEV2ZW50c1RvV2FpdEVudGl0eShldmVudHMpO1xuICBpZiAoIXdhaXQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBzdGFydFRpbWUgPSB3YWl0LmNyZWF0ZWRBdDtcbiAgY29uc3QgZW5kVGltZSA9IHdhaXQuY29tcGxldGVkQXQgPz8gbWF4RW5kVGltZTtcbiAgY29uc3Qgc3RhcnQgPSBkYXRlVG9PdGVsVGltZShzdGFydFRpbWUpO1xuICBjb25zdCBlbmQgPSBkYXRlVG9PdGVsVGltZShlbmRUaW1lKTtcbiAgY29uc3QgZHVyYXRpb24gPSBjYWxjdWxhdGVEdXJhdGlvbihzdGFydFRpbWUsIGVuZFRpbWUpO1xuICBjb25zdCBzcGFuRXZlbnRzID0gY29udmVydEV2ZW50c1RvU3BhbkV2ZW50cyhldmVudHMsIGZhbHNlKTtcbiAgcmV0dXJuIHtcbiAgICBzcGFuSWQ6IHdhaXQud2FpdElkLFxuICAgIG5hbWU6ICdzbGVlcCcsXG4gICAga2luZDogMSwgLy8gSU5URVJOQUwgc3BhbiBraW5kXG4gICAgcmVzb3VyY2U6ICdzbGVlcCcsXG4gICAgbGlicmFyeTogV09SS0ZMT1dfTElCUkFSWSxcbiAgICBzdGF0dXM6IHsgY29kZTogMCB9LFxuICAgIHRyYWNlRmxhZ3M6IDEsXG4gICAgYXR0cmlidXRlczoge1xuICAgICAgcmVzb3VyY2U6ICdzbGVlcCcgYXMgY29uc3QsXG4gICAgICBkYXRhOiB3YWl0LCAvLyB3YWl0IGlzIGEgcGxhaW4gb2JqZWN0IGJ1aWx0IGZyb20gZXZlbnRzLCBubyBub24tY2xvbmVhYmxlIHR5cGVzXG4gICAgfSxcbiAgICBsaW5rczogW10sXG4gICAgZXZlbnRzOiBzcGFuRXZlbnRzLFxuICAgIGR1cmF0aW9uLFxuICAgIHN0YXJ0VGltZTogc3RhcnQsXG4gICAgZW5kVGltZTogZW5kLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3Qgc3RlcEV2ZW50c1RvU3RlcEVudGl0eSA9IChcbiAgZXZlbnRzOiBFdmVudFtdXG4pOiB7XG4gIHN0ZXBJZDogc3RyaW5nO1xuICBydW5JZDogc3RyaW5nO1xuICBzdGVwTmFtZTogc3RyaW5nO1xuICBzdGF0dXM6ICdwZW5kaW5nJyB8ICdydW5uaW5nJyB8ICdjb21wbGV0ZWQnIHwgJ2ZhaWxlZCcgfCAnY2FuY2VsbGVkJztcbiAgYXR0ZW1wdDogbnVtYmVyO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHVwZGF0ZWRBdDogRGF0ZTtcbiAgb2NjdXJyZWRBdD86IERhdGU7XG4gIHN0YXJ0ZWRBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbiAgc3BlY1ZlcnNpb24/OiBudW1iZXI7XG59IHwgbnVsbCA9PiB7XG4gIGNvbnN0IGNyZWF0ZWRFdmVudCA9IGV2ZW50cy5maW5kKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnc3RlcF9jcmVhdGVkJ1xuICApO1xuXG4gIC8vIFYxIHJ1bnMgZG9uJ3QgZW1pdCBzdGVwX2NyZWF0ZWQgZXZlbnRzLiBGYWxsIGJhY2sgdG8gdGhlIGVhcmxpZXN0IGV2ZW50XG4gIC8vIGluIHRoZSBncm91cCBzbyB3ZSBjYW4gc3RpbGwgYnVpbGQgYSBzdGVwIHNwYW4uXG4gIGNvbnN0IGFuY2hvckV2ZW50ID0gY3JlYXRlZEV2ZW50ID8/IGV2ZW50c1swXTtcbiAgaWYgKCFhbmNob3JFdmVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gV2FsayBldmVudHMgaW4gb3JkZXIgdG8gZGVyaXZlIHN0YXR1cywgYXR0ZW1wdCBjb3VudCwgYW5kIHRpbWVzdGFtcHMuXG4gIC8vIEhhbmRsZXMgYm90aCBzdGVwX3JldHJ5aW5nIGFuZCBjb25zZWN1dGl2ZSBzdGVwX3N0YXJ0ZWQgYXMgcmV0cnkgc2lnbmFscy5cbiAgbGV0IHN0YXR1czogJ3BlbmRpbmcnIHwgJ3J1bm5pbmcnIHwgJ2NvbXBsZXRlZCcgfCAnZmFpbGVkJyB8ICdjYW5jZWxsZWQnID1cbiAgICAncGVuZGluZyc7XG4gIGxldCBhdHRlbXB0ID0gMDtcbiAgbGV0IHN0YXJ0ZWRBdDogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNvbXBsZXRlZEF0OiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIGZvciAoY29uc3QgZSBvZiBldmVudHMpIHtcbiAgICBzd2l0Y2ggKGUuZXZlbnRUeXBlKSB7XG4gICAgICBjYXNlICdzdGVwX3N0YXJ0ZWQnOlxuICAgICAgICBzdGF0dXMgPSAncnVubmluZyc7XG4gICAgICAgIGF0dGVtcHQgKz0gMTtcbiAgICAgICAgaWYgKCFzdGFydGVkQXQpIHN0YXJ0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICBjb21wbGV0ZWRBdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdGVwX2NvbXBsZXRlZCc6XG4gICAgICAgIHN0YXR1cyA9ICdjb21wbGV0ZWQnO1xuICAgICAgICBjb21wbGV0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0ZXBfZmFpbGVkJzpcbiAgICAgICAgc3RhdHVzID0gJ2ZhaWxlZCc7XG4gICAgICAgIGNvbXBsZXRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RlcF9yZXRyeWluZyc6XG4gICAgICAgIHN0YXR1cyA9ICdwZW5kaW5nJztcbiAgICAgICAgY29tcGxldGVkQXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEVuc3VyZSBhdCBsZWFzdCBhdHRlbXB0IDEgaWYgd2UgbmV2ZXIgc2F3IHN0ZXBfc3RhcnRlZFxuICBpZiAoYXR0ZW1wdCA9PT0gMCkgYXR0ZW1wdCA9IDE7XG5cbiAgY29uc3QgbGFzdEV2ZW50ID0gZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXTtcbiAgY29uc3Qgb2NjdXJyZW5jZUV2ZW50ID1cbiAgICBmaW5kRXZlbnRCeVR5cGUoZXZlbnRzLCBbJ3N0ZXBfY3JlYXRlZCcsICdzdGVwX3N0YXJ0ZWQnXSkgPz8gYW5jaG9yRXZlbnQ7XG5cbiAgcmV0dXJuIHdpdGhPY2N1cnJlZEF0KFxuICAgIHtcbiAgICAgIHN0ZXBJZDogYW5jaG9yRXZlbnQuY29ycmVsYXRpb25JZCA/PyAnJyxcbiAgICAgIHJ1bklkOiBhbmNob3JFdmVudC5ydW5JZCxcbiAgICAgIHN0ZXBOYW1lOiBjcmVhdGVkRXZlbnQ/LmV2ZW50RGF0YT8uc3RlcE5hbWUgPz8gJycsXG4gICAgICBzdGF0dXMsXG4gICAgICBhdHRlbXB0LFxuICAgICAgY3JlYXRlZEF0OiBhbmNob3JFdmVudC5jcmVhdGVkQXQsXG4gICAgICB1cGRhdGVkQXQ6IGxhc3RFdmVudD8uY3JlYXRlZEF0ID8/IGFuY2hvckV2ZW50LmNyZWF0ZWRBdCxcbiAgICAgIHN0YXJ0ZWRBdCxcbiAgICAgIGNvbXBsZXRlZEF0LFxuICAgICAgc3BlY1ZlcnNpb246IGFuY2hvckV2ZW50LnNwZWNWZXJzaW9uLFxuICAgIH0sXG4gICAgb2NjdXJyZW5jZUV2ZW50Lm9jY3VycmVkQXRcbiAgKTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgc3RlcCBldmVudHMgdG8gYW4gT3BlblRlbGVtZXRyeSBTcGFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGVwVG9TcGFuKHN0ZXBFdmVudHM6IEV2ZW50W10sIG1heEVuZFRpbWU6IERhdGUpOiBTcGFuIHwgbnVsbCB7XG4gIGNvbnN0IHN0ZXAgPSBzdGVwRXZlbnRzVG9TdGVwRW50aXR5KHN0ZXBFdmVudHMpO1xuICBpZiAoIXN0ZXApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBwYXJzZWROYW1lID0gcGFyc2VTdGVwTmFtZShTdHJpbmcoc3RlcC5zdGVwTmFtZSkpO1xuXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSB7XG4gICAgcmVzb3VyY2U6ICdzdGVwJyBhcyBjb25zdCxcbiAgICBkYXRhOiBzdGVwLFxuICB9O1xuXG4gIGNvbnN0IHJlc291cmNlID0gJ3N0ZXAnO1xuICBjb25zdCBlbmRUaW1lID0gbmV3IERhdGUoc3RlcC5jb21wbGV0ZWRBdCA/PyBtYXhFbmRUaW1lKTtcblxuICAvLyBJbmNsdWRlIEFMTCBjb3JyZWxhdGVkIGV2ZW50cyBvbiB0aGUgc3BhbiBzbyB0aGUgc2lkZWJhciBkZXRhaWwgdmlld1xuICAvLyBjYW4gZGlzcGxheSB0aGVtLiBUaGUgdGltZWxpbmUgdXNlcyB0aGUgYHNob3dWZXJ0aWNhbExpbmVgIGZsYWcgdG9cbiAgLy8gZGV0ZXJtaW5lIHdoaWNoIGV2ZW50cyBhcHBlYXIgYXMgbWFya2Vycy5cbiAgY29uc3QgZXZlbnRzID0gY29udmVydEV2ZW50c1RvU3BhbkV2ZW50cyhzdGVwRXZlbnRzLCBmYWxzZSk7XG5cbiAgLy8gVXNlIGNyZWF0ZWRBdCBhcyBzcGFuIHN0YXJ0IHRpbWUsIHdpdGggYWN0aXZlU3RhcnRUaW1lIGZvciB3aGVuIGV4ZWN1dGlvbiBiZWdhblxuICAvLyBUaGlzIGFsbG93cyB2aXN1YWxpemF0aW9uIG9mIHRoZSBcInF1ZXVlZFwiIHBlcmlvZCBiZWZvcmUgZXhlY3V0aW9uXG4gIGNvbnN0IHNwYW5TdGFydFRpbWUgPSBuZXcgRGF0ZShzdGVwLmNyZWF0ZWRBdCk7XG4gIGxldCBhY3RpdmVTdGFydFRpbWUgPSBzdGVwLnN0YXJ0ZWRBdCA/IG5ldyBEYXRlKHN0ZXAuc3RhcnRlZEF0KSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZmlyc3RTdGFydEV2ZW50ID0gc3RlcEV2ZW50cy5maW5kKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnc3RlcF9zdGFydGVkJ1xuICApO1xuICBpZiAoZmlyc3RTdGFydEV2ZW50KSB7XG4gICAgLy8gYHN0ZXAuc3RhcnRlZEF0YCBpcyB0aGUgc2VydmVyLXNpZGUgY3JlYXRpb24gdGltZXN0YW1wLCBhbmQgYGV2ZW50LmNyZWF0ZWRBdGAgaXNcbiAgICAvLyB0aGUgY2xpZW50LXNpZGUgY3JlYXRpb24gdGltZXN0YW1wLiBGb3Igbm93LCB0byBhbGlnbiB0aGUgZXZlbnQgbWFya2VyIHdpdGggdGhlXG4gICAgLy8gbGluZSB3ZSBzaG93IGZvciBzdGVwLnN0YXJ0ZWRBdCwgd2Ugb3ZlcndyaXRlIGhlcmUgdG8gYWx3YXlzIHVzZSBjbGllbnQtc2lkZSB0aW1lLlxuICAgIGFjdGl2ZVN0YXJ0VGltZSA9IG5ldyBEYXRlKGZpcnN0U3RhcnRFdmVudC5jcmVhdGVkQXQpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzcGFuSWQ6IFN0cmluZyhzdGVwLnN0ZXBJZCksXG4gICAgbmFtZTogcGFyc2VkTmFtZT8uc2hvcnROYW1lID8/ICcnLFxuICAgIGtpbmQ6IDEsIC8vIElOVEVSTkFMIHNwYW4ga2luZFxuICAgIHJlc291cmNlLFxuICAgIGxpYnJhcnk6IFdPUktGTE9XX0xJQlJBUlksXG4gICAgc3RhdHVzOiB7IGNvZGU6IDAgfSxcbiAgICB0cmFjZUZsYWdzOiAxLFxuICAgIGF0dHJpYnV0ZXMsXG4gICAgbGlua3M6IFtdLFxuICAgIGV2ZW50cyxcbiAgICBzdGFydFRpbWU6IGRhdGVUb090ZWxUaW1lKHNwYW5TdGFydFRpbWUpLFxuICAgIGVuZFRpbWU6IGRhdGVUb090ZWxUaW1lKGVuZFRpbWUpLFxuICAgIGR1cmF0aW9uOiBjYWxjdWxhdGVEdXJhdGlvbihzcGFuU3RhcnRUaW1lLCBlbmRUaW1lKSxcbiAgICAvLyBPbmx5IHNldCBhY3RpdmVTdGFydFRpbWUgaWYgaXQgZGlmZmVycyBmcm9tIHN0YXJ0VGltZSAoaS5lLiwgdGhlcmUgd2FzIGEgcXVldWVkIHBlcmlvZClcbiAgICBhY3RpdmVTdGFydFRpbWU6XG4gICAgICBhY3RpdmVTdGFydFRpbWUgJiYgYWN0aXZlU3RhcnRUaW1lLmdldFRpbWUoKSA+IHNwYW5TdGFydFRpbWUuZ2V0VGltZSgpXG4gICAgICAgID8gZGF0ZVRvT3RlbFRpbWUoYWN0aXZlU3RhcnRUaW1lKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGhvb2tFdmVudHNUb0hvb2tFbnRpdHkgPSAoXG4gIGV2ZW50czogRXZlbnRbXVxuKToge1xuICBob29rSWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogRGF0ZTtcbiAgb2NjdXJyZWRBdD86IERhdGU7XG4gIHJlY2VpdmVkQ291bnQ6IG51bWJlcjtcbiAgbGFzdFJlY2VpdmVkQXQ/OiBEYXRlO1xuICBkaXNwb3NlZEF0PzogRGF0ZTtcbn0gfCBudWxsID0+IHtcbiAgY29uc3QgY3JlYXRlZEV2ZW50ID0gZXZlbnRzLmZpbmQoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICdob29rX2NyZWF0ZWQnXG4gICk7XG4gIGlmICghY3JlYXRlZEV2ZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgcmVjZWl2ZWRFdmVudHMgPSBldmVudHMuZmlsdGVyKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnaG9va19yZWNlaXZlZCdcbiAgKTtcbiAgY29uc3QgZGlzcG9zZWRFdmVudHMgPSBldmVudHMuZmlsdGVyKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnaG9va19kaXNwb3NlZCdcbiAgKTtcbiAgY29uc3QgbGFzdFJlY2VpdmVkRXZlbnQgPSByZWNlaXZlZEV2ZW50cy5hdCgtMSk7XG4gIHJldHVybiB3aXRoT2NjdXJyZWRBdChcbiAgICB7XG4gICAgICBob29rSWQ6IGNyZWF0ZWRFdmVudC5jb3JyZWxhdGlvbklkLFxuICAgICAgcnVuSWQ6IGNyZWF0ZWRFdmVudC5ydW5JZCxcbiAgICAgIHRva2VuOiBjcmVhdGVkRXZlbnQuZXZlbnREYXRhPy50b2tlbixcbiAgICAgIGNyZWF0ZWRBdDogY3JlYXRlZEV2ZW50LmNyZWF0ZWRBdCxcbiAgICAgIHJlY2VpdmVkQ291bnQ6IHJlY2VpdmVkRXZlbnRzLmxlbmd0aCxcbiAgICAgIGxhc3RSZWNlaXZlZEF0OiBsYXN0UmVjZWl2ZWRFdmVudD8uY3JlYXRlZEF0IHx8IHVuZGVmaW5lZCxcbiAgICAgIGRpc3Bvc2VkQXQ6IGRpc3Bvc2VkRXZlbnRzLmF0KC0xKT8uY3JlYXRlZEF0IHx8IHVuZGVmaW5lZCxcbiAgICB9LFxuICAgIGNyZWF0ZWRFdmVudC5vY2N1cnJlZEF0XG4gICk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgd29ya2Zsb3cgSG9vayB0byBhbiBPcGVuVGVsZW1ldHJ5IFNwYW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhvb2tUb1NwYW4oaG9va0V2ZW50czogRXZlbnRbXSwgbWF4RW5kVGltZTogRGF0ZSk6IFNwYW4gfCBudWxsIHtcbiAgY29uc3QgaG9vayA9IGhvb2tFdmVudHNUb0hvb2tFbnRpdHkoaG9va0V2ZW50cyk7XG4gIGlmICghaG9vaykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gQ29udmVydCBob29rLXJlbGF0ZWQgZXZlbnRzIHRvIHNwYW4gZXZlbnRzXG4gIGNvbnN0IGV2ZW50cyA9IGNvbnZlcnRFdmVudHNUb1NwYW5FdmVudHMoaG9va0V2ZW50cywgZmFsc2UpO1xuXG4gIGNvbnN0IGVuZFRpbWUgPSBob29rLmRpc3Bvc2VkQXQgfHwgbWF4RW5kVGltZTtcblxuICByZXR1cm4ge1xuICAgIHNwYW5JZDogU3RyaW5nKGhvb2suaG9va0lkKSxcbiAgICBuYW1lOiBob29rLnRva2VuID8/IFN0cmluZyhob29rLmhvb2tJZCksXG4gICAga2luZDogMSwgLy8gSU5URVJOQUwgc3BhbiBraW5kXG4gICAgcmVzb3VyY2U6ICdob29rJyxcbiAgICBsaWJyYXJ5OiBXT1JLRkxPV19MSUJSQVJZLFxuICAgIHN0YXR1czogeyBjb2RlOiAxIH0sXG4gICAgdHJhY2VGbGFnczogMSxcbiAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICByZXNvdXJjZTogJ2hvb2snIGFzIGNvbnN0LFxuICAgICAgZGF0YTogaG9vayxcbiAgICB9LFxuICAgIGxpbmtzOiBbXSxcbiAgICBldmVudHMsXG4gICAgc3RhcnRUaW1lOiBkYXRlVG9PdGVsVGltZShob29rLmNyZWF0ZWRBdCksXG4gICAgZW5kVGltZTogZGF0ZVRvT3RlbFRpbWUoZW5kVGltZSksXG4gICAgZHVyYXRpb246IGNhbGN1bGF0ZUR1cmF0aW9uKGhvb2suY3JlYXRlZEF0LCBlbmRUaW1lKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcm9vdCBzcGFuIGZvciB0aGUgd29ya2Zsb3cgcnVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5Ub1NwYW4oXG4gIHJ1bjogV29ya2Zsb3dSdW4sXG4gIHJ1bkV2ZW50czogRXZlbnRbXSxcbiAgbm93VGltZT86IERhdGVcbik6IFNwYW4ge1xuICBjb25zdCBub3cgPSBub3dUaW1lID8/IG5ldyBEYXRlKCk7XG5cbiAgLy8gT25seSBlbWJlZCBpZGVudGlmaWNhdGlvbiBmaWVsZHMg4oCUIG5vdCB0aGUgZnVsbCBvYmplY3Qgd2l0aFxuICAvLyBpbnB1dC9vdXRwdXQvZXJyb3Igd2hpY2ggbWF5IGNvbnRhaW4gbm9uLWNsb25lYWJsZSB0eXBlcy5cbiAgY29uc3QgeyBpbnB1dDogX2ksIG91dHB1dDogX28sIGVycm9yOiBfZSwgLi4ucnVuSWRlbnRpdHkgfSA9IHJ1bjtcbiAgY29uc3Qgb2NjdXJyZW5jZUV2ZW50ID0gZmluZEV2ZW50QnlUeXBlKHJ1bkV2ZW50cywgW1xuICAgICdydW5fY3JlYXRlZCcsXG4gICAgJ3J1bl9zdGFydGVkJyxcbiAgXSk7XG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSB7XG4gICAgcmVzb3VyY2U6ICdydW4nIGFzIGNvbnN0LFxuICAgIGRhdGE6IHdpdGhPY2N1cnJlZEF0KHJ1bklkZW50aXR5LCBvY2N1cnJlbmNlRXZlbnQ/Lm9jY3VycmVkQXQpLFxuICB9O1xuXG4gIC8vIFVzZSBjcmVhdGVkQXQgYXMgc3BhbiBzdGFydCB0aW1lLCB3aXRoIGFjdGl2ZVN0YXJ0VGltZSBmb3Igd2hlbiBleGVjdXRpb24gYmVnYW5cbiAgY29uc3Qgc3BhblN0YXJ0VGltZSA9IG5ldyBEYXRlKHJ1bi5jcmVhdGVkQXQpO1xuICBjb25zdCBhY3RpdmVTdGFydFRpbWUgPSBydW4uc3RhcnRlZEF0ID8gbmV3IERhdGUocnVuLnN0YXJ0ZWRBdCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGVuZFRpbWUgPSBydW4uY29tcGxldGVkQXQgPz8gbm93O1xuXG4gIC8vIENvbnZlcnQgcnVuLWxldmVsIGV2ZW50cyB0byBzcGFuIGV2ZW50c1xuICBjb25zdCBldmVudHMgPSBjb252ZXJ0RXZlbnRzVG9TcGFuRXZlbnRzKHJ1bkV2ZW50cywgZmFsc2UpO1xuXG4gIHJldHVybiB7XG4gICAgc3BhbklkOiBTdHJpbmcocnVuLnJ1bklkKSxcbiAgICBuYW1lOiBTdHJpbmcocGFyc2VXb3JrZmxvd05hbWUocnVuLndvcmtmbG93TmFtZSk/LnNob3J0TmFtZSA/PyAnPycpLFxuICAgIGtpbmQ6IDEsIC8vIElOVEVSTkFMIHNwYW4ga2luZFxuICAgIHJlc291cmNlOiAncnVuJyxcbiAgICBsaWJyYXJ5OiBXT1JLRkxPV19MSUJSQVJZLFxuICAgIHN0YXR1czogeyBjb2RlOiAwIH0sXG4gICAgdHJhY2VGbGFnczogMSxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGxpbmtzOiBbXSxcbiAgICBldmVudHMsXG4gICAgc3RhcnRUaW1lOiBkYXRlVG9PdGVsVGltZShzcGFuU3RhcnRUaW1lKSxcbiAgICBlbmRUaW1lOiBkYXRlVG9PdGVsVGltZShlbmRUaW1lKSxcbiAgICBkdXJhdGlvbjogY2FsY3VsYXRlRHVyYXRpb24oc3BhblN0YXJ0VGltZSwgZW5kVGltZSksXG4gICAgLy8gT25seSBzZXQgYWN0aXZlU3RhcnRUaW1lIGlmIGl0IGRpZmZlcnMgZnJvbSBzdGFydFRpbWUgKGkuZS4sIHRoZXJlIHdhcyBhIHF1ZXVlZCBwZXJpb2QpXG4gICAgYWN0aXZlU3RhcnRUaW1lOlxuICAgICAgYWN0aXZlU3RhcnRUaW1lICYmIGFjdGl2ZVN0YXJ0VGltZS5nZXRUaW1lKCkgPiBzcGFuU3RhcnRUaW1lLmdldFRpbWUoKVxuICAgICAgICA/IGRhdGVUb090ZWxUaW1lKGFjdGl2ZVN0YXJ0VGltZSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook that detects whether the user has requested reduced motion and reacts
|
|
3
|
+
* to changes. Mirrors the `prefers-reduced-motion: reduce` media query so
|
|
4
|
+
* components can skip or shorten animations for users with motion
|
|
5
|
+
* sensitivities (e.g. vestibular disorders).
|
|
6
|
+
*
|
|
7
|
+
* @returns `true` if the user prefers reduced motion, `false` otherwise
|
|
8
|
+
*/
|
|
9
|
+
export declare const useReducedMotion: () => boolean;
|
|
10
|
+
//# sourceMappingURL=use-reduced-motion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-reduced-motion.d.ts","sourceRoot":"","sources":["../../src/hooks/use-reduced-motion.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAAO,OAmBnC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
const QUERY = '(prefers-reduced-motion: reduce)';
|
|
4
|
+
/**
|
|
5
|
+
* Hook that detects whether the user has requested reduced motion and reacts
|
|
6
|
+
* to changes. Mirrors the `prefers-reduced-motion: reduce` media query so
|
|
7
|
+
* components can skip or shorten animations for users with motion
|
|
8
|
+
* sensitivities (e.g. vestibular disorders).
|
|
9
|
+
*
|
|
10
|
+
* @returns `true` if the user prefers reduced motion, `false` otherwise
|
|
11
|
+
*/
|
|
12
|
+
export const useReducedMotion = () => {
|
|
13
|
+
const [reduced, setReduced] = useState(() => {
|
|
14
|
+
if (typeof window === 'undefined' || !window.matchMedia)
|
|
15
|
+
return false;
|
|
16
|
+
return window.matchMedia(QUERY).matches;
|
|
17
|
+
});
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (typeof window === 'undefined' || !window.matchMedia)
|
|
20
|
+
return;
|
|
21
|
+
const media = window.matchMedia(QUERY);
|
|
22
|
+
const onChange = () => setReduced(media.matches);
|
|
23
|
+
media.addEventListener('change', onChange);
|
|
24
|
+
onChange();
|
|
25
|
+
return () => media.removeEventListener('change', onChange);
|
|
26
|
+
}, []);
|
|
27
|
+
return reduced;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJlZHVjZWQtbW90aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZS1yZWR1Y2VkLW1vdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7QUFFYixPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU1QyxNQUFNLEtBQUssR0FBRyxrQ0FBa0MsQ0FBQztBQUVqRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBWSxFQUFFO0lBQzVDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMxQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdEUsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMxQyxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUVoRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLEdBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxRQUFRLEVBQUUsQ0FBQztRQUVYLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3RCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFFVRVJZID0gJyhwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpJztcblxuLyoqXG4gKiBIb29rIHRoYXQgZGV0ZWN0cyB3aGV0aGVyIHRoZSB1c2VyIGhhcyByZXF1ZXN0ZWQgcmVkdWNlZCBtb3Rpb24gYW5kIHJlYWN0c1xuICogdG8gY2hhbmdlcy4gTWlycm9ycyB0aGUgYHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZWAgbWVkaWEgcXVlcnkgc29cbiAqIGNvbXBvbmVudHMgY2FuIHNraXAgb3Igc2hvcnRlbiBhbmltYXRpb25zIGZvciB1c2VycyB3aXRoIG1vdGlvblxuICogc2Vuc2l0aXZpdGllcyAoZS5nLiB2ZXN0aWJ1bGFyIGRpc29yZGVycykuXG4gKlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB1c2VyIHByZWZlcnMgcmVkdWNlZCBtb3Rpb24sIGBmYWxzZWAgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VSZWR1Y2VkTW90aW9uID0gKCk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBbcmVkdWNlZCwgc2V0UmVkdWNlZF0gPSB1c2VTdGF0ZSgoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubWF0Y2hNZWRpYSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB3aW5kb3cubWF0Y2hNZWRpYShRVUVSWSkubWF0Y2hlcztcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXdpbmRvdy5tYXRjaE1lZGlhKSByZXR1cm47XG5cbiAgICBjb25zdCBtZWRpYSA9IHdpbmRvdy5tYXRjaE1lZGlhKFFVRVJZKTtcbiAgICBjb25zdCBvbkNoYW5nZSA9ICgpOiB2b2lkID0+IHNldFJlZHVjZWQobWVkaWEubWF0Y2hlcyk7XG5cbiAgICBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG4gICAgb25DaGFuZ2UoKTtcblxuICAgIHJldHVybiAoKSA9PiBtZWRpYS5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gcmVkdWNlZDtcbn07XG4iXX0=
|
package/dist/lib/cn.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ClassValue } from 'clsx';
|
|
2
|
+
/**
|
|
3
|
+
* Merges Tailwind class names and resolves any conflicts using `clsx` with `tailwind-merge`.
|
|
4
|
+
*
|
|
5
|
+
* @param inputs - An array of class names to merge.
|
|
6
|
+
* @returns A string of merged and optimized class names.
|
|
7
|
+
*/
|
|
8
|
+
declare function cn(...classes: ClassValue[]): string;
|
|
9
|
+
export { cn };
|
|
10
|
+
//# sourceMappingURL=cn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/lib/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAkF7C;;;;;GAKG;AACH,iBAAS,EAAE,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,UAEnC;AAED,OAAO,EAAE,EAAE,EAAE,CAAC"}
|
package/dist/lib/cn.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { clsx } from 'clsx';
|
|
2
|
+
import { extendTailwindMerge } from 'tailwind-merge';
|
|
3
|
+
const twMergeConfig = {
|
|
4
|
+
extend: {
|
|
5
|
+
classGroups: {
|
|
6
|
+
'text-heading': [
|
|
7
|
+
{
|
|
8
|
+
'text-heading': [
|
|
9
|
+
'72',
|
|
10
|
+
'64',
|
|
11
|
+
'56',
|
|
12
|
+
'48',
|
|
13
|
+
'40',
|
|
14
|
+
'32',
|
|
15
|
+
'24',
|
|
16
|
+
'20',
|
|
17
|
+
'16',
|
|
18
|
+
'14',
|
|
19
|
+
],
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
'text-button': [
|
|
23
|
+
{
|
|
24
|
+
'text-button': ['16', '14', '12'],
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
'text-label': [
|
|
28
|
+
{
|
|
29
|
+
'text-label': [
|
|
30
|
+
'20',
|
|
31
|
+
'18',
|
|
32
|
+
'16',
|
|
33
|
+
'14',
|
|
34
|
+
'14-mono',
|
|
35
|
+
'13',
|
|
36
|
+
'13-mono',
|
|
37
|
+
'12',
|
|
38
|
+
'12-mono',
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
'text-copy': [
|
|
43
|
+
{
|
|
44
|
+
'text-copy': ['24', '20', '18', '16', '14', '13', '13-mono'],
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
material: [
|
|
48
|
+
{
|
|
49
|
+
material: [
|
|
50
|
+
'base',
|
|
51
|
+
'small',
|
|
52
|
+
'medium',
|
|
53
|
+
'large',
|
|
54
|
+
'tooltip',
|
|
55
|
+
'menu',
|
|
56
|
+
'modal',
|
|
57
|
+
'fullscreen',
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
// Make each category conflict with itself, so e.g. text-heading-32 overrides text-heading-24
|
|
63
|
+
conflictingClassGroups: {
|
|
64
|
+
'text-heading': ['text-heading'],
|
|
65
|
+
'text-button': ['text-button'],
|
|
66
|
+
'text-label': ['text-label'],
|
|
67
|
+
'text-copy': ['text-copy'],
|
|
68
|
+
material: ['material'],
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
const customTwMerge = extendTailwindMerge(twMergeConfig);
|
|
73
|
+
/**
|
|
74
|
+
* Merges Tailwind class names and resolves any conflicts using `clsx` with `tailwind-merge`.
|
|
75
|
+
*
|
|
76
|
+
* @param inputs - An array of class names to merge.
|
|
77
|
+
* @returns A string of merged and optimized class names.
|
|
78
|
+
*/
|
|
79
|
+
function cn(...classes) {
|
|
80
|
+
return customTwMerge(clsx(...classes));
|
|
81
|
+
}
|
|
82
|
+
export { cn };
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE1BQU0sYUFBYSxHQUFHO0lBQ3BCLE1BQU0sRUFBRTtRQUNOLFdBQVcsRUFBRTtZQUNYLGNBQWMsRUFBRTtnQkFDZDtvQkFDRSxjQUFjLEVBQUU7d0JBQ2QsSUFBSTt3QkFDSixJQUFJO3dCQUNKLElBQUk7d0JBQ0osSUFBSTt3QkFDSixJQUFJO3dCQUNKLElBQUk7d0JBQ0osSUFBSTt3QkFDSixJQUFJO3dCQUNKLElBQUk7d0JBQ0osSUFBSTtxQkFDTDtpQkFDRjthQUNGO1lBQ0QsYUFBYSxFQUFFO2dCQUNiO29CQUNFLGFBQWEsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO2lCQUNsQzthQUNGO1lBQ0QsWUFBWSxFQUFFO2dCQUNaO29CQUNFLFlBQVksRUFBRTt3QkFDWixJQUFJO3dCQUNKLElBQUk7d0JBQ0osSUFBSTt3QkFDSixJQUFJO3dCQUNKLFNBQVM7d0JBQ1QsSUFBSTt3QkFDSixTQUFTO3dCQUNULElBQUk7d0JBQ0osU0FBUztxQkFDVjtpQkFDRjthQUNGO1lBQ0QsV0FBVyxFQUFFO2dCQUNYO29CQUNFLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQztpQkFDN0Q7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxRQUFRLEVBQUU7d0JBQ1IsTUFBTTt3QkFDTixPQUFPO3dCQUNQLFFBQVE7d0JBQ1IsT0FBTzt3QkFDUCxTQUFTO3dCQUNULE1BQU07d0JBQ04sT0FBTzt3QkFDUCxZQUFZO3FCQUNiO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELDZGQUE2RjtRQUM3RixzQkFBc0IsRUFBRTtZQUN0QixjQUFjLEVBQUUsQ0FBQyxjQUFjLENBQUM7WUFDaEMsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQzlCLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQztZQUM1QixXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUM7WUFDMUIsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQ3ZCO0tBQ0Y7Q0FDTyxDQUFDO0FBU1gsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQXNCLGFBQWEsQ0FBQyxDQUFDO0FBRTlFOzs7OztHQUtHO0FBQ0gsU0FBUyxFQUFFLENBQUMsR0FBRyxPQUFxQjtJQUNsQyxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENsYXNzVmFsdWUsIGNsc3ggfSBmcm9tICdjbHN4JztcbmltcG9ydCB7IGV4dGVuZFRhaWx3aW5kTWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5cbmNvbnN0IHR3TWVyZ2VDb25maWcgPSB7XG4gIGV4dGVuZDoge1xuICAgIGNsYXNzR3JvdXBzOiB7XG4gICAgICAndGV4dC1oZWFkaW5nJzogW1xuICAgICAgICB7XG4gICAgICAgICAgJ3RleHQtaGVhZGluZyc6IFtcbiAgICAgICAgICAgICc3MicsXG4gICAgICAgICAgICAnNjQnLFxuICAgICAgICAgICAgJzU2JyxcbiAgICAgICAgICAgICc0OCcsXG4gICAgICAgICAgICAnNDAnLFxuICAgICAgICAgICAgJzMyJyxcbiAgICAgICAgICAgICcyNCcsXG4gICAgICAgICAgICAnMjAnLFxuICAgICAgICAgICAgJzE2JyxcbiAgICAgICAgICAgICcxNCcsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICAndGV4dC1idXR0b24nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAndGV4dC1idXR0b24nOiBbJzE2JywgJzE0JywgJzEyJ10sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgJ3RleHQtbGFiZWwnOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAndGV4dC1sYWJlbCc6IFtcbiAgICAgICAgICAgICcyMCcsXG4gICAgICAgICAgICAnMTgnLFxuICAgICAgICAgICAgJzE2JyxcbiAgICAgICAgICAgICcxNCcsXG4gICAgICAgICAgICAnMTQtbW9ubycsXG4gICAgICAgICAgICAnMTMnLFxuICAgICAgICAgICAgJzEzLW1vbm8nLFxuICAgICAgICAgICAgJzEyJyxcbiAgICAgICAgICAgICcxMi1tb25vJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgICd0ZXh0LWNvcHknOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAndGV4dC1jb3B5JzogWycyNCcsICcyMCcsICcxOCcsICcxNicsICcxNCcsICcxMycsICcxMy1tb25vJ10sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgbWF0ZXJpYWw6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1hdGVyaWFsOiBbXG4gICAgICAgICAgICAnYmFzZScsXG4gICAgICAgICAgICAnc21hbGwnLFxuICAgICAgICAgICAgJ21lZGl1bScsXG4gICAgICAgICAgICAnbGFyZ2UnLFxuICAgICAgICAgICAgJ3Rvb2x0aXAnLFxuICAgICAgICAgICAgJ21lbnUnLFxuICAgICAgICAgICAgJ21vZGFsJyxcbiAgICAgICAgICAgICdmdWxsc2NyZWVuJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIC8vIE1ha2UgZWFjaCBjYXRlZ29yeSBjb25mbGljdCB3aXRoIGl0c2VsZiwgc28gZS5nLiB0ZXh0LWhlYWRpbmctMzIgb3ZlcnJpZGVzIHRleHQtaGVhZGluZy0yNFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cHM6IHtcbiAgICAgICd0ZXh0LWhlYWRpbmcnOiBbJ3RleHQtaGVhZGluZyddLFxuICAgICAgJ3RleHQtYnV0dG9uJzogWyd0ZXh0LWJ1dHRvbiddLFxuICAgICAgJ3RleHQtbGFiZWwnOiBbJ3RleHQtbGFiZWwnXSxcbiAgICAgICd0ZXh0LWNvcHknOiBbJ3RleHQtY29weSddLFxuICAgICAgbWF0ZXJpYWw6IFsnbWF0ZXJpYWwnXSxcbiAgICB9LFxuICB9LFxufSBhcyBjb25zdDtcblxudHlwZSBDdXN0b21DbGFzc0dyb3VwSWRzID1cbiAgfCAndGV4dC1oZWFkaW5nJ1xuICB8ICd0ZXh0LWJ1dHRvbidcbiAgfCAndGV4dC1sYWJlbCdcbiAgfCAndGV4dC1jb3B5J1xuICB8ICdtYXRlcmlhbCc7XG5cbmNvbnN0IGN1c3RvbVR3TWVyZ2UgPSBleHRlbmRUYWlsd2luZE1lcmdlPEN1c3RvbUNsYXNzR3JvdXBJZHM+KHR3TWVyZ2VDb25maWcpO1xuXG4vKipcbiAqIE1lcmdlcyBUYWlsd2luZCBjbGFzcyBuYW1lcyBhbmQgcmVzb2x2ZXMgYW55IGNvbmZsaWN0cyB1c2luZyBgY2xzeGAgd2l0aCBgdGFpbHdpbmQtbWVyZ2VgLlxuICpcbiAqIEBwYXJhbSBpbnB1dHMgLSBBbiBhcnJheSBvZiBjbGFzcyBuYW1lcyB0byBtZXJnZS5cbiAqIEByZXR1cm5zIEEgc3RyaW5nIG9mIG1lcmdlZCBhbmQgb3B0aW1pemVkIGNsYXNzIG5hbWVzLlxuICovXG5mdW5jdGlvbiBjbiguLi5jbGFzc2VzOiBDbGFzc1ZhbHVlW10pIHtcbiAgcmV0dXJuIGN1c3RvbVR3TWVyZ2UoY2xzeCguLi5jbGFzc2VzKSk7XG59XG5cbmV4cG9ydCB7IGNuIH07XG4iXX0=
|
|
@@ -17,6 +17,7 @@ export interface MaterializedStep {
|
|
|
17
17
|
status: StepStatus;
|
|
18
18
|
attempt: number;
|
|
19
19
|
createdAt: Date;
|
|
20
|
+
occurredAt?: Date;
|
|
20
21
|
startedAt?: Date;
|
|
21
22
|
completedAt?: Date;
|
|
22
23
|
updatedAt: Date;
|
|
@@ -28,6 +29,7 @@ export interface MaterializedHook {
|
|
|
28
29
|
runId: string;
|
|
29
30
|
token?: string;
|
|
30
31
|
createdAt: Date;
|
|
32
|
+
occurredAt?: Date;
|
|
31
33
|
receivedCount: number;
|
|
32
34
|
lastReceivedAt?: Date;
|
|
33
35
|
disposedAt?: Date;
|
|
@@ -39,6 +41,7 @@ export interface MaterializedWait {
|
|
|
39
41
|
runId: string;
|
|
40
42
|
status: 'waiting' | 'completed';
|
|
41
43
|
createdAt: Date;
|
|
44
|
+
occurredAt?: Date;
|
|
42
45
|
resumeAt?: Date;
|
|
43
46
|
completedAt?: Date;
|
|
44
47
|
/** All events for this wait, in insertion order */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-materialization.d.ts","sourceRoot":"","sources":["../../src/lib/event-materialization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAMzD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,mDAAmD;IACnD,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,mDAAmD;IACnD,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,mDAAmD;IACnD,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"event-materialization.d.ts","sourceRoot":"","sources":["../../src/lib/event-materialization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAMzD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,mDAAmD;IACnD,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,mDAAmD;IACnD,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,mDAAmD;IACnD,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAuCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,gBAAgB,EAAE,CAgEpE;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,gBAAgB,EAAE,CAmCpE;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,gBAAgB,EAAE,CA8BpE;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAMpE"}
|
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
* all events for a run once, then materializes entities client-side instead
|
|
10
10
|
* of making separate API calls for each entity type.
|
|
11
11
|
*/
|
|
12
|
+
const withOccurredAt = (entity, occurredAt) => {
|
|
13
|
+
if (!occurredAt || entity.occurredAt != null) {
|
|
14
|
+
return entity;
|
|
15
|
+
}
|
|
16
|
+
return { ...entity, occurredAt };
|
|
17
|
+
};
|
|
12
18
|
// ---------------------------------------------------------------------------
|
|
13
19
|
// Helper: group events by correlationId prefix
|
|
14
20
|
// ---------------------------------------------------------------------------
|
|
@@ -78,7 +84,7 @@ export function materializeSteps(events) {
|
|
|
78
84
|
break;
|
|
79
85
|
}
|
|
80
86
|
}
|
|
81
|
-
steps.push({
|
|
87
|
+
steps.push(withOccurredAt({
|
|
82
88
|
stepId: correlationId,
|
|
83
89
|
runId: created.runId,
|
|
84
90
|
stepName: created.eventType === 'step_created'
|
|
@@ -91,7 +97,7 @@ export function materializeSteps(events) {
|
|
|
91
97
|
completedAt,
|
|
92
98
|
updatedAt,
|
|
93
99
|
events: stepEvents,
|
|
94
|
-
});
|
|
100
|
+
}, created.occurredAt));
|
|
95
101
|
}
|
|
96
102
|
return steps;
|
|
97
103
|
}
|
|
@@ -111,7 +117,7 @@ export function materializeHooks(events) {
|
|
|
111
117
|
const receivedEvents = hookEvents.filter((e) => e.eventType === 'hook_received');
|
|
112
118
|
const disposed = hookEvents.find((e) => e.eventType === 'hook_disposed');
|
|
113
119
|
const lastReceived = receivedEvents.at(-1);
|
|
114
|
-
hooks.push({
|
|
120
|
+
hooks.push(withOccurredAt({
|
|
115
121
|
hookId: correlationId,
|
|
116
122
|
runId: created.runId,
|
|
117
123
|
token: created.eventType === 'hook_created'
|
|
@@ -122,7 +128,7 @@ export function materializeHooks(events) {
|
|
|
122
128
|
lastReceivedAt: lastReceived?.createdAt,
|
|
123
129
|
disposedAt: disposed?.createdAt,
|
|
124
130
|
events: hookEvents,
|
|
125
|
-
});
|
|
131
|
+
}, created.occurredAt));
|
|
126
132
|
}
|
|
127
133
|
return hooks;
|
|
128
134
|
}
|
|
@@ -140,7 +146,7 @@ export function materializeWaits(events) {
|
|
|
140
146
|
if (!created)
|
|
141
147
|
continue;
|
|
142
148
|
const completed = waitEvents.find((e) => e.eventType === 'wait_completed');
|
|
143
|
-
waits.push({
|
|
149
|
+
waits.push(withOccurredAt({
|
|
144
150
|
waitId: correlationId,
|
|
145
151
|
runId: created.runId,
|
|
146
152
|
status: completed ? 'completed' : 'waiting',
|
|
@@ -150,7 +156,7 @@ export function materializeWaits(events) {
|
|
|
150
156
|
: undefined,
|
|
151
157
|
completedAt: completed?.createdAt,
|
|
152
158
|
events: waitEvents,
|
|
153
|
-
});
|
|
159
|
+
}, created.occurredAt));
|
|
154
160
|
}
|
|
155
161
|
return waits;
|
|
156
162
|
}
|
|
@@ -168,4 +174,4 @@ export function materializeAll(events) {
|
|
|
168
174
|
waits: materializeWaits(events),
|
|
169
175
|
};
|
|
170
176
|
}
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbWF0ZXJpYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9ldmVudC1tYXRlcmlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQW1ESCw4RUFBOEU7QUFDOUUsK0NBQStDO0FBQy9DLDhFQUE4RTtBQUU5RSxTQUFTLG9CQUFvQixDQUMzQixNQUFlLEVBQ2YsUUFBa0I7SUFFbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFDMUMsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHO1lBQUUsU0FBUztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFFLFNBQVM7UUFDdkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsbUJBQW1CO0FBQ25CLDhFQUE4RTtBQUU5RTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFlO0lBQzlDLE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFD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RyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxPQUFPO1lBQUUsU0FBUztRQUV2QixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLGdCQUFnQixDQUFDLENBQUM7UUFFM0UsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNULE1BQU0sRUFBRSxhQUFhO1lBQ3JCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztZQUNwQixNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDM0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzVCLFFBQVEsRUFDTixPQUFPLENBQUMsU0FBUyxLQUFLLGNBQWM7Z0JBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFFBQVE7Z0JBQzdCLENBQUMsQ0FBQyxTQUFTO1lBQ2YsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxVQUFVO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsaUJBQWlCO0FBQ2pCLDhFQUE4RTtBQUU5RTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWU7SUFDNUMsT0FBTztRQUNMLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDL0IsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztRQUMvQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0tBQ2hDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFdmVudCBtYXRlcmlhbGl6YXRpb24gaGVscGVycy5cbiAqXG4gKiBUaGVzZSBmdW5jdGlvbnMgY29udmVydCBhIGZsYXQgbGlzdCBvZiB3b3JrZmxvdyBldmVudHMgaW50byBlbnRpdHktbGlrZVxuICogb2JqZWN0cyAoc3RlcHMsIGhvb2tzLCB3YWl0cykgYnkgZ3JvdXBpbmcgZXZlbnRzIGJ5IGNvcnJlbGF0aW9uSWQgYW5kXG4gKiBzdGl0Y2hpbmcgdG9nZXRoZXIgbGlmZWN5Y2xlIGV2ZW50cy5cbiAqXG4gKiBUaGlzIGVuYWJsZXMgYSBcInRvcC1kb3duXCIgZGF0YSBmZXRjaGluZyBwYXR0ZXJuIHdoZXJlIHRoZSBjbGllbnQgZmV0Y2hlc1xuICogYWxsIGV2ZW50cyBmb3IgYSBydW4gb25jZSwgdGhlbiBtYXRlcmlhbGl6ZXMgZW50aXRpZXMgY2xpZW50LXNpZGUgaW5zdGVhZFxuICogb2YgbWFraW5nIHNlcGFyYXRlIEFQSSBjYWxscyBmb3IgZWFjaCBlbnRpdHkgdHlwZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEV2ZW50LCBTdGVwU3RhdHVzIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNYXRlcmlhbGl6ZWQgZW50aXR5IHR5cGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBNYXRlcmlhbGl6ZWRTdGVwIHtcbiAgc3RlcElkOiBzdHJpbmc7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIHN0ZXBOYW1lOiBzdHJpbmc7XG4gIHN0YXR1czogU3RlcFN0YXR1cztcbiAgYXR0ZW1wdDogbnVtYmVyO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHN0YXJ0ZWRBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbiAgdXBkYXRlZEF0OiBEYXRlO1xuICAvKiogQWxsIGV2ZW50cyBmb3IgdGhpcyBzdGVwLCBpbiBpbnNlcnRpb24gb3JkZXIgKi9cbiAgZXZlbnRzOiBFdmVudFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hdGVyaWFsaXplZEhvb2sge1xuICBob29rSWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogRGF0ZTtcbiAgcmVjZWl2ZWRDb3VudDogbnVtYmVyO1xuICBsYXN0UmVjZWl2ZWRBdD86IERhdGU7XG4gIGRpc3Bvc2VkQXQ/OiBEYXRlO1xuICAvKiogQWxsIGV2ZW50cyBmb3IgdGhpcyBob29rLCBpbiBpbnNlcnRpb24gb3JkZXIgKi9cbiAgZXZlbnRzOiBFdmVudFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hdGVyaWFsaXplZFdhaXQge1xuICB3YWl0SWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgc3RhdHVzOiAnd2FpdGluZycgfCAnY29tcGxldGVkJztcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICByZXN1bWVBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbiAgLyoqIEFsbCBldmVudHMgZm9yIHRoaXMgd2FpdCwgaW4gaW5zZXJ0aW9uIG9yZGVyICovXG4gIGV2ZW50czogRXZlbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXRlcmlhbGl6ZWRFbnRpdGllcyB7XG4gIHN0ZXBzOiBNYXRlcmlhbGl6ZWRTdGVwW107XG4gIGhvb2tzOiBNYXRlcmlhbGl6ZWRIb29rW107XG4gIHdhaXRzOiBNYXRlcmlhbGl6ZWRXYWl0W107XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSGVscGVyOiBncm91cCBldmVudHMgYnkgY29ycmVsYXRpb25JZCBwcmVmaXhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBncm91cEJ5Q29ycmVsYXRpb25JZChcbiAgZXZlbnRzOiBFdmVudFtdLFxuICBwcmVmaXhlczogc3RyaW5nW11cbik6IE1hcDxzdHJpbmcsIEV2ZW50W10+IHtcbiAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIEV2ZW50W10+KCk7XG4gIGZvciAoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgY29uc3QgY2lkID0gZXZlbnQuY29ycmVsYXRpb25JZDtcbiAgICBpZiAoIWNpZCkgY29udGludWU7XG4gICAgaWYgKCFwcmVmaXhlcy5zb21lKChwKSA9PiBjaWQuc3RhcnRzV2l0aChwKSkpIGNvbnRpbnVlO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gZ3JvdXBzLmdldChjaWQpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgZXhpc3RpbmcucHVzaChldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdyb3Vwcy5zZXQoY2lkLCBbZXZlbnRdKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGdyb3Vwcztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBtYXRlcmlhbGl6ZVN0ZXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBHcm91cCBzdGVwXyogZXZlbnRzIGJ5IGNvcnJlbGF0aW9uSWQgYW5kIGJ1aWxkIFN0ZXAtbGlrZSBlbnRpdGllcy5cbiAqXG4gKiBIYW5kbGVzIHBhcnRpYWwgZXZlbnQgbGlzdHMgZ3JhY2VmdWxseTogYSBzdGVwIG1heSBvbmx5IGhhdmUgYVxuICogc3RlcF9jcmVhdGVkIGV2ZW50IHdpdGggbm8gY29tcGxldGlvbiB5ZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRlcmlhbGl6ZVN0ZXBzKGV2ZW50czogRXZlbnRbXSk6IE1hdGVyaWFsaXplZFN0ZXBbXSB7XG4gIGNvbnN0IGdyb3VwcyA9IGdyb3VwQnlDb3JyZWxhdGlvbklkKGV2ZW50cywgWydzdGVwXyddKTtcbiAgY29uc3Qgc3RlcHM6IE1hdGVyaWFsaXplZFN0ZXBbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2NvcnJlbGF0aW9uSWQsIHN0ZXBFdmVudHNdIG9mIGdyb3Vwcykge1xuICAgIGNvbnN0IGNyZWF0ZWQgPSBzdGVwRXZlbnRzLmZpbmQoKGUpID0+IGUuZXZlbnRUeXBlID09PSAnc3RlcF9jcmVhdGVkJyk7XG4gICAgaWYgKCFjcmVhdGVkKSBjb250aW51ZTtcblxuICAgIGxldCBzdGF0dXM6IFN0ZXBTdGF0dXMgPSAncGVuZGluZyc7XG4gICAgbGV0IGF0dGVtcHQgPSAwO1xuICAgIGxldCBzdGFydGVkQXQ6IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGNvbXBsZXRlZEF0OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIGxldCB1cGRhdGVkQXQgPSBjcmVhdGVkLmNyZWF0ZWRBdDtcblxuICAgIGZvciAoY29uc3QgZSBvZiBzdGVwRXZlbnRzKSB7XG4gICAgICBzd2l0Y2ggKGUuZXZlbnRUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3N0ZXBfc3RhcnRlZCc6XG4gICAgICAgICAgc3RhdHVzID0gJ3J1bm5pbmcnO1xuICAgICAgICAgIGF0dGVtcHQgKz0gMTtcbiAgICAgICAgICBpZiAoIXN0YXJ0ZWRBdCkgc3RhcnRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgICAgY29tcGxldGVkQXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgdXBkYXRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3N0ZXBfY29tcGxldGVkJzpcbiAgICAgICAgICBzdGF0dXMgPSAnY29tcGxldGVkJztcbiAgICAgICAgICBjb21wbGV0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICAgIHVwZGF0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzdGVwX2ZhaWxlZCc6XG4gICAgICAgICAgc3RhdHVzID0gJ2ZhaWxlZCc7XG4gICAgICAgICAgY29tcGxldGVkQXQgPSBlLmNyZWF0ZWRBdDtcbiAgICAgICAgICB1cGRhdGVkQXQgPSBlLmNyZWF0ZWRBdDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc3RlcF9yZXRyeWluZyc6XG4gICAgICAgICAgc3RhdHVzID0gJ3BlbmRpbmcnO1xuICAgICAgICAgIGNvbXBsZXRlZEF0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHVwZGF0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN0ZXBzLnB1c2goe1xuICAgICAgc3RlcElkOiBjb3JyZWxhdGlvbklkLFxuICAgICAgcnVuSWQ6IGNyZWF0ZWQucnVuSWQsXG4gICAgICBzdGVwTmFtZTpcbiAgICAgICAgY3JlYXRlZC5ldmVudFR5cGUgPT09ICdzdGVwX2NyZWF0ZWQnXG4gICAgICAgICAgPyAoY3JlYXRlZC5ldmVudERhdGE/LnN0ZXBOYW1lID8/IGNvcnJlbGF0aW9uSWQpXG4gICAgICAgICAgOiBjb3JyZWxhdGlvbklkLFxuICAgICAgc3RhdHVzLFxuICAgICAgYXR0ZW1wdCxcbiAgICAgIGNyZWF0ZWRBdDogY3JlYXRlZC5jcmVhdGVkQXQsXG4gICAgICBzdGFydGVkQXQsXG4gICAgICBjb21wbGV0ZWRBdCxcbiAgICAgIHVwZGF0ZWRBdCxcbiAgICAgIGV2ZW50czogc3RlcEV2ZW50cyxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBzdGVwcztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBtYXRlcmlhbGl6ZUhvb2tzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBHcm91cCBob29rXyogZXZlbnRzIGJ5IGNvcnJlbGF0aW9uSWQgYW5kIGJ1aWxkIEhvb2stbGlrZSBlbnRpdGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGVyaWFsaXplSG9va3MoZXZlbnRzOiBFdmVudFtdKTogTWF0ZXJpYWxpemVkSG9va1tdIHtcbiAgY29uc3QgZ3JvdXBzID0gZ3JvdXBCeUNvcnJlbGF0aW9uSWQoZXZlbnRzLCBbJ2hvb2tfJ10pO1xuICBjb25zdCBob29rczogTWF0ZXJpYWxpemVkSG9va1tdID0gW107XG5cbiAgZm9yIChjb25zdCBbY29ycmVsYXRpb25JZCwgaG9va0V2ZW50c10gb2YgZ3JvdXBzKSB7XG4gICAgY29uc3QgY3JlYXRlZCA9IGhvb2tFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICdob29rX2NyZWF0ZWQnKTtcbiAgICBpZiAoIWNyZWF0ZWQpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgcmVjZWl2ZWRFdmVudHMgPSBob29rRXZlbnRzLmZpbHRlcihcbiAgICAgIChlKSA9PiBlLmV2ZW50VHlwZSA9PT0gJ2hvb2tfcmVjZWl2ZWQnXG4gICAgKTtcbiAgICBjb25zdCBkaXNwb3NlZCA9IGhvb2tFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICdob29rX2Rpc3Bvc2VkJyk7XG4gICAgY29uc3QgbGFzdFJlY2VpdmVkID0gcmVjZWl2ZWRFdmVudHMuYXQoLTEpO1xuXG4gICAgaG9va3MucHVzaCh7XG4gICAgICBob29rSWQ6IGNvcnJlbGF0aW9uSWQsXG4gICAgICBydW5JZDogY3JlYXRlZC5ydW5JZCxcbiAgICAgIHRva2VuOlxuICAgICAgICBjcmVhdGVkLmV2ZW50VHlwZSA9PT0gJ2hvb2tfY3JlYXRlZCdcbiAgICAgICAgICA/IGNyZWF0ZWQuZXZlbnREYXRhPy50b2tlblxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgY3JlYXRlZEF0OiBjcmVhdGVkLmNyZWF0ZWRBdCxcbiAgICAgIHJlY2VpdmVkQ291bnQ6IHJlY2VpdmVkRXZlbnRzLmxlbmd0aCxcbiAgICAgIGxhc3RSZWNlaXZlZEF0OiBsYXN0UmVjZWl2ZWQ/LmNyZWF0ZWRBdCxcbiAgICAgIGRpc3Bvc2VkQXQ6IGRpc3Bvc2VkPy5jcmVhdGVkQXQsXG4gICAgICBldmVudHM6IGhvb2tFdmVudHMsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gaG9va3M7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gbWF0ZXJpYWxpemVXYWl0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogR3JvdXAgd2FpdF8qIGV2ZW50cyBieSBjb3JyZWxhdGlvbklkIGFuZCBidWlsZCBXYWl0LWxpa2UgZW50aXRpZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRlcmlhbGl6ZVdhaXRzKGV2ZW50czogRXZlbnRbXSk6IE1hdGVyaWFsaXplZFdhaXRbXSB7XG4gIGNvbnN0IGdyb3VwcyA9IGdyb3VwQnlDb3JyZWxhdGlvbklkKGV2ZW50cywgWyd3YWl0XyddKTtcbiAgY29uc3Qgd2FpdHM6IE1hdGVyaWFsaXplZFdhaXRbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2NvcnJlbGF0aW9uSWQsIHdhaXRFdmVudHNdIG9mIGdyb3Vwcykge1xuICAgIGNvbnN0IGNyZWF0ZWQgPSB3YWl0RXZlbnRzLmZpbmQoKGUpID0+IGUuZXZlbnRUeXBlID09PSAnd2FpdF9jcmVhdGVkJyk7XG4gICAgaWYgKCFjcmVhdGVkKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGNvbXBsZXRlZCA9IHdhaXRFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICd3YWl0X2NvbXBsZXRlZCcpO1xuXG4gICAgd2FpdHMucHVzaCh7XG4gICAgICB3YWl0SWQ6IGNvcnJlbGF0aW9uSWQsXG4gICAgICBydW5JZDogY3JlYXRlZC5ydW5JZCxcbiAgICAgIHN0YXR1czogY29tcGxldGVkID8gJ2NvbXBsZXRlZCcgOiAnd2FpdGluZycsXG4gICAgICBjcmVhdGVkQXQ6IGNyZWF0ZWQuY3JlYXRlZEF0LFxuICAgICAgcmVzdW1lQXQ6XG4gICAgICAgIGNyZWF0ZWQuZXZlbnRUeXBlID09PSAnd2FpdF9jcmVhdGVkJ1xuICAgICAgICAgID8gY3JlYXRlZC5ldmVudERhdGE/LnJlc3VtZUF0XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBjb21wbGV0ZWRBdDogY29tcGxldGVkPy5jcmVhdGVkQXQsXG4gICAgICBldmVudHM6IHdhaXRFdmVudHMsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gd2FpdHM7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gbWF0ZXJpYWxpemVBbGxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgbWF0ZXJpYWxpemVzIGFsbCBlbnRpdHkgdHlwZXMgZnJvbSBhIGZsYXRcbiAqIGV2ZW50IGxpc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRlcmlhbGl6ZUFsbChldmVudHM6IEV2ZW50W10pOiBNYXRlcmlhbGl6ZWRFbnRpdGllcyB7XG4gIHJldHVybiB7XG4gICAgc3RlcHM6IG1hdGVyaWFsaXplU3RlcHMoZXZlbnRzKSxcbiAgICBob29rczogbWF0ZXJpYWxpemVIb29rcyhldmVudHMpLFxuICAgIHdhaXRzOiBtYXRlcmlhbGl6ZVdhaXRzKGV2ZW50cyksXG4gIH07XG59XG4iXX0=
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbWF0ZXJpYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9ldmVudC1tYXRlcmlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQXNESCxNQUFNLGNBQWMsR0FBRyxDQUNyQixNQUFTLEVBQ1QsVUFBMkMsRUFDaEIsRUFBRTtJQUM3QixJQUFJLENBQUMsVUFBVSxJQUFLLE1BQW1DLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzNFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBRUYsOEVBQThFO0FBQzlFLCtDQUErQztBQUMvQyw4RUFBOEU7QUFFOUUsU0FBUyxvQkFBb0IsQ0FDM0IsTUFBZSxFQUNmLFFBQWtCO0lBRWxCLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0lBQzFDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUNoQyxJQUFJLENBQUMsR0FBRztZQUFFLFNBQVM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBRSxTQUFTO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxD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QUM7QUFDZixDQUFDO0FBRUQsOEVBQThFO0FBQzlFLGlCQUFpQjtBQUNqQiw4RUFBOEU7QUFFOUU7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFlO0lBQzVDLE9BQU87UUFDTCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1FBQy9CLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDL0IsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztLQUNoQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXZlbnQgbWF0ZXJpYWxpemF0aW9uIGhlbHBlcnMuXG4gKlxuICogVGhlc2UgZnVuY3Rpb25zIGNvbnZlcnQgYSBmbGF0IGxpc3Qgb2Ygd29ya2Zsb3cgZXZlbnRzIGludG8gZW50aXR5LWxpa2VcbiAqIG9iamVjdHMgKHN0ZXBzLCBob29rcywgd2FpdHMpIGJ5IGdyb3VwaW5nIGV2ZW50cyBieSBjb3JyZWxhdGlvbklkIGFuZFxuICogc3RpdGNoaW5nIHRvZ2V0aGVyIGxpZmVjeWNsZSBldmVudHMuXG4gKlxuICogVGhpcyBlbmFibGVzIGEgXCJ0b3AtZG93blwiIGRhdGEgZmV0Y2hpbmcgcGF0dGVybiB3aGVyZSB0aGUgY2xpZW50IGZldGNoZXNcbiAqIGFsbCBldmVudHMgZm9yIGEgcnVuIG9uY2UsIHRoZW4gbWF0ZXJpYWxpemVzIGVudGl0aWVzIGNsaWVudC1zaWRlIGluc3RlYWRcbiAqIG9mIG1ha2luZyBzZXBhcmF0ZSBBUEkgY2FsbHMgZm9yIGVhY2ggZW50aXR5IHR5cGUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBFdmVudCwgU3RlcFN0YXR1cyB9IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTWF0ZXJpYWxpemVkIGVudGl0eSB0eXBlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF0ZXJpYWxpemVkU3RlcCB7XG4gIHN0ZXBJZDogc3RyaW5nO1xuICBydW5JZDogc3RyaW5nO1xuICBzdGVwTmFtZTogc3RyaW5nO1xuICBzdGF0dXM6IFN0ZXBTdGF0dXM7XG4gIGF0dGVtcHQ6IG51bWJlcjtcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICBvY2N1cnJlZEF0PzogRGF0ZTtcbiAgc3RhcnRlZEF0PzogRGF0ZTtcbiAgY29tcGxldGVkQXQ/OiBEYXRlO1xuICB1cGRhdGVkQXQ6IERhdGU7XG4gIC8qKiBBbGwgZXZlbnRzIGZvciB0aGlzIHN0ZXAsIGluIGluc2VydGlvbiBvcmRlciAqL1xuICBldmVudHM6IEV2ZW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF0ZXJpYWxpemVkSG9vayB7XG4gIGhvb2tJZDogc3RyaW5nO1xuICBydW5JZDogc3RyaW5nO1xuICB0b2tlbj86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICBvY2N1cnJlZEF0PzogRGF0ZTtcbiAgcmVjZWl2ZWRDb3VudDogbnVtYmVyO1xuICBsYXN0UmVjZWl2ZWRBdD86IERhdGU7XG4gIGRpc3Bvc2VkQXQ/OiBEYXRlO1xuICAvKiogQWxsIGV2ZW50cyBmb3IgdGhpcyBob29rLCBpbiBpbnNlcnRpb24gb3JkZXIgKi9cbiAgZXZlbnRzOiBFdmVudFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hdGVyaWFsaXplZFdhaXQge1xuICB3YWl0SWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgc3RhdHVzOiAnd2FpdGluZycgfCAnY29tcGxldGVkJztcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICBvY2N1cnJlZEF0PzogRGF0ZTtcbiAgcmVzdW1lQXQ/OiBEYXRlO1xuICBjb21wbGV0ZWRBdD86IERhdGU7XG4gIC8qKiBBbGwgZXZlbnRzIGZvciB0aGlzIHdhaXQsIGluIGluc2VydGlvbiBvcmRlciAqL1xuICBldmVudHM6IEV2ZW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF0ZXJpYWxpemVkRW50aXRpZXMge1xuICBzdGVwczogTWF0ZXJpYWxpemVkU3RlcFtdO1xuICBob29rczogTWF0ZXJpYWxpemVkSG9va1tdO1xuICB3YWl0czogTWF0ZXJpYWxpemVkV2FpdFtdO1xufVxuXG5jb25zdCB3aXRoT2NjdXJyZWRBdCA9IDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgZW50aXR5OiBULFxuICBvY2N1cnJlZEF0OiBFdmVudFsnb2NjdXJyZWRBdCddIHwgdW5kZWZpbmVkXG4pOiBUICYgeyBvY2N1cnJlZEF0PzogRGF0ZSB9ID0+IHtcbiAgaWYgKCFvY2N1cnJlZEF0IHx8IChlbnRpdHkgYXMgeyBvY2N1cnJlZEF0PzogdW5rbm93biB9KS5vY2N1cnJlZEF0ICE9IG51bGwpIHtcbiAgICByZXR1cm4gZW50aXR5O1xuICB9XG4gIHJldHVybiB7IC4uLmVudGl0eSwgb2NjdXJyZWRBdCB9O1xufTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIZWxwZXI6IGdyb3VwIGV2ZW50cyBieSBjb3JyZWxhdGlvbklkIHByZWZpeFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGdyb3VwQnlDb3JyZWxhdGlvbklkKFxuICBldmVudHM6IEV2ZW50W10sXG4gIHByZWZpeGVzOiBzdHJpbmdbXVxuKTogTWFwPHN0cmluZywgRXZlbnRbXT4ge1xuICBjb25zdCBncm91cHMgPSBuZXcgTWFwPHN0cmluZywgRXZlbnRbXT4oKTtcbiAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICBjb25zdCBjaWQgPSBldmVudC5jb3JyZWxhdGlvbklkO1xuICAgIGlmICghY2lkKSBjb250aW51ZTtcbiAgICBpZiAoIXByZWZpeGVzLnNvbWUoKHApID0+IGNpZC5zdGFydHNXaXRoKHApKSkgY29udGludWU7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBncm91cHMuZ2V0KGNpZCk7XG4gICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICBleGlzdGluZy5wdXNoKGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZ3JvdXBzLnNldChjaWQsIFtldmVudF0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZ3JvdXBzO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIG1hdGVyaWFsaXplU3RlcHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEdyb3VwIHN0ZXBfKiBldmVudHMgYnkgY29ycmVsYXRpb25JZCBhbmQgYnVpbGQgU3RlcC1saWtlIGVudGl0aWVzLlxuICpcbiAqIEhhbmRsZXMgcGFydGlhbCBldmVudCBsaXN0cyBncmFjZWZ1bGx5OiBhIHN0ZXAgbWF5IG9ubHkgaGF2ZSBhXG4gKiBzdGVwX2NyZWF0ZWQgZXZlbnQgd2l0aCBubyBjb21wbGV0aW9uIHlldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGVyaWFsaXplU3RlcHMoZXZlbnRzOiBFdmVudFtdKTogTWF0ZXJpYWxpemVkU3RlcFtdIHtcbiAgY29uc3QgZ3JvdXBzID0gZ3JvdXBCeUNvcnJlbGF0aW9uSWQoZXZlbnRzLCBbJ3N0ZXBfJ10pO1xuICBjb25zdCBzdGVwczogTWF0ZXJpYWxpemVkU3RlcFtdID0gW107XG5cbiAgZm9yIChjb25zdCBbY29ycmVsYXRpb25JZCwgc3RlcEV2ZW50c10gb2YgZ3JvdXBzKSB7XG4gICAgY29uc3QgY3JlYXRlZCA9IHN0ZXBFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICdzdGVwX2NyZWF0ZWQnKTtcbiAgICBpZiAoIWNyZWF0ZWQpIGNvbnRpbnVlO1xuXG4gICAgbGV0IHN0YXR1czogU3RlcFN0YXR1cyA9ICdwZW5kaW5nJztcbiAgICBsZXQgYXR0ZW1wdCA9IDA7XG4gICAgbGV0IHN0YXJ0ZWRBdDogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICBsZXQgY29tcGxldGVkQXQ6IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgbGV0IHVwZGF0ZWRBdCA9IGNyZWF0ZWQuY3JlYXRlZEF0O1xuXG4gICAgZm9yIChjb25zdCBlIG9mIHN0ZXBFdmVudHMpIHtcbiAgICAgIHN3aXRjaCAoZS5ldmVudFR5cGUpIHtcbiAgICAgICAgY2FzZSAnc3RlcF9zdGFydGVkJzpcbiAgICAgICAgICBzdGF0dXMgPSAncnVubmluZyc7XG4gICAgICAgICAgYXR0ZW1wdCArPSAxO1xuICAgICAgICAgIGlmICghc3RhcnRlZEF0KSBzdGFydGVkQXQgPSBlLmNyZWF0ZWRBdDtcbiAgICAgICAgICBjb21wbGV0ZWRBdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB1cGRhdGVkQXQgPSBlLmNyZWF0ZWRBdDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc3RlcF9jb21wbGV0ZWQnOlxuICAgICAgICAgIHN0YXR1cyA9ICdjb21wbGV0ZWQnO1xuICAgICAgICAgIGNvbXBsZXRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgICAgdXBkYXRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3N0ZXBfZmFpbGVkJzpcbiAgICAgICAgICBzdGF0dXMgPSAnZmFpbGVkJztcbiAgICAgICAgICBjb21wbGV0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICAgIHVwZGF0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzdGVwX3JldHJ5aW5nJzpcbiAgICAgICAgICBzdGF0dXMgPSAncGVuZGluZyc7XG4gICAgICAgICAgY29tcGxldGVkQXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgdXBkYXRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3RlcHMucHVzaChcbiAgICAgIHdpdGhPY2N1cnJlZEF0KFxuICAgICAgICB7XG4gICAgICAgICAgc3RlcElkOiBjb3JyZWxhdGlvbklkLFxuICAgICAgICAgIHJ1bklkOiBjcmVhdGVkLnJ1bklkLFxuICAgICAgICAgIHN0ZXBOYW1lOlxuICAgICAgICAgICAgY3JlYXRlZC5ldmVudFR5cGUgPT09ICdzdGVwX2NyZWF0ZWQnXG4gICAgICAgICAgICAgID8gKGNyZWF0ZWQuZXZlbnREYXRhPy5zdGVwTmFtZSA/PyBjb3JyZWxhdGlvbklkKVxuICAgICAgICAgICAgICA6IGNvcnJlbGF0aW9uSWQsXG4gICAgICAgICAgc3RhdHVzLFxuICAgICAgICAgIGF0dGVtcHQsXG4gICAgICAgICAgY3JlYXRlZEF0OiBjcmVhdGVkLmNyZWF0ZWRBdCxcbiAgICAgICAgICBzdGFydGVkQXQsXG4gICAgICAgICAgY29tcGxldGVkQXQsXG4gICAgICAgICAgdXBkYXRlZEF0LFxuICAgICAgICAgIGV2ZW50czogc3RlcEV2ZW50cyxcbiAgICAgICAgfSxcbiAgICAgICAgY3JlYXRlZC5vY2N1cnJlZEF0XG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBzdGVwcztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBtYXRlcmlhbGl6ZUhvb2tzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBHcm91cCBob29rXyogZXZlbnRzIGJ5IGNvcnJlbGF0aW9uSWQgYW5kIGJ1aWxkIEhvb2stbGlrZSBlbnRpdGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGVyaWFsaXplSG9va3MoZXZlbnRzOiBFdmVudFtdKTogTWF0ZXJpYWxpemVkSG9va1tdIHtcbiAgY29uc3QgZ3JvdXBzID0gZ3JvdXBCeUNvcnJlbGF0aW9uSWQoZXZlbnRzLCBbJ2hvb2tfJ10pO1xuICBjb25zdCBob29rczogTWF0ZXJpYWxpemVkSG9va1tdID0gW107XG5cbiAgZm9yIChjb25zdCBbY29ycmVsYXRpb25JZCwgaG9va0V2ZW50c10gb2YgZ3JvdXBzKSB7XG4gICAgY29uc3QgY3JlYXRlZCA9IGhvb2tFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICdob29rX2NyZWF0ZWQnKTtcbiAgICBpZiAoIWNyZWF0ZWQpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgcmVjZWl2ZWRFdmVudHMgPSBob29rRXZlbnRzLmZpbHRlcihcbiAgICAgIChlKSA9PiBlLmV2ZW50VHlwZSA9PT0gJ2hvb2tfcmVjZWl2ZWQnXG4gICAgKTtcbiAgICBjb25zdCBkaXNwb3NlZCA9IGhvb2tFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICdob29rX2Rpc3Bvc2VkJyk7XG4gICAgY29uc3QgbGFzdFJlY2VpdmVkID0gcmVjZWl2ZWRFdmVudHMuYXQoLTEpO1xuXG4gICAgaG9va3MucHVzaChcbiAgICAgIHdpdGhPY2N1cnJlZEF0KFxuICAgICAgICB7XG4gICAgICAgICAgaG9va0lkOiBjb3JyZWxhdGlvbklkLFxuICAgICAgICAgIHJ1bklkOiBjcmVhdGVkLnJ1bklkLFxuICAgICAgICAgIHRva2VuOlxuICAgICAgICAgICAgY3JlYXRlZC5ldmVudFR5cGUgPT09ICdob29rX2NyZWF0ZWQnXG4gICAgICAgICAgICAgID8gY3JlYXRlZC5ldmVudERhdGE/LnRva2VuXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGNyZWF0ZWRBdDogY3JlYXRlZC5jcmVhdGVkQXQsXG4gICAgICAgICAgcmVjZWl2ZWRDb3VudDogcmVjZWl2ZWRFdmVudHMubGVuZ3RoLFxuICAgICAgICAgIGxhc3RSZWNlaXZlZEF0OiBsYXN0UmVjZWl2ZWQ/LmNyZWF0ZWRBdCxcbiAgICAgICAgICBkaXNwb3NlZEF0OiBkaXNwb3NlZD8uY3JlYXRlZEF0LFxuICAgICAgICAgIGV2ZW50czogaG9va0V2ZW50cyxcbiAgICAgICAgfSxcbiAgICAgICAgY3JlYXRlZC5vY2N1cnJlZEF0XG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBob29rcztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBtYXRlcmlhbGl6ZVdhaXRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBHcm91cCB3YWl0XyogZXZlbnRzIGJ5IGNvcnJlbGF0aW9uSWQgYW5kIGJ1aWxkIFdhaXQtbGlrZSBlbnRpdGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGVyaWFsaXplV2FpdHMoZXZlbnRzOiBFdmVudFtdKTogTWF0ZXJpYWxpemVkV2FpdFtdIHtcbiAgY29uc3QgZ3JvdXBzID0gZ3JvdXBCeUNvcnJlbGF0aW9uSWQoZXZlbnRzLCBbJ3dhaXRfJ10pO1xuICBjb25zdCB3YWl0czogTWF0ZXJpYWxpemVkV2FpdFtdID0gW107XG5cbiAgZm9yIChjb25zdCBbY29ycmVsYXRpb25JZCwgd2FpdEV2ZW50c10gb2YgZ3JvdXBzKSB7XG4gICAgY29uc3QgY3JlYXRlZCA9IHdhaXRFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICd3YWl0X2NyZWF0ZWQnKTtcbiAgICBpZiAoIWNyZWF0ZWQpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgY29tcGxldGVkID0gd2FpdEV2ZW50cy5maW5kKChlKSA9PiBlLmV2ZW50VHlwZSA9PT0gJ3dhaXRfY29tcGxldGVkJyk7XG5cbiAgICB3YWl0cy5wdXNoKFxuICAgICAgd2l0aE9jY3VycmVkQXQoXG4gICAgICAgIHtcbiAgICAgICAgICB3YWl0SWQ6IGNvcnJlbGF0aW9uSWQsXG4gICAgICAgICAgcnVuSWQ6IGNyZWF0ZWQucnVuSWQsXG4gICAgICAgICAgc3RhdHVzOiBjb21wbGV0ZWQgPyAnY29tcGxldGVkJyA6ICd3YWl0aW5nJyxcbiAgICAgICAgICBjcmVhdGVkQXQ6IGNyZWF0ZWQuY3JlYXRlZEF0LFxuICAgICAgICAgIHJlc3VtZUF0OlxuICAgICAgICAgICAgY3JlYXRlZC5ldmVudFR5cGUgPT09ICd3YWl0X2NyZWF0ZWQnXG4gICAgICAgICAgICAgID8gY3JlYXRlZC5ldmVudERhdGE/LnJlc3VtZUF0XG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGNvbXBsZXRlZEF0OiBjb21wbGV0ZWQ/LmNyZWF0ZWRBdCxcbiAgICAgICAgICBldmVudHM6IHdhaXRFdmVudHMsXG4gICAgICAgIH0sXG4gICAgICAgIGNyZWF0ZWQub2NjdXJyZWRBdFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gd2FpdHM7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gbWF0ZXJpYWxpemVBbGxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgbWF0ZXJpYWxpemVzIGFsbCBlbnRpdHkgdHlwZXMgZnJvbSBhIGZsYXRcbiAqIGV2ZW50IGxpc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRlcmlhbGl6ZUFsbChldmVudHM6IEV2ZW50W10pOiBNYXRlcmlhbGl6ZWRFbnRpdGllcyB7XG4gIHJldHVybiB7XG4gICAgc3RlcHM6IG1hdGVyaWFsaXplU3RlcHMoZXZlbnRzKSxcbiAgICBob29rczogbWF0ZXJpYWxpemVIb29rcyhldmVudHMpLFxuICAgIHdhaXRzOiBtYXRlcmlhbGl6ZVdhaXRzKGV2ZW50cyksXG4gIH07XG59XG4iXX0=
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import type { Step } from '@workflow/world';
|
|
2
2
|
import type { ModelMessage } from 'ai';
|
|
3
|
-
import { type ClassValue } from 'clsx';
|
|
4
|
-
export declare function cn(...inputs: ClassValue[]): string;
|
|
5
3
|
/**
|
|
6
4
|
* Formats a duration in milliseconds to a human-readable string.
|
|
7
5
|
*
|
package/dist/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAWvC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,MAAM,CAiDlE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,GACf,MAAM,CAKR;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,OAAO,GAAG,YAAY,EAAE,GAAG,IAAI,CAmB7E;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAc/D"}
|