@workflow/web-shared 5.0.0-beta.2 → 5.0.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/error-boundary.js +1 -1
- package/dist/components/event-list-view.d.ts +16 -1
- package/dist/components/event-list-view.d.ts.map +1 -1
- package/dist/components/event-list-view.js +196 -85
- package/dist/components/hook-actions.js +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +5 -1
- package/dist/components/new-trace-viewer/components/copy-button.d.ts +9 -0
- package/dist/components/new-trace-viewer/components/copy-button.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/copy-button.js +27 -0
- package/dist/components/new-trace-viewer/components/event-list.d.ts +10 -0
- package/dist/components/new-trace-viewer/components/event-list.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/event-list.js +46 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.d.ts +18 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.js +54 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.d.ts +20 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.js +81 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/truncate.d.ts +25 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/truncate.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/truncate.js +101 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.d.ts +20 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.js +114 -0
- package/dist/components/new-trace-viewer/components/span-markers.d.ts +46 -0
- package/dist/components/new-trace-viewer/components/span-markers.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/span-markers.js +85 -0
- package/dist/components/new-trace-viewer/components/split-pane.d.ts +15 -0
- package/dist/components/new-trace-viewer/components/split-pane.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/split-pane.js +105 -0
- package/dist/components/new-trace-viewer/components/timeline.d.ts +36 -0
- package/dist/components/new-trace-viewer/components/timeline.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/timeline.js +254 -0
- package/dist/components/new-trace-viewer/components/timeline.module.css +46 -0
- package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.d.ts +2 -0
- package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.js +19 -0
- package/dist/components/new-trace-viewer/components/use-row-window.d.ts +34 -0
- package/dist/components/new-trace-viewer/components/use-row-window.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/use-row-window.js +107 -0
- package/dist/components/new-trace-viewer/context.d.ts +15 -0
- package/dist/components/new-trace-viewer/context.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/context.js +47 -0
- package/dist/components/new-trace-viewer/icons.d.ts +6 -0
- package/dist/components/new-trace-viewer/icons.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/icons.js +15 -0
- package/dist/components/new-trace-viewer/search.d.ts +19 -0
- package/dist/components/new-trace-viewer/search.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/search.js +134 -0
- package/dist/components/new-trace-viewer/trace-viewer.d.ts +11 -0
- package/dist/components/new-trace-viewer/trace-viewer.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/trace-viewer.js +462 -0
- package/dist/components/new-trace-viewer/types.d.ts +3 -0
- package/dist/components/new-trace-viewer/types.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/types.js +2 -0
- package/dist/components/new-trace-viewer/utils.d.ts +61 -0
- package/dist/components/new-trace-viewer/utils.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/utils.js +345 -0
- package/dist/components/run-trace-view.js +1 -1
- package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
- package/dist/components/sidebar/attribute-panel.js +129 -102
- package/dist/components/sidebar/attributes-block.d.ts +28 -0
- package/dist/components/sidebar/attributes-block.d.ts.map +1 -0
- package/dist/components/sidebar/attributes-block.js +81 -0
- package/dist/components/sidebar/conversation-view.js +1 -1
- package/dist/components/sidebar/copyable-data-block.d.ts +1 -0
- package/dist/components/sidebar/copyable-data-block.d.ts.map +1 -1
- package/dist/components/sidebar/copyable-data-block.js +16 -15
- package/dist/components/sidebar/detail-card.d.ts +5 -6
- package/dist/components/sidebar/detail-card.d.ts.map +1 -1
- package/dist/components/sidebar/detail-card.js +32 -16
- package/dist/components/sidebar/entity-detail-panel.d.ts +1 -3
- package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
- package/dist/components/sidebar/entity-detail-panel.js +17 -35
- package/dist/components/sidebar/events-list.d.ts +3 -1
- package/dist/components/sidebar/events-list.d.ts.map +1 -1
- package/dist/components/sidebar/events-list.js +36 -22
- package/dist/components/sidebar/resolve-hook-modal.js +1 -1
- package/dist/components/sidebar/sidebar-data-context.d.ts +29 -0
- package/dist/components/sidebar/sidebar-data-context.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar-data-context.js +19 -0
- package/dist/components/sidebar/span-detail-merge.d.ts +16 -0
- package/dist/components/sidebar/span-detail-merge.d.ts.map +1 -0
- package/dist/components/sidebar/span-detail-merge.js +53 -0
- package/dist/components/stream-viewer.d.ts +1 -1
- package/dist/components/stream-viewer.d.ts.map +1 -1
- package/dist/components/stream-viewer.js +3 -27
- package/dist/components/trace-viewer/components/map.js +1 -1
- package/dist/components/trace-viewer/components/markers.js +1 -1
- package/dist/components/trace-viewer/components/node.d.ts.map +1 -1
- package/dist/components/trace-viewer/components/node.js +2 -1
- package/dist/components/trace-viewer/components/search-input.js +1 -1
- package/dist/components/trace-viewer/components/search.js +1 -1
- package/dist/components/trace-viewer/components/span-content.js +1 -1
- package/dist/components/trace-viewer/components/span-detail-panel.js +1 -1
- package/dist/components/trace-viewer/components/span-segments.js +1 -1
- package/dist/components/trace-viewer/components/span-strategies.js +1 -1
- package/dist/components/trace-viewer/components/ui.js +1 -1
- package/dist/components/trace-viewer/components/zoom-button.js +1 -1
- package/dist/components/trace-viewer/components/zoom-icons.js +1 -1
- package/dist/components/trace-viewer/context.js +1 -1
- package/dist/components/trace-viewer/index.js +1 -1
- package/dist/components/trace-viewer/trace-viewer.js +1 -1
- package/dist/components/trace-viewer/trace-viewer.module.css +4 -4
- package/dist/components/trace-viewer/types.js +1 -1
- package/dist/components/trace-viewer/util/constants.js +1 -1
- package/dist/components/trace-viewer/util/scrollbar-width.js +1 -1
- package/dist/components/trace-viewer/util/timing.d.ts +3 -3
- package/dist/components/trace-viewer/util/timing.d.ts.map +1 -1
- package/dist/components/trace-viewer/util/timing.js +8 -11
- package/dist/components/trace-viewer/util/tree.js +1 -1
- package/dist/components/trace-viewer/util/use-immediate-style.js +1 -1
- package/dist/components/trace-viewer/util/use-streaming-spans.js +1 -1
- package/dist/components/trace-viewer/util/use-trackpad-zoom.js +1 -1
- package/dist/components/trace-viewer/worker.js +1 -1
- package/dist/components/trace-viewer-new.d.ts +14 -0
- package/dist/components/trace-viewer-new.d.ts.map +1 -0
- package/dist/components/trace-viewer-new.js +21 -0
- package/dist/components/ui/alert.js +1 -1
- package/dist/components/ui/button.d.ts +10 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +46 -0
- package/dist/components/ui/card.js +1 -1
- package/dist/components/ui/context-card.d.ts +47 -0
- package/dist/components/ui/context-card.d.ts.map +1 -0
- package/dist/components/ui/context-card.js +471 -0
- package/dist/components/ui/data-inspector.d.ts +22 -0
- package/dist/components/ui/data-inspector.d.ts.map +1 -1
- package/dist/components/ui/data-inspector.js +103 -13
- package/dist/components/ui/decrypt-button.js +1 -1
- package/dist/components/ui/error-card.js +1 -1
- package/dist/components/ui/error-stack-block.d.ts +17 -10
- package/dist/components/ui/error-stack-block.d.ts.map +1 -1
- package/dist/components/ui/error-stack-block.js +49 -30
- package/dist/components/ui/icon-button.d.ts +19 -0
- package/dist/components/ui/icon-button.d.ts.map +1 -0
- package/dist/components/ui/icon-button.js +29 -0
- package/dist/components/ui/inspector-theme.d.ts +9 -10
- package/dist/components/ui/inspector-theme.d.ts.map +1 -1
- package/dist/components/ui/inspector-theme.js +39 -72
- package/dist/components/ui/kbd.d.ts +6 -0
- package/dist/components/ui/kbd.d.ts.map +1 -0
- package/dist/components/ui/kbd.js +6 -0
- package/dist/components/ui/load-more-button.js +1 -1
- package/dist/components/ui/menu-dropdown.js +1 -1
- package/dist/components/ui/skeleton.js +1 -1
- package/dist/components/ui/spinner.js +1 -1
- package/dist/components/ui/timestamp-tooltip.d.ts +34 -1
- package/dist/components/ui/timestamp-tooltip.d.ts.map +1 -1
- package/dist/components/ui/timestamp-tooltip.js +80 -132
- package/dist/components/ui/tooltip.d.ts +10 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +12 -0
- package/dist/components/workflow-trace-view.d.ts +1 -3
- package/dist/components/workflow-trace-view.d.ts.map +1 -1
- package/dist/components/workflow-trace-view.js +11 -13
- package/dist/components/workflow-traces/event-colors.d.ts +1 -0
- package/dist/components/workflow-traces/event-colors.d.ts.map +1 -1
- package/dist/components/workflow-traces/event-colors.js +12 -1
- package/dist/components/workflow-traces/trace-colors.js +1 -1
- package/dist/components/workflow-traces/trace-span-construction.d.ts +2 -2
- package/dist/components/workflow-traces/trace-span-construction.d.ts.map +1 -1
- package/dist/components/workflow-traces/trace-span-construction.js +19 -5
- package/dist/components/workflow-traces/trace-time-utils.js +1 -1
- package/dist/hooks/use-dark-mode.js +1 -1
- package/dist/hooks/use-intersection-observer.d.ts +17 -0
- package/dist/hooks/use-intersection-observer.d.ts.map +1 -0
- package/dist/hooks/use-intersection-observer.js +29 -0
- package/dist/hooks/use-load-more-on-scroll.d.ts +21 -0
- package/dist/hooks/use-load-more-on-scroll.d.ts.map +1 -0
- package/dist/hooks/use-load-more-on-scroll.js +28 -0
- package/dist/hooks/use-reduced-motion.d.ts +10 -0
- package/dist/hooks/use-reduced-motion.d.ts.map +1 -0
- package/dist/hooks/use-reduced-motion.js +29 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/lib/event-analysis.js +1 -1
- package/dist/lib/event-materialization.js +1 -1
- package/dist/lib/exact-event-search-id.d.ts +25 -0
- package/dist/lib/exact-event-search-id.d.ts.map +1 -0
- package/dist/lib/exact-event-search-id.js +39 -0
- package/dist/lib/hydration.d.ts +6 -0
- package/dist/lib/hydration.d.ts.map +1 -1
- package/dist/lib/hydration.js +154 -2
- package/dist/lib/stream-display.d.ts +18 -0
- package/dist/lib/stream-display.d.ts.map +1 -0
- package/dist/lib/stream-display.js +30 -0
- package/dist/lib/toast.js +1 -1
- package/dist/lib/trace-builder.d.ts +15 -0
- package/dist/lib/trace-builder.d.ts.map +1 -1
- package/dist/lib/trace-builder.js +29 -3
- package/dist/lib/utils.d.ts +20 -9
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +74 -31
- package/dist/lib/zstd-browser-decoder.d.ts +7 -0
- package/dist/lib/zstd-browser-decoder.d.ts.map +1 -0
- package/dist/lib/zstd-browser-decoder.js +41 -0
- package/dist/styles.css +484 -1
- package/package.json +10 -5
- package/src/components/event-list-view.tsx +279 -104
- package/src/components/index.ts +7 -0
- package/src/components/new-trace-viewer/components/copy-button.tsx +68 -0
- package/src/components/new-trace-viewer/components/event-list.tsx +136 -0
- package/src/components/new-trace-viewer/components/middle-truncate/copy-selection.ts +114 -0
- package/src/components/new-trace-viewer/components/middle-truncate/middle-truncate.tsx +157 -0
- package/src/components/new-trace-viewer/components/middle-truncate/truncate.ts +132 -0
- package/src/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.ts +167 -0
- package/src/components/new-trace-viewer/components/span-markers.tsx +173 -0
- package/src/components/new-trace-viewer/components/split-pane.tsx +198 -0
- package/src/components/new-trace-viewer/components/timeline.module.css +46 -0
- package/src/components/new-trace-viewer/components/timeline.tsx +744 -0
- package/src/components/new-trace-viewer/components/trace-viewer-skeleton.tsx +94 -0
- package/src/components/new-trace-viewer/components/use-row-window.ts +140 -0
- package/src/components/new-trace-viewer/context.tsx +90 -0
- package/src/components/new-trace-viewer/icons.tsx +79 -0
- package/src/components/new-trace-viewer/search.ts +178 -0
- package/src/components/new-trace-viewer/trace-viewer.tsx +843 -0
- package/src/components/new-trace-viewer/types.ts +2 -0
- package/src/components/new-trace-viewer/utils.test.ts +182 -0
- package/src/components/new-trace-viewer/utils.ts +519 -0
- package/src/components/sidebar/attribute-panel.tsx +194 -240
- package/src/components/sidebar/attributes-block.tsx +173 -0
- package/src/components/sidebar/copyable-data-block.tsx +49 -27
- package/src/components/sidebar/detail-card.tsx +119 -59
- package/src/components/sidebar/entity-detail-panel.tsx +55 -111
- package/src/components/sidebar/events-list.tsx +85 -96
- package/src/components/sidebar/sidebar-data-context.tsx +62 -0
- package/src/components/sidebar/span-detail-merge.ts +65 -0
- package/src/components/stream-viewer.tsx +18 -40
- package/src/components/trace-viewer/components/node.tsx +3 -2
- package/src/components/trace-viewer/trace-viewer.module.css +4 -4
- package/src/components/trace-viewer/util/timing.ts +7 -11
- package/src/components/trace-viewer-new.tsx +55 -0
- package/src/components/ui/button.tsx +68 -0
- package/src/components/ui/context-card.tsx +784 -0
- package/src/components/ui/data-inspector.tsx +244 -22
- package/src/components/ui/error-stack-block.tsx +84 -55
- package/src/components/ui/icon-button.tsx +53 -0
- package/src/components/ui/inspector-theme.ts +39 -81
- package/src/components/ui/kbd.tsx +21 -0
- package/src/components/ui/timestamp-tooltip.tsx +132 -194
- package/src/components/ui/tooltip.tsx +47 -0
- package/src/components/workflow-trace-view.tsx +19 -15
- package/src/components/workflow-traces/event-colors.ts +12 -0
- package/src/components/workflow-traces/trace-span-construction.ts +24 -5
- package/src/hooks/use-intersection-observer.ts +57 -0
- package/src/hooks/use-load-more-on-scroll.ts +49 -0
- package/src/hooks/use-reduced-motion.ts +34 -0
- package/src/index.ts +9 -0
- package/src/lib/exact-event-search-id.ts +67 -0
- package/src/lib/hydration.ts +166 -1
- package/src/lib/stream-display.ts +48 -0
- package/src/lib/trace-builder.ts +34 -2
- package/src/lib/utils.ts +83 -31
- package/src/lib/zstd-browser-decoder.ts +42 -0
- package/src/styles.css +484 -1
- package/dist/components/error-boundary.js.map +0 -1
- package/dist/components/event-list-view.js.map +0 -1
- package/dist/components/hook-actions.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/run-trace-view.js.map +0 -1
- package/dist/components/sidebar/attribute-panel.js.map +0 -1
- package/dist/components/sidebar/conversation-view.js.map +0 -1
- package/dist/components/sidebar/copyable-data-block.js.map +0 -1
- package/dist/components/sidebar/detail-card.js.map +0 -1
- package/dist/components/sidebar/entity-detail-panel.js.map +0 -1
- package/dist/components/sidebar/events-list.js.map +0 -1
- package/dist/components/sidebar/resolve-hook-modal.js.map +0 -1
- package/dist/components/stream-viewer.js.map +0 -1
- package/dist/components/trace-viewer/components/map.js.map +0 -1
- package/dist/components/trace-viewer/components/markers.js.map +0 -1
- package/dist/components/trace-viewer/components/node.js.map +0 -1
- package/dist/components/trace-viewer/components/search-input.js.map +0 -1
- package/dist/components/trace-viewer/components/search.js.map +0 -1
- package/dist/components/trace-viewer/components/span-content.js.map +0 -1
- package/dist/components/trace-viewer/components/span-detail-panel.js.map +0 -1
- package/dist/components/trace-viewer/components/span-segments.js.map +0 -1
- package/dist/components/trace-viewer/components/span-strategies.js.map +0 -1
- package/dist/components/trace-viewer/components/ui.js.map +0 -1
- package/dist/components/trace-viewer/components/zoom-button.js.map +0 -1
- package/dist/components/trace-viewer/components/zoom-icons.js.map +0 -1
- package/dist/components/trace-viewer/context.js.map +0 -1
- package/dist/components/trace-viewer/index.js.map +0 -1
- package/dist/components/trace-viewer/trace-viewer.js.map +0 -1
- package/dist/components/trace-viewer/types.js.map +0 -1
- package/dist/components/trace-viewer/util/constants.js.map +0 -1
- package/dist/components/trace-viewer/util/scrollbar-width.js.map +0 -1
- package/dist/components/trace-viewer/util/timing.js.map +0 -1
- package/dist/components/trace-viewer/util/tree.js.map +0 -1
- package/dist/components/trace-viewer/util/use-immediate-style.js.map +0 -1
- package/dist/components/trace-viewer/util/use-streaming-spans.js.map +0 -1
- package/dist/components/trace-viewer/util/use-trackpad-zoom.js.map +0 -1
- package/dist/components/trace-viewer/worker.js.map +0 -1
- package/dist/components/ui/alert.js.map +0 -1
- package/dist/components/ui/card.js.map +0 -1
- package/dist/components/ui/data-inspector.js.map +0 -1
- package/dist/components/ui/decrypt-button.js.map +0 -1
- package/dist/components/ui/error-card.js.map +0 -1
- package/dist/components/ui/error-stack-block.js.map +0 -1
- package/dist/components/ui/inspector-theme.js.map +0 -1
- package/dist/components/ui/load-more-button.js.map +0 -1
- package/dist/components/ui/menu-dropdown.js.map +0 -1
- package/dist/components/ui/skeleton.js.map +0 -1
- package/dist/components/ui/spinner.js.map +0 -1
- package/dist/components/ui/timestamp-tooltip.js.map +0 -1
- package/dist/components/workflow-trace-view.js.map +0 -1
- package/dist/components/workflow-traces/event-colors.js.map +0 -1
- package/dist/components/workflow-traces/trace-colors.js.map +0 -1
- package/dist/components/workflow-traces/trace-span-construction.js.map +0 -1
- package/dist/components/workflow-traces/trace-time-utils.js.map +0 -1
- package/dist/hooks/use-dark-mode.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/event-analysis.js.map +0 -1
- package/dist/lib/event-materialization.js.map +0 -1
- package/dist/lib/hydration.js.map +0 -1
- package/dist/lib/toast.js.map +0 -1
- package/dist/lib/trace-builder.js.map +0 -1
- package/dist/lib/utils.js.map +0 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the latest IntersectionObserverEntry for `elementRef`.
|
|
5
|
+
* Ported from vercel/front's `@vercel/hooks` `useIntersectionObserver`, with
|
|
6
|
+
* `root` threaded as a ref so we can observe inside a custom scroll container.
|
|
7
|
+
*/
|
|
8
|
+
export function useIntersectionObserver(elementRef, { threshold = 0, rootRef, rootMargin = '0%', freezeOnceVisible = false, } = {}) {
|
|
9
|
+
const [entry, setEntry] = useState();
|
|
10
|
+
const frozen = entry?.isIntersecting && freezeOnceVisible;
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
const node = elementRef?.current;
|
|
13
|
+
const hasIOSupport = !!window.IntersectionObserver;
|
|
14
|
+
if (!hasIOSupport || frozen || !node)
|
|
15
|
+
return;
|
|
16
|
+
const updateEntry = ([entry]) => {
|
|
17
|
+
setEntry(entry);
|
|
18
|
+
};
|
|
19
|
+
const observer = new IntersectionObserver(updateEntry, {
|
|
20
|
+
threshold,
|
|
21
|
+
root: rootRef?.current ?? null,
|
|
22
|
+
rootMargin,
|
|
23
|
+
});
|
|
24
|
+
observer.observe(node);
|
|
25
|
+
return () => observer.disconnect();
|
|
26
|
+
}, [elementRef, threshold, rootRef, rootMargin, frozen]);
|
|
27
|
+
return entry;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWludGVyc2VjdGlvbi1vYnNlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtaW50ZXJzZWN0aW9uLW9ic2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQztBQUdiLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBWTVDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLFVBQXFDLEVBQ3JDLEVBQ0UsU0FBUyxHQUFHLENBQUMsRUFDYixPQUFPLEVBQ1AsVUFBVSxHQUFHLElBQUksRUFDakIsaUJBQWlCLEdBQUcsS0FBSyxNQUNNLEVBQUU7SUFFbkMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxRQUFRLEVBQTZCLENBQUM7SUFFaEUsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLGNBQWMsSUFBSSxpQkFBaUIsQ0FBQztJQUUxRCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsTUFBTSxJQUFJLEdBQUcsVUFBVSxFQUFFLE9BQU8sQ0FBQztRQUVqQyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDO1FBRW5ELElBQUksQ0FBQyxZQUFZLElBQUksTUFBTSxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFFN0MsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBOEIsRUFBUSxFQUFFO1lBQ2pFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLG9CQUFvQixDQUFDLFdBQVcsRUFBRTtZQUNyRCxTQUFTO1lBQ1QsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUksSUFBSTtZQUM5QixVQUFVO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2QixPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUV6RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW50ZXJmYWNlIFVzZUludGVyc2VjdGlvbk9ic2VydmVyQXJnc1xuICBleHRlbmRzIE9taXQ8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJJbml0LCAncm9vdCc+IHtcbiAgLyoqXG4gICAqIFNjcm9sbCBjb250YWluZXIgdGhlIHRhcmdldCBpcyBvYnNlcnZlZCB3aXRoaW4uIERlZmF1bHRzIHRvIHRoZSB2aWV3cG9ydC5cbiAgICogUGFzc2VkIGFzIGEgcmVmIHNvIGl0IHJlc29sdmVzIGFmdGVyIGNvbW1pdCAod2hlbiB0aGUgbm9kZSBleGlzdHMpLlxuICAgKi9cbiAgcm9vdFJlZj86IFJlZk9iamVjdDxFbGVtZW50IHwgbnVsbD47XG4gIGZyZWV6ZU9uY2VWaXNpYmxlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBsYXRlc3QgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSBmb3IgYGVsZW1lbnRSZWZgLlxuICogUG9ydGVkIGZyb20gdmVyY2VsL2Zyb250J3MgYEB2ZXJjZWwvaG9va3NgIGB1c2VJbnRlcnNlY3Rpb25PYnNlcnZlcmAsIHdpdGhcbiAqIGByb290YCB0aHJlYWRlZCBhcyBhIHJlZiBzbyB3ZSBjYW4gb2JzZXJ2ZSBpbnNpZGUgYSBjdXN0b20gc2Nyb2xsIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUludGVyc2VjdGlvbk9ic2VydmVyKFxuICBlbGVtZW50UmVmOiBSZWZPYmplY3Q8RWxlbWVudCB8IG51bGw+LFxuICB7XG4gICAgdGhyZXNob2xkID0gMCxcbiAgICByb290UmVmLFxuICAgIHJvb3RNYXJnaW4gPSAnMCUnLFxuICAgIGZyZWV6ZU9uY2VWaXNpYmxlID0gZmFsc2UsXG4gIH06IFVzZUludGVyc2VjdGlvbk9ic2VydmVyQXJncyA9IHt9XG4pOiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgW2VudHJ5LCBzZXRFbnRyeV0gPSB1c2VTdGF0ZTxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5PigpO1xuXG4gIGNvbnN0IGZyb3plbiA9IGVudHJ5Py5pc0ludGVyc2VjdGluZyAmJiBmcmVlemVPbmNlVmlzaWJsZTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG5vZGUgPSBlbGVtZW50UmVmPy5jdXJyZW50O1xuXG4gICAgY29uc3QgaGFzSU9TdXBwb3J0ID0gISF3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoIWhhc0lPU3VwcG9ydCB8fCBmcm96ZW4gfHwgIW5vZGUpIHJldHVybjtcblxuICAgIGNvbnN0IHVwZGF0ZUVudHJ5ID0gKFtlbnRyeV06IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnlbXSk6IHZvaWQgPT4ge1xuICAgICAgc2V0RW50cnkoZW50cnkpO1xuICAgIH07XG5cbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih1cGRhdGVFbnRyeSwge1xuICAgICAgdGhyZXNob2xkLFxuICAgICAgcm9vdDogcm9vdFJlZj8uY3VycmVudCA/PyBudWxsLFxuICAgICAgcm9vdE1hcmdpbixcbiAgICB9KTtcblxuICAgIG9ic2VydmVyLm9ic2VydmUobm9kZSk7XG5cbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9LCBbZWxlbWVudFJlZiwgdGhyZXNob2xkLCByb290UmVmLCByb290TWFyZ2luLCBmcm96ZW5dKTtcblxuICByZXR1cm4gZW50cnk7XG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
interface UseLoadMoreOnScrollOptions {
|
|
3
|
+
hasMore: boolean;
|
|
4
|
+
isLoadingMore: boolean;
|
|
5
|
+
/** Scroll container the sentinel lives in. Defaults to the viewport. */
|
|
6
|
+
rootRef?: RefObject<Element | null>;
|
|
7
|
+
rootMargin?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Triggers `loadMore` when a sentinel element scrolls into view.
|
|
11
|
+
* Returns a ref to attach to an invisible sentinel `<div>` placed after the
|
|
12
|
+
* list content. Ported from vercel/front's `@vercel/hooks`
|
|
13
|
+
* `useLoadMoreOnScroll`.
|
|
14
|
+
*
|
|
15
|
+
* Because it keys off `isIntersecting`/`isLoadingMore`, it self-continues:
|
|
16
|
+
* if the sentinel is still in view once a page finishes loading, the next
|
|
17
|
+
* page is requested automatically.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useLoadMoreOnScroll(loadMore: () => void, { hasMore, isLoadingMore, rootRef, rootMargin, }: UseLoadMoreOnScrollOptions): RefObject<HTMLDivElement | null>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=use-load-more-on-scroll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-load-more-on-scroll.d.ts","sourceRoot":"","sources":["../../src/hooks/use-load-more-on-scroll.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,IAAI,EACpB,EACE,OAAO,EACP,aAAa,EACb,OAAO,EACP,UAAoB,GACrB,EAAE,0BAA0B,oCAiB9B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useEffect, useRef } from 'react';
|
|
3
|
+
import { useIntersectionObserver } from './use-intersection-observer';
|
|
4
|
+
/**
|
|
5
|
+
* Triggers `loadMore` when a sentinel element scrolls into view.
|
|
6
|
+
* Returns a ref to attach to an invisible sentinel `<div>` placed after the
|
|
7
|
+
* list content. Ported from vercel/front's `@vercel/hooks`
|
|
8
|
+
* `useLoadMoreOnScroll`.
|
|
9
|
+
*
|
|
10
|
+
* Because it keys off `isIntersecting`/`isLoadingMore`, it self-continues:
|
|
11
|
+
* if the sentinel is still in view once a page finishes loading, the next
|
|
12
|
+
* page is requested automatically.
|
|
13
|
+
*/
|
|
14
|
+
export function useLoadMoreOnScroll(loadMore, { hasMore, isLoadingMore, rootRef, rootMargin = '400px', }) {
|
|
15
|
+
const sentinelRef = useRef(null);
|
|
16
|
+
const entry = useIntersectionObserver(sentinelRef, { rootRef, rootMargin });
|
|
17
|
+
const loadMoreRef = useRef(loadMore);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
loadMoreRef.current = loadMore;
|
|
20
|
+
}, [loadMore]);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (entry?.isIntersecting && hasMore && !isLoadingMore) {
|
|
23
|
+
loadMoreRef.current();
|
|
24
|
+
}
|
|
25
|
+
}, [entry?.isIntersecting, hasMore, isLoadingMore]);
|
|
26
|
+
return sentinelRef;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWxvYWQtbW9yZS1vbi1zY3JvbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLWxvYWQtbW9yZS1vbi1zY3JvbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBR2IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFVdEU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxRQUFvQixFQUNwQixFQUNFLE9BQU8sRUFDUCxhQUFhLEVBQ2IsT0FBTyxFQUNQLFVBQVUsR0FBRyxPQUFPLEdBQ087SUFFN0IsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsQ0FBQztJQUNqRCxNQUFNLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUU1RSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLFdBQVcsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO0lBQ2pDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFZixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsSUFBSSxLQUFLLEVBQUUsY0FBYyxJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZELFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUVwRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgdHlwZSB7IFJlZk9iamVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfSBmcm9tICcuL3VzZS1pbnRlcnNlY3Rpb24tb2JzZXJ2ZXInO1xuXG5pbnRlcmZhY2UgVXNlTG9hZE1vcmVPblNjcm9sbE9wdGlvbnMge1xuICBoYXNNb3JlOiBib29sZWFuO1xuICBpc0xvYWRpbmdNb3JlOiBib29sZWFuO1xuICAvKiogU2Nyb2xsIGNvbnRhaW5lciB0aGUgc2VudGluZWwgbGl2ZXMgaW4uIERlZmF1bHRzIHRvIHRoZSB2aWV3cG9ydC4gKi9cbiAgcm9vdFJlZj86IFJlZk9iamVjdDxFbGVtZW50IHwgbnVsbD47XG4gIHJvb3RNYXJnaW4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHJpZ2dlcnMgYGxvYWRNb3JlYCB3aGVuIGEgc2VudGluZWwgZWxlbWVudCBzY3JvbGxzIGludG8gdmlldy5cbiAqIFJldHVybnMgYSByZWYgdG8gYXR0YWNoIHRvIGFuIGludmlzaWJsZSBzZW50aW5lbCBgPGRpdj5gIHBsYWNlZCBhZnRlciB0aGVcbiAqIGxpc3QgY29udGVudC4gUG9ydGVkIGZyb20gdmVyY2VsL2Zyb250J3MgYEB2ZXJjZWwvaG9va3NgXG4gKiBgdXNlTG9hZE1vcmVPblNjcm9sbGAuXG4gKlxuICogQmVjYXVzZSBpdCBrZXlzIG9mZiBgaXNJbnRlcnNlY3RpbmdgL2Bpc0xvYWRpbmdNb3JlYCwgaXQgc2VsZi1jb250aW51ZXM6XG4gKiBpZiB0aGUgc2VudGluZWwgaXMgc3RpbGwgaW4gdmlldyBvbmNlIGEgcGFnZSBmaW5pc2hlcyBsb2FkaW5nLCB0aGUgbmV4dFxuICogcGFnZSBpcyByZXF1ZXN0ZWQgYXV0b21hdGljYWxseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUxvYWRNb3JlT25TY3JvbGwoXG4gIGxvYWRNb3JlOiAoKSA9PiB2b2lkLFxuICB7XG4gICAgaGFzTW9yZSxcbiAgICBpc0xvYWRpbmdNb3JlLFxuICAgIHJvb3RSZWYsXG4gICAgcm9vdE1hcmdpbiA9ICc0MDBweCcsXG4gIH06IFVzZUxvYWRNb3JlT25TY3JvbGxPcHRpb25zXG4pIHtcbiAgY29uc3Qgc2VudGluZWxSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBlbnRyeSA9IHVzZUludGVyc2VjdGlvbk9ic2VydmVyKHNlbnRpbmVsUmVmLCB7IHJvb3RSZWYsIHJvb3RNYXJnaW4gfSk7XG5cbiAgY29uc3QgbG9hZE1vcmVSZWYgPSB1c2VSZWYobG9hZE1vcmUpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvYWRNb3JlUmVmLmN1cnJlbnQgPSBsb2FkTW9yZTtcbiAgfSwgW2xvYWRNb3JlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZW50cnk/LmlzSW50ZXJzZWN0aW5nICYmIGhhc01vcmUgJiYgIWlzTG9hZGluZ01vcmUpIHtcbiAgICAgIGxvYWRNb3JlUmVmLmN1cnJlbnQoKTtcbiAgICB9XG4gIH0sIFtlbnRyeT8uaXNJbnRlcnNlY3RpbmcsIGhhc01vcmUsIGlzTG9hZGluZ01vcmVdKTtcblxuICByZXR1cm4gc2VudGluZWxSZWY7XG59XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook that detects whether the user has requested reduced motion and reacts
|
|
3
|
+
* to changes. Mirrors the `prefers-reduced-motion: reduce` media query so
|
|
4
|
+
* components can skip or shorten animations for users with motion
|
|
5
|
+
* sensitivities (e.g. vestibular disorders).
|
|
6
|
+
*
|
|
7
|
+
* @returns `true` if the user prefers reduced motion, `false` otherwise
|
|
8
|
+
*/
|
|
9
|
+
export declare const useReducedMotion: () => boolean;
|
|
10
|
+
//# sourceMappingURL=use-reduced-motion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-reduced-motion.d.ts","sourceRoot":"","sources":["../../src/hooks/use-reduced-motion.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAAO,OAmBnC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
const QUERY = '(prefers-reduced-motion: reduce)';
|
|
4
|
+
/**
|
|
5
|
+
* Hook that detects whether the user has requested reduced motion and reacts
|
|
6
|
+
* to changes. Mirrors the `prefers-reduced-motion: reduce` media query so
|
|
7
|
+
* components can skip or shorten animations for users with motion
|
|
8
|
+
* sensitivities (e.g. vestibular disorders).
|
|
9
|
+
*
|
|
10
|
+
* @returns `true` if the user prefers reduced motion, `false` otherwise
|
|
11
|
+
*/
|
|
12
|
+
export const useReducedMotion = () => {
|
|
13
|
+
const [reduced, setReduced] = useState(() => {
|
|
14
|
+
if (typeof window === 'undefined' || !window.matchMedia)
|
|
15
|
+
return false;
|
|
16
|
+
return window.matchMedia(QUERY).matches;
|
|
17
|
+
});
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (typeof window === 'undefined' || !window.matchMedia)
|
|
20
|
+
return;
|
|
21
|
+
const media = window.matchMedia(QUERY);
|
|
22
|
+
const onChange = () => setReduced(media.matches);
|
|
23
|
+
media.addEventListener('change', onChange);
|
|
24
|
+
onChange();
|
|
25
|
+
return () => media.removeEventListener('change', onChange);
|
|
26
|
+
}, []);
|
|
27
|
+
return reduced;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJlZHVjZWQtbW90aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZS1yZWR1Y2VkLW1vdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7QUFFYixPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU1QyxNQUFNLEtBQUssR0FBRyxrQ0FBa0MsQ0FBQztBQUVqRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBWSxFQUFFO0lBQzVDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMxQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdEUsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMxQyxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUVoRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLEdBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxRQUFRLEVBQUUsQ0FBQztRQUVYLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3RCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFFVRVJZID0gJyhwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpJztcblxuLyoqXG4gKiBIb29rIHRoYXQgZGV0ZWN0cyB3aGV0aGVyIHRoZSB1c2VyIGhhcyByZXF1ZXN0ZWQgcmVkdWNlZCBtb3Rpb24gYW5kIHJlYWN0c1xuICogdG8gY2hhbmdlcy4gTWlycm9ycyB0aGUgYHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZWAgbWVkaWEgcXVlcnkgc29cbiAqIGNvbXBvbmVudHMgY2FuIHNraXAgb3Igc2hvcnRlbiBhbmltYXRpb25zIGZvciB1c2VycyB3aXRoIG1vdGlvblxuICogc2Vuc2l0aXZpdGllcyAoZS5nLiB2ZXN0aWJ1bGFyIGRpc29yZGVycykuXG4gKlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB1c2VyIHByZWZlcnMgcmVkdWNlZCBtb3Rpb24sIGBmYWxzZWAgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VSZWR1Y2VkTW90aW9uID0gKCk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBbcmVkdWNlZCwgc2V0UmVkdWNlZF0gPSB1c2VTdGF0ZSgoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubWF0Y2hNZWRpYSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB3aW5kb3cubWF0Y2hNZWRpYShRVUVSWSkubWF0Y2hlcztcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXdpbmRvdy5tYXRjaE1lZGlhKSByZXR1cm47XG5cbiAgICBjb25zdCBtZWRpYSA9IHdpbmRvdy5tYXRjaE1lZGlhKFFVRVJZKTtcbiAgICBjb25zdCBvbkNoYW5nZSA9ICgpOiB2b2lkID0+IHNldFJlZHVjZWQobWVkaWEubWF0Y2hlcyk7XG5cbiAgICBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG4gICAgb25DaGFuZ2UoKTtcblxuICAgIHJldHVybiAoKSA9PiBtZWRpYS5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gcmVkdWNlZDtcbn07XG4iXX0=
|
package/dist/index.d.ts
CHANGED
|
@@ -4,13 +4,15 @@ export type { Event, Hook, Step, WorkflowRun } from '@workflow/world';
|
|
|
4
4
|
export * from './components';
|
|
5
5
|
export { hookEventsToHookEntity, stepEventsToStepEntity, waitEventsToWaitEntity, } from './components/workflow-traces/trace-span-construction';
|
|
6
6
|
export type { EventAnalysis } from './lib/event-analysis';
|
|
7
|
+
export { parseExactWorkflowSearchId, looksLikeWorkflowIdSearchInput, type ExactWorkflowSearchId, type ExactWorkflowSearchIdKind, type ExactIdSearchResult, } from './lib/exact-event-search-id';
|
|
7
8
|
export { analyzeEvents, hasPendingHooksFromEvents, hasPendingStepsFromEvents, isTerminalStatus, shouldShowReenqueueButton, } from './lib/event-analysis';
|
|
8
9
|
export type { MaterializedEntities, MaterializedHook, MaterializedStep, MaterializedWait, } from './lib/event-materialization';
|
|
9
10
|
export { materializeAll, materializeHooks, materializeSteps, materializeWaits, } from './lib/event-materialization';
|
|
10
11
|
export type { Revivers, StreamRef } from './lib/hydration';
|
|
11
12
|
export { CLASS_INSTANCE_REF_TYPE, ClassInstanceRef, ENCRYPTED_PLACEHOLDER, extractStreamIds, getWebRevivers, hasEncryptedFields, hydrateResourceIO, hydrateResourceIOWithKey, isClassInstanceRef, isEncryptedMarker, isStreamId, isStreamRef, STREAM_REF_TYPE, truncateId, } from './lib/hydration';
|
|
13
|
+
export type { DecodedStreamChunkSource } from './lib/stream-display';
|
|
12
14
|
export type { ToastAdapter } from './lib/toast';
|
|
13
15
|
export { ToastProvider, useToast } from './lib/toast';
|
|
14
16
|
export type { StreamStep } from './lib/utils';
|
|
15
|
-
export { extractConversation, formatDuration, identifyStreamSteps, isDoStreamStep, } from './lib/utils';
|
|
17
|
+
export { extractConversation, formatDuration, formatDurationPrecise, identifyStreamSteps, isDoStreamStep, } from './lib/utils';
|
|
16
18
|
//# sourceMappingURL=index.d.ts.map
|
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,EACV,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,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,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,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,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,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,mBAAmB,EACnB,cAAc,GACf,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,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,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,GACzB,MAAM,6BAA6B,CAAC;AACrC,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,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,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"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export { parseStepName, parseWorkflowName, } from '@workflow/utils/parse-name';
|
|
2
2
|
export * from './components';
|
|
3
3
|
export { hookEventsToHookEntity, stepEventsToStepEntity, waitEventsToWaitEntity, } from './components/workflow-traces/trace-span-construction';
|
|
4
|
+
export { parseExactWorkflowSearchId, looksLikeWorkflowIdSearchInput, } from './lib/exact-event-search-id';
|
|
4
5
|
export { analyzeEvents, hasPendingHooksFromEvents, hasPendingStepsFromEvents, isTerminalStatus, shouldShowReenqueueButton, } from './lib/event-analysis';
|
|
5
6
|
export { materializeAll, materializeHooks, materializeSteps, materializeWaits, } from './lib/event-materialization';
|
|
6
7
|
export { CLASS_INSTANCE_REF_TYPE, ClassInstanceRef, ENCRYPTED_PLACEHOLDER, extractStreamIds, getWebRevivers, hasEncryptedFields, hydrateResourceIO, hydrateResourceIOWithKey, isClassInstanceRef, isEncryptedMarker, isStreamId, isStreamRef, STREAM_REF_TYPE, truncateId, } from './lib/hydration';
|
|
7
8
|
export { ToastProvider, useToast } from './lib/toast';
|
|
8
|
-
export { extractConversation, formatDuration, identifyStreamSteps, isDoStreamStep, } from './lib/utils';
|
|
9
|
-
//# sourceMappingURL=
|
|
9
|
+
export { extractConversation, formatDuration, formatDurationPrecise, identifyStreamSteps, isDoStreamStep, } from './lib/utils';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUNMLGFBQWEsRUFDYixpQkFBaUIsR0FDbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsR0FDdkIsTUFBTSxzREFBc0QsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLDhCQUE4QixHQUkvQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFDTCxhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIseUJBQXlCLEdBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFPOUIsT0FBTyxFQUNMLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsd0JBQXdCLEVBQ3hCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLFdBQVcsRUFDWCxlQUFlLEVBQ2YsVUFBVSxHQUNYLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixjQUFjLEdBQ2YsTUFBTSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSB7XG4gIEhlYWx0aENoZWNrRW5kcG9pbnQsXG4gIEhlYWx0aENoZWNrUmVzdWx0LFxufSBmcm9tICdAd29ya2Zsb3cvY29yZS9ydW50aW1lJztcbmV4cG9ydCB7XG4gIHBhcnNlU3RlcE5hbWUsXG4gIHBhcnNlV29ya2Zsb3dOYW1lLFxufSBmcm9tICdAd29ya2Zsb3cvdXRpbHMvcGFyc2UtbmFtZSc7XG5leHBvcnQgdHlwZSB7IEV2ZW50LCBIb29rLCBTdGVwLCBXb3JrZmxvd1J1biB9IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuZXhwb3J0IHtcbiAgaG9va0V2ZW50c1RvSG9va0VudGl0eSxcbiAgc3RlcEV2ZW50c1RvU3RlcEVudGl0eSxcbiAgd2FpdEV2ZW50c1RvV2FpdEVudGl0eSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93LXRyYWNlcy90cmFjZS1zcGFuLWNvbnN0cnVjdGlvbic7XG5leHBvcnQgdHlwZSB7IEV2ZW50QW5hbHlzaXMgfSBmcm9tICcuL2xpYi9ldmVudC1hbmFseXNpcyc7XG5leHBvcnQge1xuICBwYXJzZUV4YWN0V29ya2Zsb3dTZWFyY2hJZCxcbiAgbG9va3NMaWtlV29ya2Zsb3dJZFNlYXJjaElucHV0LFxuICB0eXBlIEV4YWN0V29ya2Zsb3dTZWFyY2hJZCxcbiAgdHlwZSBFeGFjdFdvcmtmbG93U2VhcmNoSWRLaW5kLFxuICB0eXBlIEV4YWN0SWRTZWFyY2hSZXN1bHQsXG59IGZyb20gJy4vbGliL2V4YWN0LWV2ZW50LXNlYXJjaC1pZCc7XG5leHBvcnQge1xuICBhbmFseXplRXZlbnRzLFxuICBoYXNQZW5kaW5nSG9va3NGcm9tRXZlbnRzLFxuICBoYXNQZW5kaW5nU3RlcHNGcm9tRXZlbnRzLFxuICBpc1Rlcm1pbmFsU3RhdHVzLFxuICBzaG91bGRTaG93UmVlbnF1ZXVlQnV0dG9uLFxufSBmcm9tICcuL2xpYi9ldmVudC1hbmFseXNpcyc7XG5leHBvcnQgdHlwZSB7XG4gIE1hdGVyaWFsaXplZEVudGl0aWVzLFxuICBNYXRlcmlhbGl6ZWRIb29rLFxuICBNYXRlcmlhbGl6ZWRTdGVwLFxuICBNYXRlcmlhbGl6ZWRXYWl0LFxufSBmcm9tICcuL2xpYi9ldmVudC1tYXRlcmlhbGl6YXRpb24nO1xuZXhwb3J0IHtcbiAgbWF0ZXJpYWxpemVBbGwsXG4gIG1hdGVyaWFsaXplSG9va3MsXG4gIG1hdGVyaWFsaXplU3RlcHMsXG4gIG1hdGVyaWFsaXplV2FpdHMsXG59IGZyb20gJy4vbGliL2V2ZW50LW1hdGVyaWFsaXphdGlvbic7XG5leHBvcnQgdHlwZSB7IFJldml2ZXJzLCBTdHJlYW1SZWYgfSBmcm9tICcuL2xpYi9oeWRyYXRpb24nO1xuZXhwb3J0IHtcbiAgQ0xBU1NfSU5TVEFOQ0VfUkVGX1RZUEUsXG4gIENsYXNzSW5zdGFuY2VSZWYsXG4gIEVOQ1JZUFRFRF9QTEFDRUhPTERFUixcbiAgZXh0cmFjdFN0cmVhbUlkcyxcbiAgZ2V0V2ViUmV2aXZlcnMsXG4gIGhhc0VuY3J5cHRlZEZpZWxkcyxcbiAgaHlkcmF0ZVJlc291cmNlSU8sXG4gIGh5ZHJhdGVSZXNvdXJjZUlPV2l0aEtleSxcbiAgaXNDbGFzc0luc3RhbmNlUmVmLFxuICBpc0VuY3J5cHRlZE1hcmtlcixcbiAgaXNTdHJlYW1JZCxcbiAgaXNTdHJlYW1SZWYsXG4gIFNUUkVBTV9SRUZfVFlQRSxcbiAgdHJ1bmNhdGVJZCxcbn0gZnJvbSAnLi9saWIvaHlkcmF0aW9uJztcbmV4cG9ydCB0eXBlIHsgRGVjb2RlZFN0cmVhbUNodW5rU291cmNlIH0gZnJvbSAnLi9saWIvc3RyZWFtLWRpc3BsYXknO1xuZXhwb3J0IHR5cGUgeyBUb2FzdEFkYXB0ZXIgfSBmcm9tICcuL2xpYi90b2FzdCc7XG5leHBvcnQgeyBUb2FzdFByb3ZpZGVyLCB1c2VUb2FzdCB9IGZyb20gJy4vbGliL3RvYXN0JztcbmV4cG9ydCB0eXBlIHsgU3RyZWFtU3RlcCB9IGZyb20gJy4vbGliL3V0aWxzJztcbmV4cG9ydCB7XG4gIGV4dHJhY3RDb252ZXJzYXRpb24sXG4gIGZvcm1hdER1cmF0aW9uLFxuICBmb3JtYXREdXJhdGlvblByZWNpc2UsXG4gIGlkZW50aWZ5U3RyZWFtU3RlcHMsXG4gIGlzRG9TdHJlYW1TdGVwLFxufSBmcm9tICcuL2xpYi91dGlscyc7XG4iXX0=
|
|
@@ -158,4 +158,4 @@ export function hasPendingStepsFromEvents(events) {
|
|
|
158
158
|
export function hasPendingHooksFromEvents(events) {
|
|
159
159
|
return analyzeEvents(events).hasPendingHooks;
|
|
160
160
|
}
|
|
161
|
-
//# sourceMappingURL=event-analysis.js.map
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYW5hbHlzaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2V2ZW50LWFuYWx5c2lzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUlILG1EQUFtRDtBQUNuRCxNQUFNLHdCQUF3QixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsYUFBYTtBQUM5RCxNQUFNLG9CQUFvQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsWUFBWTtBQXdCeEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQTJCO0lBQ3ZELElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixlQUFlLEVBQUUsS0FBSztZQUN0QixlQUFlLEVBQUUsS0FBSztZQUN0QixlQUFlLEVBQUUsRUFBRTtZQUNuQixjQUFjLEVBQUUsRUFBRTtZQUNsQixjQUFjLEVBQUUsRUFBRTtZQUNsQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLG9CQUFvQixFQUFFLElBQUk7U0FDM0IsQ0FBQztJQUNKLENBQUM7SUFFRCwrQ0FBK0M7SUFDL0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7SUFDN0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUN4QyxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztJQUM3QyxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO0lBQzdDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFdkMsSUFBSSxrQkFBa0IsR0FBZ0IsSUFBSSxDQUFDO0lBQzNDLElBQUksb0JBQW9CLEdBQWdCLElBQUksQ0FBQztJQUU3QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWE7WUFBRSxTQUFTO1FBRTdCLFFBQVEsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLGVBQWU7WUFDZixLQUFLLGNBQWM7Z0JBQ2pCLFdBQVcsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO1lBQ1IsS0FBSyxnQkFBZ0I7Z0JBQ25CLGFBQWEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ2pDLE1BQU07WUFFUixRQUFRO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixXQUFXLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdEMsSUFDRSxDQUFDLGtCQUFrQjtvQkFDbkIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLGtCQUFrQixFQUM5QyxDQUFDO29CQUNELGtCQUFrQixHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDakQsQ0FBQztnQkFDRCxNQUFNO1lBQ1IsS0FBSyxlQUFlO2dCQUNsQixJQUNFLENBQUMsa0JBQWtCO29CQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsa0JBQWtCLEVBQzlDLENBQUM7b0JBQ0Qsa0JBQWtCLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO2dCQUNELE1BQU07WUFDUixLQUFLLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssYUFBYTtnQkFDaEIsYUFBYSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDakMsSUFDRSxDQUFDLG9CQUFvQjtvQkFDckIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLG9CQUFvQixFQUNoRCxDQUFDO29CQUNELG9CQUFvQixHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDbkQsQ0FBQztnQkFDRCxNQUFNO1lBRVIsUUFBUTtZQUNSLEtBQUssY0FBYztnQkFDakIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLE1BQU07WUFDUixLQUFLLGVBQWU7Z0JBQ2xCLFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ2hDLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELGlEQUFpRDtJQUNqRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDM0QsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FDL0IsQ0FBQztJQUNGLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUMxRCxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUMvQixDQUFDO0lBQ0YsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQzFELENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQzlCLENBQUM7SUFFRixPQUFPO1FBQ0wsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQzVDLGVBQWUsRUFBRSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDMUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUMxQyxlQUFlO1FBQ2YsY0FBYztRQUNkLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsb0JBQW9CO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE1BQXFDO0lBRXJDLE9BQU8sQ0FDTCxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLFdBQVcsQ0FDeEUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxNQUEyQixFQUMzQixNQUFxQztJQUVyQyxrQ0FBa0M7SUFDbEMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV2Qyx1RUFBdUU7SUFDdkUsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxxRUFBcUU7SUFDckUsSUFBSSxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXZCLGtEQUFrRDtJQUNsRCxJQUFJLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2hDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxRSxJQUFJLHFCQUFxQixHQUFHLHdCQUF3QixFQUFFLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxRQUFRLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMvRCxNQUFNLHVCQUF1QixHQUMzQixHQUFHLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hELElBQUksdUJBQXVCLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztZQUNuRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLHNEQUFzRDtJQUN0RCxJQUNFLENBQUMsUUFBUSxDQUFDLGtCQUFrQjtRQUM1QixDQUFDLFFBQVEsQ0FBQyxlQUFlO1FBQ3pCLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtRQUMxQixDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQ3pCLENBQUM7UUFDRCw0REFBNEQ7UUFDNUQsdURBQXVEO1FBQ3ZELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxNQUEyQjtJQUUzQixPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLENBQUM7QUFDL0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxNQUEyQjtJQUUzQixPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2hhcmVkIHV0aWxpdGllcyBmb3IgYW5hbHl6aW5nIHdvcmtmbG93IGV2ZW50cy5cbiAqIFVzZWQgYnkgcnVuLWFjdGlvbnMgYW5kIHRyYWNlIHZpZXdlciBjb21wb25lbnRzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRXZlbnQsIFdvcmtmbG93UnVuU3RhdHVzIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcblxuLy8gVGltZSB0aHJlc2hvbGRzIGZvciBSZS1lbnF1ZXVlIGJ1dHRvbiB2aXNpYmlsaXR5XG5jb25zdCBTVEVQX0FDVElWSVRZX1RJTUVPVVRfTVMgPSAzMCAqIDYwICogMTAwMDsgLy8gMzAgbWludXRlc1xuY29uc3QgU1RFUF9JRExFX1RJTUVPVVRfTVMgPSA1ICogNjAgKiAxMDAwOyAvLyA1IG1pbnV0ZXNcblxuLyoqXG4gKiBSZXN1bHQgb2YgYW5hbHl6aW5nIGV2ZW50cyBmb3IgYSB3b3JrZmxvdyBydW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudEFuYWx5c2lzIHtcbiAgLyoqIFdoZXRoZXIgdGhlcmUgYXJlIHBlbmRpbmcgc2xlZXAvd2FpdCBjYWxscyAqL1xuICBoYXNQZW5kaW5nU2xlZXBzOiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGVyZSBhcmUgcGVuZGluZyBzdGVwcyAoc3RhcnRlZCBidXQgbm90IGNvbXBsZXRlZC9mYWlsZWQpICovXG4gIGhhc1BlbmRpbmdTdGVwczogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhlcmUgYXJlIHBlbmRpbmcgaG9va3MgKGNyZWF0ZWQgYnV0IG5vdCBkaXNwb3NlZCkgKi9cbiAgaGFzUGVuZGluZ0hvb2tzOiBib29sZWFuO1xuICAvKiogQ29ycmVsYXRpb24gSURzIG9mIHBlbmRpbmcgc2xlZXBzICovXG4gIHBlbmRpbmdTbGVlcElkczogc3RyaW5nW107XG4gIC8qKiBDb3JyZWxhdGlvbiBJRHMgb2YgcGVuZGluZyBzdGVwcyAqL1xuICBwZW5kaW5nU3RlcElkczogc3RyaW5nW107XG4gIC8qKiBDb3JyZWxhdGlvbiBJRHMgb2YgcGVuZGluZyBob29rcyAqL1xuICBwZW5kaW5nSG9va0lkczogc3RyaW5nW107XG4gIC8qKiBUaW1lc3RhbXAgb2YgdGhlIGxhc3Qgc3RlcF9zdGFydGVkIG9yIHN0ZXBfcmV0cnlpbmcgZXZlbnQgKi9cbiAgbGFzdFN0ZXBBY3Rpdml0eUF0OiBEYXRlIHwgbnVsbDtcbiAgLyoqIFRpbWVzdGFtcCBvZiB0aGUgbGFzdCBzdGVwIGNvbXBsZXRpb24gKHN0ZXBfY29tcGxldGVkIG9yIHN0ZXBfZmFpbGVkKSAqL1xuICBsYXN0U3RlcENvbXBsZXRpb25BdDogRGF0ZSB8IG51bGw7XG59XG5cbi8qKlxuICogQW5hbHl6ZSBldmVudHMgdG8gZGV0ZXJtaW5lIHBlbmRpbmcgc2xlZXBzLCBzdGVwcywgYW5kIGhvb2tzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYW5hbHl6ZUV2ZW50cyhldmVudHM6IEV2ZW50W10gfCB1bmRlZmluZWQpOiBFdmVudEFuYWx5c2lzIHtcbiAgaWYgKCFldmVudHMgfHwgZXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBoYXNQZW5kaW5nU2xlZXBzOiBmYWxzZSxcbiAgICAgIGhhc1BlbmRpbmdTdGVwczogZmFsc2UsXG4gICAgICBoYXNQZW5kaW5nSG9va3M6IGZhbHNlLFxuICAgICAgcGVuZGluZ1NsZWVwSWRzOiBbXSxcbiAgICAgIHBlbmRpbmdTdGVwSWRzOiBbXSxcbiAgICAgIHBlbmRpbmdIb29rSWRzOiBbXSxcbiAgICAgIGxhc3RTdGVwQWN0aXZpdHlBdDogbnVsbCxcbiAgICAgIGxhc3RTdGVwQ29tcGxldGlvbkF0OiBudWxsLFxuICAgIH07XG4gIH1cblxuICAvLyBHcm91cCBldmVudHMgYnkgY29ycmVsYXRpb24gSUQgZm9yIGVhY2ggdHlwZVxuICBjb25zdCB3YWl0Q3JlYXRlZCA9IG5ldyBNYXA8c3RyaW5nLCBFdmVudD4oKTtcbiAgY29uc3Qgd2FpdENvbXBsZXRlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBzdGVwU3RhcnRlZCA9IG5ldyBNYXA8c3RyaW5nLCBFdmVudD4oKTtcbiAgY29uc3Qgc3RlcENvbXBsZXRlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBob29rQ3JlYXRlZCA9IG5ldyBNYXA8c3RyaW5nLCBFdmVudD4oKTtcbiAgY29uc3QgaG9va0Rpc3Bvc2VkID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgbGV0IGxhc3RTdGVwQWN0aXZpdHlBdDogRGF0ZSB8IG51bGwgPSBudWxsO1xuICBsZXQgbGFzdFN0ZXBDb21wbGV0aW9uQXQ6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgIGNvbnN0IGNvcnJlbGF0aW9uSWQgPSBldmVudC5jb3JyZWxhdGlvbklkO1xuICAgIGlmICghY29ycmVsYXRpb25JZCkgY29udGludWU7XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmV2ZW50VHlwZSkge1xuICAgICAgLy8gU2xlZXBzL1dhaXRzXG4gICAgICBjYXNlICd3YWl0X2NyZWF0ZWQnOlxuICAgICAgICB3YWl0Q3JlYXRlZC5zZXQoY29ycmVsYXRpb25JZCwgZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dhaXRfY29tcGxldGVkJzpcbiAgICAgICAgd2FpdENvbXBsZXRlZC5hZGQoY29ycmVsYXRpb25JZCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICAvLyBTdGVwc1xuICAgICAgY2FzZSAnc3RlcF9zdGFydGVkJzpcbiAgICAgICAgc3RlcFN0YXJ0ZWQuc2V0KGNvcnJlbGF0aW9uSWQsIGV2ZW50KTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFsYXN0U3RlcEFjdGl2aXR5QXQgfHxcbiAgICAgICAgICBuZXcgRGF0ZShldmVudC5jcmVhdGVkQXQpID4gbGFzdFN0ZXBBY3Rpdml0eUF0XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RTdGVwQWN0aXZpdHlBdCA9IG5ldyBEYXRlKGV2ZW50LmNyZWF0ZWRBdCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdGVwX3JldHJ5aW5nJzpcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFsYXN0U3RlcEFjdGl2aXR5QXQgfHxcbiAgICAgICAgICBuZXcgRGF0ZShldmVudC5jcmVhdGVkQXQpID4gbGFzdFN0ZXBBY3Rpdml0eUF0XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RTdGVwQWN0aXZpdHlBdCA9IG5ldyBEYXRlKGV2ZW50LmNyZWF0ZWRBdCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdGVwX2NvbXBsZXRlZCc6XG4gICAgICBjYXNlICdzdGVwX2ZhaWxlZCc6XG4gICAgICAgIHN0ZXBDb21wbGV0ZWQuYWRkKGNvcnJlbGF0aW9uSWQpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWxhc3RTdGVwQ29tcGxldGlvbkF0IHx8XG4gICAgICAgICAgbmV3IERhdGUoZXZlbnQuY3JlYXRlZEF0KSA+IGxhc3RTdGVwQ29tcGxldGlvbkF0XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RTdGVwQ29tcGxldGlvbkF0ID0gbmV3IERhdGUoZXZlbnQuY3JlYXRlZEF0KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgLy8gSG9va3NcbiAgICAgIGNhc2UgJ2hvb2tfY3JlYXRlZCc6XG4gICAgICAgIGhvb2tDcmVhdGVkLnNldChjb3JyZWxhdGlvbklkLCBldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaG9va19kaXNwb3NlZCc6XG4gICAgICAgIGhvb2tEaXNwb3NlZC5hZGQoY29ycmVsYXRpb25JZCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZpbmQgcGVuZGluZyBpdGVtcyAoY3JlYXRlZCBidXQgbm90IGNvbXBsZXRlZClcbiAgY29uc3QgcGVuZGluZ1NsZWVwSWRzID0gQXJyYXkuZnJvbSh3YWl0Q3JlYXRlZC5rZXlzKCkpLmZpbHRlcihcbiAgICAoaWQpID0+ICF3YWl0Q29tcGxldGVkLmhhcyhpZClcbiAgKTtcbiAgY29uc3QgcGVuZGluZ1N0ZXBJZHMgPSBBcnJheS5mcm9tKHN0ZXBTdGFydGVkLmtleXMoKSkuZmlsdGVyKFxuICAgIChpZCkgPT4gIXN0ZXBDb21wbGV0ZWQuaGFzKGlkKVxuICApO1xuICBjb25zdCBwZW5kaW5nSG9va0lkcyA9IEFycmF5LmZyb20oaG9va0NyZWF0ZWQua2V5cygpKS5maWx0ZXIoXG4gICAgKGlkKSA9PiAhaG9va0Rpc3Bvc2VkLmhhcyhpZClcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGhhc1BlbmRpbmdTbGVlcHM6IHBlbmRpbmdTbGVlcElkcy5sZW5ndGggPiAwLFxuICAgIGhhc1BlbmRpbmdTdGVwczogcGVuZGluZ1N0ZXBJZHMubGVuZ3RoID4gMCxcbiAgICBoYXNQZW5kaW5nSG9va3M6IHBlbmRpbmdIb29rSWRzLmxlbmd0aCA+IDAsXG4gICAgcGVuZGluZ1NsZWVwSWRzLFxuICAgIHBlbmRpbmdTdGVwSWRzLFxuICAgIHBlbmRpbmdIb29rSWRzLFxuICAgIGxhc3RTdGVwQWN0aXZpdHlBdCxcbiAgICBsYXN0U3RlcENvbXBsZXRpb25BdCxcbiAgfTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHdvcmtmbG93IHJ1biBzdGF0dXMgaXMgdGVybWluYWwgKGNvbXBsZXRlZCwgZmFpbGVkLCBvciBjYW5jZWxsZWQpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Rlcm1pbmFsU3RhdHVzKFxuICBzdGF0dXM6IFdvcmtmbG93UnVuU3RhdHVzIHwgdW5kZWZpbmVkXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBzdGF0dXMgPT09ICdjb21wbGV0ZWQnIHx8IHN0YXR1cyA9PT0gJ2ZhaWxlZCcgfHwgc3RhdHVzID09PSAnY2FuY2VsbGVkJ1xuICApO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiB0aGUgUmUtZW5xdWV1ZSBidXR0b24gc2hvdWxkIGJlIHNob3duIHdpdGhvdXQgdGhlIGRlYnVnIGZsYWcuXG4gKlxuICogVGhlIFJlLWVucXVldWUgYnV0dG9uIGlzIHNob3duIHdoZW4gdGhlIHdvcmtmbG93IGFwcGVhcnMgdG8gYmUgc3R1Y2s6XG4gKiAtIFRoZSB3b3JrZmxvdyBpcyBub3QgaW4gYSB0ZXJtaW5hbCBzdGF0ZVxuICogLSBUaGVyZSBhcmUgbm8gcGVuZGluZyBzbGVlcHMgKHdoaWNoIHdvdWxkIHNob3cgdGhlIFdha2UgdXAgYnV0dG9uIGluc3RlYWQpXG4gKiAtIFRoZXJlIGFyZSBubyBwZW5kaW5nIGhvb2tzICh3aGljaCBhcmUgd2FpdGluZyBmb3IgZXh0ZXJuYWwgaW5wdXQpXG4gKiAtIEVpdGhlcjpcbiAqICAgLSBUaGUgbGFzdCBzdGVwX3N0YXJ0ZWQgb3Igc3RlcF9yZXRyeWluZyBldmVudCB3YXMgPjMwIG1pbnV0ZXMgYWdvLCBPUlxuICogICAtIFRoZXJlIGhhdmUgYmVlbiBubyBwZW5kaW5nIHN0ZXBzIGZvciA+NSBtaW51dGVzIChhbGwgc3RlcHMgY29tcGxldGVkL2ZhaWxlZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFNob3dSZWVucXVldWVCdXR0b24oXG4gIGV2ZW50czogRXZlbnRbXSB8IHVuZGVmaW5lZCxcbiAgc3RhdHVzOiBXb3JrZmxvd1J1blN0YXR1cyB8IHVuZGVmaW5lZFxuKTogYm9vbGVhbiB7XG4gIC8vIE5ldmVyIHNob3cgaWYgaW4gdGVybWluYWwgc3RhdGVcbiAgaWYgKGlzVGVybWluYWxTdGF0dXMoc3RhdHVzKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGFuYWx5c2lzID0gYW5hbHl6ZUV2ZW50cyhldmVudHMpO1xuXG4gIC8vIERvbid0IHNob3cgaWYgdGhlcmUgYXJlIHBlbmRpbmcgc2xlZXBzIChXYWtlIHVwIGJ1dHRvbiBoYW5kbGVzIHRoaXMpXG4gIGlmIChhbmFseXNpcy5oYXNQZW5kaW5nU2xlZXBzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRG9uJ3Qgc2hvdyBpZiB0aGVyZSBhcmUgcGVuZGluZyBob29rcyAod2FpdGluZyBmb3IgZXh0ZXJuYWwgaW5wdXQpXG4gIGlmIChhbmFseXNpcy5oYXNQZW5kaW5nSG9va3MpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuXG4gIC8vIENoZWNrIGlmIGxhc3Qgc3RlcCBhY3Rpdml0eSB3YXMgPjMwIG1pbnV0ZXMgYWdvXG4gIGlmIChhbmFseXNpcy5sYXN0U3RlcEFjdGl2aXR5QXQpIHtcbiAgICBjb25zdCB0aW1lU2luY2VMYXN0QWN0aXZpdHkgPSBub3cgLSBhbmFseXNpcy5sYXN0U3RlcEFjdGl2aXR5QXQuZ2V0VGltZSgpO1xuICAgIGlmICh0aW1lU2luY2VMYXN0QWN0aXZpdHkgPiBTVEVQX0FDVElWSVRZX1RJTUVPVVRfTVMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZXJlIGFyZSBubyBwZW5kaW5nIHN0ZXBzIGFuZCBsYXN0IGNvbXBsZXRpb24gd2FzID41IG1pbnV0ZXMgYWdvXG4gIGlmICghYW5hbHlzaXMuaGFzUGVuZGluZ1N0ZXBzICYmIGFuYWx5c2lzLmxhc3RTdGVwQ29tcGxldGlvbkF0KSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdENvbXBsZXRpb24gPVxuICAgICAgbm93IC0gYW5hbHlzaXMubGFzdFN0ZXBDb21wbGV0aW9uQXQuZ2V0VGltZSgpO1xuICAgIGlmICh0aW1lU2luY2VMYXN0Q29tcGxldGlvbiA+IFNURVBfSURMRV9USU1FT1VUX01TKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0aGVyZSdzIG5vIHN0ZXAgYWN0aXZpdHkgYXQgYWxsIGJ1dCB0aGUgcnVuIGlzIG5vdCB0ZXJtaW5hbCxcbiAgLy8gYW5kIHdlJ3ZlIGJlZW4gd2FpdGluZyBmb3IgYSB3aGlsZSwgc2hvdyB0aGUgYnV0dG9uXG4gIGlmIChcbiAgICAhYW5hbHlzaXMubGFzdFN0ZXBBY3Rpdml0eUF0ICYmXG4gICAgIWFuYWx5c2lzLmhhc1BlbmRpbmdTdGVwcyAmJlxuICAgICFhbmFseXNpcy5oYXNQZW5kaW5nU2xlZXBzICYmXG4gICAgIWFuYWx5c2lzLmhhc1BlbmRpbmdIb29rc1xuICApIHtcbiAgICAvLyBUaGlzIGNhc2UgaGFuZGxlcyBydW5zIHRoYXQgaGF2ZW4ndCBzdGFydGVkIGFueSBzdGVwcyB5ZXRcbiAgICAvLyBidXQgYXJlbid0IGluIGEgdGVybWluYWwgc3RhdGUgLSB0aGV5IG1pZ2h0IGJlIHN0dWNrXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlcmUgYXJlIHBlbmRpbmcgc3RlcHMgZnJvbSBhbiBldmVudHMgbGlzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1BlbmRpbmdTdGVwc0Zyb21FdmVudHMoXG4gIGV2ZW50czogRXZlbnRbXSB8IHVuZGVmaW5lZFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiBhbmFseXplRXZlbnRzKGV2ZW50cykuaGFzUGVuZGluZ1N0ZXBzO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZXJlIGFyZSBwZW5kaW5nIGhvb2tzIGZyb20gYW4gZXZlbnRzIGxpc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNQZW5kaW5nSG9va3NGcm9tRXZlbnRzKFxuICBldmVudHM6IEV2ZW50W10gfCB1bmRlZmluZWRcbik6IGJvb2xlYW4ge1xuICByZXR1cm4gYW5hbHl6ZUV2ZW50cyhldmVudHMpLmhhc1BlbmRpbmdIb29rcztcbn1cbiJdfQ==
|
|
@@ -168,4 +168,4 @@ export function materializeAll(events) {
|
|
|
168
168
|
waits: materializeWaits(events),
|
|
169
169
|
};
|
|
170
170
|
}
|
|
171
|
-
//# sourceMappingURL=event-materialization.js.map
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbWF0ZXJpYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9ldmVudC1tYXRlcmlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQW1ESCw4RUFBOEU7QUFDOUUsK0NBQStDO0FBQy9DLDhFQUE4RTtBQUU5RSxTQUFTLG9CQUFvQixDQUMzQixNQUFlLEVBQ2YsUUFBa0I7SUFFbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFDMUMsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHO1lBQUUsU0FBUztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFFLFNBQVM7UUFDdkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsbUJBQW1CO0FBQ25CLDhFQUE4RTtBQUU5RTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFlO0lBQzlDLE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkQsTUFBTSxLQUFLLEdBQXVCLEVBQUUsQ0FBQztJQUVyQyxLQUFLLE1BQU0sQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7UUFDakQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxjQUFjLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsT0FBTztZQUFFLFNBQVM7UUFFdkIsSUFBSSxNQUFNLEdBQWUsU0FBUyxDQUFDO1FBQ25DLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLFNBQTJCLENBQUM7UUFDaEMsSUFBSSxXQUE2QixDQUFDO1FBQ2xDLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFbEMsS0FBSyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUMzQixRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxjQUFjO29CQUNqQixNQUFNLEdBQUcsU0FBUyxDQUFDO29CQUNuQixPQUFPLElBQUksQ0FBQyxDQUFDO29CQUNiLElBQUksQ0FBQyxTQUFTO3dCQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUN4QyxXQUFXLEdBQUcsU0FBUyxDQUFDO29CQUN4QixTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDeEIsTUFBTTtnQkFDUixLQUFLLGdCQUFnQjtvQkFDbkIsTUFBTSxHQUFHLFdBQVcsQ0FBQztvQkFDckIsV0FBVyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQzFCLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUN4QixNQUFNO2dCQUNSLEtBQUssYUFBYTtvQkFDaEIsTUFBTSxHQUFHLFFBQVEsQ0FBQztvQkFDbEIsV0FBVyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQzFCLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUN4QixNQUFNO2dCQUNSLEtBQUssZUFBZTtvQkFDbEIsTUFBTSxHQUFHLFNBQVMsQ0FBQztvQkFDbkIsV0FBVyxHQUFHLFNBQVMsQ0FBQztvQkFDeEIsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQ3hCLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUVELEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxNQUFNLEVBQUUsYUFBYTtZQUNyQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsUUFBUSxFQUNOLE9BQU8sQ0FBQyxTQUFTLEtBQUssY0FBYztnQkFDbEMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxRQUFRLElBQUksYUFBYSxDQUFDO2dCQUNoRCxDQUFDLENBQUMsYUFBYTtZQUNuQixNQUFNO1lBQ04sT0FBTztZQUNQLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztZQUM1QixTQUFTO1lBQ1QsV0FBVztZQUNYLFNBQVM7WUFDVCxNQUFNLEVBQUUsVUFBVTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsOEVBQThFO0FBQzlFLG1CQUFtQjtBQUNuQiw4RUFBOEU7QUFFOUU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBZTtJQUM5QyxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sS0FBSyxHQUF1QixFQUFFLENBQUM7SUFFckMsS0FBSyxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ2pELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssY0FBYyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLE9BQU87WUFBRSxTQUFTO1FBRXZCLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQ3RDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FDdkMsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssZUFBZSxDQUFDLENBQUM7UUFDekUsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxNQUFNLEVBQUUsYUFBYTtZQUNyQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsS0FBSyxFQUNILE9BQU8sQ0FBQyxTQUFTLEtBQUssY0FBYztnQkFDbEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsS0FBSztnQkFDMUIsQ0FBQyxDQUFDLFNBQVM7WUFDZixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7WUFDNUIsYUFBYSxFQUFFLGNBQWMsQ0FBQyxNQUFNO1lBQ3BDLGNBQWMsRUFBRSxZQUFZLEVBQUUsU0FBUztZQUN2QyxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVM7WUFDL0IsTUFBTSxFQUFFLFVBQVU7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELDhFQUE4RTtBQUM5RSxtQkFBbUI7QUFDbkIsOEVBQThFO0FBRTlFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWU7SUFDOUMsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN2RCxNQUFNLEtBQUssR0FBdUIsRUFBRSxDQUFDO0lBRXJDLEtBQUssTUFBTSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNqRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxPQUFPO1lBQUUsU0FBUztRQUV2QixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLGdCQUFnQixDQUFDLENBQUM7UUFFM0UsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNULE1BQU0sRUFBRSxhQUFhO1lBQ3JCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztZQUNwQixNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDM0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzVCLFFBQVEsRUFDTixPQUFPLENBQUMsU0FBUyxLQUFLLGNBQWM7Z0JBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFFBQVE7Z0JBQzdCLENBQUMsQ0FBQyxTQUFTO1lBQ2YsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxVQUFVO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsaUJBQWlCO0FBQ2pCLDhFQUE4RTtBQUU5RTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWU7SUFDNUMsT0FBTztRQUNMLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDL0IsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztRQUMvQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0tBQ2hDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFdmVudCBtYXRlcmlhbGl6YXRpb24gaGVscGVycy5cbiAqXG4gKiBUaGVzZSBmdW5jdGlvbnMgY29udmVydCBhIGZsYXQgbGlzdCBvZiB3b3JrZmxvdyBldmVudHMgaW50byBlbnRpdHktbGlrZVxuICogb2JqZWN0cyAoc3RlcHMsIGhvb2tzLCB3YWl0cykgYnkgZ3JvdXBpbmcgZXZlbnRzIGJ5IGNvcnJlbGF0aW9uSWQgYW5kXG4gKiBzdGl0Y2hpbmcgdG9nZXRoZXIgbGlmZWN5Y2xlIGV2ZW50cy5cbiAqXG4gKiBUaGlzIGVuYWJsZXMgYSBcInRvcC1kb3duXCIgZGF0YSBmZXRjaGluZyBwYXR0ZXJuIHdoZXJlIHRoZSBjbGllbnQgZmV0Y2hlc1xuICogYWxsIGV2ZW50cyBmb3IgYSBydW4gb25jZSwgdGhlbiBtYXRlcmlhbGl6ZXMgZW50aXRpZXMgY2xpZW50LXNpZGUgaW5zdGVhZFxuICogb2YgbWFraW5nIHNlcGFyYXRlIEFQSSBjYWxscyBmb3IgZWFjaCBlbnRpdHkgdHlwZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEV2ZW50LCBTdGVwU3RhdHVzIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNYXRlcmlhbGl6ZWQgZW50aXR5IHR5cGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBNYXRlcmlhbGl6ZWRTdGVwIHtcbiAgc3RlcElkOiBzdHJpbmc7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIHN0ZXBOYW1lOiBzdHJpbmc7XG4gIHN0YXR1czogU3RlcFN0YXR1cztcbiAgYXR0ZW1wdDogbnVtYmVyO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHN0YXJ0ZWRBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbiAgdXBkYXRlZEF0OiBEYXRlO1xuICAvKiogQWxsIGV2ZW50cyBmb3IgdGhpcyBzdGVwLCBpbiBpbnNlcnRpb24gb3JkZXIgKi9cbiAgZXZlbnRzOiBFdmVudFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hdGVyaWFsaXplZEhvb2sge1xuICBob29rSWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogRGF0ZTtcbiAgcmVjZWl2ZWRDb3VudDogbnVtYmVyO1xuICBsYXN0UmVjZWl2ZWRBdD86IERhdGU7XG4gIGRpc3Bvc2VkQXQ/OiBEYXRlO1xuICAvKiogQWxsIGV2ZW50cyBmb3IgdGhpcyBob29rLCBpbiBpbnNlcnRpb24gb3JkZXIgKi9cbiAgZXZlbnRzOiBFdmVudFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hdGVyaWFsaXplZFdhaXQge1xuICB3YWl0SWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgc3RhdHVzOiAnd2FpdGluZycgfCAnY29tcGxldGVkJztcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICByZXN1bWVBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbiAgLyoqIEFsbCBldmVudHMgZm9yIHRoaXMgd2FpdCwgaW4gaW5zZXJ0aW9uIG9yZGVyICovXG4gIGV2ZW50czogRXZlbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXRlcmlhbGl6ZWRFbnRpdGllcyB7XG4gIHN0ZXBzOiBNYXRlcmlhbGl6ZWRTdGVwW107XG4gIGhvb2tzOiBNYXRlcmlhbGl6ZWRIb29rW107XG4gIHdhaXRzOiBNYXRlcmlhbGl6ZWRXYWl0W107XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSGVscGVyOiBncm91cCBldmVudHMgYnkgY29ycmVsYXRpb25JZCBwcmVmaXhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBncm91cEJ5Q29ycmVsYXRpb25JZChcbiAgZXZlbnRzOiBFdmVudFtdLFxuICBwcmVmaXhlczogc3RyaW5nW11cbik6IE1hcDxzdHJpbmcsIEV2ZW50W10+IHtcbiAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIEV2ZW50W10+KCk7XG4gIGZvciAoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgY29uc3QgY2lkID0gZXZlbnQuY29ycmVsYXRpb25JZDtcbiAgICBpZiAoIWNpZCkgY29udGludWU7XG4gICAgaWYgKCFwcmVmaXhlcy5zb21lKChwKSA9PiBjaWQuc3RhcnRzV2l0aChwKSkpIGNvbnRpbnVlO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gZ3JvdXBzLmdldChjaWQpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgZXhpc3RpbmcucHVzaChldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdyb3Vwcy5zZXQoY2lkLCBbZXZlbnRdKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGdyb3Vwcztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBtYXRlcmlhbGl6ZVN0ZXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBHcm91cCBzdGVwXyogZXZlbnRzIGJ5IGNvcnJlbGF0aW9uSWQgYW5kIGJ1aWxkIFN0ZXAtbGlrZSBlbnRpdGllcy5cbiAqXG4gKiBIYW5kbGVzIHBhcnRpYWwgZXZlbnQgbGlzdHMgZ3JhY2VmdWxseTogYSBzdGVwIG1heSBvbmx5IGhhdmUgYVxuICogc3RlcF9jcmVhdGVkIGV2ZW50IHdpdGggbm8gY29tcGxldGlvbiB5ZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRlcmlhbGl6ZVN0ZXBzKGV2ZW50czogRXZlbnRbXSk6IE1hdGVyaWFsaXplZFN0ZXBbXSB7XG4gIGNvbnN0IGdyb3VwcyA9IGdyb3VwQnlDb3JyZWxhdGlvbklkKGV2ZW50cywgWydzdGVwXyddKTtcbiAgY29uc3Qgc3RlcHM6IE1hdGVyaWFsaXplZFN0ZXBbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2NvcnJlbGF0aW9uSWQsIHN0ZXBFdmVudHNdIG9mIGdyb3Vwcykge1xuICAgIGNvbnN0IGNyZWF0ZWQgPSBzdGVwRXZlbnRzLmZpbmQoKGUpID0+IGUuZXZlbnRUeXBlID09PSAnc3RlcF9jcmVhdGVkJyk7XG4gICAgaWYgKCFjcmVhdGVkKSBjb250aW51ZTtcblxuICAgIGxldCBzdGF0dXM6IFN0ZXBTdGF0dXMgPSAncGVuZGluZyc7XG4gICAgbGV0IGF0dGVtcHQgPSAwO1xuICAgIGxldCBzdGFydGVkQXQ6IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGNvbXBsZXRlZEF0OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIGxldCB1cGRhdGVkQXQgPSBjcmVhdGVkLmNyZWF0ZWRBdDtcblxuICAgIGZvciAoY29uc3QgZSBvZiBzdGVwRXZlbnRzKSB7XG4gICAgICBzd2l0Y2ggKGUuZXZlbnRUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3N0ZXBfc3RhcnRlZCc6XG4gICAgICAgICAgc3RhdHVzID0gJ3J1bm5pbmcnO1xuICAgICAgICAgIGF0dGVtcHQgKz0gMTtcbiAgICAgICAgICBpZiAoIXN0YXJ0ZWRBdCkgc3RhcnRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgICAgY29tcGxldGVkQXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgdXBkYXRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3N0ZXBfY29tcGxldGVkJzpcbiAgICAgICAgICBzdGF0dXMgPSAnY29tcGxldGVkJztcbiAgICAgICAgICBjb21wbGV0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICAgIHVwZGF0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzdGVwX2ZhaWxlZCc6XG4gICAgICAgICAgc3RhdHVzID0gJ2ZhaWxlZCc7XG4gICAgICAgICAgY29tcGxldGVkQXQgPSBlLmNyZWF0ZWRBdDtcbiAgICAgICAgICB1cGRhdGVkQXQgPSBlLmNyZWF0ZWRBdDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc3RlcF9yZXRyeWluZyc6XG4gICAgICAgICAgc3RhdHVzID0gJ3BlbmRpbmcnO1xuICAgICAgICAgIGNvbXBsZXRlZEF0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHVwZGF0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN0ZXBzLnB1c2goe1xuICAgICAgc3RlcElkOiBjb3JyZWxhdGlvbklkLFxuICAgICAgcnVuSWQ6IGNyZWF0ZWQucnVuSWQsXG4gICAgICBzdGVwTmFtZTpcbiAgICAgICAgY3JlYXRlZC5ldmVudFR5cGUgPT09ICdzdGVwX2NyZWF0ZWQnXG4gICAgICAgICAgPyAoY3JlYXRlZC5ldmVudERhdGE/LnN0ZXBOYW1lID8/IGNvcnJlbGF0aW9uSWQpXG4gICAgICAgICAgOiBjb3JyZWxhdGlvbklkLFxuICAgICAgc3RhdHVzLFxuICAgICAgYXR0ZW1wdCxcbiAgICAgIGNyZWF0ZWRBdDogY3JlYXRlZC5jcmVhdGVkQXQsXG4gICAgICBzdGFydGVkQXQsXG4gICAgICBjb21wbGV0ZWRBdCxcbiAgICAgIHVwZGF0ZWRBdCxcbiAgICAgIGV2ZW50czogc3RlcEV2ZW50cyxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBzdGVwcztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBtYXRlcmlhbGl6ZUhvb2tzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBHcm91cCBob29rXyogZXZlbnRzIGJ5IGNvcnJlbGF0aW9uSWQgYW5kIGJ1aWxkIEhvb2stbGlrZSBlbnRpdGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGVyaWFsaXplSG9va3MoZXZlbnRzOiBFdmVudFtdKTogTWF0ZXJpYWxpemVkSG9va1tdIHtcbiAgY29uc3QgZ3JvdXBzID0gZ3JvdXBCeUNvcnJlbGF0aW9uSWQoZXZlbnRzLCBbJ2hvb2tfJ10pO1xuICBjb25zdCBob29rczogTWF0ZXJpYWxpemVkSG9va1tdID0gW107XG5cbiAgZm9yIChjb25zdCBbY29ycmVsYXRpb25JZCwgaG9va0V2ZW50c10gb2YgZ3JvdXBzKSB7XG4gICAgY29uc3QgY3JlYXRlZCA9IGhvb2tFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICdob29rX2NyZWF0ZWQnKTtcbiAgICBpZiAoIWNyZWF0ZWQpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgcmVjZWl2ZWRFdmVudHMgPSBob29rRXZlbnRzLmZpbHRlcihcbiAgICAgIChlKSA9PiBlLmV2ZW50VHlwZSA9PT0gJ2hvb2tfcmVjZWl2ZWQnXG4gICAgKTtcbiAgICBjb25zdCBkaXNwb3NlZCA9IGhvb2tFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICdob29rX2Rpc3Bvc2VkJyk7XG4gICAgY29uc3QgbGFzdFJlY2VpdmVkID0gcmVjZWl2ZWRFdmVudHMuYXQoLTEpO1xuXG4gICAgaG9va3MucHVzaCh7XG4gICAgICBob29rSWQ6IGNvcnJlbGF0aW9uSWQsXG4gICAgICBydW5JZDogY3JlYXRlZC5ydW5JZCxcbiAgICAgIHRva2VuOlxuICAgICAgICBjcmVhdGVkLmV2ZW50VHlwZSA9PT0gJ2hvb2tfY3JlYXRlZCdcbiAgICAgICAgICA/IGNyZWF0ZWQuZXZlbnREYXRhPy50b2tlblxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgY3JlYXRlZEF0OiBjcmVhdGVkLmNyZWF0ZWRBdCxcbiAgICAgIHJlY2VpdmVkQ291bnQ6IHJlY2VpdmVkRXZlbnRzLmxlbmd0aCxcbiAgICAgIGxhc3RSZWNlaXZlZEF0OiBsYXN0UmVjZWl2ZWQ/LmNyZWF0ZWRBdCxcbiAgICAgIGRpc3Bvc2VkQXQ6IGRpc3Bvc2VkPy5jcmVhdGVkQXQsXG4gICAgICBldmVudHM6IGhvb2tFdmVudHMsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gaG9va3M7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gbWF0ZXJpYWxpemVXYWl0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogR3JvdXAgd2FpdF8qIGV2ZW50cyBieSBjb3JyZWxhdGlvbklkIGFuZCBidWlsZCBXYWl0LWxpa2UgZW50aXRpZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRlcmlhbGl6ZVdhaXRzKGV2ZW50czogRXZlbnRbXSk6IE1hdGVyaWFsaXplZFdhaXRbXSB7XG4gIGNvbnN0IGdyb3VwcyA9IGdyb3VwQnlDb3JyZWxhdGlvbklkKGV2ZW50cywgWyd3YWl0XyddKTtcbiAgY29uc3Qgd2FpdHM6IE1hdGVyaWFsaXplZFdhaXRbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2NvcnJlbGF0aW9uSWQsIHdhaXRFdmVudHNdIG9mIGdyb3Vwcykge1xuICAgIGNvbnN0IGNyZWF0ZWQgPSB3YWl0RXZlbnRzLmZpbmQoKGUpID0+IGUuZXZlbnRUeXBlID09PSAnd2FpdF9jcmVhdGVkJyk7XG4gICAgaWYgKCFjcmVhdGVkKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGNvbXBsZXRlZCA9IHdhaXRFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICd3YWl0X2NvbXBsZXRlZCcpO1xuXG4gICAgd2FpdHMucHVzaCh7XG4gICAgICB3YWl0SWQ6IGNvcnJlbGF0aW9uSWQsXG4gICAgICBydW5JZDogY3JlYXRlZC5ydW5JZCxcbiAgICAgIHN0YXR1czogY29tcGxldGVkID8gJ2NvbXBsZXRlZCcgOiAnd2FpdGluZycsXG4gICAgICBjcmVhdGVkQXQ6IGNyZWF0ZWQuY3JlYXRlZEF0LFxuICAgICAgcmVzdW1lQXQ6XG4gICAgICAgIGNyZWF0ZWQuZXZlbnRUeXBlID09PSAnd2FpdF9jcmVhdGVkJ1xuICAgICAgICAgID8gY3JlYXRlZC5ldmVudERhdGE/LnJlc3VtZUF0XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBjb21wbGV0ZWRBdDogY29tcGxldGVkPy5jcmVhdGVkQXQsXG4gICAgICBldmVudHM6IHdhaXRFdmVudHMsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gd2FpdHM7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gbWF0ZXJpYWxpemVBbGxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgbWF0ZXJpYWxpemVzIGFsbCBlbnRpdHkgdHlwZXMgZnJvbSBhIGZsYXRcbiAqIGV2ZW50IGxpc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRlcmlhbGl6ZUFsbChldmVudHM6IEV2ZW50W10pOiBNYXRlcmlhbGl6ZWRFbnRpdGllcyB7XG4gIHJldHVybiB7XG4gICAgc3RlcHM6IG1hdGVyaWFsaXplU3RlcHMoZXZlbnRzKSxcbiAgICBob29rczogbWF0ZXJpYWxpemVIb29rcyhldmVudHMpLFxuICAgIHdhaXRzOiBtYXRlcmlhbGl6ZVdhaXRzKGV2ZW50cyksXG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Event } from '@workflow/world';
|
|
2
|
+
export type ExactWorkflowSearchIdKind = 'step' | 'wait' | 'hook' | 'event';
|
|
3
|
+
export type ExactWorkflowSearchId = {
|
|
4
|
+
kind: ExactWorkflowSearchIdKind;
|
|
5
|
+
id: string;
|
|
6
|
+
};
|
|
7
|
+
export type ExactIdSearchResult = {
|
|
8
|
+
status: 'ok';
|
|
9
|
+
events: Event[];
|
|
10
|
+
truncated?: boolean;
|
|
11
|
+
} | {
|
|
12
|
+
status: 'not_found';
|
|
13
|
+
} | {
|
|
14
|
+
status: 'error';
|
|
15
|
+
message: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Returns a parsed workflow ID when `query` is a full step, wait, hook, or event ID.
|
|
19
|
+
* Partial IDs and run IDs (`wrun_`) are ignored. ULID bodies are matched case-insensitively
|
|
20
|
+
* and normalized to uppercase in the returned ID.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseExactWorkflowSearchId(query: string): ExactWorkflowSearchId | null;
|
|
23
|
+
/** True when input looks like the user is attempting an ID search (including partial). */
|
|
24
|
+
export declare function looksLikeWorkflowIdSearchInput(query: string): boolean;
|
|
25
|
+
//# sourceMappingURL=exact-event-search-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-event-search-id.d.ts","sourceRoot":"","sources":["../../src/lib/exact-event-search-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAW7C,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,yBAAyB,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GACtD;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAezC;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GACZ,qBAAqB,GAAG,IAAI,CAY9B;AAED,0FAA0F;AAC1F,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQrE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const WORKFLOW_ULID_BODY = '[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}';
|
|
2
|
+
const STEP_ID_PATTERN = new RegExp(`^step_(${WORKFLOW_ULID_BODY})$`, 'i');
|
|
3
|
+
const WAIT_ID_PATTERN = new RegExp(`^wait_(${WORKFLOW_ULID_BODY})$`, 'i');
|
|
4
|
+
const HOOK_ID_PATTERN = new RegExp(`^hook_(${WORKFLOW_ULID_BODY})$`, 'i');
|
|
5
|
+
const EVENT_ID_PATTERN = new RegExp(`^evnt_(${WORKFLOW_ULID_BODY})$`, 'i');
|
|
6
|
+
const WORKFLOW_ID_PREFIX_PATTERN = /^(step_|wait_|hook_|evnt_|wrun_)/i;
|
|
7
|
+
function matchPrefixedId(pattern, prefix, kind, query) {
|
|
8
|
+
const match = query.match(pattern);
|
|
9
|
+
if (!match) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
return { kind, id: `${prefix}_${match[1].toUpperCase()}` };
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Returns a parsed workflow ID when `query` is a full step, wait, hook, or event ID.
|
|
16
|
+
* Partial IDs and run IDs (`wrun_`) are ignored. ULID bodies are matched case-insensitively
|
|
17
|
+
* and normalized to uppercase in the returned ID.
|
|
18
|
+
*/
|
|
19
|
+
export function parseExactWorkflowSearchId(query) {
|
|
20
|
+
const trimmed = query.trim();
|
|
21
|
+
if (!trimmed) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return (matchPrefixedId(STEP_ID_PATTERN, 'step', 'step', trimmed) ??
|
|
25
|
+
matchPrefixedId(WAIT_ID_PATTERN, 'wait', 'wait', trimmed) ??
|
|
26
|
+
matchPrefixedId(HOOK_ID_PATTERN, 'hook', 'hook', trimmed) ??
|
|
27
|
+
matchPrefixedId(EVENT_ID_PATTERN, 'evnt', 'event', trimmed));
|
|
28
|
+
}
|
|
29
|
+
/** True when input looks like the user is attempting an ID search (including partial). */
|
|
30
|
+
export function looksLikeWorkflowIdSearchInput(query) {
|
|
31
|
+
const trimmed = query.trim();
|
|
32
|
+
if (!WORKFLOW_ID_PREFIX_PATTERN.test(trimmed)) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
// Distinguish IDs (contain digits) from event-type strings like step_started.
|
|
36
|
+
// Assumes workflow event types do not include digits in their names.
|
|
37
|
+
return /\d/.test(trimmed);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhY3QtZXZlbnQtc2VhcmNoLWlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9leGFjdC1ldmVudC1zZWFyY2gtaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxrQkFBa0IsR0FBRyx3Q0FBd0MsQ0FBQztBQUVwRSxNQUFNLGVBQWUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLGtCQUFrQixJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDMUUsTUFBTSxlQUFlLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxrQkFBa0IsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzFFLE1BQU0sZUFBZSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsa0JBQWtCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMxRSxNQUFNLGdCQUFnQixHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsa0JBQWtCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUUzRSxNQUFNLDBCQUEwQixHQUFHLG1DQUFtQyxDQUFDO0FBY3ZFLFNBQVMsZUFBZSxDQUN0QixPQUFlLEVBQ2YsTUFBeUMsRUFDekMsSUFBK0IsRUFDL0IsS0FBYTtJQUViLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUM3RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FDeEMsS0FBYTtJQUViLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLENBQ0wsZUFBZSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztRQUN6RCxlQUFlLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO1FBQ3pELGVBQWUsQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7UUFDekQsZUFBZSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQzVELENBQUM7QUFDSixDQUFDO0FBRUQsMEZBQTBGO0FBQzFGLE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxLQUFhO0lBQzFELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDOUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsOEVBQThFO0lBQzlFLHFFQUFxRTtJQUNyRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXZlbnQgfSBmcm9tICdAd29ya2Zsb3cvd29ybGQnO1xuXG5jb25zdCBXT1JLRkxPV19VTElEX0JPRFkgPSAnWzAxMjM0NTY3ODlBQkNERUZHSEpLTU5QUVJTVFZXWFlaXXsyNn0nO1xuXG5jb25zdCBTVEVQX0lEX1BBVFRFUk4gPSBuZXcgUmVnRXhwKGBec3RlcF8oJHtXT1JLRkxPV19VTElEX0JPRFl9KSRgLCAnaScpO1xuY29uc3QgV0FJVF9JRF9QQVRURVJOID0gbmV3IFJlZ0V4cChgXndhaXRfKCR7V09SS0ZMT1dfVUxJRF9CT0RZfSkkYCwgJ2knKTtcbmNvbnN0IEhPT0tfSURfUEFUVEVSTiA9IG5ldyBSZWdFeHAoYF5ob29rXygke1dPUktGTE9XX1VMSURfQk9EWX0pJGAsICdpJyk7XG5jb25zdCBFVkVOVF9JRF9QQVRURVJOID0gbmV3IFJlZ0V4cChgXmV2bnRfKCR7V09SS0ZMT1dfVUxJRF9CT0RZfSkkYCwgJ2knKTtcblxuY29uc3QgV09SS0ZMT1dfSURfUFJFRklYX1BBVFRFUk4gPSAvXihzdGVwX3x3YWl0X3xob29rX3xldm50X3x3cnVuXykvaTtcblxuZXhwb3J0IHR5cGUgRXhhY3RXb3JrZmxvd1NlYXJjaElkS2luZCA9ICdzdGVwJyB8ICd3YWl0JyB8ICdob29rJyB8ICdldmVudCc7XG5cbmV4cG9ydCB0eXBlIEV4YWN0V29ya2Zsb3dTZWFyY2hJZCA9IHtcbiAga2luZDogRXhhY3RXb3JrZmxvd1NlYXJjaElkS2luZDtcbiAgaWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEV4YWN0SWRTZWFyY2hSZXN1bHQgPVxuICB8IHsgc3RhdHVzOiAnb2snOyBldmVudHM6IEV2ZW50W107IHRydW5jYXRlZD86IGJvb2xlYW4gfVxuICB8IHsgc3RhdHVzOiAnbm90X2ZvdW5kJyB9XG4gIHwgeyBzdGF0dXM6ICdlcnJvcic7IG1lc3NhZ2U6IHN0cmluZyB9O1xuXG5mdW5jdGlvbiBtYXRjaFByZWZpeGVkSWQoXG4gIHBhdHRlcm46IFJlZ0V4cCxcbiAgcHJlZml4OiAnc3RlcCcgfCAnd2FpdCcgfCAnaG9vaycgfCAnZXZudCcsXG4gIGtpbmQ6IEV4YWN0V29ya2Zsb3dTZWFyY2hJZEtpbmQsXG4gIHF1ZXJ5OiBzdHJpbmdcbik6IEV4YWN0V29ya2Zsb3dTZWFyY2hJZCB8IG51bGwge1xuICBjb25zdCBtYXRjaCA9IHF1ZXJ5Lm1hdGNoKHBhdHRlcm4pO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIHsga2luZCwgaWQ6IGAke3ByZWZpeH1fJHttYXRjaFsxXS50b1VwcGVyQ2FzZSgpfWAgfTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgcGFyc2VkIHdvcmtmbG93IElEIHdoZW4gYHF1ZXJ5YCBpcyBhIGZ1bGwgc3RlcCwgd2FpdCwgaG9vaywgb3IgZXZlbnQgSUQuXG4gKiBQYXJ0aWFsIElEcyBhbmQgcnVuIElEcyAoYHdydW5fYCkgYXJlIGlnbm9yZWQuIFVMSUQgYm9kaWVzIGFyZSBtYXRjaGVkIGNhc2UtaW5zZW5zaXRpdmVseVxuICogYW5kIG5vcm1hbGl6ZWQgdG8gdXBwZXJjYXNlIGluIHRoZSByZXR1cm5lZCBJRC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRXhhY3RXb3JrZmxvd1NlYXJjaElkKFxuICBxdWVyeTogc3RyaW5nXG4pOiBFeGFjdFdvcmtmbG93U2VhcmNoSWQgfCBudWxsIHtcbiAgY29uc3QgdHJpbW1lZCA9IHF1ZXJ5LnRyaW0oKTtcbiAgaWYgKCF0cmltbWVkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIG1hdGNoUHJlZml4ZWRJZChTVEVQX0lEX1BBVFRFUk4sICdzdGVwJywgJ3N0ZXAnLCB0cmltbWVkKSA/P1xuICAgIG1hdGNoUHJlZml4ZWRJZChXQUlUX0lEX1BBVFRFUk4sICd3YWl0JywgJ3dhaXQnLCB0cmltbWVkKSA/P1xuICAgIG1hdGNoUHJlZml4ZWRJZChIT09LX0lEX1BBVFRFUk4sICdob29rJywgJ2hvb2snLCB0cmltbWVkKSA/P1xuICAgIG1hdGNoUHJlZml4ZWRJZChFVkVOVF9JRF9QQVRURVJOLCAnZXZudCcsICdldmVudCcsIHRyaW1tZWQpXG4gICk7XG59XG5cbi8qKiBUcnVlIHdoZW4gaW5wdXQgbG9va3MgbGlrZSB0aGUgdXNlciBpcyBhdHRlbXB0aW5nIGFuIElEIHNlYXJjaCAoaW5jbHVkaW5nIHBhcnRpYWwpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvb2tzTGlrZVdvcmtmbG93SWRTZWFyY2hJbnB1dChxdWVyeTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBxdWVyeS50cmltKCk7XG4gIGlmICghV09SS0ZMT1dfSURfUFJFRklYX1BBVFRFUk4udGVzdCh0cmltbWVkKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBEaXN0aW5ndWlzaCBJRHMgKGNvbnRhaW4gZGlnaXRzKSBmcm9tIGV2ZW50LXR5cGUgc3RyaW5ncyBsaWtlIHN0ZXBfc3RhcnRlZC5cbiAgLy8gQXNzdW1lcyB3b3JrZmxvdyBldmVudCB0eXBlcyBkbyBub3QgaW5jbHVkZSBkaWdpdHMgaW4gdGhlaXIgbmFtZXMuXG4gIHJldHVybiAvXFxkLy50ZXN0KHRyaW1tZWQpO1xufVxuIl19
|
package/dist/lib/hydration.d.ts
CHANGED
|
@@ -13,6 +13,12 @@ export { CLASS_INSTANCE_REF_TYPE, ClassInstanceRef, ENCRYPTED_PLACEHOLDER, extra
|
|
|
13
13
|
* Uses `atob()` for base64 decoding (no Node.js Buffer dependency).
|
|
14
14
|
* All types are revived as real instances (Date, Map, Set, URL,
|
|
15
15
|
* URLSearchParams, Headers, Error, etc.).
|
|
16
|
+
*
|
|
17
|
+
* NOTE: this set must mirror the keys in `SerializableSpecial` (see
|
|
18
|
+
* `@workflow/core/serialization/types`). Any reducer key added on the
|
|
19
|
+
* serialization side that isn't covered here will cause `devalue.unflatten`
|
|
20
|
+
* to throw `Unknown type X`, which `hydrateResourceIO` swallows and
|
|
21
|
+
* surfaces as a "Failed to load resource details" banner in the o11y UI.
|
|
16
22
|
*/
|
|
17
23
|
export declare function getWebRevivers(): Revivers;
|
|
18
24
|
/**
|
|
@@ -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;
|
|
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,CA+DZ;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAkB7D"}
|