@workflow/web-shared 5.0.0-beta.42 → 5.0.0-beta.44
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 +4 -4
- package/dist/components/event-list-view.d.ts +12 -0
- package/dist/components/event-list-view.d.ts.map +1 -1
- package/dist/components/event-list-view.js +41 -20
- package/dist/components/sidebar/attribute-panel.d.ts +6 -2
- package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
- package/dist/components/sidebar/attribute-panel.js +10 -8
- package/dist/components/sidebar/copyable-data-block.d.ts.map +1 -1
- package/dist/components/sidebar/copyable-data-block.js +2 -2
- package/dist/components/sidebar/entity-detail-panel.d.ts +6 -2
- package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
- package/dist/components/sidebar/entity-detail-panel.js +13 -5
- package/dist/components/sidebar/events-list.d.ts.map +1 -1
- package/dist/components/sidebar/events-list.js +12 -5
- package/dist/components/sidebar/resolve-hook-modal.js +1 -1
- package/dist/components/sidebar/sidebar-data-context.d.ts +2 -0
- package/dist/components/sidebar/sidebar-data-context.d.ts.map +1 -1
- package/dist/components/sidebar/sidebar-data-context.js +1 -1
- package/dist/components/stream-viewer.js +2 -2
- package/dist/components/trace-viewer/components/detail-panel-width.d.ts +4 -4
- package/dist/components/trace-viewer/components/detail-panel-width.d.ts.map +1 -1
- package/dist/components/trace-viewer/components/detail-panel-width.js +5 -5
- package/dist/components/trace-viewer/components/detail-panel.d.ts +1 -1
- package/dist/components/trace-viewer/components/detail-panel.d.ts.map +1 -1
- package/dist/components/trace-viewer/components/detail-panel.js +3 -3
- package/dist/components/trace-viewer/components/draggable-border.d.ts +1 -1
- package/dist/components/trace-viewer/components/draggable-border.js +2 -2
- package/dist/components/trace-viewer/components/middle-truncate/measurement-batch.d.ts +9 -0
- package/dist/components/trace-viewer/components/middle-truncate/measurement-batch.d.ts.map +1 -0
- package/dist/components/trace-viewer/components/middle-truncate/measurement-batch.js +29 -0
- package/dist/components/trace-viewer/components/middle-truncate/middle-truncate.d.ts.map +1 -1
- package/dist/components/trace-viewer/components/middle-truncate/middle-truncate.js +16 -8
- package/dist/components/trace-viewer/components/middle-truncate/use-middle-truncate.d.ts.map +1 -1
- package/dist/components/trace-viewer/components/middle-truncate/use-middle-truncate.js +83 -19
- package/dist/components/trace-viewer/components/minimap.js +4 -4
- package/dist/components/trace-viewer/components/span-markers.d.ts +8 -9
- package/dist/components/trace-viewer/components/span-markers.d.ts.map +1 -1
- package/dist/components/trace-viewer/components/span-markers.js +13 -10
- package/dist/components/trace-viewer/components/timeline.d.ts +1 -1
- package/dist/components/trace-viewer/components/timeline.js +4 -4
- package/dist/components/trace-viewer/components/use-row-window.d.ts +1 -1
- package/dist/components/trace-viewer/components/use-row-window.js +2 -2
- package/dist/components/trace-viewer/trace-viewer.js +3 -3
- package/dist/components/trace-viewer/utils.d.ts +3 -1
- package/dist/components/trace-viewer/utils.d.ts.map +1 -1
- package/dist/components/trace-viewer/utils.js +6 -5
- package/dist/components/ui/data-inspector.d.ts +7 -1
- package/dist/components/ui/data-inspector.d.ts.map +1 -1
- package/dist/components/ui/data-inspector.js +10 -5
- package/dist/components/ui/decrypt-button.d.ts +5 -1
- package/dist/components/ui/decrypt-button.d.ts.map +1 -1
- package/dist/components/ui/decrypt-button.js +4 -4
- package/dist/components/ui/duplicate-event-tooltip.d.ts +15 -5
- package/dist/components/ui/duplicate-event-tooltip.d.ts.map +1 -1
- package/dist/components/ui/duplicate-event-tooltip.js +18 -9
- package/dist/components/ui/error-stack-block.js +4 -4
- package/dist/components/ui/timestamp-tooltip.d.ts +5 -3
- package/dist/components/ui/timestamp-tooltip.d.ts.map +1 -1
- package/dist/components/ui/timestamp-tooltip.js +9 -9
- package/dist/components/workflow-traces/event-colors.d.ts.map +1 -1
- package/dist/components/workflow-traces/event-colors.js +11 -1
- package/dist/components/workflow-traces/trace-span-construction.d.ts.map +1 -1
- package/dist/components/workflow-traces/trace-span-construction.js +5 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/lib/duplicate-events.d.ts +1 -1
- package/dist/lib/duplicate-events.js +2 -2
- package/dist/lib/hydration.d.ts.map +1 -1
- package/dist/lib/hydration.js +8 -13
- package/dist/lib/sealed-events.d.ts +28 -0
- package/dist/lib/sealed-events.d.ts.map +1 -0
- package/dist/lib/sealed-events.js +30 -0
- package/dist/lib/trace-builder.d.ts.map +1 -1
- package/dist/lib/trace-builder.js +8 -5
- package/dist/lib/utils.d.ts +1 -1
- package/dist/lib/utils.js +2 -2
- package/dist/lib/zstd-browser-decoder.js +2 -2
- package/package.json +5 -5
- package/src/components/event-list-view.tsx +57 -22
- package/src/components/sidebar/attribute-panel.tsx +15 -7
- package/src/components/sidebar/copyable-data-block.tsx +8 -1
- package/src/components/sidebar/entity-detail-panel.tsx +18 -2
- package/src/components/sidebar/events-list.tsx +16 -6
- package/src/components/sidebar/resolve-hook-modal.tsx +2 -2
- package/src/components/sidebar/sidebar-data-context.tsx +2 -0
- package/src/components/stream-viewer.tsx +1 -1
- package/src/components/trace-viewer/components/detail-panel-width.ts +4 -4
- package/src/components/trace-viewer/components/detail-panel.tsx +3 -1
- package/src/components/trace-viewer/components/draggable-border.tsx +1 -1
- package/src/components/trace-viewer/components/middle-truncate/measurement-batch.ts +47 -0
- package/src/components/trace-viewer/components/middle-truncate/middle-truncate.tsx +15 -7
- package/src/components/trace-viewer/components/middle-truncate/use-middle-truncate.ts +132 -38
- package/src/components/trace-viewer/components/minimap.tsx +3 -3
- package/src/components/trace-viewer/components/span-markers.tsx +18 -13
- package/src/components/trace-viewer/components/timeline.tsx +4 -4
- package/src/components/trace-viewer/components/use-row-window.ts +1 -1
- package/src/components/trace-viewer/trace-viewer.tsx +2 -2
- package/src/components/trace-viewer/utils.test.ts +5 -3
- package/src/components/trace-viewer/utils.ts +12 -8
- package/src/components/ui/data-inspector.tsx +19 -3
- package/src/components/ui/decrypt-button.tsx +9 -2
- package/src/components/ui/duplicate-event-tooltip.tsx +32 -10
- package/src/components/ui/error-stack-block.tsx +3 -3
- package/src/components/ui/timestamp-tooltip.tsx +16 -6
- package/src/components/workflow-traces/event-colors.ts +11 -0
- package/src/components/workflow-traces/trace-span-construction.test.ts +27 -1
- package/src/components/workflow-traces/trace-span-construction.ts +5 -3
- package/src/index.ts +4 -0
- package/src/lib/duplicate-events.ts +1 -1
- package/src/lib/hydration.ts +7 -12
- package/src/lib/sealed-events.ts +32 -0
- package/src/lib/trace-builder.test.ts +29 -1
- package/src/lib/trace-builder.ts +10 -5
- package/src/lib/utils.ts +1 -1
- package/src/lib/zstd-browser-decoder.ts +1 -1
|
@@ -16,24 +16,26 @@ type RelativeTimeCardProps = Omit<ContextCardTriggerProps, 'content' | 'children
|
|
|
16
16
|
date?: number | null;
|
|
17
17
|
/** Custom content to render instead of the default relative time text. */
|
|
18
18
|
children?: ReactNode;
|
|
19
|
+
prefix?: string;
|
|
19
20
|
};
|
|
20
21
|
/**
|
|
21
22
|
* Relative time label that reveals a context card with detailed UTC and local
|
|
22
23
|
* timestamps on hover. Renders a default short relative time label (e.g.
|
|
23
|
-
* "3 days ago") when `children` is omitted; renders
|
|
24
|
+
* "3 days ago") when `children` is omitted; renders only the children without
|
|
24
25
|
* the hover card when `date` is nullish.
|
|
25
26
|
*/
|
|
26
|
-
export declare function RelativeTimeCard({ date, children: _children, ...props }: RelativeTimeCardProps): ReactNode;
|
|
27
|
+
export declare function RelativeTimeCard({ date, children: _children, prefix, ...props }: RelativeTimeCardProps): ReactNode;
|
|
27
28
|
/**
|
|
28
29
|
* Wraps an already-formatted timestamp display with a relative-time hover
|
|
29
30
|
* card. Self-mounts a {@link ContextCardProvider} when one isn't already
|
|
30
31
|
* present so it works anywhere, but shares a provider (enabling the animated
|
|
31
32
|
* card morph between adjacent timestamps) when rendered inside one.
|
|
32
33
|
*/
|
|
33
|
-
export declare function TimestampTooltip({ date, children, side, }: {
|
|
34
|
+
export declare function TimestampTooltip({ date, children, side, prefix, }: {
|
|
34
35
|
date: number | Date | string | null | undefined;
|
|
35
36
|
children: ReactNode;
|
|
36
37
|
side?: ContextCardTriggerProps['side'];
|
|
38
|
+
prefix?: string;
|
|
37
39
|
}): ReactNode;
|
|
38
40
|
export {};
|
|
39
41
|
//# sourceMappingURL=timestamp-tooltip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp-tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/ui/timestamp-tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAGL,KAAK,uBAAuB,EAE7B,MAAM,gBAAgB,CAAC;AAoCxB;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgB/C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAgCvE;
|
|
1
|
+
{"version":3,"file":"timestamp-tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/ui/timestamp-tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAGL,KAAK,uBAAuB,EAE7B,MAAM,gBAAgB,CAAC;AAoCxB;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgB/C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAgCvE;AA4FD,KAAK,qBAAqB,GAAG,IAAI,CAC/B,uBAAuB,EACvB,SAAS,GAAG,UAAU,CACvB,GAAG;IACF,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,GAAG,KAAK,EACT,EAAE,qBAAqB,GAAG,SAAS,CAcnC;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,IAAY,EACZ,MAAM,GACP,EAAE;IACD,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,SAAS,CAmBZ"}
|
|
@@ -103,10 +103,10 @@ function ZoneDateTimeRow({ date, zone, }) {
|
|
|
103
103
|
});
|
|
104
104
|
return (_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("div", { className: "flex items-center justify-center h-4 px-1.5 bg-gray-200 rounded-xs", children: _jsx("span", { className: "text-label-12-mono text-gray-900", children: formattedZone }) }), _jsx("span", { className: "text-label-13 text-gray-1000", children: formattedDate })] }), _jsx("span", { className: "tabular-nums text-label-12-mono text-gray-900", children: formattedTime })] }));
|
|
105
105
|
}
|
|
106
|
-
function RelativeTimeContextCardContent({ date }) {
|
|
106
|
+
function RelativeTimeContextCardContent({ date, prefix, }) {
|
|
107
107
|
const localTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
108
108
|
const timeAgo = useTimeAgo(date);
|
|
109
|
-
return (_jsxs("div", { className: "flex flex-col gap-3 min-w-[300px]", children: [_jsx("div", { className: "flex flex-col gap-3", children: _jsx("span", { className: "tabular-nums text-label-13 text-gray-900", children: timeAgo }) }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(ZoneDateTimeRow, { date: date, zone: "UTC" }), _jsx(ZoneDateTimeRow, { date: date, zone: localTimezone })] })] }));
|
|
109
|
+
return (_jsxs("div", { className: "flex flex-col gap-3 min-w-[300px]", children: [_jsx("div", { className: "flex flex-col gap-3", children: _jsx("span", { className: "tabular-nums text-label-13 text-gray-900", children: prefix ? `${prefix} ${timeAgo}` : timeAgo }) }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(ZoneDateTimeRow, { date: date, zone: "UTC" }), _jsx(ZoneDateTimeRow, { date: date, zone: localTimezone })] })] }));
|
|
110
110
|
}
|
|
111
111
|
function DefaultTimeText({ date, }) {
|
|
112
112
|
const shortTimeAgo = useShortTimeAgo(date);
|
|
@@ -115,17 +115,17 @@ function DefaultTimeText({ date, }) {
|
|
|
115
115
|
/**
|
|
116
116
|
* Relative time label that reveals a context card with detailed UTC and local
|
|
117
117
|
* timestamps on hover. Renders a default short relative time label (e.g.
|
|
118
|
-
* "3 days ago") when `children` is omitted; renders
|
|
118
|
+
* "3 days ago") when `children` is omitted; renders only the children without
|
|
119
119
|
* the hover card when `date` is nullish.
|
|
120
120
|
*/
|
|
121
|
-
export function RelativeTimeCard({ date, children: _children, ...props }) {
|
|
121
|
+
export function RelativeTimeCard({ date, children: _children, prefix, ...props }) {
|
|
122
122
|
const children = _children === undefined ? _jsx(DefaultTimeText, { date: date }) : _children;
|
|
123
123
|
if (!date)
|
|
124
124
|
return children;
|
|
125
|
-
return (_jsx(ContextCardTrigger, { content: _jsx(RelativeTimeContextCardContent, { date: date }), ...props, children: children }));
|
|
125
|
+
return (_jsx(ContextCardTrigger, { content: _jsx(RelativeTimeContextCardContent, { date: date, prefix: prefix }), ...props, children: children }));
|
|
126
126
|
}
|
|
127
127
|
// ---------------------------------------------------------------------------
|
|
128
|
-
// TimestampTooltip
|
|
128
|
+
// TimestampTooltip: convenience wrapper used across the observability UI
|
|
129
129
|
// ---------------------------------------------------------------------------
|
|
130
130
|
/**
|
|
131
131
|
* Wraps an already-formatted timestamp display with a relative-time hover
|
|
@@ -133,7 +133,7 @@ export function RelativeTimeCard({ date, children: _children, ...props }) {
|
|
|
133
133
|
* present so it works anywhere, but shares a provider (enabling the animated
|
|
134
134
|
* card morph between adjacent timestamps) when rendered inside one.
|
|
135
135
|
*/
|
|
136
|
-
export function TimestampTooltip({ date, children, side = 'top', }) {
|
|
136
|
+
export function TimestampTooltip({ date, children, side = 'top', prefix, }) {
|
|
137
137
|
const hasProvider = useHasContextCardProvider();
|
|
138
138
|
const ts = date == null
|
|
139
139
|
? null
|
|
@@ -142,7 +142,7 @@ export function TimestampTooltip({ date, children, side = 'top', }) {
|
|
|
142
142
|
: new Date(date).getTime();
|
|
143
143
|
if (ts == null || Number.isNaN(ts))
|
|
144
144
|
return _jsx(_Fragment, { children: children });
|
|
145
|
-
const card = (_jsx(RelativeTimeCard, { date: ts, side: side, asChild: true, children: children }));
|
|
145
|
+
const card = (_jsx(RelativeTimeCard, { date: ts, side: side, prefix: prefix, asChild: true, children: children }));
|
|
146
146
|
return hasProvider ? card : _jsx(ContextCardProvider, { children: card });
|
|
147
147
|
}
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXN0YW1wLXRvb2x0aXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy91aS90aW1lc3RhbXAtdG9vbHRpcC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUdiLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBRWxCLHlCQUF5QixHQUMxQixNQUFNLGdCQUFnQixDQUFDO0FBV3hCLE1BQU0sVUFBVSxHQUFlO0lBQzdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFO0lBQ2pDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFO0lBQ2pDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO0lBQzdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFO0lBQzdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFO0lBQzdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFO0NBQzdCLENBQUM7QUFFRixTQUFTLG9CQUFvQixDQUFDLElBQVk7SUFDeEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFFNUIsS0FBSyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxNQUFNLENB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QUFJLEdBQUcsQ0FDWCxLQUFDLGdCQUFnQixJQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLGtCQUM1QyxRQUFRLEdBQ1EsQ0FDcEIsQ0FBQztJQUVGLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUMsbUJBQW1CLGNBQUUsSUFBSSxHQUF1QixDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIENvbnRleHRDYXJkUHJvdmlkZXIsXG4gIENvbnRleHRDYXJkVHJpZ2dlcixcbiAgdHlwZSBDb250ZXh0Q2FyZFRyaWdnZXJQcm9wcyxcbiAgdXNlSGFzQ29udGV4dENhcmRQcm92aWRlcixcbn0gZnJvbSAnLi9jb250ZXh0LWNhcmQnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRpbWUgZm9ybWF0dGluZyBoZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaW50ZXJmYWNlIFRpbWVVbml0IHtcbiAgdW5pdDogSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXRVbml0O1xuICBtczogbnVtYmVyO1xufVxuXG5jb25zdCBUSU1FX1VOSVRTOiBUaW1lVW5pdFtdID0gW1xuICB7IHVuaXQ6ICd5ZWFyJywgbXM6IDMxNTM2MDAwMDAwIH0sXG4gIHsgdW5pdDogJ21vbnRoJywgbXM6IDI2MjgwMDAwMDAgfSxcbiAgeyB1bml0OiAnZGF5JywgbXM6IDg2NDAwMDAwIH0sXG4gIHsgdW5pdDogJ2hvdXInLCBtczogMzYwMDAwMCB9LFxuICB7IHVuaXQ6ICdtaW51dGUnLCBtczogNjAwMDAgfSxcbiAgeyB1bml0OiAnc2Vjb25kJywgbXM6IDEwMDAgfSxcbl07XG5cbmZ1bmN0aW9uIGZvcm1hdFRpbWVEaWZmZXJlbmNlKGRpZmY6IG51bWJlcik6IHN0cmluZyB7XG4gIGxldCByZW1haW5pbmcgPSBNYXRoLmFicyhkaWZmKTtcbiAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgeyB1bml0LCBtcyB9IG9mIFRJTUVfVU5JVFMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IE1hdGguZmxvb3IocmVtYWluaW5nIC8gbXMpO1xuICAgIGlmICh2YWx1ZSA+IDAgfHwgcmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc3VsdC5wdXNoKGAke3ZhbHVlfSAke3VuaXR9JHt2YWx1ZSAhPT0gMSA/ICdzJyA6ICcnfWApO1xuICAgICAgcmVtYWluaW5nICU9IG1zO1xuICAgIH1cbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMykgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0LmpvaW4oJywgJyk7XG59XG5cbi8qKlxuICogRGV0YWlsZWQgcmVsYXRpdmUgdGltZSBzdHJpbmcgdGhhdCBhdXRvLXVwZGF0ZXMgZXZlcnkgc2Vjb25kXG4gKiAoZS5nLiBcIjIgaG91cnMsIDE1IG1pbnV0ZXMsIDMwIHNlY29uZHMgYWdvXCIpLiBVc2VkIGluc2lkZSB0aGUgaG92ZXIgY2FyZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRpbWVBZ28oZGF0ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgW3RpbWVBZ28sIHNldFRpbWVBZ29dID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB1cGRhdGVUaW1lQWdvID0gKCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgZGlmZiA9IERhdGUubm93KCkgLSBkYXRlO1xuICAgICAgY29uc3QgZm9ybWF0dGVkRGlmZiA9IGZvcm1hdFRpbWVEaWZmZXJlbmNlKGRpZmYpO1xuICAgICAgc2V0VGltZUFnbyhmb3JtYXR0ZWREaWZmID8gYCR7Zm9ybWF0dGVkRGlmZn0gYWdvYCA6ICdKdXN0IG5vdycpO1xuICAgIH07XG5cbiAgICB1cGRhdGVUaW1lQWdvKCk7XG4gICAgY29uc3QgdGltZXIgPSBzZXRJbnRlcnZhbCh1cGRhdGVUaW1lQWdvLCAxMDAwKTtcbiAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbCh0aW1lcik7XG4gIH0sIFtkYXRlXSk7XG5cbiAgcmV0dXJuIHRpbWVBZ287XG59XG5cbi8qKlxuICogU2hvcnQgcmVsYXRpdmUgdGltZSBzdHJpbmcgdGhhdCBhdXRvLXVwZGF0ZXMgZXZlcnkgbWludXRlXG4gKiAoZS5nLiBcIjMgZGF5cyBhZ29cIiwgXCI1IGhvdXJzIGFnb1wiKS4gUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcgaWYgYGRhdGVgIGlzXG4gKiBudWxsaXNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU2hvcnRUaW1lQWdvKGRhdGU6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICBjb25zdCBbc2hvcnRUaW1lQWdvLCBzZXRTaG9ydFRpbWVBZ29dID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHNldFNob3J0VGltZUFnbygnJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlU2hvcnRUaW1lQWdvID0gKCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgZGlmZiA9IERhdGUubm93KCkgLSBkYXRlO1xuICAgICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IoZGlmZiAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XG4gICAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IoZGlmZiAvICgxMDAwICogNjAgKiA2MCkpO1xuICAgICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoZGlmZiAvICgxMDAwICogNjApKTtcblxuICAgICAgaWYgKGRheXMgPiAwKSB7XG4gICAgICAgIHNldFNob3J0VGltZUFnbyhgJHtkYXlzfSBkYXkke2RheXMgPiAxID8gJ3MnIDogJyd9IGFnb2ApO1xuICAgICAgfSBlbHNlIGlmIChob3VycyA+IDApIHtcbiAgICAgICAgc2V0U2hvcnRUaW1lQWdvKGAke2hvdXJzfSBob3VyJHtob3VycyA+IDEgPyAncycgOiAnJ30gYWdvYCk7XG4gICAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPiAwKSB7XG4gICAgICAgIHNldFNob3J0VGltZUFnbyhgJHttaW51dGVzfSBtaW51dGUke21pbnV0ZXMgPiAxID8gJ3MnIDogJyd9IGFnb2ApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0U2hvcnRUaW1lQWdvKCdKdXN0IG5vdycpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1cGRhdGVTaG9ydFRpbWVBZ28oKTtcbiAgICBjb25zdCB0aW1lciA9IHNldEludGVydmFsKHVwZGF0ZVNob3J0VGltZUFnbywgNjAwMDApO1xuICAgIHJldHVybiAoKSA9PiBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgfSwgW2RhdGVdKTtcblxuICByZXR1cm4gc2hvcnRUaW1lQWdvO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEhvdmVyIGNhcmQgY29udGVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIFpvbmVEYXRlVGltZVJvdyh7XG4gIGRhdGUsXG4gIHpvbmUsXG59OiB7XG4gIHpvbmU6IHN0cmluZztcbiAgZGF0ZTogbnVtYmVyO1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShkYXRlKTtcblxuICBjb25zdCBmb3JtYXR0ZWRab25lID1cbiAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnLCB7XG4gICAgICB0aW1lWm9uZTogem9uZSxcbiAgICAgIHRpbWVab25lTmFtZTogJ3Nob3J0JyxcbiAgICB9KVxuICAgICAgLmZvcm1hdFRvUGFydHMoZGF0ZU9iailcbiAgICAgIC5maW5kKChwYXJ0KSA9PiBwYXJ0LnR5cGUgPT09ICd0aW1lWm9uZU5hbWUnKT8udmFsdWUgfHwgem9uZTtcblxuICBjb25zdCBmb3JtYXR0ZWREYXRlID0gZGF0ZU9iai50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7XG4gICAgdGltZVpvbmU6IHpvbmUsXG4gICAgeWVhcjogJ251bWVyaWMnLFxuICAgIG1vbnRoOiAnbG9uZycsXG4gICAgZGF5OiAnbnVtZXJpYycsXG4gIH0pO1xuXG4gIGNvbnN0IGZvcm1hdHRlZFRpbWUgPSBkYXRlT2JqLnRvTG9jYWxlVGltZVN0cmluZygnZW4tVVMnLCB7XG4gICAgdGltZVpvbmU6IHpvbmUsXG4gICAgaG91cjogJzItZGlnaXQnLFxuICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgIHNlY29uZDogJzItZGlnaXQnLFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBoLTQgcHgtMS41IGJnLWdyYXktMjAwIHJvdW5kZWQteHNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWxhYmVsLTEyLW1vbm8gdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgICAge2Zvcm1hdHRlZFpvbmV9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1sYWJlbC0xMyB0ZXh0LWdyYXktMTAwMFwiPntmb3JtYXR0ZWREYXRlfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFidWxhci1udW1zIHRleHQtbGFiZWwtMTItbW9ubyB0ZXh0LWdyYXktOTAwXCI+XG4gICAgICAgIHtmb3JtYXR0ZWRUaW1lfVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5mdW5jdGlvbiBSZWxhdGl2ZVRpbWVDb250ZXh0Q2FyZENvbnRlbnQoeyBkYXRlIH06IHsgZGF0ZTogbnVtYmVyIH0pOiBSZWFjdE5vZGUge1xuICBjb25zdCBsb2NhbFRpbWV6b25lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICBjb25zdCB0aW1lQWdvID0gdXNlVGltZUFnbyhkYXRlKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtMyBtaW4tdy1bMzAwcHhdXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFidWxhci1udW1zIHRleHQtbGFiZWwtMTMgdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgIHt0aW1lQWdvfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxuICAgICAgICA8Wm9uZURhdGVUaW1lUm93IGRhdGU9e2RhdGV9IHpvbmU9XCJVVENcIiAvPlxuICAgICAgICA8Wm9uZURhdGVUaW1lUm93IGRhdGU9e2RhdGV9IHpvbmU9e2xvY2FsVGltZXpvbmV9IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gRGVmYXVsdFRpbWVUZXh0KHtcbiAgZGF0ZSxcbn06IHtcbiAgZGF0ZTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbn0pOiBSZWFjdE5vZGUge1xuICBjb25zdCBzaG9ydFRpbWVBZ28gPSB1c2VTaG9ydFRpbWVBZ28oZGF0ZSk7XG4gIHJldHVybiA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWxhYmVsLTE0IHRleHQtZ3JheS05MDBcIj57c2hvcnRUaW1lQWdvfTwvc3Bhbj47XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVsYXRpdmVUaW1lQ2FyZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnR5cGUgUmVsYXRpdmVUaW1lQ2FyZFByb3BzID0gT21pdDxcbiAgQ29udGV4dENhcmRUcmlnZ2VyUHJvcHMsXG4gICdjb250ZW50JyB8ICdjaGlsZHJlbidcbj4gJiB7XG4gIC8qKiBUaW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzIHRvIGRpc3BsYXkgYXMgYSByZWxhdGl2ZSB0aW1lLiAqL1xuICBkYXRlPzogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIEN1c3RvbSBjb250ZW50IHRvIHJlbmRlciBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IHJlbGF0aXZlIHRpbWUgdGV4dC4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG4vKipcbiAqIFJlbGF0aXZlIHRpbWUgbGFiZWwgdGhhdCByZXZlYWxzIGEgY29udGV4dCBjYXJkIHdpdGggZGV0YWlsZWQgVVRDIGFuZCBsb2NhbFxuICogdGltZXN0YW1wcyBvbiBob3Zlci4gUmVuZGVycyBhIGRlZmF1bHQgc2hvcnQgcmVsYXRpdmUgdGltZSBsYWJlbCAoZS5nLlxuICogXCIzIGRheXMgYWdvXCIpIHdoZW4gYGNoaWxkcmVuYCBpcyBvbWl0dGVkOyByZW5kZXJzIGp1c3QgdGhlIGNoaWxkcmVuIHdpdGhvdXRcbiAqIHRoZSBob3ZlciBjYXJkIHdoZW4gYGRhdGVgIGlzIG51bGxpc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBSZWxhdGl2ZVRpbWVDYXJkKHtcbiAgZGF0ZSxcbiAgY2hpbGRyZW46IF9jaGlsZHJlbixcbiAgLi4ucHJvcHNcbn06IFJlbGF0aXZlVGltZUNhcmRQcm9wcyk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IGNoaWxkcmVuID1cbiAgICBfY2hpbGRyZW4gPT09IHVuZGVmaW5lZCA/IDxEZWZhdWx0VGltZVRleHQgZGF0ZT17ZGF0ZX0gLz4gOiBfY2hpbGRyZW47XG5cbiAgaWYgKCFkYXRlKSByZXR1cm4gY2hpbGRyZW47XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGV4dENhcmRUcmlnZ2VyXG4gICAgICBjb250ZW50PXs8UmVsYXRpdmVUaW1lQ29udGV4dENhcmRDb250ZW50IGRhdGU9e2RhdGV9IC8+fVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0NvbnRleHRDYXJkVHJpZ2dlcj5cbiAgKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaW1lc3RhbXBUb29sdGlwIOKAlCBjb252ZW5pZW5jZSB3cmFwcGVyIHVzZWQgYWNyb3NzIHRoZSBvYnNlcnZhYmlsaXR5IFVJXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBXcmFwcyBhbiBhbHJlYWR5LWZvcm1hdHRlZCB0aW1lc3RhbXAgZGlzcGxheSB3aXRoIGEgcmVsYXRpdmUtdGltZSBob3ZlclxuICogY2FyZC4gU2VsZi1tb3VudHMgYSB7QGxpbmsgQ29udGV4dENhcmRQcm92aWRlcn0gd2hlbiBvbmUgaXNuJ3QgYWxyZWFkeVxuICogcHJlc2VudCBzbyBpdCB3b3JrcyBhbnl3aGVyZSwgYnV0IHNoYXJlcyBhIHByb3ZpZGVyIChlbmFibGluZyB0aGUgYW5pbWF0ZWRcbiAqIGNhcmQgbW9ycGggYmV0d2VlbiBhZGphY2VudCB0aW1lc3RhbXBzKSB3aGVuIHJlbmRlcmVkIGluc2lkZSBvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUaW1lc3RhbXBUb29sdGlwKHtcbiAgZGF0ZSxcbiAgY2hpbGRyZW4sXG4gIHNpZGUgPSAndG9wJyxcbn06IHtcbiAgZGF0ZTogbnVtYmVyIHwgRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIHNpZGU/OiBDb250ZXh0Q2FyZFRyaWdnZXJQcm9wc1snc2lkZSddO1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IGhhc1Byb3ZpZGVyID0gdXNlSGFzQ29udGV4dENhcmRQcm92aWRlcigpO1xuXG4gIGNvbnN0IHRzID1cbiAgICBkYXRlID09IG51bGxcbiAgICAgID8gbnVsbFxuICAgICAgOiB0eXBlb2YgZGF0ZSA9PT0gJ251bWJlcidcbiAgICAgICAgPyBkYXRlXG4gICAgICAgIDogbmV3IERhdGUoZGF0ZSkuZ2V0VGltZSgpO1xuXG4gIGlmICh0cyA9PSBudWxsIHx8IE51bWJlci5pc05hTih0cykpIHJldHVybiA8PntjaGlsZHJlbn08Lz47XG5cbiAgY29uc3QgY2FyZCA9IChcbiAgICA8UmVsYXRpdmVUaW1lQ2FyZCBkYXRlPXt0c30gc2lkZT17c2lkZX0gYXNDaGlsZD5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1JlbGF0aXZlVGltZUNhcmQ+XG4gICk7XG5cbiAgcmV0dXJuIGhhc1Byb3ZpZGVyID8gY2FyZCA6IDxDb250ZXh0Q2FyZFByb3ZpZGVyPntjYXJkfTwvQ29udGV4dENhcmRQcm92aWRlcj47XG59XG4iXX0=
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXN0YW1wLXRvb2x0aXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy91aS90aW1lc3RhbXAtdG9vbHRpcC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUdiLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBRWxCLHlCQUF5QixHQUMxQixNQUFNLGdCQUFnQixDQUFDO0FBV3hCLE1BQU0sVUFBVSxHQUFlO0lBQzdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFO0lBQ2pDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFO0lBQ2pDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO0lBQzdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFO0lBQzdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFO0lBQzdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFO0NBQzdCLENBQUM7QUFFRixTQUFTLG9CQUFvQixDQUFDLElBQVk7SUFDeEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFFNUIsS0FBSyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxNQUFNLENB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LENBQUM7SUFFakMsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQUUsT0FBTyw0QkFBRyxRQUFRLEdBQUksQ0FBQztJQUUzRCxNQUFNLElBQUksR0FBRyxDQUNYLEtBQUMsZ0JBQWdCLElBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxrQkFDNUQsUUFBUSxHQUNRLENBQ3BCLENBQUM7SUFFRixPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFDLG1CQUFtQixjQUFFLElBQUksR0FBdUIsQ0FBQztBQUNoRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBDb250ZXh0Q2FyZFByb3ZpZGVyLFxuICBDb250ZXh0Q2FyZFRyaWdnZXIsXG4gIHR5cGUgQ29udGV4dENhcmRUcmlnZ2VyUHJvcHMsXG4gIHVzZUhhc0NvbnRleHRDYXJkUHJvdmlkZXIsXG59IGZyb20gJy4vY29udGV4dC1jYXJkJztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaW1lIGZvcm1hdHRpbmcgaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmludGVyZmFjZSBUaW1lVW5pdCB7XG4gIHVuaXQ6IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0VW5pdDtcbiAgbXM6IG51bWJlcjtcbn1cblxuY29uc3QgVElNRV9VTklUUzogVGltZVVuaXRbXSA9IFtcbiAgeyB1bml0OiAneWVhcicsIG1zOiAzMTUzNjAwMDAwMCB9LFxuICB7IHVuaXQ6ICdtb250aCcsIG1zOiAyNjI4MDAwMDAwIH0sXG4gIHsgdW5pdDogJ2RheScsIG1zOiA4NjQwMDAwMCB9LFxuICB7IHVuaXQ6ICdob3VyJywgbXM6IDM2MDAwMDAgfSxcbiAgeyB1bml0OiAnbWludXRlJywgbXM6IDYwMDAwIH0sXG4gIHsgdW5pdDogJ3NlY29uZCcsIG1zOiAxMDAwIH0sXG5dO1xuXG5mdW5jdGlvbiBmb3JtYXRUaW1lRGlmZmVyZW5jZShkaWZmOiBudW1iZXIpOiBzdHJpbmcge1xuICBsZXQgcmVtYWluaW5nID0gTWF0aC5hYnMoZGlmZik7XG4gIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHsgdW5pdCwgbXMgfSBvZiBUSU1FX1VOSVRTKSB7XG4gICAgY29uc3QgdmFsdWUgPSBNYXRoLmZsb29yKHJlbWFpbmluZyAvIG1zKTtcbiAgICBpZiAodmFsdWUgPiAwIHx8IHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHQucHVzaChgJHt2YWx1ZX0gJHt1bml0fSR7dmFsdWUgIT09IDEgPyAncycgOiAnJ31gKTtcbiAgICAgIHJlbWFpbmluZyAlPSBtcztcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IDMpIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdC5qb2luKCcsICcpO1xufVxuXG4vKipcbiAqIERldGFpbGVkIHJlbGF0aXZlIHRpbWUgc3RyaW5nIHRoYXQgYXV0by11cGRhdGVzIGV2ZXJ5IHNlY29uZFxuICogKGUuZy4gXCIyIGhvdXJzLCAxNSBtaW51dGVzLCAzMCBzZWNvbmRzIGFnb1wiKS4gVXNlZCBpbnNpZGUgdGhlIGhvdmVyIGNhcmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VUaW1lQWdvKGRhdGU6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IFt0aW1lQWdvLCBzZXRUaW1lQWdvXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlVGltZUFnbyA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGRpZmYgPSBEYXRlLm5vdygpIC0gZGF0ZTtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZERpZmYgPSBmb3JtYXRUaW1lRGlmZmVyZW5jZShkaWZmKTtcbiAgICAgIHNldFRpbWVBZ28oZm9ybWF0dGVkRGlmZiA/IGAke2Zvcm1hdHRlZERpZmZ9IGFnb2AgOiAnSnVzdCBub3cnKTtcbiAgICB9O1xuXG4gICAgdXBkYXRlVGltZUFnbygpO1xuICAgIGNvbnN0IHRpbWVyID0gc2V0SW50ZXJ2YWwodXBkYXRlVGltZUFnbywgMTAwMCk7XG4gICAgcmV0dXJuICgpID0+IGNsZWFySW50ZXJ2YWwodGltZXIpO1xuICB9LCBbZGF0ZV0pO1xuXG4gIHJldHVybiB0aW1lQWdvO1xufVxuXG4vKipcbiAqIFNob3J0IHJlbGF0aXZlIHRpbWUgc3RyaW5nIHRoYXQgYXV0by11cGRhdGVzIGV2ZXJ5IG1pbnV0ZVxuICogKGUuZy4gXCIzIGRheXMgYWdvXCIsIFwiNSBob3VycyBhZ29cIikuIFJldHVybnMgYW4gZW1wdHkgc3RyaW5nIGlmIGBkYXRlYCBpc1xuICogbnVsbGlzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNob3J0VGltZUFnbyhkYXRlOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgY29uc3QgW3Nob3J0VGltZUFnbywgc2V0U2hvcnRUaW1lQWdvXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICBzZXRTaG9ydFRpbWVBZ28oJycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZVNob3J0VGltZUFnbyA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGRpZmYgPSBEYXRlLm5vdygpIC0gZGF0ZTtcbiAgICAgIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKGRpZmYgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xuICAgICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKGRpZmYgLyAoMTAwMCAqIDYwICogNjApKTtcbiAgICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKGRpZmYgLyAoMTAwMCAqIDYwKSk7XG5cbiAgICAgIGlmIChkYXlzID4gMCkge1xuICAgICAgICBzZXRTaG9ydFRpbWVBZ28oYCR7ZGF5c30gZGF5JHtkYXlzID4gMSA/ICdzJyA6ICcnfSBhZ29gKTtcbiAgICAgIH0gZWxzZSBpZiAoaG91cnMgPiAwKSB7XG4gICAgICAgIHNldFNob3J0VGltZUFnbyhgJHtob3Vyc30gaG91ciR7aG91cnMgPiAxID8gJ3MnIDogJyd9IGFnb2ApO1xuICAgICAgfSBlbHNlIGlmIChtaW51dGVzID4gMCkge1xuICAgICAgICBzZXRTaG9ydFRpbWVBZ28oYCR7bWludXRlc30gbWludXRlJHttaW51dGVzID4gMSA/ICdzJyA6ICcnfSBhZ29gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFNob3J0VGltZUFnbygnSnVzdCBub3cnKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdXBkYXRlU2hvcnRUaW1lQWdvKCk7XG4gICAgY29uc3QgdGltZXIgPSBzZXRJbnRlcnZhbCh1cGRhdGVTaG9ydFRpbWVBZ28sIDYwMDAwKTtcbiAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbCh0aW1lcik7XG4gIH0sIFtkYXRlXSk7XG5cbiAgcmV0dXJuIHNob3J0VGltZUFnbztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIb3ZlciBjYXJkIGNvbnRlbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBab25lRGF0ZVRpbWVSb3coe1xuICBkYXRlLFxuICB6b25lLFxufToge1xuICB6b25lOiBzdHJpbmc7XG4gIGRhdGU6IG51bWJlcjtcbn0pOiBSZWFjdE5vZGUge1xuICBjb25zdCBkYXRlT2JqID0gbmV3IERhdGUoZGF0ZSk7XG5cbiAgY29uc3QgZm9ybWF0dGVkWm9uZSA9XG4gICAgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuLVVTJywge1xuICAgICAgdGltZVpvbmU6IHpvbmUsXG4gICAgICB0aW1lWm9uZU5hbWU6ICdzaG9ydCcsXG4gICAgfSlcbiAgICAgIC5mb3JtYXRUb1BhcnRzKGRhdGVPYmopXG4gICAgICAuZmluZCgocGFydCkgPT4gcGFydC50eXBlID09PSAndGltZVpvbmVOYW1lJyk/LnZhbHVlIHx8IHpvbmU7XG5cbiAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IGRhdGVPYmoudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywge1xuICAgIHRpbWVab25lOiB6b25lLFxuICAgIHllYXI6ICdudW1lcmljJyxcbiAgICBtb250aDogJ2xvbmcnLFxuICAgIGRheTogJ251bWVyaWMnLFxuICB9KTtcblxuICBjb25zdCBmb3JtYXR0ZWRUaW1lID0gZGF0ZU9iai50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywge1xuICAgIHRpbWVab25lOiB6b25lLFxuICAgIGhvdXI6ICcyLWRpZ2l0JyxcbiAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICBzZWNvbmQ6ICcyLWRpZ2l0JyxcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtM1wiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgaC00IHB4LTEuNSBiZy1ncmF5LTIwMCByb3VuZGVkLXhzXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1sYWJlbC0xMi1tb25vIHRleHQtZ3JheS05MDBcIj5cbiAgICAgICAgICAgIHtmb3JtYXR0ZWRab25lfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtbGFiZWwtMTMgdGV4dC1ncmF5LTEwMDBcIj57Zm9ybWF0dGVkRGF0ZX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRhYnVsYXItbnVtcyB0ZXh0LWxhYmVsLTEyLW1vbm8gdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICB7Zm9ybWF0dGVkVGltZX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gUmVsYXRpdmVUaW1lQ29udGV4dENhcmRDb250ZW50KHtcbiAgZGF0ZSxcbiAgcHJlZml4LFxufToge1xuICBkYXRlOiBudW1iZXI7XG4gIHByZWZpeD86IHN0cmluZztcbn0pOiBSZWFjdE5vZGUge1xuICBjb25zdCBsb2NhbFRpbWV6b25lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICBjb25zdCB0aW1lQWdvID0gdXNlVGltZUFnbyhkYXRlKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtMyBtaW4tdy1bMzAwcHhdXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFidWxhci1udW1zIHRleHQtbGFiZWwtMTMgdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgIHtwcmVmaXggPyBgJHtwcmVmaXh9ICR7dGltZUFnb31gIDogdGltZUFnb31cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgICAgICAgPFpvbmVEYXRlVGltZVJvdyBkYXRlPXtkYXRlfSB6b25lPVwiVVRDXCIgLz5cbiAgICAgICAgPFpvbmVEYXRlVGltZVJvdyBkYXRlPXtkYXRlfSB6b25lPXtsb2NhbFRpbWV6b25lfSAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIERlZmF1bHRUaW1lVGV4dCh7XG4gIGRhdGUsXG59OiB7XG4gIGRhdGU6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG59KTogUmVhY3ROb2RlIHtcbiAgY29uc3Qgc2hvcnRUaW1lQWdvID0gdXNlU2hvcnRUaW1lQWdvKGRhdGUpO1xuICByZXR1cm4gPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1sYWJlbC0xNCB0ZXh0LWdyYXktOTAwXCI+e3Nob3J0VGltZUFnb308L3NwYW4+O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlbGF0aXZlVGltZUNhcmRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG50eXBlIFJlbGF0aXZlVGltZUNhcmRQcm9wcyA9IE9taXQ8XG4gIENvbnRleHRDYXJkVHJpZ2dlclByb3BzLFxuICAnY29udGVudCcgfCAnY2hpbGRyZW4nXG4+ICYge1xuICAvKiogVGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyB0byBkaXNwbGF5IGFzIGEgcmVsYXRpdmUgdGltZS4gKi9cbiAgZGF0ZT86IG51bWJlciB8IG51bGw7XG4gIC8qKiBDdXN0b20gY29udGVudCB0byByZW5kZXIgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCByZWxhdGl2ZSB0aW1lIHRleHQuICovXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBwcmVmaXg/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFJlbGF0aXZlIHRpbWUgbGFiZWwgdGhhdCByZXZlYWxzIGEgY29udGV4dCBjYXJkIHdpdGggZGV0YWlsZWQgVVRDIGFuZCBsb2NhbFxuICogdGltZXN0YW1wcyBvbiBob3Zlci4gUmVuZGVycyBhIGRlZmF1bHQgc2hvcnQgcmVsYXRpdmUgdGltZSBsYWJlbCAoZS5nLlxuICogXCIzIGRheXMgYWdvXCIpIHdoZW4gYGNoaWxkcmVuYCBpcyBvbWl0dGVkOyByZW5kZXJzIG9ubHkgdGhlIGNoaWxkcmVuIHdpdGhvdXRcbiAqIHRoZSBob3ZlciBjYXJkIHdoZW4gYGRhdGVgIGlzIG51bGxpc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBSZWxhdGl2ZVRpbWVDYXJkKHtcbiAgZGF0ZSxcbiAgY2hpbGRyZW46IF9jaGlsZHJlbixcbiAgcHJlZml4LFxuICAuLi5wcm9wc1xufTogUmVsYXRpdmVUaW1lQ2FyZFByb3BzKTogUmVhY3ROb2RlIHtcbiAgY29uc3QgY2hpbGRyZW4gPVxuICAgIF9jaGlsZHJlbiA9PT0gdW5kZWZpbmVkID8gPERlZmF1bHRUaW1lVGV4dCBkYXRlPXtkYXRlfSAvPiA6IF9jaGlsZHJlbjtcblxuICBpZiAoIWRhdGUpIHJldHVybiBjaGlsZHJlbjtcblxuICByZXR1cm4gKFxuICAgIDxDb250ZXh0Q2FyZFRyaWdnZXJcbiAgICAgIGNvbnRlbnQ9ezxSZWxhdGl2ZVRpbWVDb250ZXh0Q2FyZENvbnRlbnQgZGF0ZT17ZGF0ZX0gcHJlZml4PXtwcmVmaXh9IC8+fVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0NvbnRleHRDYXJkVHJpZ2dlcj5cbiAgKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaW1lc3RhbXBUb29sdGlwOiBjb252ZW5pZW5jZSB3cmFwcGVyIHVzZWQgYWNyb3NzIHRoZSBvYnNlcnZhYmlsaXR5IFVJXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBXcmFwcyBhbiBhbHJlYWR5LWZvcm1hdHRlZCB0aW1lc3RhbXAgZGlzcGxheSB3aXRoIGEgcmVsYXRpdmUtdGltZSBob3ZlclxuICogY2FyZC4gU2VsZi1tb3VudHMgYSB7QGxpbmsgQ29udGV4dENhcmRQcm92aWRlcn0gd2hlbiBvbmUgaXNuJ3QgYWxyZWFkeVxuICogcHJlc2VudCBzbyBpdCB3b3JrcyBhbnl3aGVyZSwgYnV0IHNoYXJlcyBhIHByb3ZpZGVyIChlbmFibGluZyB0aGUgYW5pbWF0ZWRcbiAqIGNhcmQgbW9ycGggYmV0d2VlbiBhZGphY2VudCB0aW1lc3RhbXBzKSB3aGVuIHJlbmRlcmVkIGluc2lkZSBvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUaW1lc3RhbXBUb29sdGlwKHtcbiAgZGF0ZSxcbiAgY2hpbGRyZW4sXG4gIHNpZGUgPSAndG9wJyxcbiAgcHJlZml4LFxufToge1xuICBkYXRlOiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgc2lkZT86IENvbnRleHRDYXJkVHJpZ2dlclByb3BzWydzaWRlJ107XG4gIHByZWZpeD86IHN0cmluZztcbn0pOiBSZWFjdE5vZGUge1xuICBjb25zdCBoYXNQcm92aWRlciA9IHVzZUhhc0NvbnRleHRDYXJkUHJvdmlkZXIoKTtcblxuICBjb25zdCB0cyA9XG4gICAgZGF0ZSA9PSBudWxsXG4gICAgICA/IG51bGxcbiAgICAgIDogdHlwZW9mIGRhdGUgPT09ICdudW1iZXInXG4gICAgICAgID8gZGF0ZVxuICAgICAgICA6IG5ldyBEYXRlKGRhdGUpLmdldFRpbWUoKTtcblxuICBpZiAodHMgPT0gbnVsbCB8fCBOdW1iZXIuaXNOYU4odHMpKSByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xuXG4gIGNvbnN0IGNhcmQgPSAoXG4gICAgPFJlbGF0aXZlVGltZUNhcmQgZGF0ZT17dHN9IHNpZGU9e3NpZGV9IHByZWZpeD17cHJlZml4fSBhc0NoaWxkPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvUmVsYXRpdmVUaW1lQ2FyZD5cbiAgKTtcblxuICByZXR1cm4gaGFzUHJvdmlkZXIgPyBjYXJkIDogPENvbnRleHRDYXJkUHJvdmlkZXI+e2NhcmR9PC9Db250ZXh0Q2FyZFByb3ZpZGVyPjtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-colors.d.ts","sourceRoot":"","sources":["../../../src/components/workflow-traces/event-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,KAAK,EAA4B,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,GAC5B,iBAAiB,
|
|
1
|
+
{"version":3,"file":"event-colors.d.ts","sourceRoot":"","sources":["../../../src/components/workflow-traces/event-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,KAAK,EAA4B,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,GAC5B,iBAAiB,CAgEnB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,OAAO,CAQ7E"}
|
|
@@ -51,6 +51,16 @@ export function getEventColor(eventType) {
|
|
|
51
51
|
secondary: 'var(--ds-gray-900)',
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
|
+
// Sealed positions - neutral gray: backend log filler, not run activity
|
|
55
|
+
if (eventType === 'noop') {
|
|
56
|
+
return {
|
|
57
|
+
color: 'var(--ds-gray-500)',
|
|
58
|
+
background: 'var(--ds-gray-100)',
|
|
59
|
+
border: 'var(--ds-gray-400)',
|
|
60
|
+
text: 'var(--ds-gray-900)',
|
|
61
|
+
secondary: 'var(--ds-gray-700)',
|
|
62
|
+
};
|
|
63
|
+
}
|
|
54
64
|
// Default - Blue
|
|
55
65
|
return {
|
|
56
66
|
color: 'var(--ds-blue-600)',
|
|
@@ -73,4 +83,4 @@ export function shouldShowVerticalLine(eventType) {
|
|
|
73
83
|
// Hide vertical lines for all other workflow events
|
|
74
84
|
return false;
|
|
75
85
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvd29ya2Zsb3ctdHJhY2VzL2V2ZW50LWNvbG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBYyx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBZXZFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUMzQixTQUE2QjtJQUU3QixpQkFBaUI7SUFDakIsSUFBSSxTQUFTLEtBQUssYUFBYSxJQUFJLFNBQVMsS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUM5RCxPQUFPO1lBQ0wsS0FBSyxFQUFFLG1CQUFtQjtZQUMxQixVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLE1BQU0sRUFBRSxtQkFBbUI7WUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixTQUFTLEVBQUUsbUJBQW1CO1NBQy9CLENBQUM7SUFDSixDQUFDO0lBRUQsMEJBQTBCO0lBQzFCLElBQUksU0FBUyxLQUFLLGVBQWUsRUFBRSxDQUFDO1FBQ2xDLE9BQU87WUFDTCxLQUFLLEVBQUUscUJBQXFCO1lBQzVCLFVBQVUsRUFBRSxxQkFBcUI7WUFDakMsTUFBTSxFQUFFLHFCQUFxQjtZQUM3QixJQUFJLEVBQUUscUJBQXFCO1lBQzNCLFNBQVMsRUFBRSxxQkFBcUI7U0FDakMsQ0FBQztJQUNKLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsSUFBSSx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU87WUFDTCxLQUFLLEVBQUUsc0JBQXNCO1lBQzdCLFVBQVUsRUFBRSxzQkFBc0I7WUFDbEMsTUFBTSxFQUFFLHNCQUFzQjtZQUM5QixJQUFJLEVBQUUsc0JBQXNCO1lBQzVCLFNBQVMsRUFBRSxzQkFBc0I7U0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsSUFBSSxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDN0IsT0FBTztZQUNMLEtBQUssRUFBRSxvQkFBb0I7WUFDM0IsVUFBVSxFQUFFLG9CQUFvQjtZQUNoQyxNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsU0FBUyxFQUFFLG9CQUFvQjtTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELHdFQUF3RTtJQUN4RSxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN6QixPQUFPO1lBQ0wsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixTQUFTLEVBQUUsb0JBQW9CO1NBQ2hDLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCO0lBQ2pCLE9BQU87UUFDTCxLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFVBQVUsRUFBRSxvQkFBb0I7UUFDaEMsTUFBTSxFQUFFLG9CQUFvQjtRQUM1QixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFNBQVMsRUFBRSxvQkFBb0I7S0FDaEMsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFNBQTZCO0lBQ2xFLDhDQUE4QztJQUM5QyxJQUFJLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29sb3IgdXRpbGl0aWVzIGZvciB3b3JrZmxvdyBldmVudCBtYXJrZXJzXG4gKi9cblxuaW1wb3J0IHsgdHlwZSBFdmVudCwgaXNIb29rTGlmZWN5Y2xlRXZlbnRUeXBlIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudENvbG9yUGFsZXR0ZSB7XG4gIC8qKiBDb2xvciBvZiB0aGUgZGlhbW9uZC9tYXJrZXIgaXRzZWxmICovXG4gIGNvbG9yOiBzdHJpbmc7XG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIGZvciBob3ZlciBpbmZvIHBvcHVwICovXG4gIGJhY2tncm91bmQ6IHN0cmluZztcbiAgLyoqIEJvcmRlciBjb2xvciBmb3IgaG92ZXIgaW5mbyBwb3B1cCAqL1xuICBib3JkZXI6IHN0cmluZztcbiAgLyoqIFRleHQgY29sb3IgZm9yIGV2ZW50IG5hbWUgaW4gaG92ZXIgcG9wdXAgKi9cbiAgdGV4dDogc3RyaW5nO1xuICAvKiogU2Vjb25kYXJ5IHRleHQgY29sb3IgZm9yIHRpbWVzdGFtcCBpbiBob3ZlciBwb3B1cCAqL1xuICBzZWNvbmRhcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGNvbG9yIHBhbGV0dGUgZm9yIGFuIGV2ZW50IGJhc2VkIG9uIGl0cyB0eXBlXG4gKiAtIFJlZCBmb3IgZmFpbHVyZXMgKHN0ZXBfZmFpbGVkLCBydW5fZmFpbGVkKVxuICogLSBPcmFuZ2UveWVsbG93IGZvciByZXRyaWVzIChzdGVwX3JldHJ5aW5nKVxuICogLSBQdXJwbGUgZm9yIHdlYmhvb2stcmVsYXRlZCBldmVudHNcbiAqIC0gVGVhbCBmb3IgYXR0cmlidXRlIGNoYW5nZXMgKGF0dHJfc2V0KVxuICogLSBCbHVlIG90aGVyd2lzZSAoZGVmYXVsdClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV2ZW50Q29sb3IoXG4gIGV2ZW50VHlwZTogRXZlbnRbJ2V2ZW50VHlwZSddXG4pOiBFdmVudENvbG9yUGFsZXR0ZSB7XG4gIC8vIEZhaWx1cmVzIC0gUmVkXG4gIGlmIChldmVudFR5cGUgPT09ICdzdGVwX2ZhaWxlZCcgfHwgZXZlbnRUeXBlID09PSAncnVuX2ZhaWxlZCcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6ICd2YXIoLS1kcy1yZWQtNjAwKScsXG4gICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tZHMtcmVkLTEwMCknLFxuICAgICAgYm9yZGVyOiAndmFyKC0tZHMtcmVkLTUwMCknLFxuICAgICAgdGV4dDogJ3ZhcigtLWRzLXJlZC05MDApJyxcbiAgICAgIHNlY29uZGFyeTogJ3ZhcigtLWRzLXJlZC03MDApJyxcbiAgICB9O1xuICB9XG5cbiAgLy8gUmV0cmllcyAtIE9yYW5nZS9ZZWxsb3dcbiAgaWYgKGV2ZW50VHlwZSA9PT0gJ3N0ZXBfcmV0cnlpbmcnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiAndmFyKC0tZHMtYW1iZXItNjAwKScsXG4gICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tZHMtYW1iZXItMTAwKScsXG4gICAgICBib3JkZXI6ICd2YXIoLS1kcy1hbWJlci01MDApJyxcbiAgICAgIHRleHQ6ICd2YXIoLS1kcy1hbWJlci05MDApJyxcbiAgICAgIHNlY29uZGFyeTogJ3ZhcigtLWRzLWFtYmVyLTcwMCknLFxuICAgIH07XG4gIH1cblxuICAvLyBXZWJob29rLXJlbGF0ZWQgLSBQdXJwbGVcbiAgaWYgKGlzSG9va0xpZmVjeWNsZUV2ZW50VHlwZShldmVudFR5cGUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiAndmFyKC0tZHMtcHVycGxlLTYwMCknLFxuICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLWRzLXB1cnBsZS0xMDApJyxcbiAgICAgIGJvcmRlcjogJ3ZhcigtLWRzLXB1cnBsZS01MDApJyxcbiAgICAgIHRleHQ6ICd2YXIoLS1kcy1wdXJwbGUtOTAwKScsXG4gICAgICBzZWNvbmRhcnk6ICd2YXIoLS1kcy1wdXJwbGUtNzAwKScsXG4gICAgfTtcbiAgfVxuXG4gIC8vIEF0dHJpYnV0ZSBjaGFuZ2VzIC0gVGVhbFxuICBpZiAoZXZlbnRUeXBlID09PSAnYXR0cl9zZXQnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiAndmFyKC0tZHMtdGVhbC05MDApJyxcbiAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1kcy10ZWFsLTIwMCknLFxuICAgICAgYm9yZGVyOiAndmFyKC0tZHMtdGVhbC01MDApJyxcbiAgICAgIHRleHQ6ICd2YXIoLS1kcy10ZWFsLTkwMCknLFxuICAgICAgc2Vjb25kYXJ5OiAndmFyKC0tZHMtZ3JheS05MDApJyxcbiAgICB9O1xuICB9XG5cbiAgLy8gU2VhbGVkIHBvc2l0aW9ucyAtIG5ldXRyYWwgZ3JheTogYmFja2VuZCBsb2cgZmlsbGVyLCBub3QgcnVuIGFjdGl2aXR5XG4gIGlmIChldmVudFR5cGUgPT09ICdub29wJykge1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjogJ3ZhcigtLWRzLWdyYXktNTAwKScsXG4gICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tZHMtZ3JheS0xMDApJyxcbiAgICAgIGJvcmRlcjogJ3ZhcigtLWRzLWdyYXktNDAwKScsXG4gICAgICB0ZXh0OiAndmFyKC0tZHMtZ3JheS05MDApJyxcbiAgICAgIHNlY29uZGFyeTogJ3ZhcigtLWRzLWdyYXktNzAwKScsXG4gICAgfTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgLSBCbHVlXG4gIHJldHVybiB7XG4gICAgY29sb3I6ICd2YXIoLS1kcy1ibHVlLTYwMCknLFxuICAgIGJhY2tncm91bmQ6ICd2YXIoLS1kcy1ibHVlLTEwMCknLFxuICAgIGJvcmRlcjogJ3ZhcigtLWRzLWJsdWUtNTAwKScsXG4gICAgdGV4dDogJ3ZhcigtLWRzLWJsdWUtOTAwKScsXG4gICAgc2Vjb25kYXJ5OiAndmFyKC0tZHMtYmx1ZS03MDApJyxcbiAgfTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciB0byBzaG93IGEgdmVydGljYWwgbGluZSBmb3IgYW4gZXZlbnRcbiAqIC0gU2hvdyB2ZXJ0aWNhbCBsaW5lcyBmb3IgaG9vay1yZWxhdGVkIGV2ZW50c1xuICogLSBIaWRlIHZlcnRpY2FsIGxpbmVzIGZvciBhbGwgb3RoZXIgd29ya2Zsb3cgZXZlbnRzIGJ5IGRlZmF1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFNob3dWZXJ0aWNhbExpbmUoZXZlbnRUeXBlOiBFdmVudFsnZXZlbnRUeXBlJ10pOiBib29sZWFuIHtcbiAgLy8gU2hvdyB2ZXJ0aWNhbCBsaW5lcyBmb3IgaG9vay1yZWxhdGVkIGV2ZW50c1xuICBpZiAoaXNIb29rTGlmZWN5Y2xlRXZlbnRUeXBlKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIEhpZGUgdmVydGljYWwgbGluZXMgZm9yIGFsbCBvdGhlciB3b3JrZmxvdyBldmVudHNcbiAgcmV0dXJuIGZhbHNlO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-span-construction.d.ts","sourceRoot":"","sources":["../../../src/components/workflow-traces/trace-span-construction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AAkBF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,KAAK,GAAG,SAAS,KACvB,IAAI,GAAG,SAMT,CAAC;AAEF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,KAAK,EAAE,EACf,WAAW,UAAO,EAClB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3C,SAAS,EAAE,CAoBb;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,KAAK,EAAE,KACd;IACD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB,GAAG,IAiBH,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,EAAE,IAAI,EAChB,eAAe,OAAa,GAC3B,IAAI,GAAG,IAAI,CAyCb;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,KAAK,EAAE,KACd;IACD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,IA+DH,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"trace-span-construction.d.ts","sourceRoot":"","sources":["../../../src/components/workflow-traces/trace-span-construction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AAkBF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,KAAK,GAAG,SAAS,KACvB,IAAI,GAAG,SAMT,CAAC;AAEF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,KAAK,EAAE,EACf,WAAW,UAAO,EAClB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3C,SAAS,EAAE,CAoBb;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,KAAK,EAAE,KACd;IACD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB,GAAG,IAiBH,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,EAAE,IAAI,EAChB,eAAe,OAAa,GAC3B,IAAI,GAAG,IAAI,CAyCb;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,KAAK,EAAE,KACd;IACD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,IA+DH,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAoE7E;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,KAAK,EAAE,KACd;IACD,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;CACnB,GAAG,IAuBH,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CA6B7E;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,KAAK,EAAE,EAClB,OAAO,CAAC,EAAE,IAAI,GACb,IAAI,CAoEN"}
|
|
@@ -120,7 +120,7 @@ export const stepEventsToStepEntity = (events) => {
|
|
|
120
120
|
if (!anchorEvent) {
|
|
121
121
|
return null;
|
|
122
122
|
}
|
|
123
|
-
// Walk events
|
|
123
|
+
// Walk events to derive status, attempt count, and timestamps.
|
|
124
124
|
// Handles both step_retrying and consecutive step_started as retry signals.
|
|
125
125
|
let status = 'pending';
|
|
126
126
|
let attempt = 0;
|
|
@@ -176,7 +176,8 @@ export function stepToSpan(stepEvents, maxEndTime) {
|
|
|
176
176
|
if (!step) {
|
|
177
177
|
return null;
|
|
178
178
|
}
|
|
179
|
-
const parsedName = parseStepName(String(step.stepName))
|
|
179
|
+
const parsedName = parseStepName(String(step.stepName)) ??
|
|
180
|
+
parseWorkflowName(String(step.stepName));
|
|
180
181
|
const attributes = {
|
|
181
182
|
resource: 'step',
|
|
182
183
|
data: step,
|
|
@@ -295,7 +296,7 @@ export function runToSpan(run, runEvents, nowTime) {
|
|
|
295
296
|
(run.startedAt ? new Date(run.startedAt) : undefined);
|
|
296
297
|
const completedAt = getEventTimestamp(terminalEvent) ?? run.completedAt ?? undefined;
|
|
297
298
|
const endTime = completedAt ?? now;
|
|
298
|
-
// Only embed identification fields
|
|
299
|
+
// Only embed identification fields, not the full object with
|
|
299
300
|
// input/output/error which may contain non-cloneable types. Lifecycle
|
|
300
301
|
// timestamps are event-derived so detail rows align with the span timeline.
|
|
301
302
|
const { input: _i, output: _o, error: _e, ...runIdentity } = run;
|
|
@@ -332,4 +333,4 @@ export function runToSpan(run, runEvents, nowTime) {
|
|
|
332
333
|
: undefined,
|
|
333
334
|
};
|
|
334
335
|
}
|
|
335
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2Utc3Bhbi1jb25zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy93b3JrZmxvdy10cmFjZXMvdHJhY2Utc3Bhbi1jb25zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUVMLHVCQUF1QixHQUV4QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixJQUFJLEVBQUUsMEJBQTBCO0lBQ2hDLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sa0JBQWtCLEdBQTRCLElBQUksR0FBRyxDQUFDO0lBQzFELGNBQWM7SUFDZCxlQUFlO0lBQ2YsZUFBZTtJQUNmLGNBQWM7SUFDZCxlQUFlO0lBQ2YsYUFBYTtJQUNiLFlBQVk7SUFDWixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLFVBQVU7Q0FDWCxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixLQUF3QixFQUNOLEVBQUU7SUFDcEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLFVBQVUsSUFBSSxLQUFLLEVBQUUsU0FBUyxDQUFDO0lBQ3BELElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFFN0IsTUFBTSxJQUFJLEdBQUcsS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxP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QUFTLEVBQUUsS0FBSyxFQUFFO1FBQ3pELGdCQUFnQixFQUFFLElBQUk7S0FDdkIsQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLElBQUksR0FBRyxDQUFDO1FBQ25FLElBQUksRUFBRSxDQUFDLEVBQUUscUJBQXFCO1FBQzlCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1FBQ25CLFVBQVUsRUFBRSxDQUFDO1FBQ2IsVUFBVTtRQUNWLEtBQUssRUFBRSxFQUFFO1FBQ1QsTUFBTTtRQUNOLFNBQVMsRUFBRSxjQUFjLENBQUMsYUFBYSxDQUFDO1FBQ3hDLE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQ2hDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO1FBQ25ELDBGQUEwRjtRQUMxRixlQUFlLEVBQ2IsZUFBZSxJQUFJLGVBQWUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFO1lBQ3BFLENBQUMsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxTQUFTO0tBQ2hCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGdW5jdGlvbnMgZm9yIGNvbnN0cnVjdGluZyBPcGVuVGVsZW1ldHJ5IHNwYW5zIGZyb20gd29ya2Zsb3cgZW50aXRpZXNcbiAqL1xuXG5pbXBvcnQgeyBwYXJzZVN0ZXBOYW1lLCBwYXJzZVdvcmtmbG93TmFtZSB9IGZyb20gJ0B3b3JrZmxvdy91dGlscy9wYXJzZS1uYW1lJztcbmltcG9ydCB7XG4gIHR5cGUgRXZlbnQsXG4gIGlzVGVybWluYWxTdGVwRXZlbnRUeXBlLFxuICB0eXBlIFdvcmtmbG93UnVuLFxufSBmcm9tICdAd29ya2Zsb3cvd29ybGQnO1xuaW1wb3J0IHR5cGUgeyBTcGFuLCBTcGFuRXZlbnQgfSBmcm9tICcuLi8uLi9saWIvdHJhY2UtdHlwZXMnO1xuaW1wb3J0IHsgc2hvdWxkU2hvd1ZlcnRpY2FsTGluZSB9IGZyb20gJy4vZXZlbnQtY29sb3JzJztcbmltcG9ydCB7IGNhbGN1bGF0ZUR1cmF0aW9uLCBkYXRlVG9PdGVsVGltZSB9IGZyb20gJy4vdHJhY2UtdGltZS11dGlscyc7XG5cbmV4cG9ydCBjb25zdCBXT1JLRkxPV19MSUJSQVJZID0ge1xuICBuYW1lOiAnd29ya2Zsb3ctZGV2ZWxvcG1lbnQta2l0JyxcbiAgdmVyc2lvbjogJzQuMC4wJyxcbn07XG5cbi8qKlxuICogRXZlbnQgdHlwZXMgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIGFzIHZpc3VhbCBtYXJrZXJzIGluIHRoZSB0cmFjZSB2aWV3ZXJcbiAqL1xuY29uc3QgTUFSS0VSX0VWRU5UX1RZUEVTOiBTZXQ8RXZlbnRbJ2V2ZW50VHlwZSddPiA9IG5ldyBTZXQoW1xuICAnaG9va19jcmVhdGVkJyxcbiAgJ2hvb2tfcmVjZWl2ZWQnLFxuICAnaG9va19kaXNwb3NlZCcsXG4gICdzdGVwX3N0YXJ0ZWQnLFxuICAnc3RlcF9yZXRyeWluZycsXG4gICdzdGVwX2ZhaWxlZCcsXG4gICdydW5fZmFpbGVkJyxcbiAgJ3dhaXRfY3JlYXRlZCcsXG4gICd3YWl0X2NvbXBsZXRlZCcsXG4gICdhdHRyX3NldCcsXG5dKTtcblxuZXhwb3J0IGNvbnN0IGdldEV2ZW50VGltZXN0YW1wID0gKFxuICBldmVudDogRXZlbnQgfCB1bmRlZmluZWRcbik6IERhdGUgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB2YWx1ZSA9IGV2ZW50Py5vY2N1cnJlZEF0ID8/IGV2ZW50Py5jcmVhdGVkQXQ7XG4gIGlmICghdmFsdWUpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgZGF0ZSA9IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogbmV3IERhdGUodmFsdWUpO1xuICByZXR1cm4gTnVtYmVyLmlzTmFOKGRhdGUuZ2V0VGltZSgpKSA/IHVuZGVmaW5lZCA6IGRhdGU7XG59O1xuXG4vKipcbiAqIENvbnZlcnQgd29ya2Zsb3cgZXZlbnRzIHRvIHNwYW4gZXZlbnRzXG4gKiBPbmx5IGluY2x1ZGVzIGV2ZW50cyB0aGF0IHNob3VsZCBiZSBkaXNwbGF5ZWQgYXMgbWFya2Vyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEV2ZW50c1RvU3BhbkV2ZW50cyhcbiAgZXZlbnRzOiBFdmVudFtdLFxuICBmaWx0ZXJUeXBlcyA9IHRydWUsXG4gIG9wdGlvbnM6IHsgcHJlZmVyT2NjdXJyZWRBdD86IGJvb2xlYW4gfSA9IHt9XG4pOiBTcGFuRXZlbnRbXSB7XG4gIHJldHVybiBldmVudHNcbiAgICAuZmlsdGVyKChldmVudCkgPT5cbiAgICAgIGZpbHRlclR5cGVzID8gTUFSS0VSX0VWRU5UX1RZUEVTLmhhcyhldmVudC5ldmVudFR5cGUpIDogdHJ1ZVxuICAgIClcbiAgICAubWFwKChldmVudCkgPT4gKHtcbiAgICAgIG5hbWU6IGV2ZW50LmV2ZW50VHlwZSxcbiAgICAgIHRpbWVzdGFtcDogZGF0ZVRvT3RlbFRpbWUoXG4gICAgICAgIG9wdGlvbnMucHJlZmVyT2NjdXJyZWRBdFxuICAgICAgICAgID8gKGdldEV2ZW50VGltZXN0YW1wKGV2ZW50KSA/PyBldmVudC5jcmVhdGVkQXQpXG4gICAgICAgICAgOiBldmVudC5jcmVhdGVkQXRcbiAgICAgICksXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGV2ZW50SWQ6IGV2ZW50LmV2ZW50SWQsXG4gICAgICAgIGNvcnJlbGF0aW9uSWQ6IGV2ZW50LmNvcnJlbGF0aW9uSWQsXG4gICAgICAgIGV2ZW50RGF0YTogJ2V2ZW50RGF0YScgaW4gZXZlbnQgPyBldmVudC5ldmVudERhdGEgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgLy8gQ29udHJvbCB3aGV0aGVyIHRvIHNob3cgdmVydGljYWwgbGluZSBpbiB0aW1lbGluZVxuICAgICAgc2hvd1ZlcnRpY2FsTGluZTogc2hvdWxkU2hvd1ZlcnRpY2FsTGluZShldmVudC5ldmVudFR5cGUpLFxuICAgIH0pKTtcbn1cblxuZXhwb3J0IGNvbnN0IHdhaXRFdmVudHNUb1dhaXRFbnRpdHkgPSAoXG4gIGV2ZW50czogRXZlbnRbXVxuKToge1xuICB3YWl0SWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICByZXN1bWVBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbn0gfCBudWxsID0+IHtcbiAgY29uc3Qgc3RhcnRFdmVudCA9IGV2ZW50cy5maW5kKChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnd2FpdF9jcmVhdGVkJyk7XG4gIGlmICghc3RhcnRFdmVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGNvbXBsZXRlZEV2ZW50ID0gZXZlbnRzLmZpbmQoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICd3YWl0X2NvbXBsZXRlZCdcbiAgKTtcbiAgcmV0dXJuIHtcbiAgICB3YWl0SWQ6IHN0YXJ0RXZlbnQuY29ycmVsYXRpb25JZCxcbiAgICBydW5JZDogc3RhcnRFdmVudC5ydW5JZCxcbiAgICBjcmVhdGVkQXQ6IGdldEV2ZW50VGltZXN0YW1wKHN0YXJ0RXZlbnQpID8/IHN0YXJ0RXZlbnQuY3JlYXRlZEF0LFxuICAgIHJlc3VtZUF0OiBzdGFydEV2ZW50LmV2ZW50RGF0YT8ucmVzdW1lQXRcbiAgICAgID8gbmV3IERhdGUoc3RhcnRFdmVudC5ldmVudERhdGEucmVzdW1lQXQpXG4gICAgICA6IHVuZGVmaW5lZCxcbiAgICBjb21wbGV0ZWRBdDogZ2V0RXZlbnRUaW1lc3RhbXAoY29tcGxldGVkRXZlbnQpLFxuICB9O1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIHdvcmtmbG93IFdhaXQgdG8gYW4gT3BlblRlbGVtZXRyeSBTcGFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3YWl0VG9TcGFuKFxuICBldmVudHM6IEV2ZW50W10sXG4gIG1heEVuZFRpbWU6IERhdGUsXG4gIGZhbGxiYWNrRW5kVGltZSA9IG1heEVuZFRpbWVcbik6IFNwYW4gfCBudWxsIHtcbiAgY29uc3Qgd2FpdCA9IHdhaXRFdmVudHNUb1dhaXRFbnRpdHkoZXZlbnRzKTtcbiAgaWYgKCF3YWl0KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3Qgc3RhcnRUaW1lID0gd2FpdC5jcmVhdGVkQXQ7XG4gIGNvbnN0IHN0YXJ0TXMgPSBzdGFydFRpbWUuZ2V0VGltZSgpO1xuICBsZXQgZW5kVGltZSA9IHdhaXQuY29tcGxldGVkQXQ7XG4gIGlmICghZW5kVGltZSkge1xuICAgIGNvbnN0IGZhbGxiYWNrQ2FwID1cbiAgICAgIHdhaXQucmVzdW1lQXQgJiYgd2FpdC5yZXN1bWVBdC5nZXRUaW1lKCkgPCBmYWxsYmFja0VuZFRpbWUuZ2V0VGltZSgpXG4gICAgICAgID8gd2FpdC5yZXN1bWVBdFxuICAgICAgICA6IGZhbGxiYWNrRW5kVGltZTtcbiAgICBlbmRUaW1lID1cbiAgICAgIG1heEVuZFRpbWUuZ2V0VGltZSgpID4gc3RhcnRNcyAmJlxuICAgICAgbWF4RW5kVGltZS5nZXRUaW1lKCkgPCBmYWxsYmFja0NhcC5nZXRUaW1lKClcbiAgICAgICAgPyBtYXhFbmRUaW1lXG4gICAgICAgIDogZmFsbGJhY2tDYXA7XG4gIH1cbiAgY29uc3Qgc3RhcnQgPSBkYXRlVG9PdGVsVGltZShzdGFydFRpbWUpO1xuICBjb25zdCBlbmQgPSBkYXRlVG9PdGVsVGltZShlbmRUaW1lKTtcbiAgY29uc3QgZHVyYXRpb24gPSBjYWxjdWxhdGVEdXJhdGlvbihzdGFydFRpbWUsIGVuZFRpbWUpO1xuICBjb25zdCBzcGFuRXZlbnRzID0gY29udmVydEV2ZW50c1RvU3BhbkV2ZW50cyhldmVudHMsIGZhbHNlKTtcbiAgcmV0dXJuIHtcbiAgICBzcGFuSWQ6IHdhaXQud2FpdElkLFxuICAgIG5hbWU6ICdzbGVlcCcsXG4gICAga2luZDogMSwgLy8gSU5URVJOQUwgc3BhbiBraW5kXG4gICAgcmVzb3VyY2U6ICdzbGVlcCcsXG4gICAgbGlicmFyeTogV09SS0ZMT1dfTElCUkFSWSxcbiAgICBzdGF0dXM6IHsgY29kZTogMCB9LFxuICAgIHRyYWNlRmxhZ3M6IDEsXG4gICAgYXR0cmlidXRlczoge1xuICAgICAgcmVzb3VyY2U6ICdzbGVlcCcgYXMgY29uc3QsXG4gICAgICBkYXRhOiB3YWl0LCAvLyB3YWl0IGlzIGEgcGxhaW4gb2JqZWN0IGJ1aWx0IGZyb20gZXZlbnRzLCBubyBub24tY2xvbmVhYmxlIHR5cGVzXG4gICAgfSxcbiAgICBsaW5rczogW10sXG4gICAgZXZlbnRzOiBzcGFuRXZlbnRzLFxuICAgIGR1cmF0aW9uLFxuICAgIHN0YXJ0VGltZTogc3RhcnQsXG4gICAgZW5kVGltZTogZW5kLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3Qgc3RlcEV2ZW50c1RvU3RlcEVudGl0eSA9IChcbiAgZXZlbnRzOiBFdmVudFtdXG4pOiB7XG4gIHN0ZXBJZDogc3RyaW5nO1xuICBydW5JZDogc3RyaW5nO1xuICBzdGVwTmFtZTogc3RyaW5nO1xuICBzdGF0dXM6ICdwZW5kaW5nJyB8ICdydW5uaW5nJyB8ICdjb21wbGV0ZWQnIHwgJ2ZhaWxlZCcgfCAnY2FuY2VsbGVkJztcbiAgYXR0ZW1wdDogbnVtYmVyO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHVwZGF0ZWRBdDogRGF0ZTtcbiAgc3RhcnRlZEF0PzogRGF0ZTtcbiAgY29tcGxldGVkQXQ/OiBEYXRlO1xuICBzcGVjVmVyc2lvbj86IG51bWJlcjtcbn0gfCBudWxsID0+IHtcbiAgY29uc3QgY3JlYXRlZEV2ZW50ID0gZXZlbnRzLmZpbmQoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICdzdGVwX2NyZWF0ZWQnXG4gICk7XG5cbiAgLy8gVjEgcnVucyBkb24ndCBlbWl0IHN0ZXBfY3JlYXRlZCBldmVudHMuIEZhbGwgYmFjayB0byB0aGUgZWFybGllc3QgZXZlbnRcbiAgLy8gaW4gdGhlIGdyb3VwIHNvIHdlIGNhbiBzdGlsbCBidWlsZCBhIHN0ZXAgc3Bhbi5cbiAgY29uc3QgYW5jaG9yRXZlbnQgPSBjcmVhdGVkRXZlbnQgPz8gZXZlbnRzWzBdO1xuICBpZiAoIWFuY2hvckV2ZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBXYWxrIGV2ZW50cyBpbiBvcmRlciB0byBkZXJpdmUgc3RhdHVzLCBhdHRlbXB0IGNvdW50LCBhbmQgdGltZXN0YW1wcy5cbiAgLy8gSGFuZGxlcyBib3RoIHN0ZXBfcmV0cnlpbmcgYW5kIGNvbnNlY3V0aXZlIHN0ZXBfc3RhcnRlZCBhcyByZXRyeSBzaWduYWxzLlxuICBsZXQgc3RhdHVzOiAncGVuZGluZycgfCAncnVubmluZycgfCAnY29tcGxldGVkJyB8ICdmYWlsZWQnIHwgJ2NhbmNlbGxlZCcgPVxuICAgICdwZW5kaW5nJztcbiAgbGV0IGF0dGVtcHQgPSAwO1xuICBsZXQgc3RhcnRlZEF0OiBEYXRlIHwgdW5kZWZpbmVkO1xuICBsZXQgY29tcGxldGVkQXQ6IERhdGUgfCB1bmRlZmluZWQ7XG5cbiAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgIHN3aXRjaCAoZS5ldmVudFR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0ZXBfc3RhcnRlZCc6XG4gICAgICAgIHN0YXR1cyA9ICdydW5uaW5nJztcbiAgICAgICAgYXR0ZW1wdCArPSAxO1xuICAgICAgICBpZiAoIXN0YXJ0ZWRBdCkgc3RhcnRlZEF0ID0gZ2V0RXZlbnRUaW1lc3RhbXAoZSkgPz8gZS5jcmVhdGVkQXQ7XG4gICAgICAgIGNvbXBsZXRlZEF0ID0gdW5kZWZpbmVkO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0ZXBfY29tcGxldGVkJzpcbiAgICAgICAgc3RhdHVzID0gJ2NvbXBsZXRlZCc7XG4gICAgICAgIGNvbXBsZXRlZEF0ID0gZ2V0RXZlbnRUaW1lc3RhbXAoZSkgPz8gZS5jcmVhdGVkQXQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RlcF9mYWlsZWQnOlxuICAgICAgICBzdGF0dXMgPSAnZmFpbGVkJztcbiAgICAgICAgY29tcGxldGVkQXQgPSBnZXRFdmVudFRpbWVzdGFtcChlKSA/PyBlLmNyZWF0ZWRBdDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdGVwX3JldHJ5aW5nJzpcbiAgICAgICAgc3RhdHVzID0gJ3BlbmRpbmcnO1xuICAgICAgICBjb21wbGV0ZWRBdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy8gRW5zdXJlIGF0IGxlYXN0IGF0dGVtcHQgMSBpZiB3ZSBuZXZlciBzYXcgc3RlcF9zdGFydGVkXG4gIGlmIChhdHRlbXB0ID09PSAwKSBhdHRlbXB0ID0gMTtcblxuICBjb25zdCBsYXN0RXZlbnQgPSBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdO1xuXG4gIHJldHVybiB7XG4gICAgc3RlcElkOiBhbmNob3JFdmVudC5jb3JyZWxhdGlvbklkID8/ICcnLFxuICAgIHJ1bklkOiBhbmNob3JFdmVudC5ydW5JZCxcbiAgICBzdGVwTmFtZTogY3JlYXRlZEV2ZW50Py5ldmVudERhdGE/LnN0ZXBOYW1lID8/ICcnLFxuICAgIHN0YXR1cyxcbiAgICBhdHRlbXB0LFxuICAgIGNyZWF0ZWRBdDogZ2V0RXZlbnRUaW1lc3RhbXAoYW5jaG9yRXZlbnQpID8/IGFuY2hvckV2ZW50LmNyZWF0ZWRBdCxcbiAgICB1cGRhdGVkQXQ6XG4gICAgICBnZXRFdmVudFRpbWVzdGFtcChsYXN0RXZlbnQpID8/XG4gICAgICBsYXN0RXZlbnQ/LmNyZWF0ZWRBdCA/P1xuICAgICAgYW5jaG9yRXZlbnQuY3JlYXRlZEF0LFxuICAgIHN0YXJ0ZWRBdCxcbiAgICBjb21wbGV0ZWRBdCxcbiAgICBzcGVjVmVyc2lvbjogYW5jaG9yRXZlbnQuc3BlY1ZlcnNpb24sXG4gIH07XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIHN0ZXAgZXZlbnRzIHRvIGFuIE9wZW5UZWxlbWV0cnkgU3BhblxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RlcFRvU3BhbihzdGVwRXZlbnRzOiBFdmVudFtdLCBtYXhFbmRUaW1lOiBEYXRlKTogU3BhbiB8IG51bGwge1xuICBjb25zdCBzdGVwID0gc3RlcEV2ZW50c1RvU3RlcEVudGl0eShzdGVwRXZlbnRzKTtcbiAgaWYgKCFzdGVwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgcGFyc2VkTmFtZSA9IHBhcnNlU3RlcE5hbWUoU3RyaW5nKHN0ZXAuc3RlcE5hbWUpKTtcblxuICBjb25zdCBhdHRyaWJ1dGVzID0ge1xuICAgIHJlc291cmNlOiAnc3RlcCcgYXMgY29uc3QsXG4gICAgZGF0YTogc3RlcCxcbiAgfTtcblxuICBjb25zdCByZXNvdXJjZSA9ICdzdGVwJztcblxuICAvLyBJbmNsdWRlIEFMTCBjb3JyZWxhdGVkIGV2ZW50cyBvbiB0aGUgc3BhbiBzbyB0aGUgc2lkZWJhciBkZXRhaWwgdmlld1xuICAvLyBjYW4gZGlzcGxheSB0aGVtLiBUaGUgdGltZWxpbmUgdXNlcyB0aGUgYHNob3dWZXJ0aWNhbExpbmVgIGZsYWcgdG9cbiAgLy8gZGV0ZXJtaW5lIHdoaWNoIGV2ZW50cyBhcHBlYXIgYXMgbWFya2Vycy5cbiAgY29uc3QgZXZlbnRzID0gY29udmVydEV2ZW50c1RvU3BhbkV2ZW50cyhzdGVwRXZlbnRzLCBmYWxzZSwge1xuICAgIHByZWZlck9jY3VycmVkQXQ6IHRydWUsXG4gIH0pO1xuXG4gIC8vIFVzZSB0aGUgZXZlbnQgb2NjdXJyZW5jZSB0aW1lc3RhbXAgZm9yIHN0ZXAgc3BhbnMgd2hlbiBpdCBpcyBhdmFpbGFibGUsXG4gIC8vIGZhbGxpbmcgYmFjayB0byB0aGUgaW5nZXN0IHRpbWVzdGFtcCB1c2VkIGJ5IG9sZGVyIGV2ZW50IHN0cmVhbXMuXG4gIGNvbnN0IHNwYW5TdGFydEV2ZW50ID1cbiAgICBzdGVwRXZlbnRzLmZpbmQoKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICdzdGVwX2NyZWF0ZWQnKSA/P1xuICAgIHN0ZXBFdmVudHNbMF07XG4gIGNvbnN0IHNwYW5TdGFydFRpbWUgPVxuICAgIGdldEV2ZW50VGltZXN0YW1wKHNwYW5TdGFydEV2ZW50KSA/PyBuZXcgRGF0ZShzdGVwLmNyZWF0ZWRBdCk7XG4gIGxldCBhY3RpdmVTdGFydFRpbWUgPSBzdGVwLnN0YXJ0ZWRBdCA/IG5ldyBEYXRlKHN0ZXAuc3RhcnRlZEF0KSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZmlyc3RTdGFydEV2ZW50ID0gc3RlcEV2ZW50cy5maW5kKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnc3RlcF9zdGFydGVkJ1xuICApO1xuICBpZiAoZmlyc3RTdGFydEV2ZW50KSB7XG4gICAgYWN0aXZlU3RhcnRUaW1lID1cbiAgICAgIGdldEV2ZW50VGltZXN0YW1wKGZpcnN0U3RhcnRFdmVudCkgPz8gbmV3IERhdGUoZmlyc3RTdGFydEV2ZW50LmNyZWF0ZWRBdCk7XG4gIH1cblxuICBsZXQgZW5kVGltZSA9IG5ldyBEYXRlKG1heEVuZFRpbWUpO1xuICBpZiAoc3RlcC5jb21wbGV0ZWRBdCkge1xuICAgIGNvbnN0IGNvbXBsZXRlZEV2ZW50ID0gc3RlcEV2ZW50c1xuICAgICAgLnNsaWNlKClcbiAgICAgIC5yZXZlcnNlKClcbiAgICAgIC5maW5kKChldmVudCkgPT4gaXNUZXJtaW5hbFN0ZXBFdmVudFR5cGUoZXZlbnQuZXZlbnRUeXBlKSk7XG4gICAgZW5kVGltZSA9IGdldEV2ZW50VGltZXN0YW1wKGNvbXBsZXRlZEV2ZW50KSA/PyBuZXcgRGF0ZShzdGVwLmNvbXBsZXRlZEF0KTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc3BhbklkOiBTdHJpbmcoc3RlcC5zdGVwSWQpLFxuICAgIG5hbWU6IHBhcnNlZE5hbWU/LnNob3J0TmFtZSA/PyBTdHJpbmcoc3RlcC5zdGVwTmFtZSksXG4gICAga2luZDogMSwgLy8gSU5URVJOQUwgc3BhbiBraW5kXG4gICAgcmVzb3VyY2UsXG4gICAgbGlicmFyeTogV09SS0ZMT1dfTElCUkFSWSxcbiAgICBzdGF0dXM6IHsgY29kZTogMCB9LFxuICAgIHRyYWNlRmxhZ3M6IDEsXG4gICAgYXR0cmlidXRlcyxcbiAgICBsaW5rczogW10sXG4gICAgZXZlbnRzLFxuICAgIHN0YXJ0VGltZTogZGF0ZVRvT3RlbFRpbWUoc3BhblN0YXJ0VGltZSksXG4gICAgZW5kVGltZTogZGF0ZVRvT3RlbFRpbWUoZW5kVGltZSksXG4gICAgZHVyYXRpb246IGNhbGN1bGF0ZUR1cmF0aW9uKHNwYW5TdGFydFRpbWUsIGVuZFRpbWUpLFxuICAgIC8vIE9ubHkgc2V0IGFjdGl2ZVN0YXJ0VGltZSBpZiBpdCBkaWZmZXJzIGZyb20gc3RhcnRUaW1lIChpLmUuLCB0aGVyZSB3YXMgYSBxdWV1ZWQgcGVyaW9kKVxuICAgIGFjdGl2ZVN0YXJ0VGltZTpcbiAgICAgIGFjdGl2ZVN0YXJ0VGltZSAmJiBhY3RpdmVTdGFydFRpbWUuZ2V0VGltZSgpID4gc3BhblN0YXJ0VGltZS5nZXRUaW1lKClcbiAgICAgICAgPyBkYXRlVG9PdGVsVGltZShhY3RpdmVTdGFydFRpbWUpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgaG9va0V2ZW50c1RvSG9va0VudGl0eSA9IChcbiAgZXZlbnRzOiBFdmVudFtdXG4pOiB7XG4gIGhvb2tJZDogc3RyaW5nO1xuICBydW5JZDogc3RyaW5nO1xuICB0b2tlbj86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICByZWNlaXZlZENvdW50OiBudW1iZXI7XG4gIGxhc3RSZWNlaXZlZEF0PzogRGF0ZTtcbiAgZGlzcG9zZWRBdD86IERhdGU7XG59IHwgbnVsbCA9PiB7XG4gIGNvbnN0IGNyZWF0ZWRFdmVudCA9IGV2ZW50cy5maW5kKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnaG9va19jcmVhdGVkJ1xuICApO1xuICBpZiAoIWNyZWF0ZWRFdmVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IHJlY2VpdmVkRXZlbnRzID0gZXZlbnRzLmZpbHRlcihcbiAgICAoZXZlbnQpID0+IGV2ZW50LmV2ZW50VHlwZSA9PT0gJ2hvb2tfcmVjZWl2ZWQnXG4gICk7XG4gIGNvbnN0IGRpc3Bvc2VkRXZlbnRzID0gZXZlbnRzLmZpbHRlcihcbiAgICAoZXZlbnQpID0+IGV2ZW50LmV2ZW50VHlwZSA9PT0gJ2hvb2tfZGlzcG9zZWQnXG4gICk7XG4gIGNvbnN0IGxhc3RSZWNlaXZlZEV2ZW50ID0gcmVjZWl2ZWRFdmVudHMuYXQoLTEpO1xuICByZXR1cm4ge1xuICAgIGhvb2tJZDogY3JlYXRlZEV2ZW50LmNvcnJlbGF0aW9uSWQsXG4gICAgcnVuSWQ6IGNyZWF0ZWRFdmVudC5ydW5JZCxcbiAgICB0b2tlbjogY3JlYXRlZEV2ZW50LmV2ZW50RGF0YT8udG9rZW4sXG4gICAgY3JlYXRlZEF0OiBnZXRFdmVudFRpbWVzdGFtcChjcmVhdGVkRXZlbnQpID8/IGNyZWF0ZWRFdmVudC5jcmVhdGVkQXQsXG4gICAgcmVjZWl2ZWRDb3VudDogcmVjZWl2ZWRFdmVudHMubGVuZ3RoLFxuICAgIGxhc3RSZWNlaXZlZEF0OiBnZXRFdmVudFRpbWVzdGFtcChsYXN0UmVjZWl2ZWRFdmVudCksXG4gICAgZGlzcG9zZWRBdDogZ2V0RXZlbnRUaW1lc3RhbXAoZGlzcG9zZWRFdmVudHMuYXQoLTEpKSxcbiAgfTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgYSB3b3JrZmxvdyBIb29rIHRvIGFuIE9wZW5UZWxlbWV0cnkgU3BhblxuICovXG5leHBvcnQgZnVuY3Rpb24gaG9va1RvU3Bhbihob29rRXZlbnRzOiBFdmVudFtdLCBtYXhFbmRUaW1lOiBEYXRlKTogU3BhbiB8IG51bGwge1xuICBjb25zdCBob29rID0gaG9va0V2ZW50c1RvSG9va0VudGl0eShob29rRXZlbnRzKTtcbiAgaWYgKCFob29rKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBDb252ZXJ0IGhvb2stcmVsYXRlZCBldmVudHMgdG8gc3BhbiBldmVudHNcbiAgY29uc3QgZXZlbnRzID0gY29udmVydEV2ZW50c1RvU3BhbkV2ZW50cyhob29rRXZlbnRzLCBmYWxzZSk7XG5cbiAgY29uc3QgZW5kVGltZSA9IGhvb2suZGlzcG9zZWRBdCB8fCBtYXhFbmRUaW1lO1xuXG4gIHJldHVybiB7XG4gICAgc3BhbklkOiBTdHJpbmcoaG9vay5ob29rSWQpLFxuICAgIG5hbWU6IGhvb2sudG9rZW4gPz8gU3RyaW5nKGhvb2suaG9va0lkKSxcbiAgICBraW5kOiAxLCAvLyBJTlRFUk5BTCBzcGFuIGtpbmRcbiAgICByZXNvdXJjZTogJ2hvb2snLFxuICAgIGxpYnJhcnk6IFdPUktGTE9XX0xJQlJBUlksXG4gICAgc3RhdHVzOiB7IGNvZGU6IDEgfSxcbiAgICB0cmFjZUZsYWdzOiAxLFxuICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgIHJlc291cmNlOiAnaG9vaycgYXMgY29uc3QsXG4gICAgICBkYXRhOiBob29rLFxuICAgIH0sXG4gICAgbGlua3M6IFtdLFxuICAgIGV2ZW50cyxcbiAgICBzdGFydFRpbWU6IGRhdGVUb090ZWxUaW1lKGhvb2suY3JlYXRlZEF0KSxcbiAgICBlbmRUaW1lOiBkYXRlVG9PdGVsVGltZShlbmRUaW1lKSxcbiAgICBkdXJhdGlvbjogY2FsY3VsYXRlRHVyYXRpb24oaG9vay5jcmVhdGVkQXQsIGVuZFRpbWUpLFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSByb290IHNwYW4gZm9yIHRoZSB3b3JrZmxvdyBydW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1blRvU3BhbihcbiAgcnVuOiBXb3JrZmxvd1J1bixcbiAgcnVuRXZlbnRzOiBFdmVudFtdLFxuICBub3dUaW1lPzogRGF0ZVxuKTogU3BhbiB7XG4gIGNvbnN0IG5vdyA9IG5vd1RpbWUgPz8gbmV3IERhdGUoKTtcblxuICAvLyBQcmVmZXIgdGhlIGV2ZW50IG9jY3VycmVuY2UgdGltZXN0YW1wIHdoZW4gYXZhaWxhYmxlIHNvIHRoZSByb290IHNwYW5cbiAgLy8gbGluZXMgdXAgd2l0aCBjaGlsZCBzcGFucyB0aGF0IGFscmVhZHkgdXNlIGV2ZW50IG9jY3VycmVuY2UgdGltZS5cbiAgY29uc3QgcnVuQ3JlYXRlZEV2ZW50ID0gcnVuRXZlbnRzLmZpbmQoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICdydW5fY3JlYXRlZCdcbiAgKTtcbiAgY29uc3QgcnVuU3RhcnRlZEV2ZW50ID0gcnVuRXZlbnRzLmZpbmQoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICdydW5fc3RhcnRlZCdcbiAgKTtcbiAgY29uc3QgdGVybWluYWxFdmVudCA9IHJ1bkV2ZW50c1xuICAgIC5zbGljZSgpXG4gICAgLnJldmVyc2UoKVxuICAgIC5maW5kKFxuICAgICAgKGV2ZW50KSA9PlxuICAgICAgICBldmVudC5ldmVudFR5cGUgPT09ICdydW5fY29tcGxldGVkJyB8fFxuICAgICAgICBldmVudC5ldmVudFR5cGUgPT09ICdydW5fZmFpbGVkJyB8fFxuICAgICAgICBldmVudC5ldmVudFR5cGUgPT09ICdydW5fY2FuY2VsbGVkJ1xuICAgICk7XG4gIGNvbnN0IHNwYW5TdGFydFRpbWUgPVxuICAgIGdldEV2ZW50VGltZXN0YW1wKHJ1bkNyZWF0ZWRFdmVudCkgPz8gbmV3IERhdGUocnVuLmNyZWF0ZWRBdCk7XG4gIGNvbnN0IGFjdGl2ZVN0YXJ0VGltZSA9XG4gICAgZ2V0RXZlbnRUaW1lc3RhbXAocnVuU3RhcnRlZEV2ZW50KSA/P1xuICAgIChydW4uc3RhcnRlZEF0ID8gbmV3IERhdGUocnVuLnN0YXJ0ZWRBdCkgOiB1bmRlZmluZWQpO1xuICBjb25zdCBjb21wbGV0ZWRBdCA9XG4gICAgZ2V0RXZlbnRUaW1lc3RhbXAodGVybWluYWxFdmVudCkgPz8gcnVuLmNvbXBsZXRlZEF0ID8/IHVuZGVmaW5lZDtcbiAgY29uc3QgZW5kVGltZSA9IGNvbXBsZXRlZEF0ID8/IG5vdztcblxuICAvLyBPbmx5IGVtYmVkIGlkZW50aWZpY2F0aW9uIGZpZWxkcyDigJQgbm90IHRoZSBmdWxsIG9iamVjdCB3aXRoXG4gIC8vIGlucHV0L291dHB1dC9lcnJvciB3aGljaCBtYXkgY29udGFpbiBub24tY2xvbmVhYmxlIHR5cGVzLiBMaWZlY3ljbGVcbiAgLy8gdGltZXN0YW1wcyBhcmUgZXZlbnQtZGVyaXZlZCBzbyBkZXRhaWwgcm93cyBhbGlnbiB3aXRoIHRoZSBzcGFuIHRpbWVsaW5lLlxuICBjb25zdCB7IGlucHV0OiBfaSwgb3V0cHV0OiBfbywgZXJyb3I6IF9lLCAuLi5ydW5JZGVudGl0eSB9ID0gcnVuO1xuICBjb25zdCBhdHRyaWJ1dGVzID0ge1xuICAgIHJlc291cmNlOiAncnVuJyBhcyBjb25zdCxcbiAgICBkYXRhOiB7XG4gICAgICAuLi5ydW5JZGVudGl0eSxcbiAgICAgIGNyZWF0ZWRBdDogc3BhblN0YXJ0VGltZSxcbiAgICAgIHN0YXJ0ZWRBdDogYWN0aXZlU3RhcnRUaW1lLFxuICAgICAgY29tcGxldGVkQXQsXG4gICAgfSxcbiAgfTtcblxuICAvLyBDb252ZXJ0IHJ1bi1sZXZlbCBldmVudHMgdG8gc3BhbiBldmVudHNcbiAgY29uc3QgZXZlbnRzID0gY29udmVydEV2ZW50c1RvU3BhbkV2ZW50cyhydW5FdmVudHMsIGZhbHNlLCB7XG4gICAgcHJlZmVyT2NjdXJyZWRBdDogdHJ1ZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzcGFuSWQ6IFN0cmluZyhydW4ucnVuSWQpLFxuICAgIG5hbWU6IFN0cmluZyhwYXJzZVdvcmtmbG93TmFtZShydW4ud29ya2Zsb3dOYW1lKT8uc2hvcnROYW1lID8/ICc/JyksXG4gICAga2luZDogMSwgLy8gSU5URVJOQUwgc3BhbiBraW5kXG4gICAgcmVzb3VyY2U6ICdydW4nLFxuICAgIGxpYnJhcnk6IFdPUktGTE9XX0xJQlJBUlksXG4gICAgc3RhdHVzOiB7IGNvZGU6IDAgfSxcbiAgICB0cmFjZUZsYWdzOiAxLFxuICAgIGF0dHJpYnV0ZXMsXG4gICAgbGlua3M6IFtdLFxuICAgIGV2ZW50cyxcbiAgICBzdGFydFRpbWU6IGRhdGVUb090ZWxUaW1lKHNwYW5TdGFydFRpbWUpLFxuICAgIGVuZFRpbWU6IGRhdGVUb090ZWxUaW1lKGVuZFRpbWUpLFxuICAgIGR1cmF0aW9uOiBjYWxjdWxhdGVEdXJhdGlvbihzcGFuU3RhcnRUaW1lLCBlbmRUaW1lKSxcbiAgICAvLyBPbmx5IHNldCBhY3RpdmVTdGFydFRpbWUgaWYgaXQgZGlmZmVycyBmcm9tIHN0YXJ0VGltZSAoaS5lLiwgdGhlcmUgd2FzIGEgcXVldWVkIHBlcmlvZClcbiAgICBhY3RpdmVTdGFydFRpbWU6XG4gICAgICBhY3RpdmVTdGFydFRpbWUgJiYgYWN0aXZlU3RhcnRUaW1lLmdldFRpbWUoKSA+IHNwYW5TdGFydFRpbWUuZ2V0VGltZSgpXG4gICAgICAgID8gZGF0ZVRvT3RlbFRpbWUoYWN0aXZlU3RhcnRUaW1lKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cbiJdfQ==
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2Utc3Bhbi1jb25zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy93b3JrZmxvdy10cmFjZXMvdHJhY2Utc3Bhbi1jb25zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUVMLHVCQUF1QixHQUV4QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixJQUFJLEVBQUUsMEJBQTBCO0lBQ2hDLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sa0JBQWtCLEdBQTRCLElBQUksR0FBRyxDQUFDO0lBQzFELGNBQWM7SUFDZCxlQUFlO0lBQ2YsZUFBZTtJQUNmLGNBQWM7SUFDZCxlQUFlO0lBQ2YsYUFBYTtJQUNiLFlBQVk7SUFDWixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLFVBQVU7Q0FDWCxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixLQUF3QixFQUNOLEVBQUU7SUFDcEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLFVBQVUsSUFBSSxLQUFLLEVBQUUsU0FBUyxDQUFDO0lBQ3BELElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFFN0IsTUFBTSxJQUFJLEdBQUcsS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxP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RixDQUFDO0lBRUYsMENBQTBDO0lBQzFDLE1BQU0sTUFBTSxHQUFHLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUU7UUFDekQsZ0JBQWdCLEVBQUUsSUFBSTtLQUN2QixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksRUFBRSxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLFNBQVMsSUFBSSxHQUFHLENBQUM7UUFDbkUsSUFBSSxFQUFFLENBQUMsRUFBRSxxQkFBcUI7UUFDOUIsUUFBUSxFQUFFLEtBQUs7UUFDZixPQUFPLEVBQUUsZ0JBQWdCO1FBQ3pCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7UUFDbkIsVUFBVSxFQUFFLENBQUM7UUFDYixVQUFVO1FBQ1YsS0FBSyxFQUFFLEVBQUU7UUFDVCxNQUFNO1FBQ04sU0FBUyxFQUFFLGNBQWMsQ0FBQyxhQUFhLENBQUM7UUFDeEMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFDaEMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7UUFDbkQsMEZBQTBGO1FBQzFGLGVBQWUsRUFDYixlQUFlLElBQUksZUFBZSxDQUFDLE9BQU8sRUFBRSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUU7WUFDcEUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7WUFDakMsQ0FBQyxDQUFDLFNBQVM7S0FDaEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZ1bmN0aW9ucyBmb3IgY29uc3RydWN0aW5nIE9wZW5UZWxlbWV0cnkgc3BhbnMgZnJvbSB3b3JrZmxvdyBlbnRpdGllc1xuICovXG5cbmltcG9ydCB7IHBhcnNlU3RlcE5hbWUsIHBhcnNlV29ya2Zsb3dOYW1lIH0gZnJvbSAnQHdvcmtmbG93L3V0aWxzL3BhcnNlLW5hbWUnO1xuaW1wb3J0IHtcbiAgdHlwZSBFdmVudCxcbiAgaXNUZXJtaW5hbFN0ZXBFdmVudFR5cGUsXG4gIHR5cGUgV29ya2Zsb3dSdW4sXG59IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5pbXBvcnQgdHlwZSB7IFNwYW4sIFNwYW5FdmVudCB9IGZyb20gJy4uLy4uL2xpYi90cmFjZS10eXBlcyc7XG5pbXBvcnQgeyBzaG91bGRTaG93VmVydGljYWxMaW5lIH0gZnJvbSAnLi9ldmVudC1jb2xvcnMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlRHVyYXRpb24sIGRhdGVUb090ZWxUaW1lIH0gZnJvbSAnLi90cmFjZS10aW1lLXV0aWxzJztcblxuZXhwb3J0IGNvbnN0IFdPUktGTE9XX0xJQlJBUlkgPSB7XG4gIG5hbWU6ICd3b3JrZmxvdy1kZXZlbG9wbWVudC1raXQnLFxuICB2ZXJzaW9uOiAnNC4wLjAnLFxufTtcblxuLyoqXG4gKiBFdmVudCB0eXBlcyB0aGF0IHNob3VsZCBiZSBkaXNwbGF5ZWQgYXMgdmlzdWFsIG1hcmtlcnMgaW4gdGhlIHRyYWNlIHZpZXdlclxuICovXG5jb25zdCBNQVJLRVJfRVZFTlRfVFlQRVM6IFNldDxFdmVudFsnZXZlbnRUeXBlJ10+ID0gbmV3IFNldChbXG4gICdob29rX2NyZWF0ZWQnLFxuICAnaG9va19yZWNlaXZlZCcsXG4gICdob29rX2Rpc3Bvc2VkJyxcbiAgJ3N0ZXBfc3RhcnRlZCcsXG4gICdzdGVwX3JldHJ5aW5nJyxcbiAgJ3N0ZXBfZmFpbGVkJyxcbiAgJ3J1bl9mYWlsZWQnLFxuICAnd2FpdF9jcmVhdGVkJyxcbiAgJ3dhaXRfY29tcGxldGVkJyxcbiAgJ2F0dHJfc2V0Jyxcbl0pO1xuXG5leHBvcnQgY29uc3QgZ2V0RXZlbnRUaW1lc3RhbXAgPSAoXG4gIGV2ZW50OiBFdmVudCB8IHVuZGVmaW5lZFxuKTogRGF0ZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHZhbHVlID0gZXZlbnQ/Lm9jY3VycmVkQXQgPz8gZXZlbnQ/LmNyZWF0ZWRBdDtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBjb25zdCBkYXRlID0gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiBuZXcgRGF0ZSh2YWx1ZSk7XG4gIHJldHVybiBOdW1iZXIuaXNOYU4oZGF0ZS5nZXRUaW1lKCkpID8gdW5kZWZpbmVkIDogZGF0ZTtcbn07XG5cbi8qKlxuICogQ29udmVydCB3b3JrZmxvdyBldmVudHMgdG8gc3BhbiBldmVudHNcbiAqIE9ubHkgaW5jbHVkZXMgZXZlbnRzIHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZCBhcyBtYXJrZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RXZlbnRzVG9TcGFuRXZlbnRzKFxuICBldmVudHM6IEV2ZW50W10sXG4gIGZpbHRlclR5cGVzID0gdHJ1ZSxcbiAgb3B0aW9uczogeyBwcmVmZXJPY2N1cnJlZEF0PzogYm9vbGVhbiB9ID0ge31cbik6IFNwYW5FdmVudFtdIHtcbiAgcmV0dXJuIGV2ZW50c1xuICAgIC5maWx0ZXIoKGV2ZW50KSA9PlxuICAgICAgZmlsdGVyVHlwZXMgPyBNQVJLRVJfRVZFTlRfVFlQRVMuaGFzKGV2ZW50LmV2ZW50VHlwZSkgOiB0cnVlXG4gICAgKVxuICAgIC5tYXAoKGV2ZW50KSA9PiAoe1xuICAgICAgbmFtZTogZXZlbnQuZXZlbnRUeXBlLFxuICAgICAgdGltZXN0YW1wOiBkYXRlVG9PdGVsVGltZShcbiAgICAgICAgb3B0aW9ucy5wcmVmZXJPY2N1cnJlZEF0XG4gICAgICAgICAgPyAoZ2V0RXZlbnRUaW1lc3RhbXAoZXZlbnQpID8/IGV2ZW50LmNyZWF0ZWRBdClcbiAgICAgICAgICA6IGV2ZW50LmNyZWF0ZWRBdFxuICAgICAgKSxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgZXZlbnRJZDogZXZlbnQuZXZlbnRJZCxcbiAgICAgICAgY29ycmVsYXRpb25JZDogZXZlbnQuY29ycmVsYXRpb25JZCxcbiAgICAgICAgZXZlbnREYXRhOiAnZXZlbnREYXRhJyBpbiBldmVudCA/IGV2ZW50LmV2ZW50RGF0YSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICAvLyBDb250cm9sIHdoZXRoZXIgdG8gc2hvdyB2ZXJ0aWNhbCBsaW5lIGluIHRpbWVsaW5lXG4gICAgICBzaG93VmVydGljYWxMaW5lOiBzaG91bGRTaG93VmVydGljYWxMaW5lKGV2ZW50LmV2ZW50VHlwZSksXG4gICAgfSkpO1xufVxuXG5leHBvcnQgY29uc3Qgd2FpdEV2ZW50c1RvV2FpdEVudGl0eSA9IChcbiAgZXZlbnRzOiBFdmVudFtdXG4pOiB7XG4gIHdhaXRJZDogc3RyaW5nO1xuICBydW5JZDogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHJlc3VtZUF0PzogRGF0ZTtcbiAgY29tcGxldGVkQXQ/OiBEYXRlO1xufSB8IG51bGwgPT4ge1xuICBjb25zdCBzdGFydEV2ZW50ID0gZXZlbnRzLmZpbmQoKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICd3YWl0X2NyZWF0ZWQnKTtcbiAgaWYgKCFzdGFydEV2ZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgY29tcGxldGVkRXZlbnQgPSBldmVudHMuZmluZChcbiAgICAoZXZlbnQpID0+IGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3dhaXRfY29tcGxldGVkJ1xuICApO1xuICByZXR1cm4ge1xuICAgIHdhaXRJZDogc3RhcnRFdmVudC5jb3JyZWxhdGlvbklkLFxuICAgIHJ1bklkOiBzdGFydEV2ZW50LnJ1bklkLFxuICAgIGNyZWF0ZWRBdDogZ2V0RXZlbnRUaW1lc3RhbXAoc3RhcnRFdmVudCkgPz8gc3RhcnRFdmVudC5jcmVhdGVkQXQsXG4gICAgcmVzdW1lQXQ6IHN0YXJ0RXZlbnQuZXZlbnREYXRhPy5yZXN1bWVBdFxuICAgICAgPyBuZXcgRGF0ZShzdGFydEV2ZW50LmV2ZW50RGF0YS5yZXN1bWVBdClcbiAgICAgIDogdW5kZWZpbmVkLFxuICAgIGNvbXBsZXRlZEF0OiBnZXRFdmVudFRpbWVzdGFtcChjb21wbGV0ZWRFdmVudCksXG4gIH07XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgd29ya2Zsb3cgV2FpdCB0byBhbiBPcGVuVGVsZW1ldHJ5IFNwYW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhaXRUb1NwYW4oXG4gIGV2ZW50czogRXZlbnRbXSxcbiAgbWF4RW5kVGltZTogRGF0ZSxcbiAgZmFsbGJhY2tFbmRUaW1lID0gbWF4RW5kVGltZVxuKTogU3BhbiB8IG51bGwge1xuICBjb25zdCB3YWl0ID0gd2FpdEV2ZW50c1RvV2FpdEVudGl0eShldmVudHMpO1xuICBpZiAoIXdhaXQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBzdGFydFRpbWUgPSB3YWl0LmNyZWF0ZWRBdDtcbiAgY29uc3Qgc3RhcnRNcyA9IHN0YXJ0VGltZS5nZXRUaW1lKCk7XG4gIGxldCBlbmRUaW1lID0gd2FpdC5jb21wbGV0ZWRBdDtcbiAgaWYgKCFlbmRUaW1lKSB7XG4gICAgY29uc3QgZmFsbGJhY2tDYXAgPVxuICAgICAgd2FpdC5yZXN1bWVBdCAmJiB3YWl0LnJlc3VtZUF0LmdldFRpbWUoKSA8IGZhbGxiYWNrRW5kVGltZS5nZXRUaW1lKClcbiAgICAgICAgPyB3YWl0LnJlc3VtZUF0XG4gICAgICAgIDogZmFsbGJhY2tFbmRUaW1lO1xuICAgIGVuZFRpbWUgPVxuICAgICAgbWF4RW5kVGltZS5nZXRUaW1lKCkgPiBzdGFydE1zICYmXG4gICAgICBtYXhFbmRUaW1lLmdldFRpbWUoKSA8IGZhbGxiYWNrQ2FwLmdldFRpbWUoKVxuICAgICAgICA/IG1heEVuZFRpbWVcbiAgICAgICAgOiBmYWxsYmFja0NhcDtcbiAgfVxuICBjb25zdCBzdGFydCA9IGRhdGVUb090ZWxUaW1lKHN0YXJ0VGltZSk7XG4gIGNvbnN0IGVuZCA9IGRhdGVUb090ZWxUaW1lKGVuZFRpbWUpO1xuICBjb25zdCBkdXJhdGlvbiA9IGNhbGN1bGF0ZUR1cmF0aW9uKHN0YXJ0VGltZSwgZW5kVGltZSk7XG4gIGNvbnN0IHNwYW5FdmVudHMgPSBjb252ZXJ0RXZlbnRzVG9TcGFuRXZlbnRzKGV2ZW50cywgZmFsc2UpO1xuICByZXR1cm4ge1xuICAgIHNwYW5JZDogd2FpdC53YWl0SWQsXG4gICAgbmFtZTogJ3NsZWVwJyxcbiAgICBraW5kOiAxLCAvLyBJTlRFUk5BTCBzcGFuIGtpbmRcbiAgICByZXNvdXJjZTogJ3NsZWVwJyxcbiAgICBsaWJyYXJ5OiBXT1JLRkxPV19MSUJSQVJZLFxuICAgIHN0YXR1czogeyBjb2RlOiAwIH0sXG4gICAgdHJhY2VGbGFnczogMSxcbiAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICByZXNvdXJjZTogJ3NsZWVwJyBhcyBjb25zdCxcbiAgICAgIGRhdGE6IHdhaXQsIC8vIHdhaXQgaXMgYSBwbGFpbiBvYmplY3QgYnVpbHQgZnJvbSBldmVudHMsIG5vIG5vbi1jbG9uZWFibGUgdHlwZXNcbiAgICB9LFxuICAgIGxpbmtzOiBbXSxcbiAgICBldmVudHM6IHNwYW5FdmVudHMsXG4gICAgZHVyYXRpb24sXG4gICAgc3RhcnRUaW1lOiBzdGFydCxcbiAgICBlbmRUaW1lOiBlbmQsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBzdGVwRXZlbnRzVG9TdGVwRW50aXR5ID0gKFxuICBldmVudHM6IEV2ZW50W11cbik6IHtcbiAgc3RlcElkOiBzdHJpbmc7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIHN0ZXBOYW1lOiBzdHJpbmc7XG4gIHN0YXR1czogJ3BlbmRpbmcnIHwgJ3J1bm5pbmcnIHwgJ2NvbXBsZXRlZCcgfCAnZmFpbGVkJyB8ICdjYW5jZWxsZWQnO1xuICBhdHRlbXB0OiBudW1iZXI7XG4gIGNyZWF0ZWRBdDogRGF0ZTtcbiAgdXBkYXRlZEF0OiBEYXRlO1xuICBzdGFydGVkQXQ/OiBEYXRlO1xuICBjb21wbGV0ZWRBdD86IERhdGU7XG4gIHNwZWNWZXJzaW9uPzogbnVtYmVyO1xufSB8IG51bGwgPT4ge1xuICBjb25zdCBjcmVhdGVkRXZlbnQgPSBldmVudHMuZmluZChcbiAgICAoZXZlbnQpID0+IGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3N0ZXBfY3JlYXRlZCdcbiAgKTtcblxuICAvLyBWMSBydW5zIGRvbid0IGVtaXQgc3RlcF9jcmVhdGVkIGV2ZW50cy4gRmFsbCBiYWNrIHRvIHRoZSBlYXJsaWVzdCBldmVudFxuICAvLyBpbiB0aGUgZ3JvdXAgc28gd2UgY2FuIHN0aWxsIGJ1aWxkIGEgc3RlcCBzcGFuLlxuICBjb25zdCBhbmNob3JFdmVudCA9IGNyZWF0ZWRFdmVudCA/PyBldmVudHNbMF07XG4gIGlmICghYW5jaG9yRXZlbnQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFdhbGsgZXZlbnRzIHRvIGRlcml2ZSBzdGF0dXMsIGF0dGVtcHQgY291bnQsIGFuZCB0aW1lc3RhbXBzLlxuICAvLyBIYW5kbGVzIGJvdGggc3RlcF9yZXRyeWluZyBhbmQgY29uc2VjdXRpdmUgc3RlcF9zdGFydGVkIGFzIHJldHJ5IHNpZ25hbHMuXG4gIGxldCBzdGF0dXM6ICdwZW5kaW5nJyB8ICdydW5uaW5nJyB8ICdjb21wbGV0ZWQnIHwgJ2ZhaWxlZCcgfCAnY2FuY2VsbGVkJyA9XG4gICAgJ3BlbmRpbmcnO1xuICBsZXQgYXR0ZW1wdCA9IDA7XG4gIGxldCBzdGFydGVkQXQ6IERhdGUgfCB1bmRlZmluZWQ7XG4gIGxldCBjb21wbGV0ZWRBdDogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICBmb3IgKGNvbnN0IGUgb2YgZXZlbnRzKSB7XG4gICAgc3dpdGNoIChlLmV2ZW50VHlwZSkge1xuICAgICAgY2FzZSAnc3RlcF9zdGFydGVkJzpcbiAgICAgICAgc3RhdHVzID0gJ3J1bm5pbmcnO1xuICAgICAgICBhdHRlbXB0ICs9IDE7XG4gICAgICAgIGlmICghc3RhcnRlZEF0KSBzdGFydGVkQXQgPSBnZXRFdmVudFRpbWVzdGFtcChlKSA/PyBlLmNyZWF0ZWRBdDtcbiAgICAgICAgY29tcGxldGVkQXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RlcF9jb21wbGV0ZWQnOlxuICAgICAgICBzdGF0dXMgPSAnY29tcGxldGVkJztcbiAgICAgICAgY29tcGxldGVkQXQgPSBnZXRFdmVudFRpbWVzdGFtcChlKSA/PyBlLmNyZWF0ZWRBdDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdGVwX2ZhaWxlZCc6XG4gICAgICAgIHN0YXR1cyA9ICdmYWlsZWQnO1xuICAgICAgICBjb21wbGV0ZWRBdCA9IGdldEV2ZW50VGltZXN0YW1wKGUpID8/IGUuY3JlYXRlZEF0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0ZXBfcmV0cnlpbmcnOlxuICAgICAgICBzdGF0dXMgPSAncGVuZGluZyc7XG4gICAgICAgIGNvbXBsZXRlZEF0ID0gdW5kZWZpbmVkO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvLyBFbnN1cmUgYXQgbGVhc3QgYXR0ZW1wdCAxIGlmIHdlIG5ldmVyIHNhdyBzdGVwX3N0YXJ0ZWRcbiAgaWYgKGF0dGVtcHQgPT09IDApIGF0dGVtcHQgPSAxO1xuXG4gIGNvbnN0IGxhc3RFdmVudCA9IGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMV07XG5cbiAgcmV0dXJuIHtcbiAgICBzdGVwSWQ6IGFuY2hvckV2ZW50LmNvcnJlbGF0aW9uSWQgPz8gJycsXG4gICAgcnVuSWQ6IGFuY2hvckV2ZW50LnJ1bklkLFxuICAgIHN0ZXBOYW1lOiBjcmVhdGVkRXZlbnQ/LmV2ZW50RGF0YT8uc3RlcE5hbWUgPz8gJycsXG4gICAgc3RhdHVzLFxuICAgIGF0dGVtcHQsXG4gICAgY3JlYXRlZEF0OiBnZXRFdmVudFRpbWVzdGFtcChhbmNob3JFdmVudCkgPz8gYW5jaG9yRXZlbnQuY3JlYXRlZEF0LFxuICAgIHVwZGF0ZWRBdDpcbiAgICAgIGdldEV2ZW50VGltZXN0YW1wKGxhc3RFdmVudCkgPz9cbiAgICAgIGxhc3RFdmVudD8uY3JlYXRlZEF0ID8/XG4gICAgICBhbmNob3JFdmVudC5jcmVhdGVkQXQsXG4gICAgc3RhcnRlZEF0LFxuICAgIGNvbXBsZXRlZEF0LFxuICAgIHNwZWNWZXJzaW9uOiBhbmNob3JFdmVudC5zcGVjVmVyc2lvbixcbiAgfTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgc3RlcCBldmVudHMgdG8gYW4gT3BlblRlbGVtZXRyeSBTcGFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGVwVG9TcGFuKHN0ZXBFdmVudHM6IEV2ZW50W10sIG1heEVuZFRpbWU6IERhdGUpOiBTcGFuIHwgbnVsbCB7XG4gIGNvbnN0IHN0ZXAgPSBzdGVwRXZlbnRzVG9TdGVwRW50aXR5KHN0ZXBFdmVudHMpO1xuICBpZiAoIXN0ZXApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBwYXJzZWROYW1lID1cbiAgICBwYXJzZVN0ZXBOYW1lKFN0cmluZyhzdGVwLnN0ZXBOYW1lKSkgPz9cbiAgICBwYXJzZVdvcmtmbG93TmFtZShTdHJpbmcoc3RlcC5zdGVwTmFtZSkpO1xuXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSB7XG4gICAgcmVzb3VyY2U6ICdzdGVwJyBhcyBjb25zdCxcbiAgICBkYXRhOiBzdGVwLFxuICB9O1xuXG4gIGNvbnN0IHJlc291cmNlID0gJ3N0ZXAnO1xuXG4gIC8vIEluY2x1ZGUgQUxMIGNvcnJlbGF0ZWQgZXZlbnRzIG9uIHRoZSBzcGFuIHNvIHRoZSBzaWRlYmFyIGRldGFpbCB2aWV3XG4gIC8vIGNhbiBkaXNwbGF5IHRoZW0uIFRoZSB0aW1lbGluZSB1c2VzIHRoZSBgc2hvd1ZlcnRpY2FsTGluZWAgZmxhZyB0b1xuICAvLyBkZXRlcm1pbmUgd2hpY2ggZXZlbnRzIGFwcGVhciBhcyBtYXJrZXJzLlxuICBjb25zdCBldmVudHMgPSBjb252ZXJ0RXZlbnRzVG9TcGFuRXZlbnRzKHN0ZXBFdmVudHMsIGZhbHNlLCB7XG4gICAgcHJlZmVyT2NjdXJyZWRBdDogdHJ1ZSxcbiAgfSk7XG5cbiAgLy8gVXNlIHRoZSBldmVudCBvY2N1cnJlbmNlIHRpbWVzdGFtcCBmb3Igc3RlcCBzcGFucyB3aGVuIGl0IGlzIGF2YWlsYWJsZSxcbiAgLy8gZmFsbGluZyBiYWNrIHRvIHRoZSBpbmdlc3QgdGltZXN0YW1wIHVzZWQgYnkgb2xkZXIgZXZlbnQgc3RyZWFtcy5cbiAgY29uc3Qgc3BhblN0YXJ0RXZlbnQgPVxuICAgIHN0ZXBFdmVudHMuZmluZCgoZXZlbnQpID0+IGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3N0ZXBfY3JlYXRlZCcpID8/XG4gICAgc3RlcEV2ZW50c1swXTtcbiAgY29uc3Qgc3BhblN0YXJ0VGltZSA9XG4gICAgZ2V0RXZlbnRUaW1lc3RhbXAoc3BhblN0YXJ0RXZlbnQpID8/IG5ldyBEYXRlKHN0ZXAuY3JlYXRlZEF0KTtcbiAgbGV0IGFjdGl2ZVN0YXJ0VGltZSA9IHN0ZXAuc3RhcnRlZEF0ID8gbmV3IERhdGUoc3RlcC5zdGFydGVkQXQpIDogdW5kZWZpbmVkO1xuICBjb25zdCBmaXJzdFN0YXJ0RXZlbnQgPSBzdGVwRXZlbnRzLmZpbmQoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICdzdGVwX3N0YXJ0ZWQnXG4gICk7XG4gIGlmIChmaXJzdFN0YXJ0RXZlbnQpIHtcbiAgICBhY3RpdmVTdGFydFRpbWUgPVxuICAgICAgZ2V0RXZlbnRUaW1lc3RhbXAoZmlyc3RTdGFydEV2ZW50KSA/PyBuZXcgRGF0ZShmaXJzdFN0YXJ0RXZlbnQuY3JlYXRlZEF0KTtcbiAgfVxuXG4gIGxldCBlbmRUaW1lID0gbmV3IERhdGUobWF4RW5kVGltZSk7XG4gIGlmIChzdGVwLmNvbXBsZXRlZEF0KSB7XG4gICAgY29uc3QgY29tcGxldGVkRXZlbnQgPSBzdGVwRXZlbnRzXG4gICAgICAuc2xpY2UoKVxuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmZpbmQoKGV2ZW50KSA9PiBpc1Rlcm1pbmFsU3RlcEV2ZW50VHlwZShldmVudC5ldmVudFR5cGUpKTtcbiAgICBlbmRUaW1lID0gZ2V0RXZlbnRUaW1lc3RhbXAoY29tcGxldGVkRXZlbnQpID8/IG5ldyBEYXRlKHN0ZXAuY29tcGxldGVkQXQpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzcGFuSWQ6IFN0cmluZyhzdGVwLnN0ZXBJZCksXG4gICAgbmFtZTogcGFyc2VkTmFtZT8uc2hvcnROYW1lID8/IFN0cmluZyhzdGVwLnN0ZXBOYW1lKSxcbiAgICBraW5kOiAxLCAvLyBJTlRFUk5BTCBzcGFuIGtpbmRcbiAgICByZXNvdXJjZSxcbiAgICBsaWJyYXJ5OiBXT1JLRkxPV19MSUJSQVJZLFxuICAgIHN0YXR1czogeyBjb2RlOiAwIH0sXG4gICAgdHJhY2VGbGFnczogMSxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGxpbmtzOiBbXSxcbiAgICBldmVudHMsXG4gICAgc3RhcnRUaW1lOiBkYXRlVG9PdGVsVGltZShzcGFuU3RhcnRUaW1lKSxcbiAgICBlbmRUaW1lOiBkYXRlVG9PdGVsVGltZShlbmRUaW1lKSxcbiAgICBkdXJhdGlvbjogY2FsY3VsYXRlRHVyYXRpb24oc3BhblN0YXJ0VGltZSwgZW5kVGltZSksXG4gICAgLy8gT25seSBzZXQgYWN0aXZlU3RhcnRUaW1lIGlmIGl0IGRpZmZlcnMgZnJvbSBzdGFydFRpbWUgKGkuZS4sIHRoZXJlIHdhcyBhIHF1ZXVlZCBwZXJpb2QpXG4gICAgYWN0aXZlU3RhcnRUaW1lOlxuICAgICAgYWN0aXZlU3RhcnRUaW1lICYmIGFjdGl2ZVN0YXJ0VGltZS5nZXRUaW1lKCkgPiBzcGFuU3RhcnRUaW1lLmdldFRpbWUoKVxuICAgICAgICA/IGRhdGVUb090ZWxUaW1lKGFjdGl2ZVN0YXJ0VGltZSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBob29rRXZlbnRzVG9Ib29rRW50aXR5ID0gKFxuICBldmVudHM6IEV2ZW50W11cbik6IHtcbiAgaG9va0lkOiBzdHJpbmc7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIHRva2VuPzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHJlY2VpdmVkQ291bnQ6IG51bWJlcjtcbiAgbGFzdFJlY2VpdmVkQXQ/OiBEYXRlO1xuICBkaXNwb3NlZEF0PzogRGF0ZTtcbn0gfCBudWxsID0+IHtcbiAgY29uc3QgY3JlYXRlZEV2ZW50ID0gZXZlbnRzLmZpbmQoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICdob29rX2NyZWF0ZWQnXG4gICk7XG4gIGlmICghY3JlYXRlZEV2ZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgcmVjZWl2ZWRFdmVudHMgPSBldmVudHMuZmlsdGVyKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnaG9va19yZWNlaXZlZCdcbiAgKTtcbiAgY29uc3QgZGlzcG9zZWRFdmVudHMgPSBldmVudHMuZmlsdGVyKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnaG9va19kaXNwb3NlZCdcbiAgKTtcbiAgY29uc3QgbGFzdFJlY2VpdmVkRXZlbnQgPSByZWNlaXZlZEV2ZW50cy5hdCgtMSk7XG4gIHJldHVybiB7XG4gICAgaG9va0lkOiBjcmVhdGVkRXZlbnQuY29ycmVsYXRpb25JZCxcbiAgICBydW5JZDogY3JlYXRlZEV2ZW50LnJ1bklkLFxuICAgIHRva2VuOiBjcmVhdGVkRXZlbnQuZXZlbnREYXRhPy50b2tlbixcbiAgICBjcmVhdGVkQXQ6IGdldEV2ZW50VGltZXN0YW1wKGNyZWF0ZWRFdmVudCkgPz8gY3JlYXRlZEV2ZW50LmNyZWF0ZWRBdCxcbiAgICByZWNlaXZlZENvdW50OiByZWNlaXZlZEV2ZW50cy5sZW5ndGgsXG4gICAgbGFzdFJlY2VpdmVkQXQ6IGdldEV2ZW50VGltZXN0YW1wKGxhc3RSZWNlaXZlZEV2ZW50KSxcbiAgICBkaXNwb3NlZEF0OiBnZXRFdmVudFRpbWVzdGFtcChkaXNwb3NlZEV2ZW50cy5hdCgtMSkpLFxuICB9O1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIHdvcmtmbG93IEhvb2sgdG8gYW4gT3BlblRlbGVtZXRyeSBTcGFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBob29rVG9TcGFuKGhvb2tFdmVudHM6IEV2ZW50W10sIG1heEVuZFRpbWU6IERhdGUpOiBTcGFuIHwgbnVsbCB7XG4gIGNvbnN0IGhvb2sgPSBob29rRXZlbnRzVG9Ib29rRW50aXR5KGhvb2tFdmVudHMpO1xuICBpZiAoIWhvb2spIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIENvbnZlcnQgaG9vay1yZWxhdGVkIGV2ZW50cyB0byBzcGFuIGV2ZW50c1xuICBjb25zdCBldmVudHMgPSBjb252ZXJ0RXZlbnRzVG9TcGFuRXZlbnRzKGhvb2tFdmVudHMsIGZhbHNlKTtcblxuICBjb25zdCBlbmRUaW1lID0gaG9vay5kaXNwb3NlZEF0IHx8IG1heEVuZFRpbWU7XG5cbiAgcmV0dXJuIHtcbiAgICBzcGFuSWQ6IFN0cmluZyhob29rLmhvb2tJZCksXG4gICAgbmFtZTogaG9vay50b2tlbiA/PyBTdHJpbmcoaG9vay5ob29rSWQpLFxuICAgIGtpbmQ6IDEsIC8vIElOVEVSTkFMIHNwYW4ga2luZFxuICAgIHJlc291cmNlOiAnaG9vaycsXG4gICAgbGlicmFyeTogV09SS0ZMT1dfTElCUkFSWSxcbiAgICBzdGF0dXM6IHsgY29kZTogMSB9LFxuICAgIHRyYWNlRmxhZ3M6IDEsXG4gICAgYXR0cmlidXRlczoge1xuICAgICAgcmVzb3VyY2U6ICdob29rJyBhcyBjb25zdCxcbiAgICAgIGRhdGE6IGhvb2ssXG4gICAgfSxcbiAgICBsaW5rczogW10sXG4gICAgZXZlbnRzLFxuICAgIHN0YXJ0VGltZTogZGF0ZVRvT3RlbFRpbWUoaG9vay5jcmVhdGVkQXQpLFxuICAgIGVuZFRpbWU6IGRhdGVUb090ZWxUaW1lKGVuZFRpbWUpLFxuICAgIGR1cmF0aW9uOiBjYWxjdWxhdGVEdXJhdGlvbihob29rLmNyZWF0ZWRBdCwgZW5kVGltZSksXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHJvb3Qgc3BhbiBmb3IgdGhlIHdvcmtmbG93IHJ1blxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuVG9TcGFuKFxuICBydW46IFdvcmtmbG93UnVuLFxuICBydW5FdmVudHM6IEV2ZW50W10sXG4gIG5vd1RpbWU/OiBEYXRlXG4pOiBTcGFuIHtcbiAgY29uc3Qgbm93ID0gbm93VGltZSA/PyBuZXcgRGF0ZSgpO1xuXG4gIC8vIFByZWZlciB0aGUgZXZlbnQgb2NjdXJyZW5jZSB0aW1lc3RhbXAgd2hlbiBhdmFpbGFibGUgc28gdGhlIHJvb3Qgc3BhblxuICAvLyBsaW5lcyB1cCB3aXRoIGNoaWxkIHNwYW5zIHRoYXQgYWxyZWFkeSB1c2UgZXZlbnQgb2NjdXJyZW5jZSB0aW1lLlxuICBjb25zdCBydW5DcmVhdGVkRXZlbnQgPSBydW5FdmVudHMuZmluZChcbiAgICAoZXZlbnQpID0+IGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3J1bl9jcmVhdGVkJ1xuICApO1xuICBjb25zdCBydW5TdGFydGVkRXZlbnQgPSBydW5FdmVudHMuZmluZChcbiAgICAoZXZlbnQpID0+IGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3J1bl9zdGFydGVkJ1xuICApO1xuICBjb25zdCB0ZXJtaW5hbEV2ZW50ID0gcnVuRXZlbnRzXG4gICAgLnNsaWNlKClcbiAgICAucmV2ZXJzZSgpXG4gICAgLmZpbmQoXG4gICAgICAoZXZlbnQpID0+XG4gICAgICAgIGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3J1bl9jb21wbGV0ZWQnIHx8XG4gICAgICAgIGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3J1bl9mYWlsZWQnIHx8XG4gICAgICAgIGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3J1bl9jYW5jZWxsZWQnXG4gICAgKTtcbiAgY29uc3Qgc3BhblN0YXJ0VGltZSA9XG4gICAgZ2V0RXZlbnRUaW1lc3RhbXAocnVuQ3JlYXRlZEV2ZW50KSA/PyBuZXcgRGF0ZShydW4uY3JlYXRlZEF0KTtcbiAgY29uc3QgYWN0aXZlU3RhcnRUaW1lID1cbiAgICBnZXRFdmVudFRpbWVzdGFtcChydW5TdGFydGVkRXZlbnQpID8/XG4gICAgKHJ1bi5zdGFydGVkQXQgPyBuZXcgRGF0ZShydW4uc3RhcnRlZEF0KSA6IHVuZGVmaW5lZCk7XG4gIGNvbnN0IGNvbXBsZXRlZEF0ID1cbiAgICBnZXRFdmVudFRpbWVzdGFtcCh0ZXJtaW5hbEV2ZW50KSA/PyBydW4uY29tcGxldGVkQXQgPz8gdW5kZWZpbmVkO1xuICBjb25zdCBlbmRUaW1lID0gY29tcGxldGVkQXQgPz8gbm93O1xuXG4gIC8vIE9ubHkgZW1iZWQgaWRlbnRpZmljYXRpb24gZmllbGRzLCBub3QgdGhlIGZ1bGwgb2JqZWN0IHdpdGhcbiAgLy8gaW5wdXQvb3V0cHV0L2Vycm9yIHdoaWNoIG1heSBjb250YWluIG5vbi1jbG9uZWFibGUgdHlwZXMuIExpZmVjeWNsZVxuICAvLyB0aW1lc3RhbXBzIGFyZSBldmVudC1kZXJpdmVkIHNvIGRldGFpbCByb3dzIGFsaWduIHdpdGggdGhlIHNwYW4gdGltZWxpbmUuXG4gIGNvbnN0IHsgaW5wdXQ6IF9pLCBvdXRwdXQ6IF9vLCBlcnJvcjogX2UsIC4uLnJ1bklkZW50aXR5IH0gPSBydW47XG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSB7XG4gICAgcmVzb3VyY2U6ICdydW4nIGFzIGNvbnN0LFxuICAgIGRhdGE6IHtcbiAgICAgIC4uLnJ1bklkZW50aXR5LFxuICAgICAgY3JlYXRlZEF0OiBzcGFuU3RhcnRUaW1lLFxuICAgICAgc3RhcnRlZEF0OiBhY3RpdmVTdGFydFRpbWUsXG4gICAgICBjb21wbGV0ZWRBdCxcbiAgICB9LFxuICB9O1xuXG4gIC8vIENvbnZlcnQgcnVuLWxldmVsIGV2ZW50cyB0byBzcGFuIGV2ZW50c1xuICBjb25zdCBldmVudHMgPSBjb252ZXJ0RXZlbnRzVG9TcGFuRXZlbnRzKHJ1bkV2ZW50cywgZmFsc2UsIHtcbiAgICBwcmVmZXJPY2N1cnJlZEF0OiB0cnVlLFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIHNwYW5JZDogU3RyaW5nKHJ1bi5ydW5JZCksXG4gICAgbmFtZTogU3RyaW5nKHBhcnNlV29ya2Zsb3dOYW1lKHJ1bi53b3JrZmxvd05hbWUpPy5zaG9ydE5hbWUgPz8gJz8nKSxcbiAgICBraW5kOiAxLCAvLyBJTlRFUk5BTCBzcGFuIGtpbmRcbiAgICByZXNvdXJjZTogJ3J1bicsXG4gICAgbGlicmFyeTogV09SS0ZMT1dfTElCUkFSWSxcbiAgICBzdGF0dXM6IHsgY29kZTogMCB9LFxuICAgIHRyYWNlRmxhZ3M6IDEsXG4gICAgYXR0cmlidXRlcyxcbiAgICBsaW5rczogW10sXG4gICAgZXZlbnRzLFxuICAgIHN0YXJ0VGltZTogZGF0ZVRvT3RlbFRpbWUoc3BhblN0YXJ0VGltZSksXG4gICAgZW5kVGltZTogZGF0ZVRvT3RlbFRpbWUoZW5kVGltZSksXG4gICAgZHVyYXRpb246IGNhbGN1bGF0ZUR1cmF0aW9uKHNwYW5TdGFydFRpbWUsIGVuZFRpbWUpLFxuICAgIC8vIE9ubHkgc2V0IGFjdGl2ZVN0YXJ0VGltZSBpZiBpdCBkaWZmZXJzIGZyb20gc3RhcnRUaW1lIChpLmUuLCB0aGVyZSB3YXMgYSBxdWV1ZWQgcGVyaW9kKVxuICAgIGFjdGl2ZVN0YXJ0VGltZTpcbiAgICAgIGFjdGl2ZVN0YXJ0VGltZSAmJiBhY3RpdmVTdGFydFRpbWUuZ2V0VGltZSgpID4gc3BhblN0YXJ0VGltZS5nZXRUaW1lKClcbiAgICAgICAgPyBkYXRlVG9PdGVsVGltZShhY3RpdmVTdGFydFRpbWUpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICB9O1xufVxuIl19
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export { materializeAll, materializeHooks, materializeSteps, materializeWaits, }
|
|
|
11
11
|
export { type ExactIdSearchResult, type ExactWorkflowSearchId, type ExactWorkflowSearchIdKind, looksLikeWorkflowIdSearchInput, parseExactWorkflowSearchId, } from './lib/exact-event-search-id';
|
|
12
12
|
export type { Revivers, StreamRef } from './lib/hydration';
|
|
13
13
|
export { CLASS_INSTANCE_REF_TYPE, ClassInstanceRef, ENCRYPTED_PLACEHOLDER, extractStreamIds, getWebRevivers, hasEncryptedFields, hydrateResourceIO, hydrateResourceIOAsync, hydrateResourceIOWithKey, isClassInstanceRef, isEncryptedMarker, isStreamId, isStreamRef, STREAM_REF_TYPE, truncateId, } from './lib/hydration';
|
|
14
|
+
export { isSealedNoopEvent, SEALED_EVENT_MESSAGE, } from './lib/sealed-events';
|
|
14
15
|
export type { DecodedStreamChunkSource } from './lib/stream-display';
|
|
15
16
|
export type { ToastAdapter } from './lib/toast';
|
|
16
17
|
export { ToastProvider, useToast } from './lib/toast';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,aAAa,EACb,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtE,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,aAAa,EACb,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtE,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export { analyzeEvents, hasPendingHooksFromEvents, hasPendingStepsFromEvents, is
|
|
|
6
6
|
export { materializeAll, materializeHooks, materializeSteps, materializeWaits, } from './lib/event-materialization';
|
|
7
7
|
export { looksLikeWorkflowIdSearchInput, parseExactWorkflowSearchId, } from './lib/exact-event-search-id';
|
|
8
8
|
export { CLASS_INSTANCE_REF_TYPE, ClassInstanceRef, ENCRYPTED_PLACEHOLDER, extractStreamIds, getWebRevivers, hasEncryptedFields, hydrateResourceIO, hydrateResourceIOAsync, hydrateResourceIOWithKey, isClassInstanceRef, isEncryptedMarker, isStreamId, isStreamRef, STREAM_REF_TYPE, truncateId, } from './lib/hydration';
|
|
9
|
+
export { isSealedNoopEvent, SEALED_EVENT_MESSAGE, } from './lib/sealed-events';
|
|
9
10
|
export { ToastProvider, useToast } from './lib/toast';
|
|
10
11
|
export { extractConversation, formatDuration, formatDurationPrecise, identifyStreamSteps, isDoStreamStep, } from './lib/utils';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLGFBQWEsRUFDYixpQkFBaUIsR0FDbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsR0FDdkIsTUFBTSxzREFBc0QsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUN0QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFDTCxhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIseUJBQXlCLEdBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFPOUIsT0FBTyxFQUNMLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFJTCw4QkFBOEIsRUFDOUIsMEJBQTBCLEdBQzNCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLFdBQVcsRUFDWCxlQUFlLEVBQ2YsVUFBVSxHQUNYLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixvQkFBb0IsR0FDckIsTUFBTSxxQkFBcUIsQ0FBQztBQUc3QixPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLGNBQWMsR0FDZixNQUFNLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHsgSGVhbHRoQ2hlY2tSZXN1bHQgfSBmcm9tICdAd29ya2Zsb3cvY29yZS9ydW50aW1lJztcbmV4cG9ydCB7XG4gIHBhcnNlU3RlcE5hbWUsXG4gIHBhcnNlV29ya2Zsb3dOYW1lLFxufSBmcm9tICdAd29ya2Zsb3cvdXRpbHMvcGFyc2UtbmFtZSc7XG5leHBvcnQgdHlwZSB7IEV2ZW50LCBIb29rLCBTdGVwLCBXb3JrZmxvd1J1biB9IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuZXhwb3J0IHtcbiAgaG9va0V2ZW50c1RvSG9va0VudGl0eSxcbiAgc3RlcEV2ZW50c1RvU3RlcEVudGl0eSxcbiAgd2FpdEV2ZW50c1RvV2FpdEVudGl0eSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93LXRyYWNlcy90cmFjZS1zcGFuLWNvbnN0cnVjdGlvbic7XG5leHBvcnQge1xuICBEVVBMSUNBVEVfRVZFTlRfTUVTU0FHRSxcbiAgZmluZER1cGxpY2F0ZUV2ZW50SWRzLFxufSBmcm9tICcuL2xpYi9kdXBsaWNhdGUtZXZlbnRzJztcbmV4cG9ydCB0eXBlIHsgRXZlbnRBbmFseXNpcyB9IGZyb20gJy4vbGliL2V2ZW50LWFuYWx5c2lzJztcbmV4cG9ydCB7XG4gIGFuYWx5emVFdmVudHMsXG4gIGhhc1BlbmRpbmdIb29rc0Zyb21FdmVudHMsXG4gIGhhc1BlbmRpbmdTdGVwc0Zyb21FdmVudHMsXG4gIGlzVGVybWluYWxTdGF0dXMsXG4gIHNob3VsZFNob3dSZWVucXVldWVCdXR0b24sXG59IGZyb20gJy4vbGliL2V2ZW50LWFuYWx5c2lzJztcbmV4cG9ydCB0eXBlIHtcbiAgTWF0ZXJpYWxpemVkRW50aXRpZXMsXG4gIE1hdGVyaWFsaXplZEhvb2ssXG4gIE1hdGVyaWFsaXplZFN0ZXAsXG4gIE1hdGVyaWFsaXplZFdhaXQsXG59IGZyb20gJy4vbGliL2V2ZW50LW1hdGVyaWFsaXphdGlvbic7XG5leHBvcnQge1xuICBtYXRlcmlhbGl6ZUFsbCxcbiAgbWF0ZXJpYWxpemVIb29rcyxcbiAgbWF0ZXJpYWxpemVTdGVwcyxcbiAgbWF0ZXJpYWxpemVXYWl0cyxcbn0gZnJvbSAnLi9saWIvZXZlbnQtbWF0ZXJpYWxpemF0aW9uJztcbmV4cG9ydCB7XG4gIHR5cGUgRXhhY3RJZFNlYXJjaFJlc3VsdCxcbiAgdHlwZSBFeGFjdFdvcmtmbG93U2VhcmNoSWQsXG4gIHR5cGUgRXhhY3RXb3JrZmxvd1NlYXJjaElkS2luZCxcbiAgbG9va3NMaWtlV29ya2Zsb3dJZFNlYXJjaElucHV0LFxuICBwYXJzZUV4YWN0V29ya2Zsb3dTZWFyY2hJZCxcbn0gZnJvbSAnLi9saWIvZXhhY3QtZXZlbnQtc2VhcmNoLWlkJztcbmV4cG9ydCB0eXBlIHsgUmV2aXZlcnMsIFN0cmVhbVJlZiB9IGZyb20gJy4vbGliL2h5ZHJhdGlvbic7XG5leHBvcnQge1xuICBDTEFTU19JTlNUQU5DRV9SRUZfVFlQRSxcbiAgQ2xhc3NJbnN0YW5jZVJlZixcbiAgRU5DUllQVEVEX1BMQUNFSE9MREVSLFxuICBleHRyYWN0U3RyZWFtSWRzLFxuICBnZXRXZWJSZXZpdmVycyxcbiAgaGFzRW5jcnlwdGVkRmllbGRzLFxuICBoeWRyYXRlUmVzb3VyY2VJTyxcbiAgaHlkcmF0ZVJlc291cmNlSU9Bc3luYyxcbiAgaHlkcmF0ZVJlc291cmNlSU9XaXRoS2V5LFxuICBpc0NsYXNzSW5zdGFuY2VSZWYsXG4gIGlzRW5jcnlwdGVkTWFya2VyLFxuICBpc1N0cmVhbUlkLFxuICBpc1N0cmVhbVJlZixcbiAgU1RSRUFNX1JFRl9UWVBFLFxuICB0cnVuY2F0ZUlkLFxufSBmcm9tICcuL2xpYi9oeWRyYXRpb24nO1xuZXhwb3J0IHtcbiAgaXNTZWFsZWROb29wRXZlbnQsXG4gIFNFQUxFRF9FVkVOVF9NRVNTQUdFLFxufSBmcm9tICcuL2xpYi9zZWFsZWQtZXZlbnRzJztcbmV4cG9ydCB0eXBlIHsgRGVjb2RlZFN0cmVhbUNodW5rU291cmNlIH0gZnJvbSAnLi9saWIvc3RyZWFtLWRpc3BsYXknO1xuZXhwb3J0IHR5cGUgeyBUb2FzdEFkYXB0ZXIgfSBmcm9tICcuL2xpYi90b2FzdCc7XG5leHBvcnQgeyBUb2FzdFByb3ZpZGVyLCB1c2VUb2FzdCB9IGZyb20gJy4vbGliL3RvYXN0JztcbmV4cG9ydCB0eXBlIHsgU3RyZWFtU3RlcCB9IGZyb20gJy4vbGliL3V0aWxzJztcbmV4cG9ydCB7XG4gIGV4dHJhY3RDb252ZXJzYXRpb24sXG4gIGZvcm1hdER1cmF0aW9uLFxuICBmb3JtYXREdXJhdGlvblByZWNpc2UsXG4gIGlkZW50aWZ5U3RyZWFtU3RlcHMsXG4gIGlzRG9TdHJlYW1TdGVwLFxufSBmcm9tICcuL2xpYi91dGlscyc7XG4iXX0=
|
|
@@ -13,7 +13,7 @@ export declare const DUPLICATE_EVENT_MESSAGE = "Written by a concurrent replay a
|
|
|
13
13
|
* `isCompleteHistory` must be false whenever the caller holds a subset of the
|
|
14
14
|
* run's log: one page of a paginated list, or the result of a search. Which
|
|
15
15
|
* occurrence of a class came first is a property of the whole log, so on a
|
|
16
|
-
* subset the earlier event may
|
|
16
|
+
* subset the earlier event may be missing, and the fold would report
|
|
17
17
|
* the surviving one. Nothing is classified in that case.
|
|
18
18
|
*
|
|
19
19
|
* Two other things make the answer unknowable and yield the same empty result:
|
|
@@ -143,7 +143,7 @@ function foldDuplicates(ordered) {
|
|
|
143
143
|
* `isCompleteHistory` must be false whenever the caller holds a subset of the
|
|
144
144
|
* run's log: one page of a paginated list, or the result of a search. Which
|
|
145
145
|
* occurrence of a class came first is a property of the whole log, so on a
|
|
146
|
-
* subset the earlier event may
|
|
146
|
+
* subset the earlier event may be missing, and the fold would report
|
|
147
147
|
* the surviving one. Nothing is classified in that case.
|
|
148
148
|
*
|
|
149
149
|
* Two other things make the answer unknowable and yield the same empty result:
|
|
@@ -163,4 +163,4 @@ export function findDuplicateEventIds(events, { isCompleteHistory }) {
|
|
|
163
163
|
return new Set();
|
|
164
164
|
return foldDuplicates(ordered);
|
|
165
165
|
}
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVwbGljYXRlLWV2ZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvZHVwbGljYXRlLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsZ0JBQWdCLEVBQ2hCLGFBQWEsR0FDZCxNQUFNLGlCQUFpQixDQUFDO0FBRXpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFFSDs7Ozs7O0dBTUc7QUFDSCxNQUFNLHNCQUFzQixHQUFrQyxJQUFJLEdBQUcsQ0FBQztJQUNwRSxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGVBQWU7Q0FDaEIsQ0FBQyxDQUFDO0FBRUgsMEVBQTBFO0FBQzFFLE1BQU0sdUJBQXVCLEdBQWtDLElBQUksR0FBRyxDQUFDO0lBQ3JFLGFBQWE7Q0FDZCxDQUFDLENBQUM7QUFFSCwyRUFBMkU7QUFDM0UsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBRTFCOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQ2xDLG9JQUFvSSxDQUFDO0FBRXZJOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsY0FBYyxDQUFDLENBQVEsRUFBRSxDQUFRO0lBQ3hDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQzdDLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVELFNBQVMsV0FBVyxD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TUFBTSxVQUFVLHFCQUFxQixDQUNuQyxNQUF3QixFQUN4QixFQUFFLGlCQUFpQixFQUFrQztJQUVyRCxJQUFJLENBQUMsaUJBQWlCLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQUUsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTlELDJFQUEyRTtJQUMzRSxzRUFBc0U7SUFDdEUsTUFBTSxPQUFPLEdBQUcsTUFBTTtTQUNuQixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRXhCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7UUFBRSxPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7SUFFcEQsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRW50aXR5RXZlbnRDbGFzcyxcbiAgdHlwZSBFdmVudCxcbiAgZW50aXR5RXZlbnRDbGFzcyxcbiAgaXNTbG90RXZlbnRJZCxcbn0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcblxuLyoqXG4gKiBJZGVudGlmaWVzIGV2ZW50cyBhIHJlcGxheSByZWFkcyBwYXN0LlxuICpcbiAqIENvbmN1cnJlbnQgcmVwbGF5cyBvZiBvbmUgcnVuIHdyaXRlIHRvIGEgc2hhcmVkIGxvZywgc28gYSByZXBsYXkgd29ya2luZ1xuICogZnJvbSBhIHN0YWxlIHByZWZpeCBjYW4gY29tbWl0IGEgc2Vjb25kIGBzdGVwX2NyZWF0ZWRgIC8gYHN0ZXBfc3RhcnRlZGAgL1xuICogYHdhaXRfY3JlYXRlZGAgZm9yIGFuIGVudGl0eSB0aGUgbG9nIGFscmVhZHkgcmVjb3JkcyBvbmUgb2YuIEV2ZXJ5IHJlcGxheVxuICogcmVhZHMgdGhlIGZpcnN0IGV2ZW50IG9mIHRoYXQgY2xhc3MgYXQgdGhlIHNhbWUgcG9zaXRpb24sIHNvIGEgbGF0ZXIgb25lXG4gKiBjYW5ub3QgY2hhbmdlIHdoYXQgdGhlIHdvcmtmbG93IG9ic2VydmVzLlxuICpcbiAqIFRoZSBjbGFzc2lmaWNhdGlvbiBtaXJyb3JzIGBlbnRpdHlFdmVudENsYXNzYCBpbiBgQHdvcmtmbG93L3dvcmxkYCwgd2hpY2ggaXNcbiAqIHdoYXQgdGhlIHJ1bnRpbWUga2V5cyBpdHMgb3duIGR1cGxpY2F0ZSBkZXRlY3Rpb24gb24uIFdoYXQgaXQgY2Fubm90IG1pcnJvclxuICogaXMgY29uc3VtZXIgc3RhdGU6IHRoZSBydW50aW1lIHBhc3NlcyBvdmVyIGFuIGV2ZW50IG9ubHkgYWZ0ZXIgZXZlcnlcbiAqIHJlZ2lzdGVyZWQgY2FsbGJhY2sgaGFzIGRlY2xpbmVkIGl0LCBhbmQgYSBjYWxsYmFjayByZWdpc3RlcmVkIGZvciBhXG4gKiBzdGlsbC1vcGVuIGVudGl0eSBsZWdpdGltYXRlbHkgY2xhaW1zIGEgcmVwZWF0IChlYWNoIHJldHJ5IG9mIGEgc3RlcCB3cml0ZXNcbiAqIGFub3RoZXIgYHN0ZXBfc3RhcnRlZGAsIGFuZCBhIGxpdmUgc3RlcCBjb25zdW1lciBhYnNvcmJzIGEgc2Vjb25kXG4gKiBgc3RlcF9jcmVhdGVkYCkuIFNvIGEgcmVwZWF0IGNvdW50cyBoZXJlIG9ubHkgb25jZSBhIHRlcm1pbmFsIGV2ZW50IGZvciB0aGVcbiAqIHNhbWUgZW50aXR5IHNpdHMgZWFybGllciBpbiB0aGUgbG9nLCB3aGljaCBpcyB0aGUgcG9pbnQgcGFzdCB3aGljaCBub1xuICogY29uc3VtZXIgcmVtYWlucy5cbiAqL1xuXG4vKipcbiAqIENsYXNzZXMgd2hvc2UgZXZlbnQgY2xvc2VzIGl0cyBlbnRpdHk6IG5vIGNvbnN1bWVyIGlzIGxlZnQgZm9yIGl0IGFmdGVyLlxuICpcbiAqIFRoZSBydW4ncyBvd24gdGVybWluYWwgZXZlbnRzIGFyZSBhYnNlbnQgYmVjYXVzZSBgZW50aXR5RXZlbnRDbGFzc2AgZ2l2ZXNcbiAqIHRoZW0gbm8gY2xhc3MuIFRoZSBydW50aW1lIGV4aXRzIHJhdGhlciB0aGFuIHJlcGxheWluZyB0aGUgYm9keSBvbmNlIHRoZSBsb2dcbiAqIGhvbGRzIG9uZSwgc28gbm90aGluZyBldmVyIGNvbnN1bWVzIHRoZW0gYW5kIG5vdGhpbmcgY2FuIHJlcGVhdCB0aGVtLlxuICovXG5jb25zdCBURVJNSU5BTF9FVkVOVF9DTEFTU0VTOiBSZWFkb25seVNldDxFbnRpdHlFdmVudENsYXNzPiA9IG5ldyBTZXQoW1xuICAnc3RlcF90ZXJtaW5hbCcsXG4gICd3YWl0X2NvbXBsZXRlZCcsXG4gICdob29rX2Rpc3Bvc2VkJyxcbl0pO1xuXG4vKiogQ2xhc3NlcyB3aXRoIG5vIGVudGl0eSB0byBjbG9zZSBmaXJzdDogdGhlIGxvZyByZWNvcmRzIG9uZSBwZXIgcnVuLiAqL1xuY29uc3QgU0lOR0xFVE9OX0VWRU5UX0NMQVNTRVM6IFJlYWRvbmx5U2V0PEVudGl0eUV2ZW50Q2xhc3M+ID0gbmV3IFNldChbXG4gICdydW5fc3RhcnRlZCcsXG5dKTtcblxuLyoqIEVudGl0eSBrZXkgZm9yIGV2ZW50cyB0aGF0IGNhcnJ5IG5vIGNvcnJlbGF0aW9uIElEICh0aGUgcnVuIGl0c2VsZikuICovXG5jb25zdCBSVU5fRU5USVRZX0tFWSA9ICcnO1xuXG4vKipcbiAqIFNob3duIGFnYWluc3QgYW4gZXZlbnQgdGhpcyBtb2R1bGUgcmVwb3J0cy4gRGVsaWJlcmF0ZWx5IHNheXMgd2hhdCB0aGUgbG9nXG4gKiBzaG93cyByYXRoZXIgdGhhbiB3aGF0IHRoZSBydW50aW1lIGRpZCB3aXRoIGl0OiB0b2xlcmF0aW5nIHRoZXNlIHJlcGVhdHMgaXNcbiAqIHJlY2VudCwgYW5kIG9uIGEgcnVuIHJlY29yZGVkIGJlZm9yZSBpdCBhIHJlcGVhdCBubyBjb25zdW1lciBjbGFpbWVkIGZhaWxlZFxuICogdGhlIHJlcGxheSBpbnN0ZWFkIG9mIGJlaW5nIHBhc3NlZCBvdmVyLlxuICovXG5leHBvcnQgY29uc3QgRFVQTElDQVRFX0VWRU5UX01FU1NBR0UgPVxuICAnV3JpdHRlbiBieSBhIGNvbmN1cnJlbnQgcmVwbGF5IGFmdGVyIGFuIGV2ZW50IG9mIHRoZSBzYW1lIGtpbmQgd2FzIGFscmVhZHkgcmVjb3JkZWQgYW5kIGFjdGVkIG9uLiBUaGUgcnVuIGZvbGxvd3MgdGhlIGVhcmxpZXIgb25lLic7XG5cbi8qKlxuICogQ2FuZGlkYXRlIGxvZyBvcmRlciwgYnkgZXZlbnQgSUQuXG4gKlxuICogRXZlbnQgSURzIGFyZSBmaXhlZC13aWR0aCBhbmQgbW9ub3RvbmljIHdpdGhpbiBhIHJ1biB1bmRlciBib3RoIHRoZSBVTElEIGFuZFxuICogdGhlIHNsb3Qgc2NoZW1lLiBMZW5ndGggaXMgY29tcGFyZWQgZmlyc3Qgc28gYSBzaG9ydGVyIElEIG5ldmVyIHNvcnRzIGFmdGVyXG4gKiBhIGxvbmdlciBvbmUgb24gYSBsb2cgdGhhdCBtaXhlcyB3aWR0aHMuXG4gKlxuICogV2hldGhlciB0aGlzICppcyogdGhlIGxvZyBvcmRlciBkZXBlbmRzIG9uIHRoZSBJRCBzY2hlbWUsIHdoaWNoIGlzIHdoeVxuICoge0BsaW5rIGhhc0tub3dhYmxlTG9nT3JkZXJ9IGdhdGVzIHRoZSBmb2xkLiBTZWUgaXRzIGRvYy5cbiAqL1xuZnVuY3Rpb24gY29tcGFyZUV2ZW50SWQoYTogRXZlbnQsIGI6IEV2ZW50KTogbnVtYmVyIHtcbiAgaWYgKGEuZXZlbnRJZC5sZW5ndGggIT09IGIuZXZlbnRJZC5sZW5ndGgpIHtcbiAgICByZXR1cm4gYS5ldmVudElkLmxlbmd0aCAtIGIuZXZlbnRJZC5sZW5ndGg7XG4gIH1cbiAgcmV0dXJuIGEuZXZlbnRJZCA8IGIuZXZlbnRJZCA/IC0xIDogYS5ldmVudElkID4gYi5ldmVudElkID8gMSA6IDA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZWRBdE1zKGV2ZW50OiBFdmVudCk6IG51bWJlciB7XG4gIGNvbnN0IGNyZWF0ZWRBdCA9IGV2ZW50LmNyZWF0ZWRBdDtcbiAgcmV0dXJuIGNyZWF0ZWRBdCBpbnN0YW5jZW9mIERhdGVcbiAgICA/IGNyZWF0ZWRBdC5nZXRUaW1lKClcbiAgICA6IG5ldyBEYXRlKGNyZWF0ZWRBdCBhcyB1bmtub3duIGFzIHN0cmluZykuZ2V0VGltZSgpO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdGhlIG9yZGVyIHRoZSBydW4gY29uc3VtZWQgaXRzIGxvZyBpbiBjYW4gYmUgcmVjb3ZlcmVkIGZyb20gdGhlXG4gKiBldmVudHMgYWxvbmUuXG4gKlxuICogV2hpY2ggb2NjdXJyZW5jZSBvZiBhIGNsYXNzIGNhbWUgZmlyc3QgaXMgdGhlIHdob2xlIHF1ZXN0aW9uIGhlcmUsIHNvIHRoZVxuICogZm9sZCBuZWVkcyB0aGUgbG9nJ3Mgb3JkZXIsIG5vdCBhbiBvcmRlci4gVGhlIGJhY2tlbmRzIGRvIG5vdCBhZ3JlZSBvbiBob3dcbiAqIHRvIHJlY292ZXIgaXQgZm9yIGV2ZXJ5IElEIHNjaGVtZTpcbiAqXG4gKiAtIEEgKipzbG90LW51bWJlcmVkKiogcnVuIGNhcnJpZXMgaXRzIHBvc2l0aW9uIGluIHRoZSBJRC4gVGhlIHNsb3QgaXMgZHJhd25cbiAqICAgYXQgdGhlIHB1Ymxpc2gsIHdoaWNoIGlzIHRoZSBsaW5lYXJpemF0aW9uIHBvaW50LCBzbyBzbG90IG9yZGVyIGlzIGxvZ1xuICogICBvcmRlciBldmVyeXdoZXJlIGFuZCB0aGUgSUQgYWxvbmUgc2V0dGxlcyBpdC5cbiAqIC0gQSAqKlVMSUQtbnVtYmVyZWQqKiBydW4gZG9lcyBub3QuIE9uZSBiYWNrZW5kIHJldHVybnMgc3VjaCBhIGxvZyBpblxuICogICBgKGNyZWF0ZWRBdCwgZXZlbnRJZClgIG9yZGVyIHdoaWxlIGFub3RoZXIgcmV0dXJucyBpdCBrZXllZCBvbiB0aGUgSUQsIGFuZFxuICogICBgY3JlYXRlZEF0YCBpcyBzdGFtcGVkIHdoZW4gdGhlIHdyaXRlIHJlcXVlc3QgYXJyaXZlcyByYXRoZXIgdGhhbiB3aGVuIGl0XG4gKiAgIGNvbW1pdHMuIENvbmN1cnJlbnQgd3JpdGVycyBjYW4gdGhlcmVmb3JlIHByb2R1Y2Ugb3Bwb3NpdGUgdGltZXN0YW1wIGFuZFxuICogICBJRCBvcmRlcnMsIGFuZCB0aGUgcnVuIGNvbnN1bWVkIHdoaWNoZXZlciBpdHMgb3duIGJhY2tlbmQgc2VydmVkLlxuICpcbiAqIFNvIGEgVUxJRCBsb2cgaXMgb25seSBrbm93YWJsZSB3aGVyZSB0aGUgdHdvIG9yZGVycyBhZ3JlZS4gV2hlcmUgdGhleVxuICogY29udHJhZGljdCwgdGhlIGZvbGQgY291bGQgbmFtZSB0aGUgc3Vydml2aW5nIGV2ZW50IGFuZCBwYXNzIG92ZXIgdGhlIG9uZVxuICogdGhlIHJ1biBhY3RlZCBvbiwgd2hpY2ggaXMgd29yc2UgdGhhbiBzYXlpbmcgbm90aGluZy5cbiAqL1xuZnVuY3Rpb24gaGFzS25vd2FibGVMb2dPcmRlcihvcmRlcmVkQnlJZDogcmVhZG9ubHkgRXZlbnRbXSk6IGJvb2xlYW4ge1xuICBpZiAob3JkZXJlZEJ5SWQuZXZlcnkoKGV2ZW50KSA9PiBpc1Nsb3RFdmVudElkKGV2ZW50LmV2ZW50SWQpKSkgcmV0dXJuIHRydWU7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IG9yZGVyZWRCeUlkLmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNvbnN0IHByZXZpb3VzID0gY3JlYXRlZEF0TXMob3JkZXJlZEJ5SWRbaW5kZXggLSAxXSk7XG4gICAgY29uc3QgY3VycmVudCA9IGNyZWF0ZWRBdE1zKG9yZGVyZWRCeUlkW2luZGV4XSk7XG4gICAgLy8gQSBtaXNzaW5nIG9yIHVucGFyc2VhYmxlIHRpbWVzdGFtcCBsZWF2ZXMgbm90aGluZyB0byBjb3Jyb2JvcmF0ZSB0aGUgSURcbiAgICAvLyBvcmRlciB3aXRoLCB3aGljaCBpcyB0aGUgc2FtZSBwb3NpdGlvbiBhcyBhIGNvbnRyYWRpY3Rpb24uXG4gICAgaWYgKE51bWJlci5pc05hTihwcmV2aW91cykgfHwgTnVtYmVyLmlzTmFOKGN1cnJlbnQpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGN1cnJlbnQgPCBwcmV2aW91cykgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKiBUaGUgZm9sZCBpdHNlbGYsIG92ZXIgYSBsb2cgd2hvc2Ugb3JkZXIgaXMga25vd24uICovXG5mdW5jdGlvbiBmb2xkRHVwbGljYXRlcyhvcmRlcmVkOiByZWFkb25seSBFdmVudFtdKTogU2V0PHN0cmluZz4ge1xuICBjb25zdCBkdXBsaWNhdGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IHNlZW5DbGFzc2VzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IGNsb3NlZEVudGl0aWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBldmVudCBvZiBvcmRlcmVkKSB7XG4gICAgY29uc3QgZXZlbnRDbGFzcyA9IGVudGl0eUV2ZW50Q2xhc3MoZXZlbnQuZXZlbnRUeXBlKTtcbiAgICBpZiAoZXZlbnRDbGFzcyA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGVudGl0eSA9IGV2ZW50LmNvcnJlbGF0aW9uSWQgPz8gUlVOX0VOVElUWV9LRVk7XG4gICAgY29uc3QgY2xhc3NLZXkgPSBgJHtldmVudENsYXNzfToke2VudGl0eX1gO1xuICAgIGNvbnN0IHJlcGVhdHNDbGFzcyA9IHNlZW5DbGFzc2VzLmhhcyhjbGFzc0tleSk7XG4gICAgY29uc3QgZW50aXR5V2FzQ2xvc2VkID0gY2xvc2VkRW50aXRpZXMuaGFzKGVudGl0eSk7XG5cbiAgICBpZiAoVEVSTUlOQUxfRVZFTlRfQ0xBU1NFUy5oYXMoZXZlbnRDbGFzcykpIHtcbiAgICAgIGNsb3NlZEVudGl0aWVzLmFkZChlbnRpdHkpO1xuICAgIH1cblxuICAgIGlmICghcmVwZWF0c0NsYXNzKSB7XG4gICAgICAvLyBGaXJzdCBvZiBpdHMgY2xhc3MsIGJ1dCB0aGUgZW50aXR5IGFscmVhZHkgZmluaXNoZWQ6IG5vIGNvbnN1bWVyIGlzXG4gICAgICAvLyBsZWZ0IHRvIHRha2UgaXQgYW5kIGl0IHJlcGVhdHMgbm90aGluZywgc28gdGhlIHJ1bnRpbWUgcmVwb3J0c1xuICAgICAgLy8gZGl2ZXJnZW5jZSBoZXJlIGFuZCBleGl0cy4gRXZlcnl0aGluZyBwYXN0IHRoaXMgcG9pbnQgd2VudCB1bnJlYWQsIHNvXG4gICAgICAvLyB0aGUgZm9sZCBzdG9wcyB3aXRoIGl0IHJhdGhlciB0aGFuIHJlY29yZGluZyB0aGUgY2xhc3MgYW5kIHByZXNlbnRpbmdcbiAgICAgIC8vIGEgbGF0ZXIgZXZlbnQgb2YgaXQgYXMgYSByZXBlYXQgdGhlIHJ1biBwYXNzZWQgb3Zlci5cbiAgICAgIGlmIChlbnRpdHlXYXNDbG9zZWQpIGJyZWFrO1xuICAgICAgc2VlbkNsYXNzZXMuYWRkKGNsYXNzS2V5KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIFRoZSBlbnRpdHkgaXMgc3RpbGwgb3Blbiwgc28gYSBjb25zdW1lciBpcyByZWdpc3RlcmVkIGZvciBpdCBhbmQgdGFrZXNcbiAgICAvLyB0aGlzIGV2ZW50OiBhbm90aGVyIGF0dGVtcHQsIG5vdCBhIHJlcGVhdCByZWFkIHBhc3QuXG4gICAgaWYgKGVudGl0eVdhc0Nsb3NlZCB8fCBTSU5HTEVUT05fRVZFTlRfQ0xBU1NFUy5oYXMoZXZlbnRDbGFzcykpIHtcbiAgICAgIGR1cGxpY2F0ZXMuYWRkKGV2ZW50LmV2ZW50SWQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkdXBsaWNhdGVzO1xufVxuXG4vKipcbiAqIFRoZSBJRHMgb2YgdGhlIGV2ZW50cyBpbiBgZXZlbnRzYCB0aGF0IHJlcGVhdCBhIGNsYXNzIHRoZSBsb2cgYWxyZWFkeVxuICogcmVjb3JkcyBmb3IgdGhlIHNhbWUgZW50aXR5LCBhZnRlciB0aGF0IGVudGl0eSBmaW5pc2hlZC5cbiAqXG4gKiBgaXNDb21wbGV0ZUhpc3RvcnlgIG11c3QgYmUgZmFsc2Ugd2hlbmV2ZXIgdGhlIGNhbGxlciBob2xkcyBhIHN1YnNldCBvZiB0aGVcbiAqIHJ1bidzIGxvZzogb25lIHBhZ2Ugb2YgYSBwYWdpbmF0ZWQgbGlzdCwgb3IgdGhlIHJlc3VsdCBvZiBhIHNlYXJjaC4gV2hpY2hcbiAqIG9jY3VycmVuY2Ugb2YgYSBjbGFzcyBjYW1lIGZpcnN0IGlzIGEgcHJvcGVydHkgb2YgdGhlIHdob2xlIGxvZywgc28gb24gYVxuICogc3Vic2V0IHRoZSBlYXJsaWVyIGV2ZW50IG1heSBzaW1wbHkgYmUgbWlzc2luZywgYW5kIHRoZSBmb2xkIHdvdWxkIHJlcG9ydFxuICogdGhlIHN1cnZpdmluZyBvbmUuIE5vdGhpbmcgaXMgY2xhc3NpZmllZCBpbiB0aGF0IGNhc2UuXG4gKlxuICogVHdvIG90aGVyIHRoaW5ncyBtYWtlIHRoZSBhbnN3ZXIgdW5rbm93YWJsZSBhbmQgeWllbGQgdGhlIHNhbWUgZW1wdHkgcmVzdWx0OlxuICogYSBsb2cgd2hvc2Ugb3JkZXIgY2Fubm90IGJlIHJlY292ZXJlZCBmcm9tIHRoZSBldmVudHMgKHNlZVxuICoge0BsaW5rIGhhc0tub3dhYmxlTG9nT3JkZXJ9KSwgYW5kIGV2ZXJ5dGhpbmcgcGFzdCB0aGUgcG9pbnQgdGhlIHJ1blxuICogZGl2ZXJnZWQsIHNpbmNlIHRoZSBydW4gZXhpdGVkIHRoZXJlIGFuZCByZWFkIG5vIGZ1cnRoZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRHVwbGljYXRlRXZlbnRJZHMoXG4gIGV2ZW50czogcmVhZG9ubHkgRXZlbnRbXSxcbiAgeyBpc0NvbXBsZXRlSGlzdG9yeSB9OiB7IGlzQ29tcGxldGVIaXN0b3J5OiBib29sZWFuIH1cbik6IFNldDxzdHJpbmc+IHtcbiAgaWYgKCFpc0NvbXBsZXRlSGlzdG9yeSB8fCBldmVudHMubGVuZ3RoIDwgMikgcmV0dXJuIG5ldyBTZXQoKTtcblxuICAvLyBEcm9wcGVkIGJlZm9yZSB0aGUgc29ydCwgbm90IGR1cmluZyB0aGUgZm9sZDogYW4gZXZlbnQgd2l0aCBubyBJRCBoYXMgbm9cbiAgLy8gbG9nIHBvc2l0aW9uIHRvIG9yZGVyIG9uLCBhbmQgdGhlIGNhbGxlciBjb3VsZCBub3QgbWF0Y2ggaXQgZWl0aGVyLlxuICBjb25zdCBvcmRlcmVkID0gZXZlbnRzXG4gICAgLmZpbHRlcigoZXZlbnQpID0+IEJvb2xlYW4oZXZlbnQuZXZlbnRJZCkpXG4gICAgLnNvcnQoY29tcGFyZUV2ZW50SWQpO1xuXG4gIGlmICghaGFzS25vd2FibGVMb2dPcmRlcihvcmRlcmVkKSkgcmV0dXJuIG5ldyBTZXQoKTtcblxuICByZXR1cm4gZm9sZER1cGxpY2F0ZXMob3JkZXJlZCk7XG59XG4iXX0=
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVwbGljYXRlLWV2ZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvZHVwbGljYXRlLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsZ0JBQWdCLEVBQ2hCLGFBQWEsR0FDZCxNQUFNLGlCQUFpQixDQUFDO0FBRXpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFFSDs7Ozs7O0dBTUc7QUFDSCxNQUFNLHNCQUFzQixHQUFrQyxJQUFJLEdBQUcsQ0FBQztJQUNwRSxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGVBQWU7Q0FDaEIsQ0FBQyxDQUFDO0FBRUgsMEVBQTBFO0FBQzFFLE1BQU0sdUJBQXVCLEdBQWtDLElBQUksR0FBRyxDQUFDO0lBQ3JFLGFBQWE7Q0FDZCxDQUFDLENBQUM7QUFFSCwyRUFBMkU7QUFDM0UsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBRTFCOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQ2xDLG9JQUFvSSxDQUFDO0FBRXZJOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsY0FBYyxDQUFDLENBQVEsRUFBRSxDQUFRO0lBQ3hDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQzdDLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVELFNBQVMsV0FBVyxD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TUFBTSxVQUFVLHFCQUFxQixDQUNuQyxNQUF3QixFQUN4QixFQUFFLGlCQUFpQixFQUFrQztJQUVyRCxJQUFJLENBQUMsaUJBQWlCLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQUUsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTlELDJFQUEyRTtJQUMzRSxzRUFBc0U7SUFDdEUsTUFBTSxPQUFPLEdBQUcsTUFBTTtTQUNuQixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRXhCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7UUFBRSxPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7SUFFcEQsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRW50aXR5RXZlbnRDbGFzcyxcbiAgdHlwZSBFdmVudCxcbiAgZW50aXR5RXZlbnRDbGFzcyxcbiAgaXNTbG90RXZlbnRJZCxcbn0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcblxuLyoqXG4gKiBJZGVudGlmaWVzIGV2ZW50cyBhIHJlcGxheSByZWFkcyBwYXN0LlxuICpcbiAqIENvbmN1cnJlbnQgcmVwbGF5cyBvZiBvbmUgcnVuIHdyaXRlIHRvIGEgc2hhcmVkIGxvZywgc28gYSByZXBsYXkgd29ya2luZ1xuICogZnJvbSBhIHN0YWxlIHByZWZpeCBjYW4gY29tbWl0IGEgc2Vjb25kIGBzdGVwX2NyZWF0ZWRgIC8gYHN0ZXBfc3RhcnRlZGAgL1xuICogYHdhaXRfY3JlYXRlZGAgZm9yIGFuIGVudGl0eSB0aGUgbG9nIGFscmVhZHkgcmVjb3JkcyBvbmUgb2YuIEV2ZXJ5IHJlcGxheVxuICogcmVhZHMgdGhlIGZpcnN0IGV2ZW50IG9mIHRoYXQgY2xhc3MgYXQgdGhlIHNhbWUgcG9zaXRpb24sIHNvIGEgbGF0ZXIgb25lXG4gKiBjYW5ub3QgY2hhbmdlIHdoYXQgdGhlIHdvcmtmbG93IG9ic2VydmVzLlxuICpcbiAqIFRoZSBjbGFzc2lmaWNhdGlvbiBtaXJyb3JzIGBlbnRpdHlFdmVudENsYXNzYCBpbiBgQHdvcmtmbG93L3dvcmxkYCwgd2hpY2ggaXNcbiAqIHdoYXQgdGhlIHJ1bnRpbWUga2V5cyBpdHMgb3duIGR1cGxpY2F0ZSBkZXRlY3Rpb24gb24uIFdoYXQgaXQgY2Fubm90IG1pcnJvclxuICogaXMgY29uc3VtZXIgc3RhdGU6IHRoZSBydW50aW1lIHBhc3NlcyBvdmVyIGFuIGV2ZW50IG9ubHkgYWZ0ZXIgZXZlcnlcbiAqIHJlZ2lzdGVyZWQgY2FsbGJhY2sgaGFzIGRlY2xpbmVkIGl0LCBhbmQgYSBjYWxsYmFjayByZWdpc3RlcmVkIGZvciBhXG4gKiBzdGlsbC1vcGVuIGVudGl0eSBsZWdpdGltYXRlbHkgY2xhaW1zIGEgcmVwZWF0IChlYWNoIHJldHJ5IG9mIGEgc3RlcCB3cml0ZXNcbiAqIGFub3RoZXIgYHN0ZXBfc3RhcnRlZGAsIGFuZCBhIGxpdmUgc3RlcCBjb25zdW1lciBhYnNvcmJzIGEgc2Vjb25kXG4gKiBgc3RlcF9jcmVhdGVkYCkuIFNvIGEgcmVwZWF0IGNvdW50cyBoZXJlIG9ubHkgb25jZSBhIHRlcm1pbmFsIGV2ZW50IGZvciB0aGVcbiAqIHNhbWUgZW50aXR5IHNpdHMgZWFybGllciBpbiB0aGUgbG9nLCB3aGljaCBpcyB0aGUgcG9pbnQgcGFzdCB3aGljaCBub1xuICogY29uc3VtZXIgcmVtYWlucy5cbiAqL1xuXG4vKipcbiAqIENsYXNzZXMgd2hvc2UgZXZlbnQgY2xvc2VzIGl0cyBlbnRpdHk6IG5vIGNvbnN1bWVyIGlzIGxlZnQgZm9yIGl0IGFmdGVyLlxuICpcbiAqIFRoZSBydW4ncyBvd24gdGVybWluYWwgZXZlbnRzIGFyZSBhYnNlbnQgYmVjYXVzZSBgZW50aXR5RXZlbnRDbGFzc2AgZ2l2ZXNcbiAqIHRoZW0gbm8gY2xhc3MuIFRoZSBydW50aW1lIGV4aXRzIHJhdGhlciB0aGFuIHJlcGxheWluZyB0aGUgYm9keSBvbmNlIHRoZSBsb2dcbiAqIGhvbGRzIG9uZSwgc28gbm90aGluZyBldmVyIGNvbnN1bWVzIHRoZW0gYW5kIG5vdGhpbmcgY2FuIHJlcGVhdCB0aGVtLlxuICovXG5jb25zdCBURVJNSU5BTF9FVkVOVF9DTEFTU0VTOiBSZWFkb25seVNldDxFbnRpdHlFdmVudENsYXNzPiA9IG5ldyBTZXQoW1xuICAnc3RlcF90ZXJtaW5hbCcsXG4gICd3YWl0X2NvbXBsZXRlZCcsXG4gICdob29rX2Rpc3Bvc2VkJyxcbl0pO1xuXG4vKiogQ2xhc3NlcyB3aXRoIG5vIGVudGl0eSB0byBjbG9zZSBmaXJzdDogdGhlIGxvZyByZWNvcmRzIG9uZSBwZXIgcnVuLiAqL1xuY29uc3QgU0lOR0xFVE9OX0VWRU5UX0NMQVNTRVM6IFJlYWRvbmx5U2V0PEVudGl0eUV2ZW50Q2xhc3M+ID0gbmV3IFNldChbXG4gICdydW5fc3RhcnRlZCcsXG5dKTtcblxuLyoqIEVudGl0eSBrZXkgZm9yIGV2ZW50cyB0aGF0IGNhcnJ5IG5vIGNvcnJlbGF0aW9uIElEICh0aGUgcnVuIGl0c2VsZikuICovXG5jb25zdCBSVU5fRU5USVRZX0tFWSA9ICcnO1xuXG4vKipcbiAqIFNob3duIGFnYWluc3QgYW4gZXZlbnQgdGhpcyBtb2R1bGUgcmVwb3J0cy4gRGVsaWJlcmF0ZWx5IHNheXMgd2hhdCB0aGUgbG9nXG4gKiBzaG93cyByYXRoZXIgdGhhbiB3aGF0IHRoZSBydW50aW1lIGRpZCB3aXRoIGl0OiB0b2xlcmF0aW5nIHRoZXNlIHJlcGVhdHMgaXNcbiAqIHJlY2VudCwgYW5kIG9uIGEgcnVuIHJlY29yZGVkIGJlZm9yZSBpdCBhIHJlcGVhdCBubyBjb25zdW1lciBjbGFpbWVkIGZhaWxlZFxuICogdGhlIHJlcGxheSBpbnN0ZWFkIG9mIGJlaW5nIHBhc3NlZCBvdmVyLlxuICovXG5leHBvcnQgY29uc3QgRFVQTElDQVRFX0VWRU5UX01FU1NBR0UgPVxuICAnV3JpdHRlbiBieSBhIGNvbmN1cnJlbnQgcmVwbGF5IGFmdGVyIGFuIGV2ZW50IG9mIHRoZSBzYW1lIGtpbmQgd2FzIGFscmVhZHkgcmVjb3JkZWQgYW5kIGFjdGVkIG9uLiBUaGUgcnVuIGZvbGxvd3MgdGhlIGVhcmxpZXIgb25lLic7XG5cbi8qKlxuICogQ2FuZGlkYXRlIGxvZyBvcmRlciwgYnkgZXZlbnQgSUQuXG4gKlxuICogRXZlbnQgSURzIGFyZSBmaXhlZC13aWR0aCBhbmQgbW9ub3RvbmljIHdpdGhpbiBhIHJ1biB1bmRlciBib3RoIHRoZSBVTElEIGFuZFxuICogdGhlIHNsb3Qgc2NoZW1lLiBMZW5ndGggaXMgY29tcGFyZWQgZmlyc3Qgc28gYSBzaG9ydGVyIElEIG5ldmVyIHNvcnRzIGFmdGVyXG4gKiBhIGxvbmdlciBvbmUgb24gYSBsb2cgdGhhdCBtaXhlcyB3aWR0aHMuXG4gKlxuICogV2hldGhlciB0aGlzICppcyogdGhlIGxvZyBvcmRlciBkZXBlbmRzIG9uIHRoZSBJRCBzY2hlbWUsIHdoaWNoIGlzIHdoeVxuICoge0BsaW5rIGhhc0tub3dhYmxlTG9nT3JkZXJ9IGdhdGVzIHRoZSBmb2xkLiBTZWUgaXRzIGRvYy5cbiAqL1xuZnVuY3Rpb24gY29tcGFyZUV2ZW50SWQoYTogRXZlbnQsIGI6IEV2ZW50KTogbnVtYmVyIHtcbiAgaWYgKGEuZXZlbnRJZC5sZW5ndGggIT09IGIuZXZlbnRJZC5sZW5ndGgpIHtcbiAgICByZXR1cm4gYS5ldmVudElkLmxlbmd0aCAtIGIuZXZlbnRJZC5sZW5ndGg7XG4gIH1cbiAgcmV0dXJuIGEuZXZlbnRJZCA8IGIuZXZlbnRJZCA/IC0xIDogYS5ldmVudElkID4gYi5ldmVudElkID8gMSA6IDA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZWRBdE1zKGV2ZW50OiBFdmVudCk6IG51bWJlciB7XG4gIGNvbnN0IGNyZWF0ZWRBdCA9IGV2ZW50LmNyZWF0ZWRBdDtcbiAgcmV0dXJuIGNyZWF0ZWRBdCBpbnN0YW5jZW9mIERhdGVcbiAgICA/IGNyZWF0ZWRBdC5nZXRUaW1lKClcbiAgICA6IG5ldyBEYXRlKGNyZWF0ZWRBdCBhcyB1bmtub3duIGFzIHN0cmluZykuZ2V0VGltZSgpO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdGhlIG9yZGVyIHRoZSBydW4gY29uc3VtZWQgaXRzIGxvZyBpbiBjYW4gYmUgcmVjb3ZlcmVkIGZyb20gdGhlXG4gKiBldmVudHMgYWxvbmUuXG4gKlxuICogV2hpY2ggb2NjdXJyZW5jZSBvZiBhIGNsYXNzIGNhbWUgZmlyc3QgaXMgdGhlIHdob2xlIHF1ZXN0aW9uIGhlcmUsIHNvIHRoZVxuICogZm9sZCBuZWVkcyB0aGUgbG9nJ3Mgb3JkZXIsIG5vdCBhbiBvcmRlci4gVGhlIGJhY2tlbmRzIGRvIG5vdCBhZ3JlZSBvbiBob3dcbiAqIHRvIHJlY292ZXIgaXQgZm9yIGV2ZXJ5IElEIHNjaGVtZTpcbiAqXG4gKiAtIEEgKipzbG90LW51bWJlcmVkKiogcnVuIGNhcnJpZXMgaXRzIHBvc2l0aW9uIGluIHRoZSBJRC4gVGhlIHNsb3QgaXMgZHJhd25cbiAqICAgYXQgdGhlIHB1Ymxpc2gsIHdoaWNoIGlzIHRoZSBsaW5lYXJpemF0aW9uIHBvaW50LCBzbyBzbG90IG9yZGVyIGlzIGxvZ1xuICogICBvcmRlciBldmVyeXdoZXJlIGFuZCB0aGUgSUQgYWxvbmUgc2V0dGxlcyBpdC5cbiAqIC0gQSAqKlVMSUQtbnVtYmVyZWQqKiBydW4gZG9lcyBub3QuIE9uZSBiYWNrZW5kIHJldHVybnMgc3VjaCBhIGxvZyBpblxuICogICBgKGNyZWF0ZWRBdCwgZXZlbnRJZClgIG9yZGVyIHdoaWxlIGFub3RoZXIgcmV0dXJucyBpdCBrZXllZCBvbiB0aGUgSUQsIGFuZFxuICogICBgY3JlYXRlZEF0YCBpcyBzdGFtcGVkIHdoZW4gdGhlIHdyaXRlIHJlcXVlc3QgYXJyaXZlcyByYXRoZXIgdGhhbiB3aGVuIGl0XG4gKiAgIGNvbW1pdHMuIENvbmN1cnJlbnQgd3JpdGVycyBjYW4gdGhlcmVmb3JlIHByb2R1Y2Ugb3Bwb3NpdGUgdGltZXN0YW1wIGFuZFxuICogICBJRCBvcmRlcnMsIGFuZCB0aGUgcnVuIGNvbnN1bWVkIHdoaWNoZXZlciBpdHMgb3duIGJhY2tlbmQgc2VydmVkLlxuICpcbiAqIFNvIGEgVUxJRCBsb2cgaXMgb25seSBrbm93YWJsZSB3aGVyZSB0aGUgdHdvIG9yZGVycyBhZ3JlZS4gV2hlcmUgdGhleVxuICogY29udHJhZGljdCwgdGhlIGZvbGQgY291bGQgbmFtZSB0aGUgc3Vydml2aW5nIGV2ZW50IGFuZCBwYXNzIG92ZXIgdGhlIG9uZVxuICogdGhlIHJ1biBhY3RlZCBvbiwgd2hpY2ggaXMgd29yc2UgdGhhbiBzYXlpbmcgbm90aGluZy5cbiAqL1xuZnVuY3Rpb24gaGFzS25vd2FibGVMb2dPcmRlcihvcmRlcmVkQnlJZDogcmVhZG9ubHkgRXZlbnRbXSk6IGJvb2xlYW4ge1xuICBpZiAob3JkZXJlZEJ5SWQuZXZlcnkoKGV2ZW50KSA9PiBpc1Nsb3RFdmVudElkKGV2ZW50LmV2ZW50SWQpKSkgcmV0dXJuIHRydWU7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IG9yZGVyZWRCeUlkLmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNvbnN0IHByZXZpb3VzID0gY3JlYXRlZEF0TXMob3JkZXJlZEJ5SWRbaW5kZXggLSAxXSk7XG4gICAgY29uc3QgY3VycmVudCA9IGNyZWF0ZWRBdE1zKG9yZGVyZWRCeUlkW2luZGV4XSk7XG4gICAgLy8gQSBtaXNzaW5nIG9yIHVucGFyc2VhYmxlIHRpbWVzdGFtcCBsZWF2ZXMgbm90aGluZyB0byBjb3Jyb2JvcmF0ZSB0aGUgSURcbiAgICAvLyBvcmRlciB3aXRoLCB3aGljaCBpcyB0aGUgc2FtZSBwb3NpdGlvbiBhcyBhIGNvbnRyYWRpY3Rpb24uXG4gICAgaWYgKE51bWJlci5pc05hTihwcmV2aW91cykgfHwgTnVtYmVyLmlzTmFOKGN1cnJlbnQpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGN1cnJlbnQgPCBwcmV2aW91cykgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKiBUaGUgZm9sZCBpdHNlbGYsIG92ZXIgYSBsb2cgd2hvc2Ugb3JkZXIgaXMga25vd24uICovXG5mdW5jdGlvbiBmb2xkRHVwbGljYXRlcyhvcmRlcmVkOiByZWFkb25seSBFdmVudFtdKTogU2V0PHN0cmluZz4ge1xuICBjb25zdCBkdXBsaWNhdGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IHNlZW5DbGFzc2VzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IGNsb3NlZEVudGl0aWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBldmVudCBvZiBvcmRlcmVkKSB7XG4gICAgY29uc3QgZXZlbnRDbGFzcyA9IGVudGl0eUV2ZW50Q2xhc3MoZXZlbnQuZXZlbnRUeXBlKTtcbiAgICBpZiAoZXZlbnRDbGFzcyA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGVudGl0eSA9IGV2ZW50LmNvcnJlbGF0aW9uSWQgPz8gUlVOX0VOVElUWV9LRVk7XG4gICAgY29uc3QgY2xhc3NLZXkgPSBgJHtldmVudENsYXNzfToke2VudGl0eX1gO1xuICAgIGNvbnN0IHJlcGVhdHNDbGFzcyA9IHNlZW5DbGFzc2VzLmhhcyhjbGFzc0tleSk7XG4gICAgY29uc3QgZW50aXR5V2FzQ2xvc2VkID0gY2xvc2VkRW50aXRpZXMuaGFzKGVudGl0eSk7XG5cbiAgICBpZiAoVEVSTUlOQUxfRVZFTlRfQ0xBU1NFUy5oYXMoZXZlbnRDbGFzcykpIHtcbiAgICAgIGNsb3NlZEVudGl0aWVzLmFkZChlbnRpdHkpO1xuICAgIH1cblxuICAgIGlmICghcmVwZWF0c0NsYXNzKSB7XG4gICAgICAvLyBGaXJzdCBvZiBpdHMgY2xhc3MsIGJ1dCB0aGUgZW50aXR5IGFscmVhZHkgZmluaXNoZWQ6IG5vIGNvbnN1bWVyIGlzXG4gICAgICAvLyBsZWZ0IHRvIHRha2UgaXQgYW5kIGl0IHJlcGVhdHMgbm90aGluZywgc28gdGhlIHJ1bnRpbWUgcmVwb3J0c1xuICAgICAgLy8gZGl2ZXJnZW5jZSBoZXJlIGFuZCBleGl0cy4gRXZlcnl0aGluZyBwYXN0IHRoaXMgcG9pbnQgd2VudCB1bnJlYWQsIHNvXG4gICAgICAvLyB0aGUgZm9sZCBzdG9wcyB3aXRoIGl0IHJhdGhlciB0aGFuIHJlY29yZGluZyB0aGUgY2xhc3MgYW5kIHByZXNlbnRpbmdcbiAgICAgIC8vIGEgbGF0ZXIgZXZlbnQgb2YgaXQgYXMgYSByZXBlYXQgdGhlIHJ1biBwYXNzZWQgb3Zlci5cbiAgICAgIGlmIChlbnRpdHlXYXNDbG9zZWQpIGJyZWFrO1xuICAgICAgc2VlbkNsYXNzZXMuYWRkKGNsYXNzS2V5KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIFRoZSBlbnRpdHkgaXMgc3RpbGwgb3Blbiwgc28gYSBjb25zdW1lciBpcyByZWdpc3RlcmVkIGZvciBpdCBhbmQgdGFrZXNcbiAgICAvLyB0aGlzIGV2ZW50OiBhbm90aGVyIGF0dGVtcHQsIG5vdCBhIHJlcGVhdCByZWFkIHBhc3QuXG4gICAgaWYgKGVudGl0eVdhc0Nsb3NlZCB8fCBTSU5HTEVUT05fRVZFTlRfQ0xBU1NFUy5oYXMoZXZlbnRDbGFzcykpIHtcbiAgICAgIGR1cGxpY2F0ZXMuYWRkKGV2ZW50LmV2ZW50SWQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkdXBsaWNhdGVzO1xufVxuXG4vKipcbiAqIFRoZSBJRHMgb2YgdGhlIGV2ZW50cyBpbiBgZXZlbnRzYCB0aGF0IHJlcGVhdCBhIGNsYXNzIHRoZSBsb2cgYWxyZWFkeVxuICogcmVjb3JkcyBmb3IgdGhlIHNhbWUgZW50aXR5LCBhZnRlciB0aGF0IGVudGl0eSBmaW5pc2hlZC5cbiAqXG4gKiBgaXNDb21wbGV0ZUhpc3RvcnlgIG11c3QgYmUgZmFsc2Ugd2hlbmV2ZXIgdGhlIGNhbGxlciBob2xkcyBhIHN1YnNldCBvZiB0aGVcbiAqIHJ1bidzIGxvZzogb25lIHBhZ2Ugb2YgYSBwYWdpbmF0ZWQgbGlzdCwgb3IgdGhlIHJlc3VsdCBvZiBhIHNlYXJjaC4gV2hpY2hcbiAqIG9jY3VycmVuY2Ugb2YgYSBjbGFzcyBjYW1lIGZpcnN0IGlzIGEgcHJvcGVydHkgb2YgdGhlIHdob2xlIGxvZywgc28gb24gYVxuICogc3Vic2V0IHRoZSBlYXJsaWVyIGV2ZW50IG1heSBiZSBtaXNzaW5nLCBhbmQgdGhlIGZvbGQgd291bGQgcmVwb3J0XG4gKiB0aGUgc3Vydml2aW5nIG9uZS4gTm90aGluZyBpcyBjbGFzc2lmaWVkIGluIHRoYXQgY2FzZS5cbiAqXG4gKiBUd28gb3RoZXIgdGhpbmdzIG1ha2UgdGhlIGFuc3dlciB1bmtub3dhYmxlIGFuZCB5aWVsZCB0aGUgc2FtZSBlbXB0eSByZXN1bHQ6XG4gKiBhIGxvZyB3aG9zZSBvcmRlciBjYW5ub3QgYmUgcmVjb3ZlcmVkIGZyb20gdGhlIGV2ZW50cyAoc2VlXG4gKiB7QGxpbmsgaGFzS25vd2FibGVMb2dPcmRlcn0pLCBhbmQgZXZlcnl0aGluZyBwYXN0IHRoZSBwb2ludCB0aGUgcnVuXG4gKiBkaXZlcmdlZCwgc2luY2UgdGhlIHJ1biBleGl0ZWQgdGhlcmUgYW5kIHJlYWQgbm8gZnVydGhlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmREdXBsaWNhdGVFdmVudElkcyhcbiAgZXZlbnRzOiByZWFkb25seSBFdmVudFtdLFxuICB7IGlzQ29tcGxldGVIaXN0b3J5IH06IHsgaXNDb21wbGV0ZUhpc3Rvcnk6IGJvb2xlYW4gfVxuKTogU2V0PHN0cmluZz4ge1xuICBpZiAoIWlzQ29tcGxldGVIaXN0b3J5IHx8IGV2ZW50cy5sZW5ndGggPCAyKSByZXR1cm4gbmV3IFNldCgpO1xuXG4gIC8vIERyb3BwZWQgYmVmb3JlIHRoZSBzb3J0LCBub3QgZHVyaW5nIHRoZSBmb2xkOiBhbiBldmVudCB3aXRoIG5vIElEIGhhcyBub1xuICAvLyBsb2cgcG9zaXRpb24gdG8gb3JkZXIgb24sIGFuZCB0aGUgY2FsbGVyIGNvdWxkIG5vdCBtYXRjaCBpdCBlaXRoZXIuXG4gIGNvbnN0IG9yZGVyZWQgPSBldmVudHNcbiAgICAuZmlsdGVyKChldmVudCkgPT4gQm9vbGVhbihldmVudC5ldmVudElkKSlcbiAgICAuc29ydChjb21wYXJlRXZlbnRJZCk7XG5cbiAgaWYgKCFoYXNLbm93YWJsZUxvZ09yZGVyKG9yZGVyZWQpKSByZXR1cm4gbmV3IFNldCgpO1xuXG4gIHJldHVybiBmb2xkRHVwbGljYXRlcyhvcmRlcmVkKTtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydration.d.ts","sourceRoot":"","sources":["../../src/lib/hydration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAOL,KAAK,QAAQ,EAEd,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,UAAU,EACV,WAAW,EACX,KAAK,QAAQ,EACb,YAAY,EACZ,KAAK,MAAM,EACX,eAAe,EACf,KAAK,SAAS,EACd,uBAAuB,EACvB,UAAU,GACX,MAAM,qCAAqC,CAAC;AAgE7C;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CA+MzC;AAmBD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAMnD;AAMD,eAAO,MAAM,sBAAsB,cAAc,CAAC;AA0BlD,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMzD;AAMD,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAiBnD,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMvD;AAsCD;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAC9C,QAAQ,EAAE,CAAC,EACX,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,QAAQ,EAAE,CAAC,EACX,GAAG,CAAC,EAAE,UAAU,GACf,OAAO,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"hydration.d.ts","sourceRoot":"","sources":["../../src/lib/hydration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAOL,KAAK,QAAQ,EAEd,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,UAAU,EACV,WAAW,EACX,KAAK,QAAQ,EACb,YAAY,EACZ,KAAK,MAAM,EACX,eAAe,EACf,KAAK,SAAS,EACd,uBAAuB,EACvB,UAAU,GACX,MAAM,qCAAqC,CAAC;AAgE7C;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CA+MzC;AAmBD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAMnD;AAMD,eAAO,MAAM,sBAAsB,cAAc,CAAC;AA0BlD,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMzD;AAMD,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAiBnD,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMvD;AAsCD;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAC9C,QAAQ,EAAE,CAAC,EACX,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,QAAQ,EAAE,CAAC,EACX,GAAG,CAAC,EAAE,UAAU,GACf,OAAO,CAAC,CAAC,CAAC,CA0DZ;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAkB7D"}
|