@workflow/world-testing 5.0.0-beta.40 → 5.0.0-beta.42

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.
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Event ids are positions.
3
+ *
4
+ * This is the one part of the storage contract a World can get wrong while
5
+ * every other test in this suite passes. Nothing here reads an event id, so a
6
+ * World that mints ULIDs runs an addition, resumes a hook and completes a run
7
+ * exactly as it should — and then fails every replay on the deployment, with
8
+ * `Event id is not slot-numbered`, because the runtime reads a position out of
9
+ * each id it loads and cannot proceed without one.
10
+ *
11
+ * Asserting it here is the difference between a conformance failure a World
12
+ * author can act on and a production failure nobody can explain. See the
13
+ * Event ID Allocation section of the building-a-world guide.
14
+ */
15
+ export declare function eventIds(world: string): void;
16
+ //# sourceMappingURL=event-ids.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-ids.d.mts","sourceRoot":"","sources":["../../src/event-ids.mts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,QAkDrC"}
@@ -0,0 +1,53 @@
1
+ import { eventIdToSlot, FIRST_EVENT_SLOT, SPEC_VERSION_CURRENT, SPEC_VERSION_MAX_SUPPORTED, slotToEventId, } from '@workflow/world';
2
+ import { expect, test, vi } from 'vitest';
3
+ import { createFetcher, startServer } from './util.mjs';
4
+ /**
5
+ * Event ids are positions.
6
+ *
7
+ * This is the one part of the storage contract a World can get wrong while
8
+ * every other test in this suite passes. Nothing here reads an event id, so a
9
+ * World that mints ULIDs runs an addition, resumes a hook and completes a run
10
+ * exactly as it should — and then fails every replay on the deployment, with
11
+ * `Event id is not slot-numbered`, because the runtime reads a position out of
12
+ * each id it loads and cannot proceed without one.
13
+ *
14
+ * Asserting it here is the difference between a conformance failure a World
15
+ * author can act on and a production failure nobody can explain. See the
16
+ * Event ID Allocation section of the building-a-world guide.
17
+ */
18
+ export function eventIds(world) {
19
+ test('numbers events by position', { timeout: 30_000 }, async () => {
20
+ const server = await startServer({ world }).then(createFetcher);
21
+ const result = await server.invoke('workflows/addition.ts', 'addition', [1, 2]);
22
+ await vi.waitFor(async () => {
23
+ expect((await server.getRun(result.runId)).status).toBe('completed');
24
+ }, { interval: 200, timeout: 25_000 });
25
+ // The version the World declared, stamped on the run it created. Slot ids
26
+ // and this number have to agree: the World allocates the positions, but the
27
+ // number is what a backend reads to decide which scheme a run uses, and
28
+ // what the runtime checks before it replays anything. A World that numbers
29
+ // its events correctly while declaring an older version is rejected at
30
+ // startup, which reads as a broken install rather than as a stale
31
+ // constant. Declaring `SPEC_VERSION_CURRENT` moves it with the runtime.
32
+ const run = await server.getRun(result.runId);
33
+ expect(run.specVersion).toBeGreaterThanOrEqual(SPEC_VERSION_CURRENT);
34
+ expect(run.specVersion).toBeLessThanOrEqual(SPEC_VERSION_MAX_SUPPORTED);
35
+ const events = await server.getEvents(result.runId);
36
+ expect(events.length).toBeGreaterThan(0);
37
+ // Every id decodes to a slot. `eventIdToSlot` answers null for anything
38
+ // else, which is what `requireEventSlot` turns into a failed run.
39
+ const slots = events.map((event) => ({
40
+ eventId: event.eventId,
41
+ slot: eventIdToSlot(event.eventId),
42
+ }));
43
+ expect(slots.filter((entry) => entry.slot === null)).toEqual([]);
44
+ // Dense from 1, in the order the World returns them. Density is what lets
45
+ // a reader tell a complete log from a truncated one by its length, and
46
+ // what makes the writer's event count a statement of its position.
47
+ expect(slots.map((entry) => entry.slot)).toEqual(slots.map((_, index) => FIRST_EVENT_SLOT + index));
48
+ // The canonical format, not merely something that decodes: a World that
49
+ // pads to a different width sorts its own log wrongly past 10 events.
50
+ expect(slots.map((entry) => entry.eventId)).toEqual(slots.map((entry) => slotToEventId(entry.slot)));
51
+ });
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtaWRzLm1qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldmVudC1pZHMubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQiwwQkFBMEIsRUFDMUIsYUFBYSxHQUNkLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXhEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQWE7SUFDcEMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUNoQyx1QkFBdUIsRUFDdkIsVUFBVSxFQUNWLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNQLENBQUM7UUFDRixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQ2QsS0FBSyxJQUFJLEVBQUU7WUFDVCxNQUFNLENBQUMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUNuQyxDQUFDO1FBRUYsMEVBQTBFO1FBQzFFLDRFQUE0RTtRQUM1RSx3RUFBd0U7UUFDeEUsMkVBQTJFO1FBQzNFLHVFQUF1RTtRQUN2RSxrRUFBa0U7UUFDbEUsd0VBQXdFO1FBQ3hFLE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUV4RSxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXpDLHdFQUF3RTtRQUN4RSxrRUFBa0U7UUFDbEUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1NBQ25DLENBQUMsQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFakUsMEVBQTBFO1FBQzFFLHVFQUF1RTtRQUN2RSxtRUFBbUU7UUFDbkUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDOUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxDQUNsRCxDQUFDO1FBRUYsd0VBQXdFO1FBQ3hFLHNFQUFzRTtRQUN0RSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUNqRCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQWMsQ0FBQyxDQUFDLENBQzFELENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBldmVudElkVG9TbG90LFxuICBGSVJTVF9FVkVOVF9TTE9ULFxuICBTUEVDX1ZFUlNJT05fQ1VSUkVOVCxcbiAgU1BFQ19WRVJTSU9OX01BWF9TVVBQT1JURUQsXG4gIHNsb3RUb0V2ZW50SWQsXG59IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5pbXBvcnQgeyBleHBlY3QsIHRlc3QsIHZpIH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7IGNyZWF0ZUZldGNoZXIsIHN0YXJ0U2VydmVyIH0gZnJvbSAnLi91dGlsLm1qcyc7XG5cbi8qKlxuICogRXZlbnQgaWRzIGFyZSBwb3NpdGlvbnMuXG4gKlxuICogVGhpcyBpcyB0aGUgb25lIHBhcnQgb2YgdGhlIHN0b3JhZ2UgY29udHJhY3QgYSBXb3JsZCBjYW4gZ2V0IHdyb25nIHdoaWxlXG4gKiBldmVyeSBvdGhlciB0ZXN0IGluIHRoaXMgc3VpdGUgcGFzc2VzLiBOb3RoaW5nIGhlcmUgcmVhZHMgYW4gZXZlbnQgaWQsIHNvIGFcbiAqIFdvcmxkIHRoYXQgbWludHMgVUxJRHMgcnVucyBhbiBhZGRpdGlvbiwgcmVzdW1lcyBhIGhvb2sgYW5kIGNvbXBsZXRlcyBhIHJ1blxuICogZXhhY3RseSBhcyBpdCBzaG91bGQg4oCUIGFuZCB0aGVuIGZhaWxzIGV2ZXJ5IHJlcGxheSBvbiB0aGUgZGVwbG95bWVudCwgd2l0aFxuICogYEV2ZW50IGlkIGlzIG5vdCBzbG90LW51bWJlcmVkYCwgYmVjYXVzZSB0aGUgcnVudGltZSByZWFkcyBhIHBvc2l0aW9uIG91dCBvZlxuICogZWFjaCBpZCBpdCBsb2FkcyBhbmQgY2Fubm90IHByb2NlZWQgd2l0aG91dCBvbmUuXG4gKlxuICogQXNzZXJ0aW5nIGl0IGhlcmUgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIGNvbmZvcm1hbmNlIGZhaWx1cmUgYSBXb3JsZFxuICogYXV0aG9yIGNhbiBhY3Qgb24gYW5kIGEgcHJvZHVjdGlvbiBmYWlsdXJlIG5vYm9keSBjYW4gZXhwbGFpbi4gU2VlIHRoZVxuICogRXZlbnQgSUQgQWxsb2NhdGlvbiBzZWN0aW9uIG9mIHRoZSBidWlsZGluZy1hLXdvcmxkIGd1aWRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXZlbnRJZHMod29ybGQ6IHN0cmluZykge1xuICB0ZXN0KCdudW1iZXJzIGV2ZW50cyBieSBwb3NpdGlvbicsIHsgdGltZW91dDogMzBfMDAwIH0sIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBzdGFydFNlcnZlcih7IHdvcmxkIH0pLnRoZW4oY3JlYXRlRmV0Y2hlcik7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2VydmVyLmludm9rZShcbiAgICAgICd3b3JrZmxvd3MvYWRkaXRpb24udHMnLFxuICAgICAgJ2FkZGl0aW9uJyxcbiAgICAgIFsxLCAyXVxuICAgICk7XG4gICAgYXdhaXQgdmkud2FpdEZvcihcbiAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgZXhwZWN0KChhd2FpdCBzZXJ2ZXIuZ2V0UnVuKHJlc3VsdC5ydW5JZCkpLnN0YXR1cykudG9CZSgnY29tcGxldGVkJyk7XG4gICAgICB9LFxuICAgICAgeyBpbnRlcnZhbDogMjAwLCB0aW1lb3V0OiAyNV8wMDAgfVxuICAgICk7XG5cbiAgICAvLyBUaGUgdmVyc2lvbiB0aGUgV29ybGQgZGVjbGFyZWQsIHN0YW1wZWQgb24gdGhlIHJ1biBpdCBjcmVhdGVkLiBTbG90IGlkc1xuICAgIC8vIGFuZCB0aGlzIG51bWJlciBoYXZlIHRvIGFncmVlOiB0aGUgV29ybGQgYWxsb2NhdGVzIHRoZSBwb3NpdGlvbnMsIGJ1dCB0aGVcbiAgICAvLyBudW1iZXIgaXMgd2hhdCBhIGJhY2tlbmQgcmVhZHMgdG8gZGVjaWRlIHdoaWNoIHNjaGVtZSBhIHJ1biB1c2VzLCBhbmRcbiAgICAvLyB3aGF0IHRoZSBydW50aW1lIGNoZWNrcyBiZWZvcmUgaXQgcmVwbGF5cyBhbnl0aGluZy4gQSBXb3JsZCB0aGF0IG51bWJlcnNcbiAgICAvLyBpdHMgZXZlbnRzIGNvcnJlY3RseSB3aGlsZSBkZWNsYXJpbmcgYW4gb2xkZXIgdmVyc2lvbiBpcyByZWplY3RlZCBhdFxuICAgIC8vIHN0YXJ0dXAsIHdoaWNoIHJlYWRzIGFzIGEgYnJva2VuIGluc3RhbGwgcmF0aGVyIHRoYW4gYXMgYSBzdGFsZVxuICAgIC8vIGNvbnN0YW50LiBEZWNsYXJpbmcgYFNQRUNfVkVSU0lPTl9DVVJSRU5UYCBtb3ZlcyBpdCB3aXRoIHRoZSBydW50aW1lLlxuICAgIGNvbnN0IHJ1biA9IGF3YWl0IHNlcnZlci5nZXRSdW4ocmVzdWx0LnJ1bklkKTtcbiAgICBleHBlY3QocnVuLnNwZWNWZXJzaW9uKS50b0JlR3JlYXRlclRoYW5PckVxdWFsKFNQRUNfVkVSU0lPTl9DVVJSRU5UKTtcbiAgICBleHBlY3QocnVuLnNwZWNWZXJzaW9uKS50b0JlTGVzc1RoYW5PckVxdWFsKFNQRUNfVkVSU0lPTl9NQVhfU1VQUE9SVEVEKTtcblxuICAgIGNvbnN0IGV2ZW50cyA9IGF3YWl0IHNlcnZlci5nZXRFdmVudHMocmVzdWx0LnJ1bklkKTtcbiAgICBleHBlY3QoZXZlbnRzLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApO1xuXG4gICAgLy8gRXZlcnkgaWQgZGVjb2RlcyB0byBhIHNsb3QuIGBldmVudElkVG9TbG90YCBhbnN3ZXJzIG51bGwgZm9yIGFueXRoaW5nXG4gICAgLy8gZWxzZSwgd2hpY2ggaXMgd2hhdCBgcmVxdWlyZUV2ZW50U2xvdGAgdHVybnMgaW50byBhIGZhaWxlZCBydW4uXG4gICAgY29uc3Qgc2xvdHMgPSBldmVudHMubWFwKChldmVudCkgPT4gKHtcbiAgICAgIGV2ZW50SWQ6IGV2ZW50LmV2ZW50SWQsXG4gICAgICBzbG90OiBldmVudElkVG9TbG90KGV2ZW50LmV2ZW50SWQpLFxuICAgIH0pKTtcbiAgICBleHBlY3Qoc2xvdHMuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkuc2xvdCA9PT0gbnVsbCkpLnRvRXF1YWwoW10pO1xuXG4gICAgLy8gRGVuc2UgZnJvbSAxLCBpbiB0aGUgb3JkZXIgdGhlIFdvcmxkIHJldHVybnMgdGhlbS4gRGVuc2l0eSBpcyB3aGF0IGxldHNcbiAgICAvLyBhIHJlYWRlciB0ZWxsIGEgY29tcGxldGUgbG9nIGZyb20gYSB0cnVuY2F0ZWQgb25lIGJ5IGl0cyBsZW5ndGgsIGFuZFxuICAgIC8vIHdoYXQgbWFrZXMgdGhlIHdyaXRlcidzIGV2ZW50IGNvdW50IGEgc3RhdGVtZW50IG9mIGl0cyBwb3NpdGlvbi5cbiAgICBleHBlY3Qoc2xvdHMubWFwKChlbnRyeSkgPT4gZW50cnkuc2xvdCkpLnRvRXF1YWwoXG4gICAgICBzbG90cy5tYXAoKF8sIGluZGV4KSA9PiBGSVJTVF9FVkVOVF9TTE9UICsgaW5kZXgpXG4gICAgKTtcblxuICAgIC8vIFRoZSBjYW5vbmljYWwgZm9ybWF0LCBub3QgbWVyZWx5IHNvbWV0aGluZyB0aGF0IGRlY29kZXM6IGEgV29ybGQgdGhhdFxuICAgIC8vIHBhZHMgdG8gYSBkaWZmZXJlbnQgd2lkdGggc29ydHMgaXRzIG93biBsb2cgd3JvbmdseSBwYXN0IDEwIGV2ZW50cy5cbiAgICBleHBlY3Qoc2xvdHMubWFwKChlbnRyeSkgPT4gZW50cnkuZXZlbnRJZCkpLnRvRXF1YWwoXG4gICAgICBzbG90cy5tYXAoKGVudHJ5KSA9PiBzbG90VG9FdmVudElkKGVudHJ5LnNsb3QgYXMgbnVtYmVyKSlcbiAgICApO1xuICB9KTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/index.mts"],"names":[],"mappings":"AAQA,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,QAQ9C"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/index.mts"],"names":[],"mappings":"AASA,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,QAS9C"}
@@ -1,5 +1,6 @@
1
1
  import { addition } from './addition.mjs';
