@workflow/world-local 5.0.0-beta.15 → 5.0.0-beta.17

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.
@@ -2,6 +2,19 @@
2
2
  * Hash a hook token to produce a filesystem-safe constraint filename.
3
3
  */
4
4
  export declare function hashToken(token: string): string;
5
+ /**
6
+ * Compute the path of the recovery-marker sidecar for a specific
7
+ * `(token, runId, hookId)` triple. Identity is encoded in the
8
+ * filename hash so different token lifetimes (e.g. the same token
9
+ * reused by a later run after the first run was deleted) never
10
+ * contend on a single sidecar — without per-lifetime identity, a
11
+ * stale marker surviving prior-run cleanup could "leak" its
12
+ * eventId into the new lifetime's recovery and cause divergent
13
+ * publication.
14
+ *
15
+ * See `events-storage.ts` for the full recovery-marker rationale.
16
+ */
17
+ export declare function hookRecoveryMarkerPath(basedir: string, token: string, runId: string, hookId: string): string;
5
18
  /**
6
19
  * Create a monotonic ULID factory that ensures ULIDs are always increasing
7
20
  * even when generated within the same millisecond.
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/storage/helpers.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,4BAAwC,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC5B,UAAU,MAAM,MAChB,UAAU,MAAM,KAAG,IAAI,GAAG,IAyB1B,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/storage/helpers.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,MAAM,CAQR;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,4BAAwC,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC5B,UAAU,MAAM,MAChB,UAAU,MAAM,KAAG,IAAI,GAAG,IAyB1B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { createHash } from 'node:crypto';
2
+ import path from 'node:path';
2
3
  import { monotonicFactory } from 'ulid';
3
4
  import { stripTag, ulidToDate } from '../fs.js';
4
5
  /**
@@ -7,6 +8,27 @@ import { stripTag, ulidToDate } from '../fs.js';
7
8
  export function hashToken(token) {
8
9
  return createHash('sha256').update(token).digest('hex');
9
10
  }
11
+ /**
12
+ * Compute the path of the recovery-marker sidecar for a specific
13
+ * `(token, runId, hookId)` triple. Identity is encoded in the
14
+ * filename hash so different token lifetimes (e.g. the same token
15
+ * reused by a later run after the first run was deleted) never
16
+ * contend on a single sidecar — without per-lifetime identity, a
17
+ * stale marker surviving prior-run cleanup could "leak" its
18
+ * eventId into the new lifetime's recovery and cause divergent
19
+ * publication.
20
+ *
21
+ * See `events-storage.ts` for the full recovery-marker rationale.
22
+ */
23
+ export function hookRecoveryMarkerPath(basedir, token, runId, hookId) {
24
+ // Distinct from `hashToken(token)` so a token's claim file and
25
+ // its recovery marker live at different paths AND a different
26
+ // lifetime's recovery marker never collides with this one.
27
+ const key = createHash('sha256')
28
+ .update(`${token}\x00${runId}\x00${hookId}`)
29
+ .digest('hex');
30
+ return path.join(basedir, 'hooks', 'tokens', `${key}.recovery.json`);
31
+ }
10
32
  /**
11
33
  * Create a monotonic ULID factory that ensures ULIDs are always increasing
12
34
  * even when generated within the same millisecond.
@@ -41,4 +63,4 @@ export const getObjectCreatedAt = (idPrefix) => (filename) => {
41
63
  const ulid = id.replace(replaceRegex, '');
42
64
  return ulidToDate(ulid);
43
65
  };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWE7SUFDckMsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBRW5FOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUM3QixDQUFDLFFBQWdCLEVBQUUsRUFBRSxDQUNyQixDQUFDLFFBQWdCLEVBQWUsRUFBRTtJQUNoQywwQ0FBMEM7SUFDMUMsbURBQW1EO0lBQ25ELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUV0RSxNQUFNLFlBQVksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLFFBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFekMsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQixrRkFBa0Y7UUFDbEYsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsOEVBQThFO0lBQzlFLElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLDhFQUE4RTtRQUM5RSxxRkFBcUY7UUFDckYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsdUVBQXVFO0lBQ3ZFLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckUsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ25vZGU6Y3J5cHRvJztcbmltcG9ydCB7IG1vbm90b25pY0ZhY3RvcnkgfSBmcm9tICd1bGlkJztcbmltcG9ydCB7IHN0cmlwVGFnLCB1bGlkVG9EYXRlIH0gZnJvbSAnLi4vZnMuanMnO1xuXG4vKipcbiAqIEhhc2ggYSBob29rIHRva2VuIHRvIHByb2R1Y2UgYSBmaWxlc3lzdGVtLXNhZmUgY29uc3RyYWludCBmaWxlbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc2hUb2tlbih0b2tlbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZSh0b2tlbikuZGlnZXN0KCdoZXgnKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtb25vdG9uaWMgVUxJRCBmYWN0b3J5IHRoYXQgZW5zdXJlcyBVTElEcyBhcmUgYWx3YXlzIGluY3JlYXNpbmdcbiAqIGV2ZW4gd2hlbiBnZW5lcmF0ZWQgd2l0aGluIHRoZSBzYW1lIG1pbGxpc2Vjb25kLlxuICovXG5leHBvcnQgY29uc3QgbW9ub3RvbmljVWxpZCA9IG1vbm90b25pY0ZhY3RvcnkoKCkgPT4gTWF0aC5yYW5kb20oKSk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRvIGV4dHJhY3QgY3JlYXRlZEF0IGRhdGUgZnJvbSBhIGZpbGVuYW1lIGJhc2VkIG9uIFVMSUQuXG4gKiBVc2VkIGZvciBlZmZpY2llbnQgcGFnaW5hdGlvbiB3aXRob3V0IHJlYWRpbmcgZmlsZSBjb250ZW50cy5cbiAqXG4gKiBAcGFyYW0gaWRQcmVmaXggLSBUaGUgcHJlZml4IHRvIHN0cmlwIGZyb20gZmlsZW5hbWVzIChlLmcuLCAnd3J1bicsICdldm50JywgJ3N0ZXAnKVxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0IGV4dHJhY3RzIERhdGUgZnJvbSBmaWxlbmFtZSwgb3IgbnVsbCBpZiBub3QgZXh0cmFjdGFibGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldE9iamVjdENyZWF0ZWRBdCA9XG4gIChpZFByZWZpeDogc3RyaW5nKSA9PlxuICAoZmlsZW5hbWU6IHN0cmluZyk6IERhdGUgfCBudWxsID0+IHtcbiAgICAvLyBTdHJpcCB0YWcgc3VmZml4IGJlZm9yZSBVTElEIGV4dHJhY3Rpb25cbiAgICAvLyBlLmcuLCBcIndydW5fQUJDLnZpdGVzdC0wLmpzb25cIiDihpIgXCJ3cnVuX0FCQy5qc29uXCJcbiAgICBjb25zdCBjbGVhbk5hbWUgPSBzdHJpcFRhZyhmaWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sICcnKSkgKyAnLmpzb24nO1xuXG4gICAgY29uc3QgcmVwbGFjZVJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7aWRQcmVmaXh9X2AsICdnJyk7XG4gICAgY29uc3QgZGFzaEluZGV4ID0gY2xlYW5OYW1lLmluZGV4T2YoJy0nKTtcblxuICAgIGlmIChkYXNoSW5kZXggPT09IC0xKSB7XG4gICAgICAvLyBObyBkYXNoIC0gZXh0cmFjdCBVTElEIGZyb20gdGhlIGZpbGVuYW1lIChlLmcuLCB3cnVuX1VMSUQuanNvbiwgZXZudF9VTElELmpzb24pXG4gICAgICBjb25zdCB1bGlkID0gY2xlYW5OYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgJycpLnJlcGxhY2UocmVwbGFjZVJlZ2V4LCAnJyk7XG4gICAgICByZXR1cm4gdWxpZFRvRGF0ZSh1bGlkKTtcbiAgICB9XG5cbiAgICAvLyBGb3IgY29tcG9zaXRlIGtleXMgbGlrZSB7cnVuSWR9LXtzdGVwSWR9LCBleHRyYWN0IGZyb20gdGhlIGFwcHJvcHJpYXRlIHBhcnRcbiAgICBpZiAoaWRQcmVmaXggPT09ICdzdGVwJykge1xuICAgICAgLy8gU3RlcHMgdXNlIHNlcXVlbnRpYWwgSURzIChzdGVwXzAsIHN0ZXBfMSwgZXRjLikgLSBubyB0aW1lc3RhbXAgaW4gZmlsZW5hbWUuXG4gICAgICAvLyBSZXR1cm4gbnVsbCB0byBza2lwIGZpbGVuYW1lLWJhc2VkIG9wdGltaXphdGlvbiBhbmQgZGVmZXIgdG8gSlNPTi1iYXNlZCBmaWx0ZXJpbmcuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBGb3IgZXZlbnRzOiB3cnVuX1VMSUQtZXZudF9VTElELmpzb24gLSBleHRyYWN0IGZyb20gdGhlIGV2ZW50SWQgcGFydFxuICAgIGNvbnN0IGlkID0gY2xlYW5OYW1lLnN1YnN0cmluZyhkYXNoSW5kZXggKyAxKS5yZXBsYWNlKC9cXC5qc29uJC8sICcnKTtcbiAgICBjb25zdCB1bGlkID0gaWQucmVwbGFjZShyZXBsYWNlUmVnZXgsICcnKTtcbiAgICByZXR1cm4gdWxpZFRvRGF0ZSh1bGlkKTtcbiAgfTtcbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWhEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFhO0lBQ3JDLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxPQUFlLEVBQ2YsS0FBYSxFQUNiLEtBQWEsRUFDYixNQUFjO0lBRWQsK0RBQStEO0lBQy9ELDhEQUE4RDtJQUM5RCwyREFBMkQ7SUFDM0QsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUM3QixNQUFNLENBQUMsR0FBRyxLQUFLLE9BQU8sS0FBSyxPQUFPLE1BQU0sRUFBRSxDQUFDO1NBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxHQUFHLGdCQUFnQixDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUVuRTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FDN0IsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FDckIsQ0FBQyxRQUFnQixFQUFlLEVBQUU7SUFDaEMsMENBQTBDO0lBQzFDLG1EQUFtRDtJQUNuRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7SUFFdEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxRQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXpDLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckIsa0ZBQWtGO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEUsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELDhFQUE4RTtJQUM5RSxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN4Qiw4RUFBOEU7UUFDOUUscUZBQXFGO1FBQ3JGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHVFQUF1RTtJQUN2RSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tICdub2RlOmNyeXB0byc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgbW9ub3RvbmljRmFjdG9yeSB9IGZyb20gJ3VsaWQnO1xuaW1wb3J0IHsgc3RyaXBUYWcsIHVsaWRUb0RhdGUgfSBmcm9tICcuLi9mcy5qcyc7XG5cbi8qKlxuICogSGFzaCBhIGhvb2sgdG9rZW4gdG8gcHJvZHVjZSBhIGZpbGVzeXN0ZW0tc2FmZSBjb25zdHJhaW50IGZpbGVuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzaFRva2VuKHRva2VuOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKHRva2VuKS5kaWdlc3QoJ2hleCcpO1xufVxuXG4vKipcbiAqIENvbXB1dGUgdGhlIHBhdGggb2YgdGhlIHJlY292ZXJ5LW1hcmtlciBzaWRlY2FyIGZvciBhIHNwZWNpZmljXG4gKiBgKHRva2VuLCBydW5JZCwgaG9va0lkKWAgdHJpcGxlLiBJZGVudGl0eSBpcyBlbmNvZGVkIGluIHRoZVxuICogZmlsZW5hbWUgaGFzaCBzbyBkaWZmZXJlbnQgdG9rZW4gbGlmZXRpbWVzIChlLmcuIHRoZSBzYW1lIHRva2VuXG4gKiByZXVzZWQgYnkgYSBsYXRlciBydW4gYWZ0ZXIgdGhlIGZpcnN0IHJ1biB3YXMgZGVsZXRlZCkgbmV2ZXJcbiAqIGNvbnRlbmQgb24gYSBzaW5nbGUgc2lkZWNhciDigJQgd2l0aG91dCBwZXItbGlmZXRpbWUgaWRlbnRpdHksIGFcbiAqIHN0YWxlIG1hcmtlciBzdXJ2aXZpbmcgcHJpb3ItcnVuIGNsZWFudXAgY291bGQgXCJsZWFrXCIgaXRzXG4gKiBldmVudElkIGludG8gdGhlIG5ldyBsaWZldGltZSdzIHJlY292ZXJ5IGFuZCBjYXVzZSBkaXZlcmdlbnRcbiAqIHB1YmxpY2F0aW9uLlxuICpcbiAqIFNlZSBgZXZlbnRzLXN0b3JhZ2UudHNgIGZvciB0aGUgZnVsbCByZWNvdmVyeS1tYXJrZXIgcmF0aW9uYWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaG9va1JlY292ZXJ5TWFya2VyUGF0aChcbiAgYmFzZWRpcjogc3RyaW5nLFxuICB0b2tlbjogc3RyaW5nLFxuICBydW5JZDogc3RyaW5nLFxuICBob29rSWQ6IHN0cmluZ1xuKTogc3RyaW5nIHtcbiAgLy8gRGlzdGluY3QgZnJvbSBgaGFzaFRva2VuKHRva2VuKWAgc28gYSB0b2tlbidzIGNsYWltIGZpbGUgYW5kXG4gIC8vIGl0cyByZWNvdmVyeSBtYXJrZXIgbGl2ZSBhdCBkaWZmZXJlbnQgcGF0aHMgQU5EIGEgZGlmZmVyZW50XG4gIC8vIGxpZmV0aW1lJ3MgcmVjb3ZlcnkgbWFya2VyIG5ldmVyIGNvbGxpZGVzIHdpdGggdGhpcyBvbmUuXG4gIGNvbnN0IGtleSA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpXG4gICAgLnVwZGF0ZShgJHt0b2tlbn1cXHgwMCR7cnVuSWR9XFx4MDAke2hvb2tJZH1gKVxuICAgIC5kaWdlc3QoJ2hleCcpO1xuICByZXR1cm4gcGF0aC5qb2luKGJhc2VkaXIsICdob29rcycsICd0b2tlbnMnLCBgJHtrZXl9LnJlY292ZXJ5Lmpzb25gKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtb25vdG9uaWMgVUxJRCBmYWN0b3J5IHRoYXQgZW5zdXJlcyBVTElEcyBhcmUgYWx3YXlzIGluY3JlYXNpbmdcbiAqIGV2ZW4gd2hlbiBnZW5lcmF0ZWQgd2l0aGluIHRoZSBzYW1lIG1pbGxpc2Vjb25kLlxuICovXG5leHBvcnQgY29uc3QgbW9ub3RvbmljVWxpZCA9IG1vbm90b25pY0ZhY3RvcnkoKCkgPT4gTWF0aC5yYW5kb20oKSk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRvIGV4dHJhY3QgY3JlYXRlZEF0IGRhdGUgZnJvbSBhIGZpbGVuYW1lIGJhc2VkIG9uIFVMSUQuXG4gKiBVc2VkIGZvciBlZmZpY2llbnQgcGFnaW5hdGlvbiB3aXRob3V0IHJlYWRpbmcgZmlsZSBjb250ZW50cy5cbiAqXG4gKiBAcGFyYW0gaWRQcmVmaXggLSBUaGUgcHJlZml4IHRvIHN0cmlwIGZyb20gZmlsZW5hbWVzIChlLmcuLCAnd3J1bicsICdldm50JywgJ3N0ZXAnKVxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0IGV4dHJhY3RzIERhdGUgZnJvbSBmaWxlbmFtZSwgb3IgbnVsbCBpZiBub3QgZXh0cmFjdGFibGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldE9iamVjdENyZWF0ZWRBdCA9XG4gIChpZFByZWZpeDogc3RyaW5nKSA9PlxuICAoZmlsZW5hbWU6IHN0cmluZyk6IERhdGUgfCBudWxsID0+IHtcbiAgICAvLyBTdHJpcCB0YWcgc3VmZml4IGJlZm9yZSBVTElEIGV4dHJhY3Rpb25cbiAgICAvLyBlLmcuLCBcIndydW5fQUJDLnZpdGVzdC0wLmpzb25cIiDihpIgXCJ3cnVuX0FCQy5qc29uXCJcbiAgICBjb25zdCBjbGVhbk5hbWUgPSBzdHJpcFRhZyhmaWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sICcnKSkgKyAnLmpzb24nO1xuXG4gICAgY29uc3QgcmVwbGFjZVJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7aWRQcmVmaXh9X2AsICdnJyk7XG4gICAgY29uc3QgZGFzaEluZGV4ID0gY2xlYW5OYW1lLmluZGV4T2YoJy0nKTtcblxuICAgIGlmIChkYXNoSW5kZXggPT09IC0xKSB7XG4gICAgICAvLyBObyBkYXNoIC0gZXh0cmFjdCBVTElEIGZyb20gdGhlIGZpbGVuYW1lIChlLmcuLCB3cnVuX1VMSUQuanNvbiwgZXZudF9VTElELmpzb24pXG4gICAgICBjb25zdCB1bGlkID0gY2xlYW5OYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgJycpLnJlcGxhY2UocmVwbGFjZVJlZ2V4LCAnJyk7XG4gICAgICByZXR1cm4gdWxpZFRvRGF0ZSh1bGlkKTtcbiAgICB9XG5cbiAgICAvLyBGb3IgY29tcG9zaXRlIGtleXMgbGlrZSB7cnVuSWR9LXtzdGVwSWR9LCBleHRyYWN0IGZyb20gdGhlIGFwcHJvcHJpYXRlIHBhcnRcbiAgICBpZiAoaWRQcmVmaXggPT09ICdzdGVwJykge1xuICAgICAgLy8gU3RlcHMgdXNlIHNlcXVlbnRpYWwgSURzIChzdGVwXzAsIHN0ZXBfMSwgZXRjLikgLSBubyB0aW1lc3RhbXAgaW4gZmlsZW5hbWUuXG4gICAgICAvLyBSZXR1cm4gbnVsbCB0byBza2lwIGZpbGVuYW1lLWJhc2VkIG9wdGltaXphdGlvbiBhbmQgZGVmZXIgdG8gSlNPTi1iYXNlZCBmaWx0ZXJpbmcuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBGb3IgZXZlbnRzOiB3cnVuX1VMSUQtZXZudF9VTElELmpzb24gLSBleHRyYWN0IGZyb20gdGhlIGV2ZW50SWQgcGFydFxuICAgIGNvbnN0IGlkID0gY2xlYW5OYW1lLnN1YnN0cmluZyhkYXNoSW5kZXggKyAxKS5yZXBsYWNlKC9cXC5qc29uJC8sICcnKTtcbiAgICBjb25zdCB1bGlkID0gaWQucmVwbGFjZShyZXBsYWNlUmVnZXgsICcnKTtcbiAgICByZXR1cm4gdWxpZFRvRGF0ZSh1bGlkKTtcbiAgfTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-storage.d.ts","sourceRoot":"","sources":["../../src/storage/hooks-storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,OAAO,EACR,MAAM,iBAAiB,CAAC;AAczB;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAiFlB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAkBf"}
1
+ {"version":3,"file":"hooks-storage.d.ts","sourceRoot":"","sources":["../../src/storage/hooks-storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,OAAO,EACR,MAAM,iBAAiB,CAAC;AAczB;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAiFlB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -4,7 +4,7 @@ import { HookSchema } from '@workflow/world';
4
4
  import { DEFAULT_RESOLVE_DATA_OPTION } from '../config.js';
5
5
  import { assertSafeEntityId, deleteJSON, listJSONFiles, paginatedFileSystemQuery, readJSON, readJSONWithFallback, } from '../fs.js';
6
6
  import { filterHookData } from './filters.js';
7
- import { hashToken } from './helpers.js';
7
+ import { hashToken, hookRecoveryMarkerPath } from './helpers.js';
8
8
  /**
9
9
  * Creates a hooks storage implementation using the filesystem.
10
10
  * Implements the Storage['hooks'] interface with hook CRUD operations.
@@ -83,11 +83,17 @@ export async function deleteAllHooksForRun(basedir, runId) {
83
83
  const hookPath = path.join(hooksDir, `${file}.json`);
84
84
  const hook = await readJSON(hookPath, HookSchema);
85
85
  if (hook && hook.runId === runId) {
86
- // Delete the token constraint file to free up the token
86
+ // Delete the token constraint file to free up the token, and
87
+ // delete the recovery marker (if any) for disk hygiene. The
88
+ // marker's filename hash includes `(token, runId, hookId)` so
89
+ // a leaked marker can never corrupt a different lifetime — but
90
+ // cleaning it up here keeps the tokens/ directory from
91
+ // accumulating recovered-hook sidecars over time.
87
92
  const constraintPath = path.join(hooksDir, 'tokens', `${hashToken(hook.token)}.json`);
88
93
  await deleteJSON(constraintPath);
94
+ await deleteJSON(hookRecoveryMarkerPath(basedir, hook.token, hook.runId, hook.hookId));
89
95
  await deleteJSON(hookPath);
90
96
  }
91
97
  }
92
98
  }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3Mtc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL2hvb2tzLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBUXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0QsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixVQUFVLEVBQ1YsYUFBYSxFQUNiLHdCQUF3QixFQUN4QixRQUFRLEVBQ1Isb0JBQW9CLEdBQ3JCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6Qzs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE9BQWUsRUFDZixHQUFZO0lBRVosc0VBQXNFO0lBQ3RFLEtBQUssVUFBVSxlQUFlLENBQUMsS0FBYTtRQUMxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QyxNQUFNLEtBQUssR0FBRyxNQUFNLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQztZQUNyRCxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDbEQsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUss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LE9BQWUsRUFDZixLQUFhO0lBRWIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFNUMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksT0FBTyxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakMsd0RBQXdEO1lBQ3hELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQzlCLFFBQVEsRUFDUixRQUFRLEVBQ1IsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ2hDLENBQUM7WUFDRixNQUFNLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqQyxNQUFNLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgSG9va05vdEZvdW5kRXJyb3IgfSBmcm9tICdAd29ya2Zsb3cvZXJyb3JzJztcbmltcG9ydCB0eXBlIHtcbiAgR2V0SG9va1BhcmFtcyxcbiAgSG9vayxcbiAgTGlzdEhvb2tzUGFyYW1zLFxuICBQYWdpbmF0ZWRSZXNwb25zZSxcbiAgU3RvcmFnZSxcbn0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcbmltcG9ydCB7IEhvb2tTY2hlbWEgfSBmcm9tICdAd29ya2Zsb3cvd29ybGQnO1xuaW1wb3J0IHsgREVGQVVMVF9SRVNPTFZFX0RBVEFfT1BUSU9OIH0gZnJvbSAnLi4vY29uZmlnLmpzJztcbmltcG9ydCB7XG4gIGFzc2VydFNhZmVFbnRpdHlJZCxcbiAgZGVsZXRlSlNPTixcbiAgbGlzdEpTT05GaWxlcyxcbiAgcGFnaW5hdGVkRmlsZVN5c3RlbVF1ZXJ5LFxuICByZWFkSlNPTixcbiAgcmVhZEpTT05XaXRoRmFsbGJhY2ssXG59IGZyb20gJy4uL2ZzLmpzJztcbmltcG9ydCB7IGZpbHRlckhvb2tEYXRhIH0gZnJvbSAnLi9maWx0ZXJzLmpzJztcbmltcG9ydCB7IGhhc2hUb2tlbiB9IGZyb20gJy4vaGVscGVycy5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGhvb2tzIHN0b3JhZ2UgaW1wbGVtZW50YXRpb24gdXNpbmcgdGhlIGZpbGVzeXN0ZW0uXG4gKiBJbXBsZW1lbnRzIHRoZSBTdG9yYWdlWydob29rcyddIGludGVyZmFjZSB3aXRoIGhvb2sgQ1JVRCBvcGVyYXRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSG9va3NTdG9yYWdlKFxuICBiYXNlZGlyOiBzdHJpbmcsXG4gIHRhZz86IHN0cmluZ1xuKTogU3RvcmFnZVsnaG9va3MnXSB7XG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byBmaW5kIGEgaG9vayBieSB0b2tlbiAoc2hhcmVkIGJldHdlZW4gZ2V0QnlUb2tlbilcbiAgYXN5bmMgZnVuY3Rpb24gZmluZEhvb2tCeVRva2VuKHRva2VuOiBzdHJpbmcpOiBQcm9taXNlPEhvb2sgfCBudWxsPiB7XG4gICAgY29uc3QgaG9va3NEaXIgPSBwYXRoLmpvaW4oYmFzZWRpciwgJ2hvb2tzJyk7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCBsaXN0SlNPTkZpbGVzKGhvb2tzRGlyKTtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgY29uc3QgaG9va1BhdGggPSBwYXRoLmpvaW4oaG9va3NEaXIsIGAke2ZpbGV9Lmpzb25gKTtcbiAgICAgIGNvbnN0IGhvb2sgPSBhd2FpdCByZWFkSlNPTihob29rUGF0aCwgSG9va1NjaGVtYSk7XG4gICAgICBpZiAoaG9vayAmJiBob29rLnRva2VuID09PSB0b2tlbikge1xuICAgICAgICByZXR1cm4geyAuLi5ob29rLCBpc1dlYmhvb2s6IGhvb2suaXNXZWJob29rID8/IHRydWUgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGdldChob29rSWQ6IHN0cmluZywgcGFyYW1zPzogR2V0SG9va1BhcmFtcyk6IFByb21pc2U8SG9vaz4ge1xuICAgIGFzc2VydFNhZmVFbnRpdHlJZCgnaG9va0lkJywgaG9va0lkKTtcbiAgICBjb25zdCBob29rID0gYXdhaXQgcmVhZEpTT05XaXRoRmFsbGJhY2soXG4gICAgICBiYXNlZGlyLFxuICAgICAgJ2hvb2tzJyxcbiAgICAgIGhvb2tJZCxcbiAgICAgIEhvb2tTY2hlbWEsXG4gICAgICB0YWdcbiAgICApO1xuICAgIGlmICghaG9vaykge1xuICAgICAgdGhyb3cgbmV3IEhvb2tOb3RGb3VuZEVycm9yKGhvb2tJZCk7XG4gICAgfVxuICAgIGNvbnN0IHJlc29sdmVEYXRhID0gcGFyYW1zPy5yZXNvbHZlRGF0YSB8fCBERUZBVUxUX1JFU09MVkVfREFUQV9PUFRJT047XG4gICAgcmV0dXJuIGZpbHRlckhvb2tEYXRhKFxuICAgICAgeyAuLi5ob29rLCBpc1dlYmhvb2s6IGhvb2suaXNXZWJob29rID8/IHRydWUgfSxcbiAgICAgIHJlc29sdmVEYXRhXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGdldEJ5VG9rZW4odG9rZW46IHN0cmluZyk6IFByb21pc2U8SG9vaz4ge1xuICAgIGNvbnN0IGhvb2sgPSBhd2FpdCBmaW5kSG9va0J5VG9rZW4odG9rZW4pO1xuICAgIGlmICghaG9vaykge1xuICAgICAgdGhyb3cgbmV3IEhvb2tOb3RGb3VuZEVycm9yKHRva2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIGhvb2s7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBsaXN0KFxuICAgIHBhcmFtczogTGlzdEhvb2tzUGFyYW1zXG4gICk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8SG9vaz4+IHtcbiAgICBjb25zdCBob29rc0RpciA9IHBhdGguam9pbihiYXNlZGlyLCAnaG9va3MnKTtcbiAgICBjb25zdCByZXNvbHZlRGF0YSA9IHBhcmFtcy5yZXNvbHZlRGF0YSB8fCBERUZBVUxUX1JFU09MVkVfREFUQV9PUFRJT047XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYWdpbmF0ZWRGaWxlU3lzdGVtUXVlcnkoe1xuICAgICAgZGlyZWN0b3J5OiBob29rc0RpcixcbiAgICAgIHNjaGVtYTogSG9va1NjaGVtYSxcbiAgICAgIHNvcnRPcmRlcjogcGFyYW1zLnBhZ2luYXRpb24/LnNvcnRPcmRlciA/PyAnYXNjJyxcbiAgICAgIGxpbWl0OiBwYXJhbXMucGFnaW5hdGlvbj8ubGltaXQsXG4gICAgICBjdXJzb3I6IHBhcmFtcy5wYWdpbmF0aW9uPy5jdXJzb3IsXG4gICAgICBmaWxlUHJlZml4OiB1bmRlZmluZWQsIC8vIEhvb2tzIGRvbid0IGhhdmUgVUxJRHMsIHNvIHdlIGNhbid0IG9wdGltaXplIGJ5IGZpbGVuYW1lXG4gICAgICBmaWx0ZXI6IChob29rKSA9PiB7XG4gICAgICAgIC8vIEZpbHRlciBieSBydW5JZCBpZiBwcm92aWRlZFxuICAgICAgICBpZiAocGFyYW1zLnJ1bklkICYmIGhvb2sucnVuSWQgIT09IHBhcmFtcy5ydW5JZCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICBnZXRDcmVhdGVkQXQ6ICgpID0+IHtcbiAgICAgICAgLy8gSG9vayBmaWxlcyBkb24ndCBoYXZlIFVMSUQgdGltZXN0YW1wcyBpbiBmaWxlbmFtZSwgc28gcmV0dXJuIG51bGxcbiAgICAgICAgLy8gdG8gc2tpcCB0aGUgZmlsZW5hbWUtYmFzZWQgb3B0aW1pemF0aW9uIGFuZCBkZWZlciB0byBKU09OLWJhc2VkXG4gICAgICAgIC8vIGN1cnNvciBmaWx0ZXJpbmcgd2hpY2ggdXNlcyB0aGUgYWN0dWFsIGNyZWF0ZWRBdCBmcm9tIHRoZSBmaWxlLlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0sXG4gICAgICBnZXRJZDogKGhvb2spID0+IGhvb2suaG9va0lkLFxuICAgIH0pO1xuXG4gICAgLy8gVHJhbnNmb3JtIHRoZSBkYXRhIGFmdGVyIHBhZ2luYXRpb25cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzdWx0LFxuICAgICAgZGF0YTogcmVzdWx0LmRhdGEubWFwKChob29rKSA9PiBmaWx0ZXJIb29rRGF0YShob29rLCByZXNvbHZlRGF0YSkpLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4geyBnZXQsIGdldEJ5VG9rZW4sIGxpc3QgfTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZGVsZXRlIGFsbCBob29rcyBhc3NvY2lhdGVkIHdpdGggYSB3b3JrZmxvdyBydW4uXG4gKiBDYWxsZWQgd2hlbiBhIHJ1biByZWFjaGVzIGEgdGVybWluYWwgc3RhdGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVBbGxIb29rc0ZvclJ1bihcbiAgYmFzZWRpcjogc3RyaW5nLFxuICBydW5JZDogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgaG9va3NEaXIgPSBwYXRoLmpvaW4oYmFzZWRpciwgJ2hvb2tzJyk7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgbGlzdEpTT05GaWxlcyhob29rc0Rpcik7XG5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc3QgaG9va1BhdGggPSBwYXRoLmpvaW4oaG9va3NEaXIsIGAke2ZpbGV9Lmpzb25gKTtcbiAgICBjb25zdCBob29rID0gYXdhaXQgcmVhZEpTT04oaG9va1BhdGgsIEhvb2tTY2hlbWEpO1xuICAgIGlmIChob29rICYmIGhvb2sucnVuSWQgPT09IHJ1bklkKSB7XG4gICAgICAvLyBEZWxldGUgdGhlIHRva2VuIGNvbnN0cmFpbnQgZmlsZSB0byBmcmVlIHVwIHRoZSB0b2tlblxuICAgICAgY29uc3QgY29uc3RyYWludFBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgIGhvb2tzRGlyLFxuICAgICAgICAndG9rZW5zJyxcbiAgICAgICAgYCR7aGFzaFRva2VuKGhvb2sudG9rZW4pfS5qc29uYFxuICAgICAgKTtcbiAgICAgIGF3YWl0IGRlbGV0ZUpTT04oY29uc3RyYWludFBhdGgpO1xuICAgICAgYXdhaXQgZGVsZXRlSlNPTihob29rUGF0aCk7XG4gICAgfVxuICB9XG59XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3Mtc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL2hvb2tzLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBUXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0QsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixVQUFVLEVBQ1YsYUFBYSxFQUNiLHdCQUF3QixFQUN4QixRQUFRLEVBQ1Isb0JBQW9CLEdBQ3JCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVqRTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE9BQWUsRUFDZixHQUFZO0lBRVosc0VBQXNFO0lBQ3RFLEtBQUssVUFBVSxlQUFlLENBQUMsS0FBYTtRQUMxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QyxNQUFNLEtBQUssR0FBRyxNQUFNLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQztZQUNyRCxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDbEQsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3hELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxVQUFVLEdBQUcsQ0FBQyxNQUFjLEVBQUUsTUFBc0I7UUFDdkQsa0JBQWtCLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLE1BQU0sb0JBQW9CLENBQ3JDLE9BQU8sRUFDUCxPQUFPLEVBQ1AsTUFBTSxFQUNOLFVBQVUsRUFDVixHQUFHLENBQ0osQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxFQUFFLFdBQVcsSUFBSSwyQkFBMkIsQ0FBQztRQUN2RSxPQUFPLGNBQWMsQ0FDbkIsRUFBRSxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsRUFDOUMsV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxVQUFVLFVBQVUsQ0FBQyxLQUFhO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLE1BQU0sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxVQUFVLElBQUksQ0FDakIsTUFBdUI7UUFFdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0MsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSwyQkFBMkIsQ0FBQztRQUV0RSxNQUFNLE1BQU0sR0FBRyxNQUFNLHdCQUF3QixDQUFDO1lBQzVDLFNBQVMsRUFBRSxRQUFRO1lBQ25CLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLFNBQVMsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLFNBQVMsSUFBSSxLQUFLO1lBQ2hELEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUs7WUFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTTtZQUNqQyxVQUFVLEVBQUUsU0FBUyxFQUFFLDJEQUEyRDtZQUNsRixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDZiw4QkFBOEI7Z0JBQzlCLElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDaEQsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxZQUFZLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixvRUFBb0U7Z0JBQ3BFLGtFQUFrRTtnQkFDbEUsa0VBQWtFO2dCQUNsRSxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNO1NBQzdCLENBQUMsQ0FBQztRQUVILHNDQUFzQztRQUN0QyxPQUFPO1lBQ0wsR0FBRyxNQUFNO1lBQ1QsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDbkMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsb0JBQW9CLENBQ3hDLE9BQWUsRUFDZixLQUFhO0lBRWIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFNUMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksT0FBTyxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakMsNkRBQTZEO1lBQzdELDREQUE0RDtZQUM1RCw4REFBOEQ7WUFDOUQsK0RBQStEO1lBQy9ELHVEQUF1RDtZQUN2RCxrREFBa0Q7WUFDbEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDOUIsUUFBUSxFQUNSLFFBQVEsRUFDUixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDaEMsQ0FBQztZQUNGLE1BQU0sVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sVUFBVSxDQUNkLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUNyRSxDQUFDO1lBQ0YsTUFBTSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IEhvb2tOb3RGb3VuZEVycm9yIH0gZnJvbSAnQHdvcmtmbG93L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7XG4gIEdldEhvb2tQYXJhbXMsXG4gIEhvb2ssXG4gIExpc3RIb29rc1BhcmFtcyxcbiAgUGFnaW5hdGVkUmVzcG9uc2UsXG4gIFN0b3JhZ2UsXG59IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5pbXBvcnQgeyBIb29rU2NoZW1hIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcbmltcG9ydCB7IERFRkFVTFRfUkVTT0xWRV9EQVRBX09QVElPTiB9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5pbXBvcnQge1xuICBhc3NlcnRTYWZlRW50aXR5SWQsXG4gIGRlbGV0ZUpTT04sXG4gIGxpc3RKU09ORmlsZXMsXG4gIHBhZ2luYXRlZEZpbGVTeXN0ZW1RdWVyeSxcbiAgcmVhZEpTT04sXG4gIHJlYWRKU09OV2l0aEZhbGxiYWNrLFxufSBmcm9tICcuLi9mcy5qcyc7XG5pbXBvcnQgeyBmaWx0ZXJIb29rRGF0YSB9IGZyb20gJy4vZmlsdGVycy5qcyc7XG5pbXBvcnQgeyBoYXNoVG9rZW4sIGhvb2tSZWNvdmVyeU1hcmtlclBhdGggfSBmcm9tICcuL2hlbHBlcnMuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBob29rcyBzdG9yYWdlIGltcGxlbWVudGF0aW9uIHVzaW5nIHRoZSBmaWxlc3lzdGVtLlxuICogSW1wbGVtZW50cyB0aGUgU3RvcmFnZVsnaG9va3MnXSBpbnRlcmZhY2Ugd2l0aCBob29rIENSVUQgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhvb2tzU3RvcmFnZShcbiAgYmFzZWRpcjogc3RyaW5nLFxuICB0YWc/OiBzdHJpbmdcbik6IFN0b3JhZ2VbJ2hvb2tzJ10ge1xuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZmluZCBhIGhvb2sgYnkgdG9rZW4gKHNoYXJlZCBiZXR3ZWVuIGdldEJ5VG9rZW4pXG4gIGFzeW5jIGZ1bmN0aW9uIGZpbmRIb29rQnlUb2tlbih0b2tlbjogc3RyaW5nKTogUHJvbWlzZTxIb29rIHwgbnVsbD4ge1xuICAgIGNvbnN0IGhvb2tzRGlyID0gcGF0aC5qb2luKGJhc2VkaXIsICdob29rcycpO1xuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgbGlzdEpTT05GaWxlcyhob29rc0Rpcik7XG5cbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgIGNvbnN0IGhvb2tQYXRoID0gcGF0aC5qb2luKGhvb2tzRGlyLCBgJHtmaWxlfS5qc29uYCk7XG4gICAgICBjb25zdCBob29rID0gYXdhaXQgcmVhZEpTT04oaG9va1BhdGgsIEhvb2tTY2hlbWEpO1xuICAgICAgaWYgKGhvb2sgJiYgaG9vay50b2tlbiA9PT0gdG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uaG9vaywgaXNXZWJob29rOiBob29rLmlzV2ViaG9vayA/PyB0cnVlIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBnZXQoaG9va0lkOiBzdHJpbmcsIHBhcmFtcz86IEdldEhvb2tQYXJhbXMpOiBQcm9taXNlPEhvb2s+IHtcbiAgICBhc3NlcnRTYWZlRW50aXR5SWQoJ2hvb2tJZCcsIGhvb2tJZCk7XG4gICAgY29uc3QgaG9vayA9IGF3YWl0IHJlYWRKU09OV2l0aEZhbGxiYWNrKFxuICAgICAgYmFzZWRpcixcbiAgICAgICdob29rcycsXG4gICAgICBob29rSWQsXG4gICAgICBIb29rU2NoZW1hLFxuICAgICAgdGFnXG4gICAgKTtcbiAgICBpZiAoIWhvb2spIHtcbiAgICAgIHRocm93IG5ldyBIb29rTm90Rm91bmRFcnJvcihob29rSWQpO1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlRGF0YSA9IHBhcmFtcz8ucmVzb2x2ZURhdGEgfHwgREVGQVVMVF9SRVNPTFZFX0RBVEFfT1BUSU9OO1xuICAgIHJldHVybiBmaWx0ZXJIb29rRGF0YShcbiAgICAgIHsgLi4uaG9vaywgaXNXZWJob29rOiBob29rLmlzV2ViaG9vayA/PyB0cnVlIH0sXG4gICAgICByZXNvbHZlRGF0YVxuICAgICk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBnZXRCeVRva2VuKHRva2VuOiBzdHJpbmcpOiBQcm9taXNlPEhvb2s+IHtcbiAgICBjb25zdCBob29rID0gYXdhaXQgZmluZEhvb2tCeVRva2VuKHRva2VuKTtcbiAgICBpZiAoIWhvb2spIHtcbiAgICAgIHRocm93IG5ldyBIb29rTm90Rm91bmRFcnJvcih0b2tlbik7XG4gICAgfVxuICAgIHJldHVybiBob29rO1xuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gbGlzdChcbiAgICBwYXJhbXM6IExpc3RIb29rc1BhcmFtc1xuICApOiBQcm9taXNlPFBhZ2luYXRlZFJlc3BvbnNlPEhvb2s+PiB7XG4gICAgY29uc3QgaG9va3NEaXIgPSBwYXRoLmpvaW4oYmFzZWRpciwgJ2hvb2tzJyk7XG4gICAgY29uc3QgcmVzb2x2ZURhdGEgPSBwYXJhbXMucmVzb2x2ZURhdGEgfHwgREVGQVVMVF9SRVNPTFZFX0RBVEFfT1BUSU9OO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcGFnaW5hdGVkRmlsZVN5c3RlbVF1ZXJ5KHtcbiAgICAgIGRpcmVjdG9yeTogaG9va3NEaXIsXG4gICAgICBzY2hlbWE6IEhvb2tTY2hlbWEsXG4gICAgICBzb3J0T3JkZXI6IHBhcmFtcy5wYWdpbmF0aW9uPy5zb3J0T3JkZXIgPz8gJ2FzYycsXG4gICAgICBsaW1pdDogcGFyYW1zLnBhZ2luYXRpb24/LmxpbWl0LFxuICAgICAgY3Vyc29yOiBwYXJhbXMucGFnaW5hdGlvbj8uY3Vyc29yLFxuICAgICAgZmlsZVByZWZpeDogdW5kZWZpbmVkLCAvLyBIb29rcyBkb24ndCBoYXZlIFVMSURzLCBzbyB3ZSBjYW4ndCBvcHRpbWl6ZSBieSBmaWxlbmFtZVxuICAgICAgZmlsdGVyOiAoaG9vaykgPT4ge1xuICAgICAgICAvLyBGaWx0ZXIgYnkgcnVuSWQgaWYgcHJvdmlkZWRcbiAgICAgICAgaWYgKHBhcmFtcy5ydW5JZCAmJiBob29rLnJ1bklkICE9PSBwYXJhbXMucnVuSWQpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgICAgZ2V0Q3JlYXRlZEF0OiAoKSA9PiB7XG4gICAgICAgIC8vIEhvb2sgZmlsZXMgZG9uJ3QgaGF2ZSBVTElEIHRpbWVzdGFtcHMgaW4gZmlsZW5hbWUsIHNvIHJldHVybiBudWxsXG4gICAgICAgIC8vIHRvIHNraXAgdGhlIGZpbGVuYW1lLWJhc2VkIG9wdGltaXphdGlvbiBhbmQgZGVmZXIgdG8gSlNPTi1iYXNlZFxuICAgICAgICAvLyBjdXJzb3IgZmlsdGVyaW5nIHdoaWNoIHVzZXMgdGhlIGFjdHVhbCBjcmVhdGVkQXQgZnJvbSB0aGUgZmlsZS5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9LFxuICAgICAgZ2V0SWQ6IChob29rKSA9PiBob29rLmhvb2tJZCxcbiAgICB9KTtcblxuICAgIC8vIFRyYW5zZm9ybSB0aGUgZGF0YSBhZnRlciBwYWdpbmF0aW9uXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlc3VsdCxcbiAgICAgIGRhdGE6IHJlc3VsdC5kYXRhLm1hcCgoaG9vaykgPT4gZmlsdGVySG9va0RhdGEoaG9vaywgcmVzb2x2ZURhdGEpKSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHsgZ2V0LCBnZXRCeVRva2VuLCBsaXN0IH07XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGRlbGV0ZSBhbGwgaG9va3MgYXNzb2NpYXRlZCB3aXRoIGEgd29ya2Zsb3cgcnVuLlxuICogQ2FsbGVkIHdoZW4gYSBydW4gcmVhY2hlcyBhIHRlcm1pbmFsIHN0YXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlQWxsSG9va3NGb3JSdW4oXG4gIGJhc2VkaXI6IHN0cmluZyxcbiAgcnVuSWQ6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGhvb2tzRGlyID0gcGF0aC5qb2luKGJhc2VkaXIsICdob29rcycpO1xuICBjb25zdCBmaWxlcyA9IGF3YWl0IGxpc3RKU09ORmlsZXMoaG9va3NEaXIpO1xuXG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGNvbnN0IGhvb2tQYXRoID0gcGF0aC5qb2luKGhvb2tzRGlyLCBgJHtmaWxlfS5qc29uYCk7XG4gICAgY29uc3QgaG9vayA9IGF3YWl0IHJlYWRKU09OKGhvb2tQYXRoLCBIb29rU2NoZW1hKTtcbiAgICBpZiAoaG9vayAmJiBob29rLnJ1bklkID09PSBydW5JZCkge1xuICAgICAgLy8gRGVsZXRlIHRoZSB0b2tlbiBjb25zdHJhaW50IGZpbGUgdG8gZnJlZSB1cCB0aGUgdG9rZW4sIGFuZFxuICAgICAgLy8gZGVsZXRlIHRoZSByZWNvdmVyeSBtYXJrZXIgKGlmIGFueSkgZm9yIGRpc2sgaHlnaWVuZS4gVGhlXG4gICAgICAvLyBtYXJrZXIncyBmaWxlbmFtZSBoYXNoIGluY2x1ZGVzIGAodG9rZW4sIHJ1bklkLCBob29rSWQpYCBzb1xuICAgICAgLy8gYSBsZWFrZWQgbWFya2VyIGNhbiBuZXZlciBjb3JydXB0IGEgZGlmZmVyZW50IGxpZmV0aW1lIOKAlCBidXRcbiAgICAgIC8vIGNsZWFuaW5nIGl0IHVwIGhlcmUga2VlcHMgdGhlIHRva2Vucy8gZGlyZWN0b3J5IGZyb21cbiAgICAgIC8vIGFjY3VtdWxhdGluZyByZWNvdmVyZWQtaG9vayBzaWRlY2FycyBvdmVyIHRpbWUuXG4gICAgICBjb25zdCBjb25zdHJhaW50UGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgaG9va3NEaXIsXG4gICAgICAgICd0b2tlbnMnLFxuICAgICAgICBgJHtoYXNoVG9rZW4oaG9vay50b2tlbil9Lmpzb25gXG4gICAgICApO1xuICAgICAgYXdhaXQgZGVsZXRlSlNPTihjb25zdHJhaW50UGF0aCk7XG4gICAgICBhd2FpdCBkZWxldGVKU09OKFxuICAgICAgICBob29rUmVjb3ZlcnlNYXJrZXJQYXRoKGJhc2VkaXIsIGhvb2sudG9rZW4sIGhvb2sucnVuSWQsIGhvb2suaG9va0lkKVxuICAgICAgKTtcbiAgICAgIGF3YWl0IGRlbGV0ZUpTT04oaG9va1BhdGgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -11,6 +11,7 @@ export declare function createRun(storage: Storage, data: {
11
11
  workflowName: string;
12
12
  input: SerializedData;
13
13
  executionContext?: Record<string, unknown>;
14
+ attributes?: Record<string, string>;
14
15
  }): Promise<WorkflowRun>;
15
16
  /**
16
17
  * Update a workflow run's status through lifecycle events.
@@ -1 +1 @@
1
- {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../src/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAGzB;;;GAGG;AAEH;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE;IACJ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C,GACA,OAAO,CAAC,WAAW,CAAC,CAUtB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,aAAa,GAAG,eAAe,GAAG,YAAY,GAAG,eAAe,EAC3E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,WAAW,CAAC,CAUtB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,cAAc,CAAC;CACvB,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EACL,cAAc,GACd,gBAAgB,GAChB,aAAa,GACb,eAAe,EACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;CAChB,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../src/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAGzB;;;GAGG;AAEH;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE;IACJ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,GACA,OAAO,CAAC,WAAW,CAAC,CAUtB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,aAAa,GAAG,eAAe,GAAG,YAAY,GAAG,eAAe,EAC3E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,WAAW,CAAC,CAUtB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,cAAc,CAAC;CACvB,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EACL,cAAc,GACd,gBAAgB,GAChB,aAAa,GACb,eAAe,EACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;CAChB,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -115,4 +115,4 @@ export async function completeWait(storage, runId, waitId) {
115
115
  }
116
116
  return result.wait;
117
117
  }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3QtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RDs7O0dBR0c7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsU0FBUyxDQUM3QixPQUFnQixFQUNoQixJQUtDO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDL0MsU0FBUyxFQUFFLGFBQWE7UUFDeEIsV0FBVyxFQUFFLG9CQUFvQjtRQUNqQyxTQUFTLEVBQUUsSUFBSTtLQUNoQixDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsU0FBUyxDQUM3QixPQUFnQixFQUNoQixLQUFhLEVBQ2IsU0FBMkUsRUFDM0UsU0FBbUM7SUFFbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDaEQsU0FBUztRQUNULFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsU0FBUztLQUNILENBQUMsQ0FBQztJQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDcEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBQzlCLE9BQWdCLEVBQ2hCLEtBQWEsRUFDYixJQUlDO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDaEQsU0FBUyxFQUFFLGNBQWM7UUFDekIsV0FBVyxFQUFFLG9CQUFvQjtRQUNqQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDMUIsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUU7S0FDMUQsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FDOUIsT0FBZ0IsRUFDaEIsS0FBYSxFQUNiLE1BQWMsRUFDZCxTQUltQixFQUNuQixTQUFtQztJQUVuQyxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNoRCxTQUFTO1FBQ1QsV0FBVyxFQUFFLG9CQUFvQjtRQUNqQyxhQUFhLEVBQUUsTUFBTTtRQUNyQixTQUFTO0tBQ0gsQ0FBQyxDQUFDO0lBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FDOUIsT0FBZ0IsRUFDaEIsS0FBYSxFQUNiLElBSUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNoRCxTQUFTLEVBQUUsY0FBYztRQUN6QixXQUFXLEVBQUUsb0JBQW9CO1FBQ2pDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTTtRQUMxQixTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtLQUMxRCxDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3JCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixPQUFnQixFQUNoQixLQUFhLEVBQ2IsTUFBYztJQUVkLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2pDLFNBQVMsRUFBRSxlQUFlO1FBQzFCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsYUFBYSxFQUFFLE1BQU07S0FDdEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBQzlCLE9BQWdCLEVBQ2hCLEtBQWEsRUFDYixJQUdDO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDaEQsU0FBUyxFQUFFLGNBQWM7UUFDekIsV0FBVyxFQUFFLG9CQUFvQjtRQUNqQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDMUIsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7S0FDdkMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FDaEMsT0FBZ0IsRUFDaEIsS0FBYSxFQUNiLE1BQWM7SUFFZCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNoRCxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsYUFBYSxFQUFFLE1BQU07S0FDdEIsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBIb29rLFxuICBTZXJpYWxpemVkRGF0YSxcbiAgU3RlcCxcbiAgU3RvcmFnZSxcbiAgV2FpdCxcbiAgV29ya2Zsb3dSdW4sXG59IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5pbXBvcnQgeyBTUEVDX1ZFUlNJT05fQ1VSUkVOVCB9IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5cbi8qKlxuICogVGVzdCBoZWxwZXIgZnVuY3Rpb25zIGZvciBjcmVhdGluZyBhbmQgdXBkYXRpbmcgc3RvcmFnZSBlbnRpdGllcyB0aHJvdWdoIGV2ZW50cy5cbiAqIFRoZXNlIGhlbHBlcnMgc2ltcGxpZnkgdGVzdCBzZXR1cCBieSBwcm92aWRpbmcgYSBjb252ZW5pZW50IEFQSSBmb3IgY29tbW9uIG9wZXJhdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgd29ya2Zsb3cgcnVuIHRocm91Z2ggdGhlIHJ1bl9jcmVhdGVkIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUnVuKFxuICBzdG9yYWdlOiBTdG9yYWdlLFxuICBkYXRhOiB7XG4gICAgZGVwbG95bWVudElkOiBzdHJpbmc7XG4gICAgd29ya2Zsb3dOYW1lOiBzdHJpbmc7XG4gICAgaW5wdXQ6IFNlcmlhbGl6ZWREYXRhO1xuICAgIGV4ZWN1dGlvbkNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfVxuKTogUHJvbWlzZTxXb3JrZmxvd1J1bj4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdG9yYWdlLmV2ZW50cy5jcmVhdGUobnVsbCwge1xuICAgIGV2ZW50VHlwZTogJ3J1bl9jcmVhdGVkJyxcbiAgICBzcGVjVmVyc2lvbjogU1BFQ19WRVJTSU9OX0NVUlJFTlQsXG4gICAgZXZlbnREYXRhOiBkYXRhLFxuICB9KTtcbiAgaWYgKCFyZXN1bHQucnVuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBydW4gdG8gYmUgY3JlYXRlZCcpO1xuICB9XG4gIHJldHVybiByZXN1bHQucnVuO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhIHdvcmtmbG93IHJ1bidzIHN0YXR1cyB0aHJvdWdoIGxpZmVjeWNsZSBldmVudHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVSdW4oXG4gIHN0b3JhZ2U6IFN0b3JhZ2UsXG4gIHJ1bklkOiBzdHJpbmcsXG4gIGV2ZW50VHlwZTogJ3J1bl9zdGFydGVkJyB8ICdydW5fY29tcGxldGVkJyB8ICdydW5fZmFpbGVkJyB8ICdydW5fY2FuY2VsbGVkJyxcbiAgZXZlbnREYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbik6IFByb21pc2U8V29ya2Zsb3dSdW4+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RvcmFnZS5ldmVudHMuY3JlYXRlKHJ1bklkLCB7XG4gICAgZXZlbnRUeXBlLFxuICAgIHNwZWNWZXJzaW9uOiBTUEVDX1ZFUlNJT05fQ1VSUkVOVCxcbiAgICBldmVudERhdGEsXG4gIH0gYXMgYW55KTtcbiAgaWYgKCFyZXN1bHQucnVuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBydW4gdG8gYmUgdXBkYXRlZCcpO1xuICB9XG4gIHJldHVybiByZXN1bHQucnVuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBzdGVwIHRocm91Z2ggdGhlIHN0ZXBfY3JlYXRlZCBldmVudC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVN0ZXAoXG4gIHN0b3JhZ2U6IFN0b3JhZ2UsXG4gIHJ1bklkOiBzdHJpbmcsXG4gIGRhdGE6IHtcbiAgICBzdGVwSWQ6IHN0cmluZztcbiAgICBzdGVwTmFtZTogc3RyaW5nO1xuICAgIGlucHV0OiBTZXJpYWxpemVkRGF0YTtcbiAgfVxuKTogUHJvbWlzZTxTdGVwPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UuZXZlbnRzLmNyZWF0ZShydW5JZCwge1xuICAgIGV2ZW50VHlwZTogJ3N0ZXBfY3JlYXRlZCcsXG4gICAgc3BlY1ZlcnNpb246IFNQRUNfVkVSU0lPTl9DVVJSRU5ULFxuICAgIGNvcnJlbGF0aW9uSWQ6IGRhdGEuc3RlcElkLFxuICAgIGV2ZW50RGF0YTogeyBzdGVwTmFtZTogZGF0YS5zdGVwTmFtZSwgaW5wdXQ6IGRhdGEuaW5wdXQgfSxcbiAgfSk7XG4gIGlmICghcmVzdWx0LnN0ZXApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHN0ZXAgdG8gYmUgY3JlYXRlZCcpO1xuICB9XG4gIHJldHVybiByZXN1bHQuc3RlcDtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBzdGVwJ3Mgc3RhdHVzIHRocm91Z2ggbGlmZWN5Y2xlIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVN0ZXAoXG4gIHN0b3JhZ2U6IFN0b3JhZ2UsXG4gIHJ1bklkOiBzdHJpbmcsXG4gIHN0ZXBJZDogc3RyaW5nLFxuICBldmVudFR5cGU6XG4gICAgfCAnc3RlcF9zdGFydGVkJ1xuICAgIHwgJ3N0ZXBfY29tcGxldGVkJ1xuICAgIHwgJ3N0ZXBfZmFpbGVkJ1xuICAgIHwgJ3N0ZXBfcmV0cnlpbmcnLFxuICBldmVudERhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuKTogUHJvbWlzZTxTdGVwPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UuZXZlbnRzLmNyZWF0ZShydW5JZCwge1xuICAgIGV2ZW50VHlwZSxcbiAgICBzcGVjVmVyc2lvbjogU1BFQ19WRVJTSU9OX0NVUlJFTlQsXG4gICAgY29ycmVsYXRpb25JZDogc3RlcElkLFxuICAgIGV2ZW50RGF0YSxcbiAgfSBhcyBhbnkpO1xuICBpZiAoIXJlc3VsdC5zdGVwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBzdGVwIHRvIGJlIHVwZGF0ZWQnKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LnN0ZXA7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGhvb2sgdGhyb3VnaCB0aGUgaG9va19jcmVhdGVkIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlSG9vayhcbiAgc3RvcmFnZTogU3RvcmFnZSxcbiAgcnVuSWQ6IHN0cmluZyxcbiAgZGF0YToge1xuICAgIGhvb2tJZDogc3RyaW5nO1xuICAgIHRva2VuOiBzdHJpbmc7XG4gICAgbWV0YWRhdGE/OiBTZXJpYWxpemVkRGF0YTtcbiAgfVxuKTogUHJvbWlzZTxIb29rPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UuZXZlbnRzLmNyZWF0ZShydW5JZCwge1xuICAgIGV2ZW50VHlwZTogJ2hvb2tfY3JlYXRlZCcsXG4gICAgc3BlY1ZlcnNpb246IFNQRUNfVkVSU0lPTl9DVVJSRU5ULFxuICAgIGNvcnJlbGF0aW9uSWQ6IGRhdGEuaG9va0lkLFxuICAgIGV2ZW50RGF0YTogeyB0b2tlbjogZGF0YS50b2tlbiwgbWV0YWRhdGE6IGRhdGEubWV0YWRhdGEgfSxcbiAgfSk7XG4gIGlmICghcmVzdWx0Lmhvb2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGhvb2sgdG8gYmUgY3JlYXRlZCcpO1xuICB9XG4gIHJldHVybiByZXN1bHQuaG9vaztcbn1cblxuLyoqXG4gKiBEaXNwb3NlIGEgaG9vayB0aHJvdWdoIHRoZSBob29rX2Rpc3Bvc2VkIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGlzcG9zZUhvb2soXG4gIHN0b3JhZ2U6IFN0b3JhZ2UsXG4gIHJ1bklkOiBzdHJpbmcsXG4gIGhvb2tJZDogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgc3RvcmFnZS5ldmVudHMuY3JlYXRlKHJ1bklkLCB7XG4gICAgZXZlbnRUeXBlOiAnaG9va19kaXNwb3NlZCcsXG4gICAgc3BlY1ZlcnNpb246IFNQRUNfVkVSU0lPTl9DVVJSRU5ULFxuICAgIGNvcnJlbGF0aW9uSWQ6IGhvb2tJZCxcbiAgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IHdhaXQgdGhyb3VnaCB0aGUgd2FpdF9jcmVhdGVkIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlV2FpdChcbiAgc3RvcmFnZTogU3RvcmFnZSxcbiAgcnVuSWQ6IHN0cmluZyxcbiAgZGF0YToge1xuICAgIHdhaXRJZDogc3RyaW5nO1xuICAgIHJlc3VtZUF0OiBEYXRlO1xuICB9XG4pOiBQcm9taXNlPFdhaXQ+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RvcmFnZS5ldmVudHMuY3JlYXRlKHJ1bklkLCB7XG4gICAgZXZlbnRUeXBlOiAnd2FpdF9jcmVhdGVkJyxcbiAgICBzcGVjVmVyc2lvbjogU1BFQ19WRVJTSU9OX0NVUlJFTlQsXG4gICAgY29ycmVsYXRpb25JZDogZGF0YS53YWl0SWQsXG4gICAgZXZlbnREYXRhOiB7IHJlc3VtZUF0OiBkYXRhLnJlc3VtZUF0IH0sXG4gIH0pO1xuICBpZiAoIXJlc3VsdC53YWl0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB3YWl0IHRvIGJlIGNyZWF0ZWQnKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LndhaXQ7XG59XG5cbi8qKlxuICogQ29tcGxldGUgYSB3YWl0IHRocm91Z2ggdGhlIHdhaXRfY29tcGxldGVkIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29tcGxldGVXYWl0KFxuICBzdG9yYWdlOiBTdG9yYWdlLFxuICBydW5JZDogc3RyaW5nLFxuICB3YWl0SWQ6IHN0cmluZ1xuKTogUHJvbWlzZTxXYWl0PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UuZXZlbnRzLmNyZWF0ZShydW5JZCwge1xuICAgIGV2ZW50VHlwZTogJ3dhaXRfY29tcGxldGVkJyxcbiAgICBzcGVjVmVyc2lvbjogU1BFQ19WRVJTSU9OX0NVUlJFTlQsXG4gICAgY29ycmVsYXRpb25JZDogd2FpdElkLFxuICB9KTtcbiAgaWYgKCFyZXN1bHQud2FpdCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgd2FpdCB0byBiZSBjb21wbGV0ZWQnKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LndhaXQ7XG59XG4iXX0=
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3QtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RDs7O0dBR0c7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsU0FBUyxDQUM3QixPQUFnQixFQUNoQixJQU1DO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDL0MsU0FBUyxFQUFFLGFBQWE7UUFDeEIsV0FBVyxFQUFFLG9CQUFvQjtRQUNqQyxTQUFTLEVBQUUsSUFBSTtLQUNoQixDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsU0FBUyxDQUM3QixPQUFnQixFQUNoQixLQUFhLEVBQ2IsU0FBMkUsRUFDM0UsU0FBbUM7SUFFbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDaEQsU0FBUztRQUNULFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsU0FBUztLQUNILENBQUMsQ0FBQztJQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDcEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxV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QixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FDaEMsT0FBZ0IsRUFDaEIsS0FBYSxFQUNiLE1BQWM7SUFFZCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNoRCxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsYUFBYSxFQUFFLE1BQU07S0FDdEIsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBIb29rLFxuICBTZXJpYWxpemVkRGF0YSxcbiAgU3RlcCxcbiAgU3RvcmFnZSxcbiAgV2FpdCxcbiAgV29ya2Zsb3dSdW4sXG59IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5pbXBvcnQgeyBTUEVDX1ZFUlNJT05fQ1VSUkVOVCB9IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5cbi8qKlxuICogVGVzdCBoZWxwZXIgZnVuY3Rpb25zIGZvciBjcmVhdGluZyBhbmQgdXBkYXRpbmcgc3RvcmFnZSBlbnRpdGllcyB0aHJvdWdoIGV2ZW50cy5cbiAqIFRoZXNlIGhlbHBlcnMgc2ltcGxpZnkgdGVzdCBzZXR1cCBieSBwcm92aWRpbmcgYSBjb252ZW5pZW50IEFQSSBmb3IgY29tbW9uIG9wZXJhdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgd29ya2Zsb3cgcnVuIHRocm91Z2ggdGhlIHJ1bl9jcmVhdGVkIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUnVuKFxuICBzdG9yYWdlOiBTdG9yYWdlLFxuICBkYXRhOiB7XG4gICAgZGVwbG95bWVudElkOiBzdHJpbmc7XG4gICAgd29ya2Zsb3dOYW1lOiBzdHJpbmc7XG4gICAgaW5wdXQ6IFNlcmlhbGl6ZWREYXRhO1xuICAgIGV4ZWN1dGlvbkNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBhdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgfVxuKTogUHJvbWlzZTxXb3JrZmxvd1J1bj4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdG9yYWdlLmV2ZW50cy5jcmVhdGUobnVsbCwge1xuICAgIGV2ZW50VHlwZTogJ3J1bl9jcmVhdGVkJyxcbiAgICBzcGVjVmVyc2lvbjogU1BFQ19WRVJTSU9OX0NVUlJFTlQsXG4gICAgZXZlbnREYXRhOiBkYXRhLFxuICB9KTtcbiAgaWYgKCFyZXN1bHQucnVuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBydW4gdG8gYmUgY3JlYXRlZCcpO1xuICB9XG4gIHJldHVybiByZXN1bHQucnVuO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhIHdvcmtmbG93IHJ1bidzIHN0YXR1cyB0aHJvdWdoIGxpZmVjeWNsZSBldmVudHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVSdW4oXG4gIHN0b3JhZ2U6IFN0b3JhZ2UsXG4gIHJ1bklkOiBzdHJpbmcsXG4gIGV2ZW50VHlwZTogJ3J1bl9zdGFydGVkJyB8ICdydW5fY29tcGxldGVkJyB8ICdydW5fZmFpbGVkJyB8ICdydW5fY2FuY2VsbGVkJyxcbiAgZXZlbnREYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbik6IFByb21pc2U8V29ya2Zsb3dSdW4+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RvcmFnZS5ldmVudHMuY3JlYXRlKHJ1bklkLCB7XG4gICAgZXZlbnRUeXBlLFxuICAgIHNwZWNWZXJzaW9uOiBTUEVDX1ZFUlNJT05fQ1VSUkVOVCxcbiAgICBldmVudERhdGEsXG4gIH0gYXMgYW55KTtcbiAgaWYgKCFyZXN1bHQucnVuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBydW4gdG8gYmUgdXBkYXRlZCcpO1xuICB9XG4gIHJldHVybiByZXN1bHQucnVuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBzdGVwIHRocm91Z2ggdGhlIHN0ZXBfY3JlYXRlZCBldmVudC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVN0ZXAoXG4gIHN0b3JhZ2U6IFN0b3JhZ2UsXG4gIHJ1bklkOiBzdHJpbmcsXG4gIGRhdGE6IHtcbiAgICBzdGVwSWQ6IHN0cmluZztcbiAgICBzdGVwTmFtZTogc3RyaW5nO1xuICAgIGlucHV0OiBTZXJpYWxpemVkRGF0YTtcbiAgfVxuKTogUHJvbWlzZTxTdGVwPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UuZXZlbnRzLmNyZWF0ZShydW5JZCwge1xuICAgIGV2ZW50VHlwZTogJ3N0ZXBfY3JlYXRlZCcsXG4gICAgc3BlY1ZlcnNpb246IFNQRUNfVkVSU0lPTl9DVVJSRU5ULFxuICAgIGNvcnJlbGF0aW9uSWQ6IGRhdGEuc3RlcElkLFxuICAgIGV2ZW50RGF0YTogeyBzdGVwTmFtZTogZGF0YS5zdGVwTmFtZSwgaW5wdXQ6IGRhdGEuaW5wdXQgfSxcbiAgfSk7XG4gIGlmICghcmVzdWx0LnN0ZXApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHN0ZXAgdG8gYmUgY3JlYXRlZCcpO1xuICB9XG4gIHJldHVybiByZXN1bHQuc3RlcDtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBzdGVwJ3Mgc3RhdHVzIHRocm91Z2ggbGlmZWN5Y2xlIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVN0ZXAoXG4gIHN0b3JhZ2U6IFN0b3JhZ2UsXG4gIHJ1bklkOiBzdHJpbmcsXG4gIHN0ZXBJZDogc3RyaW5nLFxuICBldmVudFR5cGU6XG4gICAgfCAnc3RlcF9zdGFydGVkJ1xuICAgIHwgJ3N0ZXBfY29tcGxldGVkJ1xuICAgIHwgJ3N0ZXBfZmFpbGVkJ1xuICAgIHwgJ3N0ZXBfcmV0cnlpbmcnLFxuICBldmVudERhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuKTogUHJvbWlzZTxTdGVwPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UuZXZlbnRzLmNyZWF0ZShydW5JZCwge1xuICAgIGV2ZW50VHlwZSxcbiAgICBzcGVjVmVyc2lvbjogU1BFQ19WRVJTSU9OX0NVUlJFTlQsXG4gICAgY29ycmVsYXRpb25JZDogc3RlcElkLFxuICAgIGV2ZW50RGF0YSxcbiAgfSBhcyBhbnkpO1xuICBpZiAoIXJlc3VsdC5zdGVwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBzdGVwIHRvIGJlIHVwZGF0ZWQnKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LnN0ZXA7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGhvb2sgdGhyb3VnaCB0aGUgaG9va19jcmVhdGVkIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlSG9vayhcbiAgc3RvcmFnZTogU3RvcmFnZSxcbiAgcnVuSWQ6IHN0cmluZyxcbiAgZGF0YToge1xuICAgIGhvb2tJZDogc3RyaW5nO1xuICAgIHRva2VuOiBzdHJpbmc7XG4gICAgbWV0YWRhdGE/OiBTZXJpYWxpemVkRGF0YTtcbiAgfVxuKTogUHJvbWlzZTxIb29rPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UuZXZlbnRzLmNyZWF0ZShydW5JZCwge1xuICAgIGV2ZW50VHlwZTogJ2hvb2tfY3JlYXRlZCcsXG4gICAgc3BlY1ZlcnNpb246IFNQRUNfVkVSU0lPTl9DVVJSRU5ULFxuICAgIGNvcnJlbGF0aW9uSWQ6IGRhdGEuaG9va0lkLFxuICAgIGV2ZW50RGF0YTogeyB0b2tlbjogZGF0YS50b2tlbiwgbWV0YWRhdGE6IGRhdGEubWV0YWRhdGEgfSxcbiAgfSk7XG4gIGlmICghcmVzdWx0Lmhvb2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGhvb2sgdG8gYmUgY3JlYXRlZCcpO1xuICB9XG4gIHJldHVybiByZXN1bHQuaG9vaztcbn1cblxuLyoqXG4gKiBEaXNwb3NlIGEgaG9vayB0aHJvdWdoIHRoZSBob29rX2Rpc3Bvc2VkIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGlzcG9zZUhvb2soXG4gIHN0b3JhZ2U6IFN0b3JhZ2UsXG4gIHJ1bklkOiBzdHJpbmcsXG4gIGhvb2tJZDogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgc3RvcmFnZS5ldmVudHMuY3JlYXRlKHJ1bklkLCB7XG4gICAgZXZlbnRUeXBlOiAnaG9va19kaXNwb3NlZCcsXG4gICAgc3BlY1ZlcnNpb246IFNQRUNfVkVSU0lPTl9DVVJSRU5ULFxuICAgIGNvcnJlbGF0aW9uSWQ6IGhvb2tJZCxcbiAgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IHdhaXQgdGhyb3VnaCB0aGUgd2FpdF9jcmVhdGVkIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlV2FpdChcbiAgc3RvcmFnZTogU3RvcmFnZSxcbiAgcnVuSWQ6IHN0cmluZyxcbiAgZGF0YToge1xuICAgIHdhaXRJZDogc3RyaW5nO1xuICAgIHJlc3VtZUF0OiBEYXRlO1xuICB9XG4pOiBQcm9taXNlPFdhaXQ+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RvcmFnZS5ldmVudHMuY3JlYXRlKHJ1bklkLCB7XG4gICAgZXZlbnRUeXBlOiAnd2FpdF9jcmVhdGVkJyxcbiAgICBzcGVjVmVyc2lvbjogU1BFQ19WRVJTSU9OX0NVUlJFTlQsXG4gICAgY29ycmVsYXRpb25JZDogZGF0YS53YWl0SWQsXG4gICAgZXZlbnREYXRhOiB7IHJlc3VtZUF0OiBkYXRhLnJlc3VtZUF0IH0sXG4gIH0pO1xuICBpZiAoIXJlc3VsdC53YWl0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB3YWl0IHRvIGJlIGNyZWF0ZWQnKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LndhaXQ7XG59XG5cbi8qKlxuICogQ29tcGxldGUgYSB3YWl0IHRocm91Z2ggdGhlIHdhaXRfY29tcGxldGVkIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29tcGxldGVXYWl0KFxuICBzdG9yYWdlOiBTdG9yYWdlLFxuICBydW5JZDogc3RyaW5nLFxuICB3YWl0SWQ6IHN0cmluZ1xuKTogUHJvbWlzZTxXYWl0PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UuZXZlbnRzLmNyZWF0ZShydW5JZCwge1xuICAgIGV2ZW50VHlwZTogJ3dhaXRfY29tcGxldGVkJyxcbiAgICBzcGVjVmVyc2lvbjogU1BFQ19WRVJTSU9OX0NVUlJFTlQsXG4gICAgY29ycmVsYXRpb25JZDogd2FpdElkLFxuICB9KTtcbiAgaWYgKCFyZXN1bHQud2FpdCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgd2FpdCB0byBiZSBjb21wbGV0ZWQnKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LndhaXQ7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow/world-local",
3
- "version": "5.0.0-beta.15",
3
+ "version": "5.0.0-beta.17",
4
4
  "description": "Local development World implementation for Workflow SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -23,14 +23,14 @@
23
23
  }
24
24
  },
25
25
  "dependencies": {
26
- "@vercel/queue": "0.3.0",
26
+ "@vercel/queue": "0.3.1",
27
27
  "async-sema": "3.1.1",
28
28
  "ulid": "~3.0.1",
29
29
  "undici": "7.26.0",
30
30
  "zod": "4.3.6",
31
31
  "@workflow/errors": "5.0.0-beta.7",
32
- "@workflow/utils": "5.0.0-beta.3",
33
- "@workflow/world": "5.0.0-beta.8"
32
+ "@workflow/world": "5.0.0-beta.10",
33
+ "@workflow/utils": "5.0.0-beta.3"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@opentelemetry/api": "1.9.0",