2
2
  import { errors } from './errors.mjs';
3
+ import { eventIds } from './event-ids.mjs';
3
4
  import { hooks } from './hooks.mjs';
4
5
  import { idempotency } from './idempotency.mjs';
5
6
  import { inlineExecution } from './inline-execution.mjs';
@@ -7,6 +8,7 @@ import { lineage } from './lineage.mjs';
7
8
  import { nullByte } from './null-byte.mjs';
8
9
  export function createTestSuite(pkgName) {
9
10
  addition(pkgName);
11
+ eventIds(pkgName);
10
12
  idempotency(pkgName);
11
13
  hooks(pkgName);
12
14
  nullByte(pkgName);
@@ -14,4 +16,4 @@ export function createTestSuite(pkgName) {
14
16
  inlineExecution(pkgName);
15
17
  lineage(pkgName);
16
18
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZGV4Lm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsTUFBTSxVQUFVLGVBQWUsQ0FBQyxPQUFlO0lBQzdDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2YsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQixlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRpdGlvbiB9IGZyb20gJy4vYWRkaXRpb24ubWpzJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJy4vZXJyb3JzLm1qcyc7XG5pbXBvcnQgeyBob29rcyB9IGZyb20gJy4vaG9va3MubWpzJztcbmltcG9ydCB7IGlkZW1wb3RlbmN5IH0gZnJvbSAnLi9pZGVtcG90ZW5jeS5tanMnO1xuaW1wb3J0IHsgaW5saW5lRXhlY3V0aW9uIH0gZnJvbSAnLi9pbmxpbmUtZXhlY3V0aW9uLm1qcyc7XG5pbXBvcnQgeyBsaW5lYWdlIH0gZnJvbSAnLi9saW5lYWdlLm1qcyc7XG5pbXBvcnQgeyBudWxsQnl0ZSB9IGZyb20gJy4vbnVsbC1ieXRlLm1qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUZXN0U3VpdGUocGtnTmFtZTogc3RyaW5nKSB7XG4gIGFkZGl0aW9uKHBrZ05hbWUpO1xuICBpZGVtcG90ZW5jeShwa2dOYW1lKTtcbiAgaG9va3MocGtnTmFtZSk7XG4gIG51bGxCeXRlKHBrZ05hbWUpO1xuICBlcnJvcnMocGtnTmFtZSk7XG4gIGlubGluZUV4ZWN1dGlvbihwa2dOYW1lKTtcbiAgbGluZWFnZShwa2dOYW1lKTtcbn1cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZGV4Lm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBZTtJQUM3QyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDZixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hCLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZGl0aW9uIH0gZnJvbSAnLi9hZGRpdGlvbi5tanMnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnLi9lcnJvcnMubWpzJztcbmltcG9ydCB7IGV2ZW50SWRzIH0gZnJvbSAnLi9ldmVudC1pZHMubWpzJztcbmltcG9ydCB7IGhvb2tzIH0gZnJvbSAnLi9ob29rcy5tanMnO1xuaW1wb3J0IHsgaWRlbXBvdGVuY3kgfSBmcm9tICcuL2lkZW1wb3RlbmN5Lm1qcyc7XG5pbXBvcnQgeyBpbmxpbmVFeGVjdXRpb24gfSBmcm9tICcuL2lubGluZS1leGVjdXRpb24ubWpzJztcbmltcG9ydCB7IGxpbmVhZ2UgfSBmcm9tICcuL2xpbmVhZ2UubWpzJztcbmltcG9ydCB7IG51bGxCeXRlIH0gZnJvbSAnLi9udWxsLWJ5dGUubWpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRlc3RTdWl0ZShwa2dOYW1lOiBzdHJpbmcpIHtcbiAgYWRkaXRpb24ocGtnTmFtZSk7XG4gIGV2ZW50SWRzKHBrZ05hbWUpO1xuICBpZGVtcG90ZW5jeShwa2dOYW1lKTtcbiAgaG9va3MocGtnTmFtZSk7XG4gIG51bGxCeXRlKHBrZ05hbWUpO1xuICBlcnJvcnMocGtnTmFtZSk7XG4gIGlubGluZUV4ZWN1dGlvbihwa2dOYW1lKTtcbiAgbGluZWFnZShwa2dOYW1lKTtcbn1cbiJdfQ==
@@ -108,6 +108,7 @@ const app = new Hono()
108
108
  });
109
109
  for (const e of page.data) {
110
110
  allEvents.push({
111
+ eventId: e.eventId,
111
112
  eventType: e.eventType,
112
113
  correlationId: e.correlationId,
113
114
  });
@@ -146,4 +147,4 @@ serve({
146
147
  control.end();
147
148
  }
148
149
  });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLm1qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2ZXIubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztBQUN6QixPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sUUFBUSxNQUFNLDBDQUEwQyxDQUFDO0lBQzlELElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQztBQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdkMsT0FBTyxDQUFDLEtBQUssQ0FDWCwrREFBK0QsQ0FDaEUsQ0FBQztJQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQU1ELE1BQU0sTUFBTSxHQUFHLENBQUM7S0FDYixNQUFNLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQXlCLENBQUM7SUFDckUsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0NBQ3RDLENBQUM7S0FDRCxTQUFTLENBQUMsQ0FBQyxH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Q0FBQztJQUMvQixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDNUMsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUN0QixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLEVBQzlDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsQ0FBQyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgc2VydmUgfSBmcm9tICdAaG9uby9ub2RlLXNlcnZlcic7XG5pbXBvcnQgeyBIb25vIH0gZnJvbSAnaG9ubyc7XG5pbXBvcnQgeyBnZXRIb29rQnlUb2tlbiwgZ2V0UnVuLCByZXN1bWVIb29rLCBzdGFydCB9IGZyb20gJ3dvcmtmbG93L2FwaSc7XG5pbXBvcnQgeyBnZXRXb3JsZCB9IGZyb20gJ3dvcmtmbG93L3J1bnRpbWUnO1xuaW1wb3J0ICogYXMgeiBmcm9tICd6b2QnO1xuaW1wb3J0IHsgUE9TVCBhcyBmbG93UE9TVCB9IGZyb20gJy4uLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cubWpzJztcbmltcG9ydCBtYW5pZmVzdCBmcm9tICcuLi8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9tYW5pZmVzdC5qc29uJyB3aXRoIHtcbiAgdHlwZTogJ2pzb24nLFxufTtcblxuaWYgKCFwcm9jZXNzLmVudi5XT1JLRkxPV19UQVJHRVRfV09STEQpIHtcbiAgY29uc29sZS5lcnJvcihcbiAgICAnRXJyb3I6IFdPUktGTE9XX1RBUkdFVF9XT1JMRCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0LidcbiAgKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufVxuXG50eXBlIEZpbGVzID0ga2V5b2YgdHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cztcbnR5cGUgV29ya2Zsb3dzPEYgZXh0ZW5kcyBGaWxlcz4gPSBrZXlvZiAodHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cylbRl07XG50eXBlIE5vbkVtcHR5QXJyYXk8VD4gPSBbVCwgLi4uVFtdXTtcblxuY29uc3QgSW52b2tlID0gelxuICAub2JqZWN0KHtcbiAgICBmaWxlOiB6LmVudW0oT2JqZWN0LmtleXMobWFuaWZlc3Qud29ya2Zsb3dzKSBhcyBOb25FbXB0eUFycmF5PEZpbGVzPiksXG4gICAgd29ya2Zsb3c6IHouc3RyaW5nKCksXG4gICAgYXJnczogei51bmtub3duKCkuYXJyYXkoKS5kZWZhdWx0KFtdKSxcbiAgfSlcbiAgLnRyYW5zZm9ybSgob2JqKSA9PiB7XG4gICAgY29uc3QgZmlsZSA9IG9iai5maWxlIGFzIGtleW9mIHR5cGVvZiBtYW5pZmVzdC53b3JrZmxvd3M7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSB6XG4gICAgICAuZW51bShcbiAgICAgICAgT2JqZWN0LmtleXMobWFuaWZlc3Qud29ya2Zsb3dzW2ZpbGVdKSBhcyBOb25FbXB0eUFycmF5PFxuICAgICAgICAgIFdvcmtmbG93czx0eXBlb2YgZmlsZT5cbiAgICAgICAgPlxuICAgICAgKVxuICAgICAgLnBhcnNlKG9iai53b3JrZmxvdyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3M6IG9iai5hcmdzLFxuICAgICAgd29ya2Zsb3c6IG1hbmlmZXN0LndvcmtmbG93c1tmaWxlXVt3b3JrZmxvd10sXG4gICAgfTtcbiAgfSk7XG5cbi8vIFRyYWNrIGZsb3cgaGFuZGxlciBpbnZvY2F0aW9ucyBwZXIgcnVuIGZvciB0ZXN0aW5nIGlubGluZSBleGVjdXRpb25cbmNvbnN0IGZsb3dJbnZvY2F0aW9uQ291bnRzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuY29uc3QgYXBwID0gbmV3IEhvbm8oKVxuICAucG9zdCgnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgLy8gQ2xvbmUgdGhlIHJlcXVlc3QgdG8gcmVhZCB0aGUgYm9keSBmb3IgdHJhY2tpbmcgd2l0aG91dCBjb25zdW1pbmcgaXQuXG4gICAgLy8gV2UgbXVzdCBpbmNyZW1lbnQgdGhlIGludm9jYXRpb24gY291bnRlciAqYmVmb3JlKiBhd2FpdGluZyBmbG93UE9TVCxcbiAgICAvLyBvdGhlcndpc2UgdGhlIHdvcmtmbG93IG1heSBjb21wbGV0ZSAoYW5kIHRoZSB0ZXN0IG1heSBvYnNlcnZlIHRoZVxuICAgIC8vIGNvbXBsZXRlZCBzdGF0dXMpIGJlZm9yZSB0aGUgY291bnRlciBpcyBidW1wZWQsIHByb2R1Y2luZyBhIGZsYWt5XG4gICAgLy8gYGV4cGVjdGVkIDAgdG8gYmUgMWAgZmFpbHVyZSB3aGVuIHRoZSB0ZXN0IGltbWVkaWF0ZWx5IHF1ZXJpZXNcbiAgICAvLyAvX2Zsb3ctaW52b2NhdGlvbnMgYWZ0ZXIgc2VlaW5nIHRoZSBydW4gYXMgY29tcGxldGVkLlxuICAgIGNvbnN0IGNsb25lZCA9IGN0eC5yZXEucmF3LmNsb25lKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJvZHkgPSAoYXdhaXQgY2xvbmVkLmpzb24oKSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICBjb25zdCBydW5JZCA9XG4gICAgICAgIHR5cGVvZiBib2R5Py5ydW5JZCA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IGJvZHkucnVuSWRcbiAgICAgICAgICA6IHR5cGVvZiAoYm9keS5wYXlsb2FkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgID8ucnVuSWQgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/ICgoYm9keS5wYXlsb2FkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5ydW5JZCBhcyBzdHJpbmcpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChydW5JZCkge1xuICAgICAgICBmbG93SW52b2NhdGlvbkNvdW50cy5zZXQoXG4gICAgICAgICAgcnVuSWQsXG4gICAgICAgICAgKGZsb3dJbnZvY2F0aW9uQ291bnRzLmdldChydW5JZCkgPz8gMCkgKyAxXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBIZWFsdGggY2hlY2sgb3Igbm9uLUpTT04gbWVzc2FnZXMg4oCUIGlnbm9yZVxuICAgIH1cbiAgICByZXR1cm4gZmxvd1BPU1QoY3R4LnJlcS5yYXcpO1xuICB9KVxuICAuZ2V0KCcvX2Zsb3ctaW52b2NhdGlvbnMvOnJ1bklkJywgKGN0eCkgPT4ge1xuICAgIGNvbnN0IGNvdW50ID0gZmxvd0ludm9jYXRpb25Db3VudHMuZ2V0KGN0eC5yZXEucGFyYW0oJ3J1bklkJykpID8/IDA7XG4gICAgcmV0dXJuIGN0eC5qc29uKHsgY291bnQgfSk7XG4gIH0pXG4gIC5nZXQoJy9fbWFuaWZlc3QnLCAoY3R4KSA9PiBjdHguanNvbihtYW5pZmVzdCkpXG4gIC5wb3N0KCcvaW52b2tlJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBhd2FpdCBjdHgucmVxLmpzb24oKS50aGVuKEludm9rZS5wYXJzZSk7XG4gICAgY29uc3QgaGFuZGxlciA9IGF3YWl0IHN0YXJ0KGpzb24ud29ya2Zsb3csIGpzb24uYXJncyk7XG5cbiAgICByZXR1cm4gY3R4Lmpzb24oeyBydW5JZDogaGFuZGxlci5ydW5JZCB9KTtcbiAgfSlcbiAgLnBvc3QoJy9ob29rcy86dG9rZW4nLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3QgaG9vayA9IGF3YWl0IGdldEhvb2tCeVRva2VuKGN0eC5yZXEucGFyYW0oJ3Rva2VuJykpO1xuICAgIGNvbnN0IHsgcnVuSWQgfSA9IGF3YWl0IHJlc3VtZUhvb2soaG9vay50b2tlbiwge1xuICAgICAgLi4uKGF3YWl0IGN0eC5yZXEuanNvbigpKSxcbiAgICAgIG1ldGFkYXRhOiBob29rLm1ldGFkYXRhLFxuICAgIH0pO1xuICAgIHJldHVybiBjdHguanNvbih7IHJ1bklkLCBob29rSWQ6IGhvb2suaG9va0lkIH0pO1xuICB9KVxuICAuZ2V0KCcvcnVucy86cnVuSWQnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3Qgd29ybGQgPSBhd2FpdCBnZXRXb3JsZCgpO1xuICAgIGNvbnN0IHJ1biA9IGF3YWl0IHdvcmxkLnJ1bnMuZ2V0KGN0eC5yZXEucGFyYW0oJ3J1bklkJykpO1xuICAgIC8vIEN1c3RvbSBKU09OIHNlcmlhbGl6YXRpb24gdG8gaGFuZGxlIFVpbnQ4QXJyYXkgYXMgYmFzZTY0XG4gICAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KHJ1biwgKF9rZXksIHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgX190eXBlOiAnVWludDhBcnJheScsXG4gICAgICAgICAgZGF0YTogQnVmZmVyLmZyb20odmFsdWUpLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKGpzb24sIHtcbiAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgIH0pO1xuICB9KVxuICAuZ2V0KCcvcnVucy86cnVuSWQvcmVhZGFibGUnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3QgcnVuSWQgPSBjdHgucmVxLnBhcmFtKCdydW5JZCcpO1xuICAgIGNvbnN0IHJ1biA9IGdldFJ1bihydW5JZCk7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShydW4uZ2V0UmVhZGFibGUoKSk7XG4gIH0pXG4gIC5nZXQoJy9ydW5zLzpydW5JZC9ldmVudHMnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3QgcnVuSWQgPSBjdHgucmVxLnBhcmFtKCdydW5JZCcpO1xuICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgZ2V0V29ybGQoKTtcbiAgICBjb25zdCBhbGxFdmVudHM6IHsgZXZlbnRUeXBlOiBzdHJpbmc7IGNvcnJlbGF0aW9uSWQ/OiBzdHJpbmcgfVtdID0gW107XG4gICAgbGV0IGN1cnNvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCBwYWdlID0gYXdhaXQgd29ybGQuZXZlbnRzLmxpc3Qoe1xuICAgICAgICBydW5JZCxcbiAgICAgICAgcGFnaW5hdGlvbjogeyBzb3J0T3JkZXI6ICdhc2MnLCBjdXJzb3IgfSxcbiAgICAgIH0pO1xuICAgICAgZm9yIChjb25zdCBlIG9mIHBhZ2UuZGF0YSkge1xuICAgICAgICBhbGxFdmVudHMucHVzaCh7XG4gICAgICAgICAgZXZlbnRUeXBlOiBlLmV2ZW50VHlwZSxcbiAgICAgICAgICBjb3JyZWxhdGlvbklkOiBlLmNvcnJlbGF0aW9uSWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCFwYWdlLmhhc01vcmUpIGJyZWFrO1xuICAgICAgY3Vyc29yID0gcGFnZS5jdXJzb3IgPz8gdW5kZWZpbmVkO1xuICAgICAgaWYgKCFjdXJzb3IpIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gY3R4Lmpzb24oeyBldmVudHM6IGFsbEV2ZW50cyB9KTtcbiAgfSk7XG5cbnNlcnZlKFxuICB7XG4gICAgZmV0Y2g6IGFwcC5mZXRjaCxcbiAgICBwb3J0OiBOdW1iZXIocHJvY2Vzcy5lbnYuUE9SVCkgfHwgMCxcbiAgfSxcbiAgYXN5bmMgKGluZm8pID0+IHtcbiAgICBjb25zb2xlLmxvZyhg8J+RgiBsaXN0ZW5pbmcgb24gaHR0cDovLyR7aW5mby5hZGRyZXNzfToke2luZm8ucG9ydH1gKTtcbiAgICBjb25zb2xlLmxvZygnJyk7XG5cbiAgICBwcm9jZXNzLmVudi5QT1JUID0gaW5mby5wb3J0LnRvU3RyaW5nKCk7XG5cbiAgICBmb3IgKGNvbnN0IFtmaWxlbmFtZSwgd29ya2Zsb3dzXSBvZiBPYmplY3QuZW50cmllcyhtYW5pZmVzdC53b3JrZmxvd3MpKSB7XG4gICAgICBmb3IgKGNvbnN0IHdvcmtmbG93TmFtZSBvZiBPYmplY3Qua2V5cyhcbiAgICAgICAgd29ya2Zsb3dzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICApKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGAkIGN1cmwgLVggUE9TVCBodHRwOi8vbG9jYWxob3N0OiR7aW5mby5wb3J0fS9pbnZva2UgLWQgJyR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpbGU6IGZpbGVuYW1lLFxuICAgICAgICAgICAgICB3b3JrZmxvdzogd29ya2Zsb3dOYW1lLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICl9J2BcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB3b3JsZCA9IGF3YWl0IGdldFdvcmxkKCk7XG4gICAgaWYgKHdvcmxkLnN0YXJ0KSB7XG4gICAgICBjb25zb2xlLmxvZyhgc3RhcnRpbmcgYmFja2dyb3VuZCB0YXNrcy4uLmApO1xuICAgICAgYXdhaXQgd29ybGQuc3RhcnQoKS50aGVuKFxuICAgICAgICAoKSA9PiBjb25zb2xlLmxvZygnYmFja2dyb3VuZCB0YXNrcyBzdGFydGVkLicpLFxuICAgICAgICAoZXJyKSA9PiBjb25zb2xlLmVycm9yKCfinZcgZXJyb3Igc3RhcnRpbmcgYmFja2dyb3VuZCB0YXNrczonLCBlcnIpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5DT05UUk9MX0ZEID09PSAnMycpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmcy5jcmVhdGVXcml0ZVN0cmVhbSgnJywgeyBmZDogMyB9KTtcbiAgICAgIGNvbnRyb2wud3JpdGUoYCR7SlNPTi5zdHJpbmdpZnkoeyBzdGF0ZTogJ2xpc3RlbmluZycsIGluZm8gfSl9XFxuYCk7XG4gICAgICBjb250cm9sLmVuZCgpO1xuICAgIH1cbiAgfVxuKTtcbiJdfQ==
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLm1qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2ZXIubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztBQUN6QixPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sUUFBUSxNQUFNLDBDQUEwQyxDQUFDO0lBQzlELElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQztBQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdkMsT0FBTyxDQUFDLEtBQUssQ0FDWCwrREFBK0QsQ0FDaEUsQ0FBQztJQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQU1ELE1BQU0sTUFBTSxHQUFHLENBQUM7S0FDYixNQUFNLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQXlCLENBQUM7SUFDckUsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0NBQ3RDLENBQUM7S0FDRCxTQUFTLENBQUMsQ0FBQyxH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TUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztJQUMvQixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDNUMsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUN0QixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLEVBQzlDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsQ0FBQyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgc2VydmUgfSBmcm9tICdAaG9uby9ub2RlLXNlcnZlcic7XG5pbXBvcnQgeyBIb25vIH0gZnJvbSAnaG9ubyc7XG5pbXBvcnQgeyBnZXRIb29rQnlUb2tlbiwgZ2V0UnVuLCByZXN1bWVIb29rLCBzdGFydCB9IGZyb20gJ3dvcmtmbG93L2FwaSc7XG5pbXBvcnQgeyBnZXRXb3JsZCB9IGZyb20gJ3dvcmtmbG93L3J1bnRpbWUnO1xuaW1wb3J0ICogYXMgeiBmcm9tICd6b2QnO1xuaW1wb3J0IHsgUE9TVCBhcyBmbG93UE9TVCB9IGZyb20gJy4uLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cubWpzJztcbmltcG9ydCBtYW5pZmVzdCBmcm9tICcuLi8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9tYW5pZmVzdC5qc29uJyB3aXRoIHtcbiAgdHlwZTogJ2pzb24nLFxufTtcblxuaWYgKCFwcm9jZXNzLmVudi5XT1JLRkxPV19UQVJHRVRfV09STEQpIHtcbiAgY29uc29sZS5lcnJvcihcbiAgICAnRXJyb3I6IFdPUktGTE9XX1RBUkdFVF9XT1JMRCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0LidcbiAgKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufVxuXG50eXBlIEZpbGVzID0ga2V5b2YgdHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cztcbnR5cGUgV29ya2Zsb3dzPEYgZXh0ZW5kcyBGaWxlcz4gPSBrZXlvZiAodHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cylbRl07XG50eXBlIE5vbkVtcHR5QXJyYXk8VD4gPSBbVCwgLi4uVFtdXTtcblxuY29uc3QgSW52b2tlID0gelxuICAub2JqZWN0KHtcbiAgICBmaWxlOiB6LmVudW0oT2JqZWN0LmtleXMobWFuaWZlc3Qud29ya2Zsb3dzKSBhcyBOb25FbXB0eUFycmF5PEZpbGVzPiksXG4gICAgd29ya2Zsb3c6IHouc3RyaW5nKCksXG4gICAgYXJnczogei51bmtub3duKCkuYXJyYXkoKS5kZWZhdWx0KFtdKSxcbiAgfSlcbiAgLnRyYW5zZm9ybSgob2JqKSA9PiB7XG4gICAgY29uc3QgZmlsZSA9IG9iai5maWxlIGFzIGtleW9mIHR5cGVvZiBtYW5pZmVzdC53b3JrZmxvd3M7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSB6XG4gICAgICAuZW51bShcbiAgICAgICAgT2JqZWN0LmtleXMobWFuaWZlc3Qud29ya2Zsb3dzW2ZpbGVdKSBhcyBOb25FbXB0eUFycmF5PFxuICAgICAgICAgIFdvcmtmbG93czx0eXBlb2YgZmlsZT5cbiAgICAgICAgPlxuICAgICAgKVxuICAgICAgLnBhcnNlKG9iai53b3JrZmxvdyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3M6IG9iai5hcmdzLFxuICAgICAgd29ya2Zsb3c6IG1hbmlmZXN0LndvcmtmbG93c1tmaWxlXVt3b3JrZmxvd10sXG4gICAgfTtcbiAgfSk7XG5cbi8vIFRyYWNrIGZsb3cgaGFuZGxlciBpbnZvY2F0aW9ucyBwZXIgcnVuIGZvciB0ZXN0aW5nIGlubGluZSBleGVjdXRpb25cbmNvbnN0IGZsb3dJbnZvY2F0aW9uQ291bnRzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuY29uc3QgYXBwID0gbmV3IEhvbm8oKVxuICAucG9zdCgnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgLy8gQ2xvbmUgdGhlIHJlcXVlc3QgdG8gcmVhZCB0aGUgYm9keSBmb3IgdHJhY2tpbmcgd2l0aG91dCBjb25zdW1pbmcgaXQuXG4gICAgLy8gV2UgbXVzdCBpbmNyZW1lbnQgdGhlIGludm9jYXRpb24gY291bnRlciAqYmVmb3JlKiBhd2FpdGluZyBmbG93UE9TVCxcbiAgICAvLyBvdGhlcndpc2UgdGhlIHdvcmtmbG93IG1heSBjb21wbGV0ZSAoYW5kIHRoZSB0ZXN0IG1heSBvYnNlcnZlIHRoZVxuICAgIC8vIGNvbXBsZXRlZCBzdGF0dXMpIGJlZm9yZSB0aGUgY291bnRlciBpcyBidW1wZWQsIHByb2R1Y2luZyBhIGZsYWt5XG4gICAgLy8gYGV4cGVjdGVkIDAgdG8gYmUgMWAgZmFpbHVyZSB3aGVuIHRoZSB0ZXN0IGltbWVkaWF0ZWx5IHF1ZXJpZXNcbiAgICAvLyAvX2Zsb3ctaW52b2NhdGlvbnMgYWZ0ZXIgc2VlaW5nIHRoZSBydW4gYXMgY29tcGxldGVkLlxuICAgIGNvbnN0IGNsb25lZCA9IGN0eC5yZXEucmF3LmNsb25lKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJvZHkgPSAoYXdhaXQgY2xvbmVkLmpzb24oKSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICBjb25zdCBydW5JZCA9XG4gICAgICAgIHR5cGVvZiBib2R5Py5ydW5JZCA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IGJvZHkucnVuSWRcbiAgICAgICAgICA6IHR5cGVvZiAoYm9keS5wYXlsb2FkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgID8ucnVuSWQgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/ICgoYm9keS5wYXlsb2FkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5ydW5JZCBhcyBzdHJpbmcpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChydW5JZCkge1xuICAgICAgICBmbG93SW52b2NhdGlvbkNvdW50cy5zZXQoXG4gICAgICAgICAgcnVuSWQsXG4gICAgICAgICAgKGZsb3dJbnZvY2F0aW9uQ291bnRzLmdldChydW5JZCkgPz8gMCkgKyAxXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBIZWFsdGggY2hlY2sgb3Igbm9uLUpTT04gbWVzc2FnZXMg4oCUIGlnbm9yZVxuICAgIH1cbiAgICByZXR1cm4gZmxvd1BPU1QoY3R4LnJlcS5yYXcpO1xuICB9KVxuICAuZ2V0KCcvX2Zsb3ctaW52b2NhdGlvbnMvOnJ1bklkJywgKGN0eCkgPT4ge1xuICAgIGNvbnN0IGNvdW50ID0gZmxvd0ludm9jYXRpb25Db3VudHMuZ2V0KGN0eC5yZXEucGFyYW0oJ3J1bklkJykpID8/IDA7XG4gICAgcmV0dXJuIGN0eC5qc29uKHsgY291bnQgfSk7XG4gIH0pXG4gIC5nZXQoJy9fbWFuaWZlc3QnLCAoY3R4KSA9PiBjdHguanNvbihtYW5pZmVzdCkpXG4gIC5wb3N0KCcvaW52b2tlJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBhd2FpdCBjdHgucmVxLmpzb24oKS50aGVuKEludm9rZS5wYXJzZSk7XG4gICAgY29uc3QgaGFuZGxlciA9IGF3YWl0IHN0YXJ0KGpzb24ud29ya2Zsb3csIGpzb24uYXJncyk7XG5cbiAgICByZXR1cm4gY3R4Lmpzb24oeyBydW5JZDogaGFuZGxlci5ydW5JZCB9KTtcbiAgfSlcbiAgLnBvc3QoJy9ob29rcy86dG9rZW4nLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3QgaG9vayA9IGF3YWl0IGdldEhvb2tCeVRva2VuKGN0eC5yZXEucGFyYW0oJ3Rva2VuJykpO1xuICAgIGNvbnN0IHsgcnVuSWQgfSA9IGF3YWl0IHJlc3VtZUhvb2soaG9vay50b2tlbiwge1xuICAgICAgLi4uKGF3YWl0IGN0eC5yZXEuanNvbigpKSxcbiAgICAgIG1ldGFkYXRhOiBob29rLm1ldGFkYXRhLFxuICAgIH0pO1xuICAgIHJldHVybiBjdHguanNvbih7IHJ1bklkLCBob29rSWQ6IGhvb2suaG9va0lkIH0pO1xuICB9KVxuICAuZ2V0KCcvcnVucy86cnVuSWQnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3Qgd29ybGQgPSBhd2FpdCBnZXRXb3JsZCgpO1xuICAgIGNvbnN0IHJ1biA9IGF3YWl0IHdvcmxkLnJ1bnMuZ2V0KGN0eC5yZXEucGFyYW0oJ3J1bklkJykpO1xuICAgIC8vIEN1c3RvbSBKU09OIHNlcmlhbGl6YXRpb24gdG8gaGFuZGxlIFVpbnQ4QXJyYXkgYXMgYmFzZTY0XG4gICAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KHJ1biwgKF9rZXksIHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgX190eXBlOiAnVWludDhBcnJheScsXG4gICAgICAgICAgZGF0YTogQnVmZmVyLmZyb20odmFsdWUpLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKGpzb24sIHtcbiAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgIH0pO1xuICB9KVxuICAuZ2V0KCcvcnVucy86cnVuSWQvcmVhZGFibGUnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3QgcnVuSWQgPSBjdHgucmVxLnBhcmFtKCdydW5JZCcpO1xuICAgIGNvbnN0IHJ1biA9IGdldFJ1bihydW5JZCk7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShydW4uZ2V0UmVhZGFibGUoKSk7XG4gIH0pXG4gIC5nZXQoJy9ydW5zLzpydW5JZC9ldmVudHMnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3QgcnVuSWQgPSBjdHgucmVxLnBhcmFtKCdydW5JZCcpO1xuICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgZ2V0V29ybGQoKTtcbiAgICBjb25zdCBhbGxFdmVudHM6IHtcbiAgICAgIGV2ZW50SWQ6IHN0cmluZztcbiAgICAgIGV2ZW50VHlwZTogc3RyaW5nO1xuICAgICAgY29ycmVsYXRpb25JZD86IHN0cmluZztcbiAgICB9W10gPSBbXTtcbiAgICBsZXQgY3Vyc29yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCB3b3JsZC5ldmVudHMubGlzdCh7XG4gICAgICAgIHJ1bklkLFxuICAgICAgICBwYWdpbmF0aW9uOiB7IHNvcnRPcmRlcjogJ2FzYycsIGN1cnNvciB9LFxuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IGUgb2YgcGFnZS5kYXRhKSB7XG4gICAgICAgIGFsbEV2ZW50cy5wdXNoKHtcbiAgICAgICAgICBldmVudElkOiBlLmV2ZW50SWQsXG4gICAgICAgICAgZXZlbnRUeXBlOiBlLmV2ZW50VHlwZSxcbiAgICAgICAgICBjb3JyZWxhdGlvbklkOiBlLmNvcnJlbGF0aW9uSWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCFwYWdlLmhhc01vcmUpIGJyZWFrO1xuICAgICAgY3Vyc29yID0gcGFnZS5jdXJzb3IgPz8gdW5kZWZpbmVkO1xuICAgICAgaWYgKCFjdXJzb3IpIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gY3R4Lmpzb24oeyBldmVudHM6IGFsbEV2ZW50cyB9KTtcbiAgfSk7XG5cbnNlcnZlKFxuICB7XG4gICAgZmV0Y2g6IGFwcC5mZXRjaCxcbiAgICBwb3J0OiBOdW1iZXIocHJvY2Vzcy5lbnYuUE9SVCkgfHwgMCxcbiAgfSxcbiAgYXN5bmMgKGluZm8pID0+IHtcbiAgICBjb25zb2xlLmxvZyhg8J+RgiBsaXN0ZW5pbmcgb24gaHR0cDovLyR7aW5mby5hZGRyZXNzfToke2luZm8ucG9ydH1gKTtcbiAgICBjb25zb2xlLmxvZygnJyk7XG5cbiAgICBwcm9jZXNzLmVudi5QT1JUID0gaW5mby5wb3J0LnRvU3RyaW5nKCk7XG5cbiAgICBmb3IgKGNvbnN0IFtmaWxlbmFtZSwgd29ya2Zsb3dzXSBvZiBPYmplY3QuZW50cmllcyhtYW5pZmVzdC53b3JrZmxvd3MpKSB7XG4gICAgICBmb3IgKGNvbnN0IHdvcmtmbG93TmFtZSBvZiBPYmplY3Qua2V5cyhcbiAgICAgICAgd29ya2Zsb3dzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICApKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGAkIGN1cmwgLVggUE9TVCBodHRwOi8vbG9jYWxob3N0OiR7aW5mby5wb3J0fS9pbnZva2UgLWQgJyR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpbGU6IGZpbGVuYW1lLFxuICAgICAgICAgICAgICB3b3JrZmxvdzogd29ya2Zsb3dOYW1lLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICl9J2BcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB3b3JsZCA9IGF3YWl0IGdldFdvcmxkKCk7XG4gICAgaWYgKHdvcmxkLnN0YXJ0KSB7XG4gICAgICBjb25zb2xlLmxvZyhgc3RhcnRpbmcgYmFja2dyb3VuZCB0YXNrcy4uLmApO1xuICAgICAgYXdhaXQgd29ybGQuc3RhcnQoKS50aGVuKFxuICAgICAgICAoKSA9PiBjb25zb2xlLmxvZygnYmFja2dyb3VuZCB0YXNrcyBzdGFydGVkLicpLFxuICAgICAgICAoZXJyKSA9PiBjb25zb2xlLmVycm9yKCfinZcgZXJyb3Igc3RhcnRpbmcgYmFja2dyb3VuZCB0YXNrczonLCBlcnIpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5DT05UUk9MX0ZEID09PSAnMycpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmcy5jcmVhdGVXcml0ZVN0cmVhbSgnJywgeyBmZDogMyB9KTtcbiAgICAgIGNvbnRyb2wud3JpdGUoYCR7SlNPTi5zdHJpbmdpZnkoeyBzdGF0ZTogJ2xpc3RlbmluZycsIGluZm8gfSl9XFxuYCk7XG4gICAgICBjb250cm9sLmVuZCgpO1xuICAgIH1cbiAgfVxuKTtcbiJdfQ==
@@ -24,6 +24,18 @@ export declare function createFetcher(control: Control): {
24
24
  invoke<F extends Files, W extends Workflows<F>>(file: F, workflow: W, args: unknown[]): Promise<{
25
25
  runId: string;
26
26
  }>;
27
+ /**
28
+ * Every event of a run, oldest first, as the World stored it.
29
+ *
30
+ * Ids included on purpose: they are the one part of the storage contract a
31
+ * World can get wrong while every workflow still appears to work, right
32
+ * up until a replay reads one (see `eventIds`).
33
+ */
34
+ getEvents(runId: string): Promise<{
35
+ eventId: string;
36
+ eventType: string;
37
+ correlationId?: string;
38
+ }[]>;
27
39
  getFlowInvocationCount(runId: string): Promise<number>;
28
40
  getRun(id: string): Promise<{
29
41
  runId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.mts","sourceRoot":"","sources":["../../src/util.mts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,QAAQ,MAAM,0CAA0C,CAAC;AAErE,eAAO,MAAM,OAAO;;;;;iBAKlB,CAAC;AACH,KAAK,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAEvC,KAAK,KAAK,GAAG,MAAM,OAAO,QAAQ,CAAC,SAAS,CAAC;AAC7C,KAAK,SAAS,CAAC,CAAC,SAAS,KAAK,IAAI,MAAM,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvE,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C;;;;;;GA2FA;AAID,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO;WAE7B,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,QAC5C,CAAC,YACG,CAAC,QACL,OAAO,EAAE;;;kCAemB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;eAO3C,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAmBD,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;eAcjD,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,SACrC,MAAM,WACJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;EAoB3D"}
1
+ {"version":3,"file":"util.d.mts","sourceRoot":"","sources":["../../src/util.mts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,QAAQ,MAAM,0CAA0C,CAAC;AAErE,eAAO,MAAM,OAAO;;;;;iBAKlB,CAAC;AACH,KAAK,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAEvC,KAAK,KAAK,GAAG,MAAM,OAAO,QAAQ,CAAC,SAAS,CAAC;AAC7C,KAAK,SAAS,CAAC,CAAC,SAAS,KAAK,IAAI,MAAM,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvE,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C;;;;;;GA2FA;AAID,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO;WAE7B,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,QAC5C,CAAC,YACG,CAAC,QACL,OAAO,EAAE;;;IAejB;;;;;;OAMG;qBACoB,MAAM,GAAG,OAAO,CACrC;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,EAAE,CACJ;kCAamC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;eAO3C,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAmBD,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;eAcjD,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,SACrC,MAAM,WACJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;EAoB3D"}
package/dist/src/util.mjs CHANGED
@@ -115,6 +115,18 @@ export function createFetcher(control) {
115
115
  });
116
116
  return data;
117
117
  },
118
+ /**
119
+ * Every event of a run, oldest first, as the World stored it.
120
+ *
121
+ * Ids included on purpose: they are the one part of the storage contract a
122
+ * World can get wrong while every workflow still appears to work, right
123
+ * up until a replay reads one (see `eventIds`).
124
+ */
125
+ async getEvents(runId) {
126
+ const x = await fetch(`http://localhost:${control.info.port}/runs/${encodeURIComponent(runId)}/events`);
127
+ const data = (await x.json());
128
+ return data.events;
129
+ },
118
130
  async getFlowInvocationCount(runId) {
119
131
  const x = await fetch(`http://localhost:${control.info.port}/_flow-invocations/${encodeURIComponent(runId)}`);
120
132
  const data = (await x.json());
@@ -160,4 +172,4 @@ export function createFetcher(control) {
160
172
  },
161
173
  };
162
174
  }
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5tanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC5tdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxLQUE2QixNQUFNLE9BQU8sQ0FBQztBQUNsRCxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlELE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO0FBR3pCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzlCLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUM3QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNiLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0tBQ2pCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFNSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxJQUdqQztJQUNDLElBQUksVUFBVSxHQUFHLElBQUksR0FBRyxDQUFD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LENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FDN0QsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxLQUFLLENBQUMsVUFBVSxDQUNkLEtBQWEsRUFDYixPQUFzRDtZQUV0RCxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FDckIsb0JBQW9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLEtBQUssRUFBRSxFQUN0RDtnQkFDRSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsY0FBYyxFQUFFLGtCQUFrQjtpQkFDbkM7Z0JBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO2FBQzlCLENBQ0YsQ0FBQztZQUNGLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyx5Q0FBeUM7WUFDNUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksS0FBSyxDQUNiLDBCQUEwQixHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FDekQsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3AgZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tICdub2RlOmNyeXB0byc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBybSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IHNldFRpbWVvdXQgfSBmcm9tICdub2RlOnRpbWVycy9wcm9taXNlcyc7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHsgV29ya2Zsb3dSdW5TY2hlbWEgfSBmcm9tICdAd29ya2Zsb3cvd29ybGQnO1xuaW1wb3J0IGNoYWxrLCB7IHR5cGUgQ2hhbGtJbnN0YW5jZSB9IGZyb20gJ2NoYWxrJztcbmltcG9ydCBqc29ubGluZXMgZnJvbSAnanNvbmxpbmVzJztcbmltcG9ydCB7IGFzc2VydCwgb25UZXN0RmFpbGVkLCBvblRlc3RGaW5pc2hlZCB9IGZyb20gJ3ZpdGVzdCc7XG5pbXBvcnQgdHlwZSB7IFR5cGVkSG9vayB9IGZyb20gJ3dvcmtmbG93JztcbmltcG9ydCAqIGFzIHogZnJvbSAnem9kJztcbmltcG9ydCB0eXBlIG1hbmlmZXN0IGZyb20gJy4uLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL21hbmlmZXN0Lmpzb24nO1xuXG5leHBvcnQgY29uc3QgQ29udHJvbCA9IHoub2JqZWN0KHtcbiAgc3RhdGU6IHoubGl0ZXJhbCgnbGlzdGVuaW5nJyksXG4gIGluZm86IHoub2JqZWN0KHtcbiAgICBwb3J0OiB6Lm51bWJlcigpLFxuICB9KSxcbn0pO1xudHlwZSBDb250cm9sID0gei5pbmZlcjx0eXBlb2YgQ29udHJvbD47XG5cbnR5cGUgRmlsZXMgPSBrZXlvZiB0eXBlb2YgbWFuaWZlc3Qud29ya2Zsb3dzO1xudHlwZSBXb3JrZmxvd3M8RiBleHRlbmRzIEZpbGVzPiA9IGtleW9mICh0eXBlb2YgbWFuaWZlc3Qud29ya2Zsb3dzKVtGXTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0U2VydmVyKG9wdHM6IHtcbiAgd29ybGQ6IHN0cmluZztcbiAgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcbn0pIHtcbiAgbGV0IHNlcnZlclBhdGggPSBuZXcgVVJMKCcuL3NlcnZlci5tdHMnLCBpbXBvcnQubWV0YS51cmwpO1xuXG4gIGlmICghZXhpc3RzU3luYyhzZXJ2ZXJQYXRoKSkge1xuICAgIHNlcnZlclBhdGggPSBuZXcgVVJMKCcuL3NlcnZlci5tanMnLCBpbXBvcnQubWV0YS51cmwpO1xuICB9XG5cbiAgLy8gR2l2ZSBlYWNoIHNwYXduZWQgc2VydmVyIGl0cyBvd24gZGF0YSBkaXJlY3RvcnkuIFRoZSBMb2NhbCBXb3JsZCdzIGRlZmF1bHRcbiAgLy8gKHVudGFnZ2VkKSBgLndvcmtmbG93LWRhdGFgIGRpciBpcyBvdGhlcndpc2Ugc2hhcmVkIGJ5IGV2ZXJ5IGNvbmN1cnJlbnRseVxuICAvLyBydW5uaW5nIHRlc3QgZmlsZSdzIHNlcnZlciwgYW5kIGl0cyBzdGFydHVwIHJlY292ZXJ5IHN3ZWVwIHJlLWVucXVldWVzXG4gIC8vIGV2ZXJ5IHVudGFnZ2VkIHJ1biBpdCBmaW5kcyDigJQgaW5jbHVkaW5nIHJ1bnMgc3RpbGwgbWlkLWZsaWdodCBpbiBhbm90aGVyXG4gIC8vIHRlc3QncyBzZXJ2ZXIg4oCUIGRpc3BhdGNoaW5nIHRoZW0gYWdhaW5zdCB0aGUgc2FtZSBvbi1kaXNrIGV2ZW50IGxvZyBhbmRcbiAgLy8gcmFjaW5nIHRoZSBydW4ncyBhY3R1YWwgb3duZXIgaW50byBzcHVyaW91cyBgUmVwbGF5RGl2ZXJnZW5jZUVycm9yYHMuXG4gIGNvbnN0IGRhdGFEaXIgPSBqb2luKFxuICAgIHRtcGRpcigpLFxuICAgIGB3b3JrZmxvdy13b3JsZC10ZXN0aW5nLSR7cHJvY2Vzcy5waWR9LSR7cmFuZG9tVVVJRCgpfWBcbiAgKTtcblxuICBjb25zdCBwcm9jID0gY3Auc3Bhd24oJ25vZGUnLCBbZmlsZVVSTFRvUGF0aChzZXJ2ZXJQYXRoKV0sIHtcbiAgICBzdGRpbzogWydpZ25vcmUnLCAncGlwZScsICdwaXBlJywgJ3BpcGUnXSxcbiAgICBlbnY6IHtcbiAgICAgIC4uLnByb2Nlc3MuZW52LFxuICAgICAgV09SS0ZMT1dfVEFSR0VUX1dPUkxEOiBvcHRzLndvcmxkLFxuICAgICAgQ09OVFJPTF9GRDogJzMnLFxuICAgICAgV09SS0ZMT1dfTE9DQUxfREFUQV9ESVI6IGRhdGFEaXIsXG4gICAgICAuLi4ob3B0cy5lbnYgPz8ge30pLFxuICAgIH0sXG4gIH0pO1xuICBvblRlc3RGaW5pc2hlZChhc3luYyAoKSA9PiB7XG4gICAgLy8gV2FpdCBmb3IgdGhlIGNoaWxkIHRvIGFjdHVhbGx5IGV4aXQgYmVmb3JlIHJlbW92aW5nIGl0cyBkYXRhIGRpcmVjdG9yeTpcbiAgICAvLyBga2lsbCgpYCBvbmx5IHJlcXVlc3RzIHRlcm1pbmF0aW9uLCBhbmQgb24gV2luZG93cyBgcm0oKWAgZmFpbHMgd2l0aFxuICAgIC8vIEVQRVJNL0VCVVNZIHdoaWxlIHRoZSBzZXJ2ZXIgc3RpbGwgaG9sZHMgZmlsZSBoYW5kbGVzIGluIGBkYXRhRGlyYC5cbiAgICBpZiAocHJvYy5leGl0Q29kZSA9PT0gbnVsbCAmJiBwcm9jLnNpZ25hbENvZGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGV4aXRlZCA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHByb2Mub25jZSgnZXhpdCcsICgpID0+IHJlc29sdmUoKSk7XG4gICAgICB9KTtcbiAgICAgIHByb2Mua2lsbCgpO1xuICAgICAgLy8gQm91bmRlZCwgc28gYSBjaGlsZCB0aGF0IHJlZnVzZXMgdG8gZGllIGNhbid0IGhhbmcgdGVzdCB0ZWFyZG93bi5cbiAgICAgIGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICAgIGV4aXRlZCxcbiAgICAgICAgc2V0VGltZW91dCg1XzAwMCwgdW5kZWZpbmVkLCB7IHJlZjogZmFsc2UgfSksXG4gICAgICBdKTtcbiAgICB9XG4gICAgLy8gV2luZG93cyBjYW4gaG9sZCB0aGUgaGFuZGxlcyBmb3IgYSBtb21lbnQgcGFzdCBleGl0LCBoZW5jZSB0aGUgcmV0cmllcy5cbiAgICAvLyBBIGxlYWtlZCB0ZW1wIGRpciBpcyBub3Qgd29ydGggZmFpbGluZyBhbiBvdGhlcndpc2UgcGFzc2luZyB0ZXN0IG92ZXIuXG4gICAgYXdhaXQgcm0oZGF0YURpciwge1xuICAgICAgcmVjdXJzaXZlOiB0cnVlLFxuICAgICAgZm9yY2U6IHRydWUsXG4gICAgICBtYXhSZXRyaWVzOiAxMCxcbiAgICAgIHJldHJ5RGVsYXk6IDEwMCxcbiAgICB9KS5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICBjb25zb2xlLndhcm4oYEZhaWxlZCB0byByZW1vdmUgdGVzdCBkYXRhIGRpciAke2RhdGFEaXJ9OmAsIGVycik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGNvbnN0IHN0ZGlvID0gW10gYXMgeyBzdHJlYW06IENoYWxrSW5zdGFuY2U7IGNodW5rOiBzdHJpbmcgfVtdO1xuICAvLyBBY2N1bXVsYXRlZCByYXcgc2VydmVyIG91dHB1dCDigJQgdXNlZCBieSB0ZXN0cyB0aGF0IHdhbnQgdG8gaW5zcGVjdFxuICAvLyBkZWJ1ZyBsb2dzIChlLmcuLCBjb3VudCBydW50aW1lIGl0ZXJhdGlvbnMsIGV2ZW50IGxvYWRzLCBldGMuKS5cbiAgY29uc3Qgb3V0cHV0QnVmZmVyOiBzdHJpbmdbXSA9IFtdO1xuICBwcm9jLnN0ZG91dD8ub24oJ2RhdGEnLCAoY2h1bmspID0+IHtcbiAgICBjb25zdCBzdHIgPSBjaHVuay50b1N0cmluZygpO1xuICAgIHN0ZGlvLnB1c2goeyBzdHJlYW06IGNoYWxrLndoaXRlLCBjaHVuazogc3RyIH0pO1xuICAgIG91dHB1dEJ1ZmZlci5wdXNoKHN0cik7XG4gIH0pO1xuICBwcm9jLnN0ZGVycj8ub24oJ2RhdGEnLCAoY2h1bmspID0+IHtcbiAgICBjb25zdCBzdHIgPSBjaHVuay50b1N0cmluZygpO1xuICAgIHN0ZGlvLnB1c2goeyBzdHJlYW06IGNoYWxrLnJlZCwgY2h1bms6IHN0ciB9KTtcbiAgICBvdXRwdXRCdWZmZXIucHVzaChzdHIpO1xuICB9KTtcblxuICBvblRlc3RGYWlsZWQoKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKCc9PT0gU0VSVkVSIFNURElPID09PScpO1xuICAgIGxldCBidWZmZXIgPSAnJztcbiAgICBmb3IgKGNvbnN0IHsgc3RyZWFtLCBjaHVuayB9IG9mIHN0ZGlvKSB7XG4gICAgICBidWZmZXIgKz0gc3RyZWFtLmludmVyc2UoY2h1bmspO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhidWZmZXIpO1xuICB9KTtcblxuICBjb25zdCBmZDMgPSBwcm9jLnN0ZGlvWzNdO1xuICBhc3NlcnQoZmQzLCAnZmQzIHNob3VsZCBiZSBkZWZpbmVkJyk7XG5cbiAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBmZDMucGlwZShqc29ubGluZXMucGFyc2UoKSkpIHtcbiAgICBjb25zdCBjb250cm9sID0gQ29udHJvbC5wYXJzZShjaHVuayk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbnRyb2wsXG4gICAgICBnZXRPdXRwdXQ6ICgpID0+IG91dHB1dEJ1ZmZlci5qb2luKCcnKSxcbiAgICB9O1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKCdTZXJ2ZXIgZGlkIG5vdCBzdGFydCBjb3JyZWN0bHknKTtcbn1cblxuY29uc3QgSW52b2tlID0gei5vYmplY3QoeyBydW5JZDogei5jb2VyY2Uuc3RyaW5nKCkgfSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGZXRjaGVyKGNvbnRyb2w6IENvbnRyb2wpIHtcbiAgcmV0dXJuIHtcbiAgICBhc3luYyBpbnZva2U8RiBleHRlbmRzIEZpbGVzLCBXIGV4dGVuZHMgV29ya2Zsb3dzPEY+PihcbiAgICAgIGZpbGU6IEYsXG4gICAgICB3b3JrZmxvdzogVyxcbiAgICAgIGFyZ3M6IHVua25vd25bXVxuICAgICkge1xuICAgICAgY29uc3QgeCA9IGF3YWl0IGZldGNoKGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L2ludm9rZWAsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGZpbGUsIHdvcmtmbG93LCBhcmdzIH0pLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgeC5qc29uKCkudGhlbihJbnZva2UucGFyc2UpO1xuICAgICAgb25UZXN0RmFpbGVkKCgpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignV29ya2Zsb3cgcnVuOicsIGRhdGEucnVuSWQpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9LFxuICAgIGFzeW5jIGdldEZsb3dJbnZvY2F0aW9uQ291bnQocnVuSWQ6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgICBjb25zdCB4ID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L19mbG93LWludm9jYXRpb25zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHJ1bklkKX1gXG4gICAgICApO1xuICAgICAgY29uc3QgZGF0YSA9IChhd2FpdCB4Lmpzb24oKSkgYXMgeyBjb3VudDogbnVtYmVyIH07XG4gICAgICByZXR1cm4gZGF0YS5jb3VudDtcbiAgICB9LFxuICAgIGFzeW5jIGdldFJ1bihpZDogc3RyaW5nKSB7XG4gICAgICBjb25zdCB4ID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L3J1bnMvJHtlbmNvZGVVUklDb21wb25lbnQoaWQpfWBcbiAgICAgICk7XG4gICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgeC50ZXh0KCk7XG4gICAgICAvLyBDdXN0b20gSlNPTiByZXZpdmVyIHRvIGRlY29kZSBiYXNlNjQgYmFjayB0byBVaW50OEFycmF5XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZSh0ZXh0LCAoX2tleSwgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICh2YWx1ZSBhcyBhbnkpLl9fdHlwZSA9PT0gJ1VpbnQ4QXJyYXknICYmXG4gICAgICAgICAgdHlwZW9mICh2YWx1ZSBhcyBhbnkpLmRhdGEgPT09ICdzdHJpbmcnXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSgodmFsdWUgYXMgYW55KS5kYXRhLCAnYmFzZTY0JykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIFdvcmtmbG93UnVuU2NoZW1hLnBhcnNlQXN5bmMoZGF0YSk7XG4gICAgfSxcbiAgICBhc3luYyBnZXRSZWFkYWJsZShpZDogc3RyaW5nKTogUHJvbWlzZTxSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5Pj4ge1xuICAgICAgY29uc3QgeCA9IGF3YWl0IGZldGNoKFxuICAgICAgICBgaHR0cDovL2xvY2FsaG9zdDoke2NvbnRyb2wuaW5mby5wb3J0fS9ydW5zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlkKX0vcmVhZGFibGVgXG4gICAgICApO1xuICAgICAgaWYgKCF4Lm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHRvIGdldCByZWFkYWJsZSBzdHJlYW06ICR7eC5zdGF0dXN9ICR7eC5zdGF0dXNUZXh0fWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICgheC5ib2R5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYm9keSBpbiByZXNwb25zZScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHguYm9keTtcbiAgICB9LFxuICAgIGFzeW5jIHJlc3VtZUhvb2s8VCBleHRlbmRzIFR5cGVkSG9vazxhbnksIGFueT4+KFxuICAgICAgdG9rZW46IHN0cmluZyxcbiAgICAgIHBheWxvYWQ6IE9taXQ8Tm9JbmZlcjxUeXBlZEhvb2suSW5wdXQ8VD4+LCAnbWV0YWRhdGEnPlxuICAgICkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L2hvb2tzLyR7dG9rZW59YCxcbiAgICAgICAge1xuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJlcy5hcnJheUJ1ZmZlcigpLmNhdGNoKCgpID0+IHt9KTsgLy8gRHJhaW4gdGhlIGJvZHkgdG8gYXZvaWQgcmVzb3VyY2UgbGVha3NcbiAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHRvIHJlc3VtZSBob29rOiAke3Jlcy5zdGF0dXN9ICR7cmVzLnN0YXR1c1RleHR9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iXX0=
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5tanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC5tdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxLQUE2QixNQUFNLE9BQU8sQ0FBQztBQUNsRCxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlELE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO0FBR3pCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzlCLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUM3QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNiLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0tBQ2pCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFNSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxJQUdqQztJQUNDLElBQUksVUFBVSxHQUFHLElBQUksR0FBRyxDQUFD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QUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNwIGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgcm0gfSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IHRtcGRpciB9IGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBzZXRUaW1lb3V0IH0gZnJvbSAnbm9kZTp0aW1lcnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IFdvcmtmbG93UnVuU2NoZW1hIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcbmltcG9ydCBjaGFsaywgeyB0eXBlIENoYWxrSW5zdGFuY2UgfSBmcm9tICdjaGFsayc7XG5pbXBvcnQganNvbmxpbmVzIGZyb20gJ2pzb25saW5lcyc7XG5pbXBvcnQgeyBhc3NlcnQsIG9uVGVzdEZhaWxlZCwgb25UZXN0RmluaXNoZWQgfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHR5cGUgeyBUeXBlZEhvb2sgfSBmcm9tICd3b3JrZmxvdyc7XG5pbXBvcnQgKiBhcyB6IGZyb20gJ3pvZCc7XG5pbXBvcnQgdHlwZSBtYW5pZmVzdCBmcm9tICcuLi8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9tYW5pZmVzdC5qc29uJztcblxuZXhwb3J0IGNvbnN0IENvbnRyb2wgPSB6Lm9iamVjdCh7XG4gIHN0YXRlOiB6LmxpdGVyYWwoJ2xpc3RlbmluZycpLFxuICBpbmZvOiB6Lm9iamVjdCh7XG4gICAgcG9ydDogei5udW1iZXIoKSxcbiAgfSksXG59KTtcbnR5cGUgQ29udHJvbCA9IHouaW5mZXI8dHlwZW9mIENvbnRyb2w+O1xuXG50eXBlIEZpbGVzID0ga2V5b2YgdHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cztcbnR5cGUgV29ya2Zsb3dzPEYgZXh0ZW5kcyBGaWxlcz4gPSBrZXlvZiAodHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cylbRl07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydFNlcnZlcihvcHRzOiB7XG4gIHdvcmxkOiBzdHJpbmc7XG4gIGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG59KSB7XG4gIGxldCBzZXJ2ZXJQYXRoID0gbmV3IFVSTCgnLi9zZXJ2ZXIubXRzJywgaW1wb3J0Lm1ldGEudXJsKTtcblxuICBpZiAoIWV4aXN0c1N5bmMoc2VydmVyUGF0aCkpIHtcbiAgICBzZXJ2ZXJQYXRoID0gbmV3IFVSTCgnLi9zZXJ2ZXIubWpzJywgaW1wb3J0Lm1ldGEudXJsKTtcbiAgfVxuXG4gIC8vIEdpdmUgZWFjaCBzcGF3bmVkIHNlcnZlciBpdHMgb3duIGRhdGEgZGlyZWN0b3J5LiBUaGUgTG9jYWwgV29ybGQncyBkZWZhdWx0XG4gIC8vICh1bnRhZ2dlZCkgYC53b3JrZmxvdy1kYXRhYCBkaXIgaXMgb3RoZXJ3aXNlIHNoYXJlZCBieSBldmVyeSBjb25jdXJyZW50bHlcbiAgLy8gcnVubmluZyB0ZXN0IGZpbGUncyBzZXJ2ZXIsIGFuZCBpdHMgc3RhcnR1cCByZWNvdmVyeSBzd2VlcCByZS1lbnF1ZXVlc1xuICAvLyBldmVyeSB1bnRhZ2dlZCBydW4gaXQgZmluZHMg4oCUIGluY2x1ZGluZyBydW5zIHN0aWxsIG1pZC1mbGlnaHQgaW4gYW5vdGhlclxuICAvLyB0ZXN0J3Mgc2VydmVyIOKAlCBkaXNwYXRjaGluZyB0aGVtIGFnYWluc3QgdGhlIHNhbWUgb24tZGlzayBldmVudCBsb2cgYW5kXG4gIC8vIHJhY2luZyB0aGUgcnVuJ3MgYWN0dWFsIG93bmVyIGludG8gc3B1cmlvdXMgYFJlcGxheURpdmVyZ2VuY2VFcnJvcmBzLlxuICBjb25zdCBkYXRhRGlyID0gam9pbihcbiAgICB0bXBkaXIoKSxcbiAgICBgd29ya2Zsb3ctd29ybGQtdGVzdGluZy0ke3Byb2Nlc3MucGlkfS0ke3JhbmRvbVVVSUQoKX1gXG4gICk7XG5cbiAgY29uc3QgcHJvYyA9IGNwLnNwYXduKCdub2RlJywgW2ZpbGVVUkxUb1BhdGgoc2VydmVyUGF0aCldLCB7XG4gICAgc3RkaW86IFsnaWdub3JlJywgJ3BpcGUnLCAncGlwZScsICdwaXBlJ10sXG4gICAgZW52OiB7XG4gICAgICAuLi5wcm9jZXNzLmVudixcbiAgICAgIFdPUktGTE9XX1RBUkdFVF9XT1JMRDogb3B0cy53b3JsZCxcbiAgICAgIENPTlRST0xfRkQ6ICczJyxcbiAgICAgIFdPUktGTE9XX0xPQ0FMX0RBVEFfRElSOiBkYXRhRGlyLFxuICAgICAgLi4uKG9wdHMuZW52ID8/IHt9KSxcbiAgICB9LFxuICB9KTtcbiAgb25UZXN0RmluaXNoZWQoYXN5bmMgKCkgPT4ge1xuICAgIC8vIFdhaXQgZm9yIHRoZSBjaGlsZCB0byBhY3R1YWxseSBleGl0IGJlZm9yZSByZW1vdmluZyBpdHMgZGF0YSBkaXJlY3Rvcnk6XG4gICAgLy8gYGtpbGwoKWAgb25seSByZXF1ZXN0cyB0ZXJtaW5hdGlvbiwgYW5kIG9uIFdpbmRvd3MgYHJtKClgIGZhaWxzIHdpdGhcbiAgICAvLyBFUEVSTS9FQlVTWSB3aGlsZSB0aGUgc2VydmVyIHN0aWxsIGhvbGRzIGZpbGUgaGFuZGxlcyBpbiBgZGF0YURpcmAuXG4gICAgaWYgKHByb2MuZXhpdENvZGUgPT09IG51bGwgJiYgcHJvYy5zaWduYWxDb2RlID09PSBudWxsKSB7XG4gICAgICBjb25zdCBleGl0ZWQgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgICBwcm9jLm9uY2UoJ2V4aXQnLCAoKSA9PiByZXNvbHZlKCkpO1xuICAgICAgfSk7XG4gICAgICBwcm9jLmtpbGwoKTtcbiAgICAgIC8vIEJvdW5kZWQsIHNvIGEgY2hpbGQgdGhhdCByZWZ1c2VzIHRvIGRpZSBjYW4ndCBoYW5nIHRlc3QgdGVhcmRvd24uXG4gICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgICAgICBleGl0ZWQsXG4gICAgICAgIHNldFRpbWVvdXQoNV8wMDAsIHVuZGVmaW5lZCwgeyByZWY6IGZhbHNlIH0pLFxuICAgICAgXSk7XG4gICAgfVxuICAgIC8vIFdpbmRvd3MgY2FuIGhvbGQgdGhlIGhhbmRsZXMgZm9yIGEgbW9tZW50IHBhc3QgZXhpdCwgaGVuY2UgdGhlIHJldHJpZXMuXG4gICAgLy8gQSBsZWFrZWQgdGVtcCBkaXIgaXMgbm90IHdvcnRoIGZhaWxpbmcgYW4gb3RoZXJ3aXNlIHBhc3NpbmcgdGVzdCBvdmVyLlxuICAgIGF3YWl0IHJtKGRhdGFEaXIsIHtcbiAgICAgIHJlY3Vyc2l2ZTogdHJ1ZSxcbiAgICAgIGZvcmNlOiB0cnVlLFxuICAgICAgbWF4UmV0cmllczogMTAsXG4gICAgICByZXRyeURlbGF5OiAxMDAsXG4gICAgfSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgY29uc29sZS53YXJuKGBGYWlsZWQgdG8gcmVtb3ZlIHRlc3QgZGF0YSBkaXIgJHtkYXRhRGlyfTpgLCBlcnIpO1xuICAgIH0pO1xuICB9KTtcblxuICBjb25zdCBzdGRpbyA9IFtdIGFzIHsgc3RyZWFtOiBDaGFsa0luc3RhbmNlOyBjaHVuazogc3RyaW5nIH1bXTtcbiAgLy8gQWNjdW11bGF0ZWQgcmF3IHNlcnZlciBvdXRwdXQg4oCUIHVzZWQgYnkgdGVzdHMgdGhhdCB3YW50IHRvIGluc3BlY3RcbiAgLy8gZGVidWcgbG9ncyAoZS5nLiwgY291bnQgcnVudGltZSBpdGVyYXRpb25zLCBldmVudCBsb2FkcywgZXRjLikuXG4gIGNvbnN0IG91dHB1dEJ1ZmZlcjogc3RyaW5nW10gPSBbXTtcbiAgcHJvYy5zdGRvdXQ/Lm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgY29uc3Qgc3RyID0gY2h1bmsudG9TdHJpbmcoKTtcbiAgICBzdGRpby5wdXNoKHsgc3RyZWFtOiBjaGFsay53aGl0ZSwgY2h1bms6IHN0ciB9KTtcbiAgICBvdXRwdXRCdWZmZXIucHVzaChzdHIpO1xuICB9KTtcbiAgcHJvYy5zdGRlcnI/Lm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgY29uc3Qgc3RyID0gY2h1bmsudG9TdHJpbmcoKTtcbiAgICBzdGRpby5wdXNoKHsgc3RyZWFtOiBjaGFsay5yZWQsIGNodW5rOiBzdHIgfSk7XG4gICAgb3V0cHV0QnVmZmVyLnB1c2goc3RyKTtcbiAgfSk7XG5cbiAgb25UZXN0RmFpbGVkKCgpID0+IHtcbiAgICBjb25zb2xlLmxvZygnPT09IFNFUlZFUiBTVERJTyA9PT0nKTtcbiAgICBsZXQgYnVmZmVyID0gJyc7XG4gICAgZm9yIChjb25zdCB7IHN0cmVhbSwgY2h1bmsgfSBvZiBzdGRpbykge1xuICAgICAgYnVmZmVyICs9IHN0cmVhbS5pbnZlcnNlKGNodW5rKTtcbiAgICB9XG4gICAgY29uc29sZS5sb2coYnVmZmVyKTtcbiAgfSk7XG5cbiAgY29uc3QgZmQzID0gcHJvYy5zdGRpb1szXTtcbiAgYXNzZXJ0KGZkMywgJ2ZkMyBzaG91bGQgYmUgZGVmaW5lZCcpO1xuXG4gIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2YgZmQzLnBpcGUoanNvbmxpbmVzLnBhcnNlKCkpKSB7XG4gICAgY29uc3QgY29udHJvbCA9IENvbnRyb2wucGFyc2UoY2h1bmspO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jb250cm9sLFxuICAgICAgZ2V0T3V0cHV0OiAoKSA9PiBvdXRwdXRCdWZmZXIuam9pbignJyksXG4gICAgfTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignU2VydmVyIGRpZCBub3Qgc3RhcnQgY29ycmVjdGx5Jyk7XG59XG5cbmNvbnN0IEludm9rZSA9IHoub2JqZWN0KHsgcnVuSWQ6IHouY29lcmNlLnN0cmluZygpIH0pO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRmV0Y2hlcihjb250cm9sOiBDb250cm9sKSB7XG4gIHJldHVybiB7XG4gICAgYXN5bmMgaW52b2tlPEYgZXh0ZW5kcyBGaWxlcywgVyBleHRlbmRzIFdvcmtmbG93czxGPj4oXG4gICAgICBmaWxlOiBGLFxuICAgICAgd29ya2Zsb3c6IFcsXG4gICAgICBhcmdzOiB1bmtub3duW11cbiAgICApIHtcbiAgICAgIGNvbnN0IHggPSBhd2FpdCBmZXRjaChgaHR0cDovL2xvY2FsaG9zdDoke2NvbnRyb2wuaW5mby5wb3J0fS9pbnZva2VgLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBmaWxlLCB3b3JrZmxvdywgYXJncyB9KSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHguanNvbigpLnRoZW4oSW52b2tlLnBhcnNlKTtcbiAgICAgIG9uVGVzdEZhaWxlZCgoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dvcmtmbG93IHJ1bjonLCBkYXRhLnJ1bklkKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBFdmVyeSBldmVudCBvZiBhIHJ1biwgb2xkZXN0IGZpcnN0LCBhcyB0aGUgV29ybGQgc3RvcmVkIGl0LlxuICAgICAqXG4gICAgICogSWRzIGluY2x1ZGVkIG9uIHB1cnBvc2U6IHRoZXkgYXJlIHRoZSBvbmUgcGFydCBvZiB0aGUgc3RvcmFnZSBjb250cmFjdCBhXG4gICAgICogV29ybGQgY2FuIGdldCB3cm9uZyB3aGlsZSBldmVyeSB3b3JrZmxvdyBzdGlsbCBhcHBlYXJzIHRvIHdvcmssIHJpZ2h0XG4gICAgICogdXAgdW50aWwgYSByZXBsYXkgcmVhZHMgb25lIChzZWUgYGV2ZW50SWRzYCkuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0RXZlbnRzKHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPFxuICAgICAge1xuICAgICAgICBldmVudElkOiBzdHJpbmc7XG4gICAgICAgIGV2ZW50VHlwZTogc3RyaW5nO1xuICAgICAgICBjb3JyZWxhdGlvbklkPzogc3RyaW5nO1xuICAgICAgfVtdXG4gICAgPiB7XG4gICAgICBjb25zdCB4ID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L3J1bnMvJHtlbmNvZGVVUklDb21wb25lbnQocnVuSWQpfS9ldmVudHNgXG4gICAgICApO1xuICAgICAgY29uc3QgZGF0YSA9IChhd2FpdCB4Lmpzb24oKSkgYXMge1xuICAgICAgICBldmVudHM6IHtcbiAgICAgICAgICBldmVudElkOiBzdHJpbmc7XG4gICAgICAgICAgZXZlbnRUeXBlOiBzdHJpbmc7XG4gICAgICAgICAgY29ycmVsYXRpb25JZD86IHN0cmluZztcbiAgICAgICAgfVtdO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBkYXRhLmV2ZW50cztcbiAgICB9LFxuICAgIGFzeW5jIGdldEZsb3dJbnZvY2F0aW9uQ291bnQocnVuSWQ6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgICBjb25zdCB4ID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L19mbG93LWludm9jYXRpb25zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHJ1bklkKX1gXG4gICAgICApO1xuICAgICAgY29uc3QgZGF0YSA9IChhd2FpdCB4Lmpzb24oKSkgYXMgeyBjb3VudDogbnVtYmVyIH07XG4gICAgICByZXR1cm4gZGF0YS5jb3VudDtcbiAgICB9LFxuICAgIGFzeW5jIGdldFJ1bihpZDogc3RyaW5nKSB7XG4gICAgICBjb25zdCB4ID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L3J1bnMvJHtlbmNvZGVVUklDb21wb25lbnQoaWQpfWBcbiAgICAgICk7XG4gICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgeC50ZXh0KCk7XG4gICAgICAvLyBDdXN0b20gSlNPTiByZXZpdmVyIHRvIGRlY29kZSBiYXNlNjQgYmFjayB0byBVaW50OEFycmF5XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZSh0ZXh0LCAoX2tleSwgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICh2YWx1ZSBhcyBhbnkpLl9fdHlwZSA9PT0gJ1VpbnQ4QXJyYXknICYmXG4gICAgICAgICAgdHlwZW9mICh2YWx1ZSBhcyBhbnkpLmRhdGEgPT09ICdzdHJpbmcnXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSgodmFsdWUgYXMgYW55KS5kYXRhLCAnYmFzZTY0JykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIFdvcmtmbG93UnVuU2NoZW1hLnBhcnNlQXN5bmMoZGF0YSk7XG4gICAgfSxcbiAgICBhc3luYyBnZXRSZWFkYWJsZShpZDogc3RyaW5nKTogUHJvbWlzZTxSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5Pj4ge1xuICAgICAgY29uc3QgeCA9IGF3YWl0IGZldGNoKFxuICAgICAgICBgaHR0cDovL2xvY2FsaG9zdDoke2NvbnRyb2wuaW5mby5wb3J0fS9ydW5zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlkKX0vcmVhZGFibGVgXG4gICAgICApO1xuICAgICAgaWYgKCF4Lm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHRvIGdldCByZWFkYWJsZSBzdHJlYW06ICR7eC5zdGF0dXN9ICR7eC5zdGF0dXNUZXh0fWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICgheC5ib2R5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYm9keSBpbiByZXNwb25zZScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHguYm9keTtcbiAgICB9LFxuICAgIGFzeW5jIHJlc3VtZUhvb2s8VCBleHRlbmRzIFR5cGVkSG9vazxhbnksIGFueT4+KFxuICAgICAgdG9rZW46IHN0cmluZyxcbiAgICAgIHBheWxvYWQ6IE9taXQ8Tm9JbmZlcjxUeXBlZEhvb2suSW5wdXQ8VD4+LCAnbWV0YWRhdGEnPlxuICAgICkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L2hvb2tzLyR7dG9rZW59YCxcbiAgICAgICAge1xuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJlcy5hcnJheUJ1ZmZlcigpLmNhdGNoKCgpID0+IHt9KTsgLy8gRHJhaW4gdGhlIGJvZHkgdG8gYXZvaWQgcmVzb3VyY2UgbGVha3NcbiAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHRvIHJlc3VtZSBob29rOiAke3Jlcy5zdGF0dXN9ICR7cmVzLnN0YXR1c1RleHR9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow/world-testing",
3
- "version": "5.0.0-beta.40",
3
+ "version": "5.0.0-beta.42",
4
4
  "description": "Testing utilities and World implementation for Workflow SDK",
5
5
  "main": "dist/src/index.mjs",
6
6
  "files": [
@@ -21,10 +21,10 @@
21
21
  "hono": "4.12.25",
22
22
  "jsonlines": "0.1.1",
23
23
  "zod": "~4.3.6",
24
- "@workflow/cli": "5.0.0-beta.40",
25
- "@workflow/core": "5.0.0-beta.40",
26
- "@workflow/world": "5.0.0-beta.25",
27
- "workflow": "5.0.0-beta.40"
24
+ "@workflow/cli": "5.0.0-beta.42",
25
+ "@workflow/core": "5.0.0-beta.42",
26
+ "@workflow/world": "5.0.0-beta.27",
27
+ "workflow": "5.0.0-beta.42"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/jsonlines": "0.1.5",