@workflow/world-testing 5.0.0-beta.49 → 5.0.0-beta.50

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.
@@ -26052,7 +26052,7 @@ var version2;
26052
26052
  var init_version = __esm({
26053
26053
  "../core/dist/version.js"() {
26054
26054
  "use strict";
26055
- version2 = "5.0.0-beta.49";
26055
+ version2 = "5.0.0-beta.50";
26056
26056
  }
26057
26057
  });
26058
26058
 
@@ -31261,26 +31261,48 @@ async function resolveHookEncryptionKey(hook, info) {
31261
31261
  });
31262
31262
  return rawKey ? await importKey(rawKey) : void 0;
31263
31263
  }
31264
- async function getHookByTokenWithKey(token) {
31265
- const world = await getWorldLazy();
31266
- const hook = await world.hooks.getByToken(token);
31264
+ function hasLazyMetadata(hook) {
31265
+ const descriptor = Object.getOwnPropertyDescriptor(hook, "metadata");
31266
+ return descriptor !== void 0 && typeof descriptor.get === "function";
31267
+ }
31268
+ function withLazyMetadata(raw) {
31269
+ const serialized = raw.metadata;
31270
+ let hydrated;
31267
31271
  let encryptionKey;
31268
- if (typeof hook.metadata !== "undefined") {
31269
- const info = await resolveHookResumeInfo(hook);
31270
- const rawKey = info.run ? await world.getEncryptionKeyForRun?.(info.run) : await world.getEncryptionKeyForRun?.(hook.runId, {
31272
+ const hydrate = /* @__PURE__ */ __name(async () => {
31273
+ const world = await getWorldLazy();
31274
+ const info = await resolveHookResumeInfo(raw);
31275
+ const rawKey = info.run ? await world.getEncryptionKeyForRun?.(info.run) : await world.getEncryptionKeyForRun?.(raw.runId, {
31271
31276
  deploymentId: info.resumeContext.deploymentId
31272
31277
  });
31273
31278
  encryptionKey = rawKey ? await deriveRunPayloadKeys(rawKey) : void 0;
31274
- hook.metadata = await hydrateStepArguments(hook.metadata, hook.runId, encryptionKey);
31275
- }
31279
+ return await hydrateStepArguments(serialized, raw.runId, encryptionKey);
31280
+ }, "hydrate");
31281
+ const hook = raw;
31282
+ Object.defineProperty(hook, "metadata", {
31283
+ // A hook with no metadata resolves `undefined` without any I/O, so callers
31284
+ // can await unconditionally. Memoized either way: metadata is fixed at
31285
+ // hook-creation time, so hydration runs at most once per hook object.
31286
+ get: /* @__PURE__ */ __name(() => hydrated ??= typeof serialized === "undefined" ? Promise.resolve(void 0) : hydrate(), "get"),
31287
+ // Non-enumerable, matching `Run.returnValue` (a prototype getter, so it is
31288
+ // absent from an instance's own keys). Spreading or `JSON.stringify`-ing a
31289
+ // hook therefore cannot trigger hydration nobody asked for — which would
31290
+ // otherwise leave a floating rejection when the run key is unreachable, and
31291
+ // an unconsumed rejected Promise crashes Node as an unhandledRejection.
31292
+ enumerable: false,
31293
+ configurable: true
31294
+ });
31276
31295
  return {
31277
31296
  hook,
31278
- encryptionKey
31297
+ metadataEncryptionKey: /* @__PURE__ */ __name(() => encryptionKey, "metadataEncryptionKey")
31279
31298
  };
31280
31299
  }
31300
+ function asLazyMetadataHook(hook) {
31301
+ return hasLazyMetadata(hook) ? hook : withLazyMetadata(hook).hook;
31302
+ }
31281
31303
  async function getHookByToken(token) {
31282
- const { hook } = await getHookByTokenWithKey(token);
31283
- return hook;
31304
+ const world = await getWorldLazy();
31305
+ return withLazyMetadata(await world.hooks.getByToken(token)).hook;
31284
31306
  }
31285
31307
  async function resumeHook(tokenOrHook, payload, encryptionKeyOverride) {
31286
31308
  return resumeHookImpl(tokenOrHook, payload, encryptionKeyOverride, false, Date.now());
@@ -31408,7 +31430,7 @@ async function resumeHookImpl(tokenOrHook, payload, encryptionKeyOverride, hookF
31408
31430
  } : {}
31409
31431
  }), world.isDeploymentUnavailableError?.bind(world));
31410
31432
  span?.setAttributes(HookWakePublished(true));
31411
- return hook;
31433
+ return asLazyMetadataHook(hook);
31412
31434
  } catch (err) {
31413
31435
  span?.setAttributes({
31414
31436
  ...HookToken(typeof tokenOrHook === "string" ? tokenOrHook : tokenOrHook.token),
@@ -31421,21 +31443,23 @@ async function resumeHookImpl(tokenOrHook, payload, encryptionKeyOverride, hookF
31421
31443
  }
31422
31444
  async function resumeWebhook(token, request) {
31423
31445
  const resumeRequestedAtMs = Date.now();
31424
- const { hook, encryptionKey } = await getHookByTokenWithKey(token);
31446
+ const world = await getWorldLazy();
31447
+ const { hook, metadataEncryptionKey } = withLazyMetadata(await world.hooks.getByToken(token));
31425
31448
  if (hook.isWebhook === false) {
31426
31449
  throw new HookNotFoundError(token);
31427
31450
  }
31451
+ const metadata = await hook.metadata;
31428
31452
  let response;
31429
31453
  let responseReadable;
31430
- if (hook.metadata && typeof hook.metadata === "object" && "respondWith" in hook.metadata) {
31431
- if (hook.metadata.respondWith === "manual") {
31454
+ if (metadata && typeof metadata === "object" && "respondWith" in metadata) {
31455
+ if (metadata.respondWith === "manual") {
31432
31456
  const { readable, writable } = new TransformStream();
31433
31457
  responseReadable = readable;
31434
31458
  request[WEBHOOK_RESPONSE_WRITABLE] = writable;
31435
- } else if (hook.metadata.respondWith instanceof Response) {
31436
- response = hook.metadata.respondWith;
31459
+ } else if (metadata.respondWith instanceof Response) {
31460
+ response = metadata.respondWith;
31437
31461
  } else {
31438
- throw new WorkflowRuntimeError(`Invalid \`respondWith\` value: ${hook.metadata.respondWith}`, {
31462
+ throw new WorkflowRuntimeError(`Invalid \`respondWith\` value: ${metadata.respondWith}`, {
31439
31463
  slug: ERROR_SLUGS.WEBHOOK_INVALID_RESPOND_WITH_VALUE
31440
31464
  });
31441
31465
  }
@@ -31444,7 +31468,7 @@ async function resumeWebhook(token, request) {
31444
31468
  status: 202
31445
31469
  });
31446
31470
  }
31447
- await resumeHookImpl(hook, request, encryptionKey, true, resumeRequestedAtMs);
31471
+ await resumeHookImpl(hook, request, metadataEncryptionKey(), true, resumeRequestedAtMs);
31448
31472
  if (responseReadable) {
31449
31473
  const reader = responseReadable.getReader();
31450
31474
  const chunk = await reader.read();
@@ -31490,7 +31514,9 @@ var init_resume_hook = __esm({
31490
31514
  __name(resumeContextFromRun, "resumeContextFromRun");
31491
31515
  __name(resolveHookResumeInfo, "resolveHookResumeInfo");
31492
31516
  __name(resolveHookEncryptionKey, "resolveHookEncryptionKey");
31493
- __name(getHookByTokenWithKey, "getHookByTokenWithKey");
31517
+ __name(hasLazyMetadata, "hasLazyMetadata");
31518
+ __name(withLazyMetadata, "withLazyMetadata");
31519
+ __name(asLazyMetadataHook, "asLazyMetadataHook");
31494
31520
  __name(getHookByToken, "getHookByToken");
31495
31521
  __name(resumeHook, "resumeHook");
31496
31522
  __name(resumeHookImpl, "resumeHookImpl");
@@ -33837,7 +33863,7 @@ __name(start, "start");
33837
33863
  value: "start",
33838
33864
  configurable: true
33839
33865
  });
33840
- })(start, "step//@workflow/core/runtime/start@5.0.0-beta.49//start");
33866
+ })(start, "step//@workflow/core/runtime/start@5.0.0-beta.50//start");
33841
33867
 
33842
33868
  // ../core/dist/runtime/runs.js
33843
33869
  async function wakeUpRun(world, runId, options) {
@@ -34300,7 +34326,7 @@ var Run = class _Run {
34300
34326
  value: "wakeUp",
34301
34327
  configurable: true
34302
34328
  });
34303
- })(Run.prototype["wakeUp"], "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#wakeUp");
34329
+ })(Run.prototype["wakeUp"], "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#wakeUp");
34304
34330
  (function(__wf_fn, __wf_id) {
34305
34331
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
34306
34332
  __wf_reg.set(__wf_id, __wf_fn);
@@ -34309,7 +34335,7 @@ var Run = class _Run {
34309
34335
  value: "cancel",
34310
34336
  configurable: true
34311
34337
  });
34312
- })(Run.prototype["cancel"], "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#cancel");
34338
+ })(Run.prototype["cancel"], "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#cancel");
34313
34339
  (function(__wf_fn, __wf_id) {
34314
34340
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
34315
34341
  __wf_reg.set(__wf_id, __wf_fn);
@@ -34318,7 +34344,7 @@ var Run = class _Run {
34318
34344
  value: "getReadable",
34319
34345
  configurable: true
34320
34346
  });
34321
- })(Run.prototype["getReadable"], "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#getReadable");
34347
+ })(Run.prototype["getReadable"], "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#getReadable");
34322
34348
  (function(__wf_fn, __wf_id) {
34323
34349
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
34324
34350
  __wf_reg.set(__wf_id, __wf_fn);
@@ -34327,7 +34353,7 @@ var Run = class _Run {
34327
34353
  value: "getWritable",
34328
34354
  configurable: true
34329
34355
  });
34330
- })(Run.prototype["getWritable"], "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#getWritable");
34356
+ })(Run.prototype["getWritable"], "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#getWritable");
34331
34357
  (function(__wf_fn, __wf_id) {
34332
34358
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
34333
34359
  __wf_reg.set(__wf_id, __wf_fn);
@@ -34336,7 +34362,7 @@ var Run = class _Run {
34336
34362
  value: "exists",
34337
34363
  configurable: true
34338
34364
  });
34339
- })(Object.getOwnPropertyDescriptor(Run.prototype, "exists").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#exists");
34365
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "exists").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#exists");
34340
34366
  (function(__wf_fn, __wf_id) {
34341
34367
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
34342
34368
  __wf_reg.set(__wf_id, __wf_fn);
@@ -34345,7 +34371,7 @@ var Run = class _Run {
34345
34371
  value: "status",
34346
34372
  configurable: true
34347
34373
  });
34348
- })(Object.getOwnPropertyDescriptor(Run.prototype, "status").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#status");
34374
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "status").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#status");
34349
34375
  (function(__wf_fn, __wf_id) {
34350
34376
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
34351
34377
  __wf_reg.set(__wf_id, __wf_fn);
@@ -34354,7 +34380,7 @@ var Run = class _Run {
34354
34380
  value: "returnValue",
34355
34381
  configurable: true
34356
34382
  });
34357
- })(Object.getOwnPropertyDescriptor(Run.prototype, "returnValue").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#returnValue");
34383
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "returnValue").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#returnValue");
34358
34384
  (function(__wf_fn, __wf_id) {
34359
34385
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
34360
34386
  __wf_reg.set(__wf_id, __wf_fn);
@@ -34363,7 +34389,7 @@ var Run = class _Run {
34363
34389
  value: "workflowName",
34364
34390
  configurable: true
34365
34391
  });
34366
- })(Object.getOwnPropertyDescriptor(Run.prototype, "workflowName").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#workflowName");
34392
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "workflowName").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#workflowName");
34367
34393
  (function(__wf_fn, __wf_id) {
34368
34394
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
34369
34395
  __wf_reg.set(__wf_id, __wf_fn);
@@ -34372,7 +34398,7 @@ var Run = class _Run {
34372
34398
  value: "createdAt",
34373
34399
  configurable: true
34374
34400
  });
34375
- })(Object.getOwnPropertyDescriptor(Run.prototype, "createdAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#createdAt");
34401
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "createdAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#createdAt");
34376
34402
  (function(__wf_fn, __wf_id) {
34377
34403
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
34378
34404
  __wf_reg.set(__wf_id, __wf_fn);
@@ -34381,7 +34407,7 @@ var Run = class _Run {
34381
34407
  value: "startedAt",
34382
34408
  configurable: true
34383
34409
  });
34384
- })(Object.getOwnPropertyDescriptor(Run.prototype, "startedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#startedAt");
34410
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "startedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#startedAt");
34385
34411
  (function(__wf_fn, __wf_id) {
34386
34412
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
34387
34413
  __wf_reg.set(__wf_id, __wf_fn);
@@ -34390,7 +34416,7 @@ var Run = class _Run {
34390
34416
  value: "completedAt",
34391
34417
  configurable: true
34392
34418
  });
34393
- })(Object.getOwnPropertyDescriptor(Run.prototype, "completedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#completedAt");
34419
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "completedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#completedAt");
34394
34420
  (function(__wf_cls, __wf_id) {
34395
34421
  var __wf_sym = /* @__PURE__ */ Symbol.for("workflow-class-registry"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
34396
34422
  __wf_reg.set(__wf_id, __wf_cls);
@@ -34400,7 +34426,7 @@ var Run = class _Run {
34400
34426
  enumerable: false,
34401
34427
  configurable: false
34402
34428
  });
34403
- })(Run, "class//@workflow/core/runtime/run@5.0.0-beta.49//Run");
34429
+ })(Run, "class//@workflow/core/runtime/run@5.0.0-beta.50//Run");
34404
34430
 
34405
34431
  // ../workflow/dist/stdlib.js
34406
34432
  async function fetch2(...args) {
@@ -79175,7 +79175,7 @@ var version5;
79175
79175
  var init_version4 = __esm({
79176
79176
  "../core/dist/version.js"() {
79177
79177
  "use strict";
79178
- version5 = "5.0.0-beta.49";
79178
+ version5 = "5.0.0-beta.50";
79179
79179
  }
79180
79180
  });
79181
79181
 
@@ -79710,23 +79710,45 @@ async function resolveHookEncryptionKey2(hook, info) {
79710
79710
  });
79711
79711
  return rawKey ? await importKey2(rawKey) : void 0;
79712
79712
  }
79713
- async function getHookByTokenWithKey2(token) {
79714
- const world = await getWorldLazy2();
79715
- const hook = await world.hooks.getByToken(token);
79713
+ function hasLazyMetadata2(hook) {
79714
+ const descriptor = Object.getOwnPropertyDescriptor(hook, "metadata");
79715
+ return descriptor !== void 0 && typeof descriptor.get === "function";
79716
+ }
79717
+ function withLazyMetadata2(raw) {
79718
+ const serialized = raw.metadata;
79719
+ let hydrated;
79716
79720
  let encryptionKey;
79717
- if (typeof hook.metadata !== "undefined") {
79718
- const info = await resolveHookResumeInfo2(hook);
79719
- const rawKey = info.run ? await world.getEncryptionKeyForRun?.(info.run) : await world.getEncryptionKeyForRun?.(hook.runId, {
79721
+ const hydrate = /* @__PURE__ */ __name(async () => {
79722
+ const world = await getWorldLazy2();
79723
+ const info = await resolveHookResumeInfo2(raw);
79724
+ const rawKey = info.run ? await world.getEncryptionKeyForRun?.(info.run) : await world.getEncryptionKeyForRun?.(raw.runId, {
79720
79725
  deploymentId: info.resumeContext.deploymentId
79721
79726
  });
79722
79727
  encryptionKey = rawKey ? await deriveRunPayloadKeys2(rawKey) : void 0;
79723
- hook.metadata = await hydrateStepArguments2(hook.metadata, hook.runId, encryptionKey);
79724
- }
79725
- return { hook, encryptionKey };
79728
+ return await hydrateStepArguments2(serialized, raw.runId, encryptionKey);
79729
+ }, "hydrate");
79730
+ const hook = raw;
79731
+ Object.defineProperty(hook, "metadata", {
79732
+ // A hook with no metadata resolves `undefined` without any I/O, so callers
79733
+ // can await unconditionally. Memoized either way: metadata is fixed at
79734
+ // hook-creation time, so hydration runs at most once per hook object.
79735
+ get: /* @__PURE__ */ __name(() => hydrated ??= typeof serialized === "undefined" ? Promise.resolve(void 0) : hydrate(), "get"),
79736
+ // Non-enumerable, matching `Run.returnValue` (a prototype getter, so it is
79737
+ // absent from an instance's own keys). Spreading or `JSON.stringify`-ing a
79738
+ // hook therefore cannot trigger hydration nobody asked for — which would
79739
+ // otherwise leave a floating rejection when the run key is unreachable, and
79740
+ // an unconsumed rejected Promise crashes Node as an unhandledRejection.
79741
+ enumerable: false,
79742
+ configurable: true
79743
+ });
79744
+ return { hook, metadataEncryptionKey: /* @__PURE__ */ __name(() => encryptionKey, "metadataEncryptionKey") };
79745
+ }
79746
+ function asLazyMetadataHook2(hook) {
79747
+ return hasLazyMetadata2(hook) ? hook : withLazyMetadata2(hook).hook;
79726
79748
  }
79727
79749
  async function getHookByToken3(token) {
79728
- const { hook } = await getHookByTokenWithKey2(token);
79729
- return hook;
79750
+ const world = await getWorldLazy2();
79751
+ return withLazyMetadata2(await world.hooks.getByToken(token)).hook;
79730
79752
  }
79731
79753
  async function resumeHook2(tokenOrHook, payload, encryptionKeyOverride) {
79732
79754
  return resumeHookImpl2(tokenOrHook, payload, encryptionKeyOverride, false, Date.now());
@@ -79848,7 +79870,7 @@ async function resumeHookImpl2(tokenOrHook, payload, encryptionKeyOverride, hook
79848
79870
  ...resumeId ? { idempotencyKey: `hook-${resumeId}` } : {}
79849
79871
  }), world.isDeploymentUnavailableError?.bind(world));
79850
79872
  span?.setAttributes(HookWakePublished2(true));
79851
- return hook;
79873
+ return asLazyMetadataHook2(hook);
79852
79874
  } catch (err) {
79853
79875
  span?.setAttributes({
79854
79876
  ...HookToken2(typeof tokenOrHook === "string" ? tokenOrHook : tokenOrHook.token),
@@ -79861,26 +79883,28 @@ async function resumeHookImpl2(tokenOrHook, payload, encryptionKeyOverride, hook
79861
79883
  }
79862
79884
  async function resumeWebhook2(token, request) {
79863
79885
  const resumeRequestedAtMs = Date.now();
79864
- const { hook, encryptionKey } = await getHookByTokenWithKey2(token);
79886
+ const world = await getWorldLazy2();
79887
+ const { hook, metadataEncryptionKey } = withLazyMetadata2(await world.hooks.getByToken(token));
79865
79888
  if (hook.isWebhook === false) {
79866
79889
  throw new HookNotFoundError2(token);
79867
79890
  }
79891
+ const metadata = await hook.metadata;
79868
79892
  let response;
79869
79893
  let responseReadable;
79870
- if (hook.metadata && typeof hook.metadata === "object" && "respondWith" in hook.metadata) {
79871
- if (hook.metadata.respondWith === "manual") {
79894
+ if (metadata && typeof metadata === "object" && "respondWith" in metadata) {
79895
+ if (metadata.respondWith === "manual") {
79872
79896
  const { readable, writable } = new TransformStream();
79873
79897
  responseReadable = readable;
79874
79898
  request[WEBHOOK_RESPONSE_WRITABLE2] = writable;
79875
- } else if (hook.metadata.respondWith instanceof Response) {
79876
- response = hook.metadata.respondWith;
79899
+ } else if (metadata.respondWith instanceof Response) {
79900
+ response = metadata.respondWith;
79877
79901
  } else {
79878
- throw new WorkflowRuntimeError2(`Invalid \`respondWith\` value: ${hook.metadata.respondWith}`, { slug: ERROR_SLUGS2.WEBHOOK_INVALID_RESPOND_WITH_VALUE });
79902
+ throw new WorkflowRuntimeError2(`Invalid \`respondWith\` value: ${metadata.respondWith}`, { slug: ERROR_SLUGS2.WEBHOOK_INVALID_RESPOND_WITH_VALUE });
79879
79903
  }
79880
79904
  } else {
79881
79905
  response = new Response(null, { status: 202 });
79882
79906
  }
79883
- await resumeHookImpl2(hook, request, encryptionKey, true, resumeRequestedAtMs);
79907
+ await resumeHookImpl2(hook, request, metadataEncryptionKey(), true, resumeRequestedAtMs);
79884
79908
  if (responseReadable) {
79885
79909
  const reader = responseReadable.getReader();
79886
79910
  const chunk = await reader.read();
@@ -79923,7 +79947,9 @@ var init_resume_hook2 = __esm({
79923
79947
  __name(resumeContextFromRun2, "resumeContextFromRun");
79924
79948
  __name(resolveHookResumeInfo2, "resolveHookResumeInfo");
79925
79949
  __name(resolveHookEncryptionKey2, "resolveHookEncryptionKey");
79926
- __name(getHookByTokenWithKey2, "getHookByTokenWithKey");
79950
+ __name(hasLazyMetadata2, "hasLazyMetadata");
79951
+ __name(withLazyMetadata2, "withLazyMetadata");
79952
+ __name(asLazyMetadataHook2, "asLazyMetadataHook");
79927
79953
  __name(getHookByToken3, "getHookByToken");
79928
79954
  __name(resumeHook2, "resumeHook");
79929
79955
  __name(resumeHookImpl2, "resumeHookImpl");
@@ -119860,7 +119886,7 @@ var version2;
119860
119886
  var init_version = __esm2({
119861
119887
  "../core/dist/version.js"() {
119862
119888
  "use strict";
119863
- version2 = "5.0.0-beta.49";
119889
+ version2 = "5.0.0-beta.50";
119864
119890
  }
119865
119891
  });
119866
119892
  function getWorkflowQueueName(workflowName, namespace) {
@@ -125137,27 +125163,51 @@ async function resolveHookEncryptionKey(hook, info) {
125137
125163
  return rawKey ? await importKey(rawKey) : void 0;
125138
125164
  }
125139
125165
  __name(resolveHookEncryptionKey, "resolveHookEncryptionKey");
125140
- async function getHookByTokenWithKey(token) {
125141
- const world = await getWorldLazy();
125142
- const hook = await world.hooks.getByToken(token);
125166
+ function hasLazyMetadata(hook) {
125167
+ const descriptor = Object.getOwnPropertyDescriptor(hook, "metadata");
125168
+ return descriptor !== void 0 && typeof descriptor.get === "function";
125169
+ }
125170
+ __name(hasLazyMetadata, "hasLazyMetadata");
125171
+ function withLazyMetadata(raw) {
125172
+ const serialized = raw.metadata;
125173
+ let hydrated;
125143
125174
  let encryptionKey;
125144
- if (typeof hook.metadata !== "undefined") {
125145
- const info = await resolveHookResumeInfo(hook);
125146
- const rawKey = info.run ? await world.getEncryptionKeyForRun?.(info.run) : await world.getEncryptionKeyForRun?.(hook.runId, {
125175
+ const hydrate = /* @__PURE__ */ __name2(async () => {
125176
+ const world = await getWorldLazy();
125177
+ const info = await resolveHookResumeInfo(raw);
125178
+ const rawKey = info.run ? await world.getEncryptionKeyForRun?.(info.run) : await world.getEncryptionKeyForRun?.(raw.runId, {
125147
125179
  deploymentId: info.resumeContext.deploymentId
125148
125180
  });
125149
125181
  encryptionKey = rawKey ? await deriveRunPayloadKeys(rawKey) : void 0;
125150
- hook.metadata = await hydrateStepArguments(hook.metadata, hook.runId, encryptionKey);
125151
- }
125182
+ return await hydrateStepArguments(serialized, raw.runId, encryptionKey);
125183
+ }, "hydrate");
125184
+ const hook = raw;
125185
+ Object.defineProperty(hook, "metadata", {
125186
+ // A hook with no metadata resolves `undefined` without any I/O, so callers
125187
+ // can await unconditionally. Memoized either way: metadata is fixed at
125188
+ // hook-creation time, so hydration runs at most once per hook object.
125189
+ get: /* @__PURE__ */ __name2(() => hydrated ??= typeof serialized === "undefined" ? Promise.resolve(void 0) : hydrate(), "get"),
125190
+ // Non-enumerable, matching `Run.returnValue` (a prototype getter, so it is
125191
+ // absent from an instance's own keys). Spreading or `JSON.stringify`-ing a
125192
+ // hook therefore cannot trigger hydration nobody asked for — which would
125193
+ // otherwise leave a floating rejection when the run key is unreachable, and
125194
+ // an unconsumed rejected Promise crashes Node as an unhandledRejection.
125195
+ enumerable: false,
125196
+ configurable: true
125197
+ });
125152
125198
  return {
125153
125199
  hook,
125154
- encryptionKey
125200
+ metadataEncryptionKey: /* @__PURE__ */ __name2(() => encryptionKey, "metadataEncryptionKey")
125155
125201
  };
125156
125202
  }
125157
- __name(getHookByTokenWithKey, "getHookByTokenWithKey");
125203
+ __name(withLazyMetadata, "withLazyMetadata");
125204
+ function asLazyMetadataHook(hook) {
125205
+ return hasLazyMetadata(hook) ? hook : withLazyMetadata(hook).hook;
125206
+ }
125207
+ __name(asLazyMetadataHook, "asLazyMetadataHook");
125158
125208
  async function getHookByToken(token) {
125159
- const { hook } = await getHookByTokenWithKey(token);
125160
- return hook;
125209
+ const world = await getWorldLazy();
125210
+ return withLazyMetadata(await world.hooks.getByToken(token)).hook;
125161
125211
  }
125162
125212
  __name(getHookByToken, "getHookByToken");
125163
125213
  async function resumeHook(tokenOrHook, payload, encryptionKeyOverride) {
@@ -125287,7 +125337,7 @@ async function resumeHookImpl(tokenOrHook, payload, encryptionKeyOverride, hookF
125287
125337
  } : {}
125288
125338
  }), world.isDeploymentUnavailableError?.bind(world));
125289
125339
  span?.setAttributes(HookWakePublished(true));
125290
- return hook;
125340
+ return asLazyMetadataHook(hook);
125291
125341
  } catch (err) {
125292
125342
  span?.setAttributes({
125293
125343
  ...HookToken(typeof tokenOrHook === "string" ? tokenOrHook : tokenOrHook.token),
@@ -125301,21 +125351,23 @@ async function resumeHookImpl(tokenOrHook, payload, encryptionKeyOverride, hookF
125301
125351
  __name(resumeHookImpl, "resumeHookImpl");
125302
125352
  async function resumeWebhook(token, request) {
125303
125353
  const resumeRequestedAtMs = Date.now();
125304
- const { hook, encryptionKey } = await getHookByTokenWithKey(token);
125354
+ const world = await getWorldLazy();
125355
+ const { hook, metadataEncryptionKey } = withLazyMetadata(await world.hooks.getByToken(token));
125305
125356
  if (hook.isWebhook === false) {
125306
125357
  throw new HookNotFoundError(token);
125307
125358
  }
125359
+ const metadata = await hook.metadata;
125308
125360
  let response;
125309
125361
  let responseReadable;
125310
- if (hook.metadata && typeof hook.metadata === "object" && "respondWith" in hook.metadata) {
125311
- if (hook.metadata.respondWith === "manual") {
125362
+ if (metadata && typeof metadata === "object" && "respondWith" in metadata) {
125363
+ if (metadata.respondWith === "manual") {
125312
125364
  const { readable, writable } = new TransformStream();
125313
125365
  responseReadable = readable;
125314
125366
  request[WEBHOOK_RESPONSE_WRITABLE] = writable;
125315
- } else if (hook.metadata.respondWith instanceof Response) {
125316
- response = hook.metadata.respondWith;
125367
+ } else if (metadata.respondWith instanceof Response) {
125368
+ response = metadata.respondWith;
125317
125369
  } else {
125318
- throw new WorkflowRuntimeError(`Invalid \`respondWith\` value: ${hook.metadata.respondWith}`, {
125370
+ throw new WorkflowRuntimeError(`Invalid \`respondWith\` value: ${metadata.respondWith}`, {
125319
125371
  slug: ERROR_SLUGS.WEBHOOK_INVALID_RESPOND_WITH_VALUE
125320
125372
  });
125321
125373
  }
@@ -125324,7 +125376,7 @@ async function resumeWebhook(token, request) {
125324
125376
  status: 202
125325
125377
  });
125326
125378
  }
125327
- await resumeHookImpl(hook, request, encryptionKey, true, resumeRequestedAtMs);
125379
+ await resumeHookImpl(hook, request, metadataEncryptionKey(), true, resumeRequestedAtMs);
125328
125380
  if (responseReadable) {
125329
125381
  const reader = responseReadable.getReader();
125330
125382
  const chunk = await reader.read();
@@ -125372,7 +125424,9 @@ var init_resume_hook = __esm2({
125372
125424
  __name2(resumeContextFromRun, "resumeContextFromRun");
125373
125425
  __name2(resolveHookResumeInfo, "resolveHookResumeInfo");
125374
125426
  __name2(resolveHookEncryptionKey, "resolveHookEncryptionKey");
125375
- __name2(getHookByTokenWithKey, "getHookByTokenWithKey");
125427
+ __name2(hasLazyMetadata, "hasLazyMetadata");
125428
+ __name2(withLazyMetadata, "withLazyMetadata");
125429
+ __name2(asLazyMetadataHook, "asLazyMetadataHook");
125376
125430
  __name2(getHookByToken, "getHookByToken");
125377
125431
  __name2(resumeHook, "resumeHook");
125378
125432
  __name2(resumeHookImpl, "resumeHookImpl");
@@ -127773,7 +127827,7 @@ __name2(start, "start");
127773
127827
  value: "start",
127774
127828
  configurable: true
127775
127829
  });
127776
- })(start, "step//@workflow/core/runtime/start@5.0.0-beta.49//start");
127830
+ })(start, "step//@workflow/core/runtime/start@5.0.0-beta.50//start");
127777
127831
  async function wakeUpRun(world, runId, options) {
127778
127832
  try {
127779
127833
  const run22 = await world.runs.get(runId, {
@@ -128240,7 +128294,7 @@ var Run = class _Run {
128240
128294
  value: "wakeUp",
128241
128295
  configurable: true
128242
128296
  });
128243
- })(Run.prototype["wakeUp"], "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#wakeUp");
128297
+ })(Run.prototype["wakeUp"], "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#wakeUp");
128244
128298
  (function(__wf_fn, __wf_id) {
128245
128299
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
128246
128300
  __wf_reg.set(__wf_id, __wf_fn);
@@ -128249,7 +128303,7 @@ var Run = class _Run {
128249
128303
  value: "cancel",
128250
128304
  configurable: true
128251
128305
  });
128252
- })(Run.prototype["cancel"], "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#cancel");
128306
+ })(Run.prototype["cancel"], "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#cancel");
128253
128307
  (function(__wf_fn, __wf_id) {
128254
128308
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
128255
128309
  __wf_reg.set(__wf_id, __wf_fn);
@@ -128258,7 +128312,7 @@ var Run = class _Run {
128258
128312
  value: "getReadable",
128259
128313
  configurable: true
128260
128314
  });
128261
- })(Run.prototype["getReadable"], "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#getReadable");
128315
+ })(Run.prototype["getReadable"], "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#getReadable");
128262
128316
  (function(__wf_fn, __wf_id) {
128263
128317
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
128264
128318
  __wf_reg.set(__wf_id, __wf_fn);
@@ -128267,7 +128321,7 @@ var Run = class _Run {
128267
128321
  value: "getWritable",
128268
128322
  configurable: true
128269
128323
  });
128270
- })(Run.prototype["getWritable"], "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#getWritable");
128324
+ })(Run.prototype["getWritable"], "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#getWritable");
128271
128325
  (function(__wf_fn, __wf_id) {
128272
128326
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
128273
128327
  __wf_reg.set(__wf_id, __wf_fn);
@@ -128276,7 +128330,7 @@ var Run = class _Run {
128276
128330
  value: "exists",
128277
128331
  configurable: true
128278
128332
  });
128279
- })(Object.getOwnPropertyDescriptor(Run.prototype, "exists").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#exists");
128333
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "exists").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#exists");
128280
128334
  (function(__wf_fn, __wf_id) {
128281
128335
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
128282
128336
  __wf_reg.set(__wf_id, __wf_fn);
@@ -128285,7 +128339,7 @@ var Run = class _Run {
128285
128339
  value: "status",
128286
128340
  configurable: true
128287
128341
  });
128288
- })(Object.getOwnPropertyDescriptor(Run.prototype, "status").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#status");
128342
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "status").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#status");
128289
128343
  (function(__wf_fn, __wf_id) {
128290
128344
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
128291
128345
  __wf_reg.set(__wf_id, __wf_fn);
@@ -128294,7 +128348,7 @@ var Run = class _Run {
128294
128348
  value: "returnValue",
128295
128349
  configurable: true
128296
128350
  });
128297
- })(Object.getOwnPropertyDescriptor(Run.prototype, "returnValue").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#returnValue");
128351
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "returnValue").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#returnValue");
128298
128352
  (function(__wf_fn, __wf_id) {
128299
128353
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
128300
128354
  __wf_reg.set(__wf_id, __wf_fn);
@@ -128303,7 +128357,7 @@ var Run = class _Run {
128303
128357
  value: "workflowName",
128304
128358
  configurable: true
128305
128359
  });
128306
- })(Object.getOwnPropertyDescriptor(Run.prototype, "workflowName").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#workflowName");
128360
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "workflowName").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#workflowName");
128307
128361
  (function(__wf_fn, __wf_id) {
128308
128362
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
128309
128363
  __wf_reg.set(__wf_id, __wf_fn);
@@ -128312,7 +128366,7 @@ var Run = class _Run {
128312
128366
  value: "createdAt",
128313
128367
  configurable: true
128314
128368
  });
128315
- })(Object.getOwnPropertyDescriptor(Run.prototype, "createdAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#createdAt");
128369
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "createdAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#createdAt");
128316
128370
  (function(__wf_fn, __wf_id) {
128317
128371
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
128318
128372
  __wf_reg.set(__wf_id, __wf_fn);
@@ -128321,7 +128375,7 @@ var Run = class _Run {
128321
128375
  value: "startedAt",
128322
128376
  configurable: true
128323
128377
  });
128324
- })(Object.getOwnPropertyDescriptor(Run.prototype, "startedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#startedAt");
128378
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "startedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#startedAt");
128325
128379
  (function(__wf_fn, __wf_id) {
128326
128380
  var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
128327
128381
  __wf_reg.set(__wf_id, __wf_fn);
@@ -128330,7 +128384,7 @@ var Run = class _Run {
128330
128384
  value: "completedAt",
128331
128385
  configurable: true
128332
128386
  });
128333
- })(Object.getOwnPropertyDescriptor(Run.prototype, "completedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#completedAt");
128387
+ })(Object.getOwnPropertyDescriptor(Run.prototype, "completedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#completedAt");
128334
128388
  (function(__wf_cls, __wf_id) {
128335
128389
  var __wf_sym = /* @__PURE__ */ Symbol.for("workflow-class-registry"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
128336
128390
  __wf_reg.set(__wf_id, __wf_cls);
@@ -128340,7 +128394,7 @@ var Run = class _Run {
128340
128394
  enumerable: false,
128341
128395
  configurable: false
128342
128396
  });
128343
- })(Run, "class//@workflow/core/runtime/run@5.0.0-beta.49//Run");
128397
+ })(Run, "class//@workflow/core/runtime/run@5.0.0-beta.50//Run");
128344
128398
  async function fetch2(...args) {
128345
128399
  return globalThis.fetch(...args);
128346
128400
  }
@@ -135377,11 +135431,11 @@ var Run = class _Run {
135377
135431
  return this.getWritable();
135378
135432
  }
135379
135433
  };
135380
- Run.prototype["wakeUp"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.49//Run#wakeUp");
135381
- Run.prototype["cancel"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.49//Run#cancel");
135382
- Run.prototype["getReadable"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.49//Run#getReadable");
135383
- Run.prototype["getWritable"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.49//Run#getWritable");
135384
- var __step_Run$exists = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.49//Run#exists");
135434
+ Run.prototype["wakeUp"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.50//Run#wakeUp");
135435
+ Run.prototype["cancel"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.50//Run#cancel");
135436
+ Run.prototype["getReadable"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.50//Run#getReadable");
135437
+ Run.prototype["getWritable"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.50//Run#getWritable");
135438
+ var __step_Run$exists = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.50//Run#exists");
135385
135439
  Object.defineProperty(Run.prototype, "exists", {
135386
135440
  get() {
135387
135441
  return __step_Run$exists.call(this);
@@ -135389,7 +135443,7 @@ Object.defineProperty(Run.prototype, "exists", {
135389
135443
  configurable: true,
135390
135444
  enumerable: false
135391
135445
  });
135392
- var __step_Run$status = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.49//Run#status");
135446
+ var __step_Run$status = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.50//Run#status");
135393
135447
  Object.defineProperty(Run.prototype, "status", {
135394
135448
  get() {
135395
135449
  return __step_Run$status.call(this);
@@ -135397,7 +135451,7 @@ Object.defineProperty(Run.prototype, "status", {
135397
135451
  configurable: true,
135398
135452
  enumerable: false
135399
135453
  });
135400
- var __step_Run$returnValue = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.49//Run#returnValue");
135454
+ var __step_Run$returnValue = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.50//Run#returnValue");
135401
135455
  Object.defineProperty(Run.prototype, "returnValue", {
135402
135456
  get() {
135403
135457
  return __step_Run$returnValue.call(this);
@@ -135405,7 +135459,7 @@ Object.defineProperty(Run.prototype, "returnValue", {
135405
135459
  configurable: true,
135406
135460
  enumerable: false
135407
135461
  });
135408
- var __step_Run$workflowName = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.49//Run#workflowName");
135462
+ var __step_Run$workflowName = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.50//Run#workflowName");
135409
135463
  Object.defineProperty(Run.prototype, "workflowName", {
135410
135464
  get() {
135411
135465
  return __step_Run$workflowName.call(this);
@@ -135413,7 +135467,7 @@ Object.defineProperty(Run.prototype, "workflowName", {
135413
135467
  configurable: true,
135414
135468
  enumerable: false
135415
135469
  });
135416
- var __step_Run$createdAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.49//Run#createdAt");
135470
+ var __step_Run$createdAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.50//Run#createdAt");
135417
135471
  Object.defineProperty(Run.prototype, "createdAt", {
135418
135472
  get() {
135419
135473
  return __step_Run$createdAt.call(this);
@@ -135421,7 +135475,7 @@ Object.defineProperty(Run.prototype, "createdAt", {
135421
135475
  configurable: true,
135422
135476
  enumerable: false
135423
135477
  });
135424
- var __step_Run$startedAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.49//Run#startedAt");
135478
+ var __step_Run$startedAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.50//Run#startedAt");
135425
135479
  Object.defineProperty(Run.prototype, "startedAt", {
135426
135480
  get() {
135427
135481
  return __step_Run$startedAt.call(this);
@@ -135429,7 +135483,7 @@ Object.defineProperty(Run.prototype, "startedAt", {
135429
135483
  configurable: true,
135430
135484
  enumerable: false
135431
135485
  });
135432
- var __step_Run$completedAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.49//Run#completedAt");
135486
+ var __step_Run$completedAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.50//Run#completedAt");
135433
135487
  Object.defineProperty(Run.prototype, "completedAt", {
135434
135488
  get() {
135435
135489
  return __step_Run$completedAt.call(this);
@@ -135446,7 +135500,7 @@ Object.defineProperty(Run.prototype, "completedAt", {
135446
135500
  enumerable: false,
135447
135501
  configurable: false
135448
135502
  });
135449
- })(Run, "class//@workflow/core/runtime/run@5.0.0-beta.49//Run");
135503
+ })(Run, "class//@workflow/core/runtime/run@5.0.0-beta.50//Run");
135450
135504
 
135451
135505
  // ../core/dist/workflow/create-hook.js
135452
135506
  aliasSerializationClass(RUN_CLASS_ID, Run);
@@ -140077,7 +140131,7 @@ globalThis.__private_workflows.set("workflow//./workflows/inline-execution//hook
140077
140131
  var latestNoOpWarning = globalSingleton("@workflow/core//latestNoOpWarning", 1, () => ({
140078
140132
  warned: false
140079
140133
  }));
140080
- var start = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/start@5.0.0-beta.49//start");
140134
+ var start = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/start@5.0.0-beta.50//start");
140081
140135
 
140082
140136
  // workflows/lineage.ts
140083
140137
  var noop = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//./workflows/lineage//noop");
@@ -3,42 +3,42 @@
3
3
  "steps": {
4
4
  "core/dist/runtime/run.js": {
5
5
  "Run#cancel": {
6
- "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#cancel"
6
+ "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#cancel"
7
7
  },
8
8
  "Run#completedAt": {
9
- "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#completedAt"
9
+ "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#completedAt"
10
10
  },
11
11
  "Run#createdAt": {
12
- "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#createdAt"
12
+ "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#createdAt"
13
13
  },
14
14
  "Run#exists": {
15
- "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#exists"
15
+ "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#exists"
16
16
  },
17
17
  "Run#getReadable": {
18
- "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#getReadable"
18
+ "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#getReadable"
19
19
  },
20
20
  "Run#getWritable": {
21
- "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#getWritable"
21
+ "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#getWritable"
22
22
  },
23
23
  "Run#returnValue": {
24
- "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#returnValue"
24
+ "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#returnValue"
25
25
  },
26
26
  "Run#startedAt": {
27
- "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#startedAt"
27
+ "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#startedAt"
28
28
  },
29
29
  "Run#status": {
30
- "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#status"
30
+ "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#status"
31
31
  },
32
32
  "Run#wakeUp": {
33
- "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#wakeUp"
33
+ "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#wakeUp"
34
34
  },
35
35
  "Run#workflowName": {
36
- "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.49//Run#workflowName"
36
+ "stepId": "step//@workflow/core/runtime/run@5.0.0-beta.50//Run#workflowName"
37
37
  }
38
38
  },
39
39
  "core/dist/runtime/start.js": {
40
40
  "start": {
41
- "stepId": "step//@workflow/core/runtime/start@5.0.0-beta.49//start"
41
+ "stepId": "step//@workflow/core/runtime/start@5.0.0-beta.50//start"
42
42
  }
43
43
  },
44
44
  "workflow/dist/internal/builtins.js": {
@@ -1298,7 +1298,7 @@
1298
1298
  "data": {
1299
1299
  "label": "start",
1300
1300
  "nodeKind": "step",
1301
- "stepId": "step//@workflow/core/runtime/start@5.0.0-beta.49//start"
1301
+ "stepId": "step//@workflow/core/runtime/start@5.0.0-beta.50//start"
1302
1302
  }
1303
1303
  },
1304
1304
  {
@@ -1405,7 +1405,7 @@
1405
1405
  "data": {
1406
1406
  "label": "start",
1407
1407
  "nodeKind": "step",
1408
- "stepId": "step//@workflow/core/runtime/start@5.0.0-beta.49//start"
1408
+ "stepId": "step//@workflow/core/runtime/start@5.0.0-beta.50//start"
1409
1409
  }
1410
1410
  },
1411
1411
  {
@@ -1466,7 +1466,7 @@
1466
1466
  "data": {
1467
1467
  "label": "start",
1468
1468
  "nodeKind": "step",
1469
- "stepId": "step//@workflow/core/runtime/start@5.0.0-beta.49//start"
1469
+ "stepId": "step//@workflow/core/runtime/start@5.0.0-beta.50//start"
1470
1470
  }
1471
1471
  },
1472
1472
  {
@@ -1767,7 +1767,7 @@
1767
1767
  "classes": {
1768
1768
  "core/dist/runtime/run.js": {
1769
1769
  "Run": {
1770
- "classId": "class//@workflow/core/runtime/run@5.0.0-beta.49//Run"
1770
+ "classId": "class//@workflow/core/runtime/run@5.0.0-beta.50//Run"
1771
1771
  }
1772
1772
  }
1773
1773
  }
@@ -73,7 +73,8 @@ const app = new Hono()
73
73
  const hook = await getHookByToken(ctx.req.param('token'));
74
74
  const { runId } = await resumeHook(hook.token, {
75
75
  ...(await ctx.req.json()),
76
- metadata: hook.metadata,
76
+ // `metadata` is a lazily-hydrated Promise; echo the resolved value.
77
+ metadata: await hook.metadata,
77
78
  });
78
79
  return ctx.json({ runId, hookId: hook.hookId });
79
80
  })
@@ -150,4 +151,4 @@ serve({
150
151
  control.end();
151
152
  }
152
153
  });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLm1qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2ZXIubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztBQUN6QixPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sUUFBUSxNQUFNLDBDQUEwQyxDQUFDO0lBQzlELElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQztBQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdkMsT0FBTyxDQUFDLEtBQUssQ0FDWCwrREFBK0QsQ0FDaEUsQ0FBQztJQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQU1ELE1BQU0sTUFBTSxHQUFHLENBQUM7S0FDYixNQUFNLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQXlCLENBQUM7SUFDckUsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0NBQ3RDLENBQUM7S0FDRCxTQUFTLENBQUMsQ0FBQyxH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QUFHLENBQ0wsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztJQUMvQixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDNUMsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUN0QixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLEVBQzlDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsQ0FBQyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgc2VydmUgfSBmcm9tICdAaG9uby9ub2RlLXNlcnZlcic7XG5pbXBvcnQgeyBIb25vIH0gZnJvbSAnaG9ubyc7XG5pbXBvcnQgeyBnZXRIb29rQnlUb2tlbiwgZ2V0UnVuLCByZXN1bWVIb29rLCBzdGFydCB9IGZyb20gJ3dvcmtmbG93L2FwaSc7XG5pbXBvcnQgeyBnZXRXb3JsZCB9IGZyb20gJ3dvcmtmbG93L3J1bnRpbWUnO1xuaW1wb3J0ICogYXMgeiBmcm9tICd6b2QnO1xuaW1wb3J0IHsgUE9TVCBhcyBmbG93UE9TVCB9IGZyb20gJy4uLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cubWpzJztcbmltcG9ydCBtYW5pZmVzdCBmcm9tICcuLi8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9tYW5pZmVzdC5qc29uJyB3aXRoIHtcbiAgdHlwZTogJ2pzb24nLFxufTtcblxuaWYgKCFwcm9jZXNzLmVudi5XT1JLRkxPV19UQVJHRVRfV09STEQpIHtcbiAgY29uc29sZS5lcnJvcihcbiAgICAnRXJyb3I6IFdPUktGTE9XX1RBUkdFVF9XT1JMRCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0LidcbiAgKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufVxuXG50eXBlIEZpbGVzID0ga2V5b2YgdHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cztcbnR5cGUgV29ya2Zsb3dzPEYgZXh0ZW5kcyBGaWxlcz4gPSBrZXlvZiAodHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cylbRl07XG50eXBlIE5vbkVtcHR5QXJyYXk8VD4gPSBbVCwgLi4uVFtdXTtcblxuY29uc3QgSW52b2tlID0gelxuICAub2JqZWN0KHtcbiAgICBmaWxlOiB6LmVudW0oT2JqZWN0LmtleXMobWFuaWZlc3Qud29ya2Zsb3dzKSBhcyBOb25FbXB0eUFycmF5PEZpbGVzPiksXG4gICAgd29ya2Zsb3c6IHouc3RyaW5nKCksXG4gICAgYXJnczogei51bmtub3duKCkuYXJyYXkoKS5kZWZhdWx0KFtdKSxcbiAgfSlcbiAgLnRyYW5zZm9ybSgob2JqKSA9PiB7XG4gICAgY29uc3QgZmlsZSA9IG9iai5maWxlIGFzIGtleW9mIHR5cGVvZiBtYW5pZmVzdC53b3JrZmxvd3M7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSB6XG4gICAgICAuZW51bShcbiAgICAgICAgT2JqZWN0LmtleXMobWFuaWZlc3Qud29ya2Zsb3dzW2ZpbGVdKSBhcyBOb25FbXB0eUFycmF5PFxuICAgICAgICAgIFdvcmtmbG93czx0eXBlb2YgZmlsZT5cbiAgICAgICAgPlxuICAgICAgKVxuICAgICAgLnBhcnNlKG9iai53b3JrZmxvdyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3M6IG9iai5hcmdzLFxuICAgICAgd29ya2Zsb3c6IG1hbmlmZXN0LndvcmtmbG93c1tmaWxlXVt3b3JrZmxvd10sXG4gICAgfTtcbiAgfSk7XG5cbi8vIFRyYWNrIGZsb3cgaGFuZGxlciBpbnZvY2F0aW9ucyBwZXIgcnVuIGZvciB0ZXN0aW5nIGlubGluZSBleGVjdXRpb25cbi8vIHBlci1jb3B5LW9rOiB0aGlzIGZpbGUgaXMgYSBzdGFuZGFsb25lIHRlc3Qgc2VydmVyIGVudHJ5IChpdCBjYWxscyBgc2VydmUoKWBcbi8vIGJlbG93KSwgc28gaXQgcnVucyBhcyBpdHMgb3duIHByb2Nlc3Mgd2l0aCBvbmUgbW9kdWxlIGluc3RhbmNlLiBUaGVyZSBpcyBub1xuLy8gaG9zdCBidW5kbGVyIHRvIGNvbXBpbGUgaXQgaW50byBzZXZlcmFsIGxheWVycy5cbmNvbnN0IGZsb3dJbnZvY2F0aW9uQ291bnRzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuY29uc3QgYXBwID0gbmV3IEhvbm8oKVxuICAucG9zdCgnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgLy8gQ2xvbmUgdGhlIHJlcXVlc3QgdG8gcmVhZCB0aGUgYm9keSBmb3IgdHJhY2tpbmcgd2l0aG91dCBjb25zdW1pbmcgaXQuXG4gICAgLy8gV2UgbXVzdCBpbmNyZW1lbnQgdGhlIGludm9jYXRpb24gY291bnRlciAqYmVmb3JlKiBhd2FpdGluZyBmbG93UE9TVCxcbiAgICAvLyBvdGhlcndpc2UgdGhlIHdvcmtmbG93IG1heSBjb21wbGV0ZSAoYW5kIHRoZSB0ZXN0IG1heSBvYnNlcnZlIHRoZVxuICAgIC8vIGNvbXBsZXRlZCBzdGF0dXMpIGJlZm9yZSB0aGUgY291bnRlciBpcyBidW1wZWQsIHByb2R1Y2luZyBhIGZsYWt5XG4gICAgLy8gYGV4cGVjdGVkIDAgdG8gYmUgMWAgZmFpbHVyZSB3aGVuIHRoZSB0ZXN0IGltbWVkaWF0ZWx5IHF1ZXJpZXNcbiAgICAvLyAvX2Zsb3ctaW52b2NhdGlvbnMgYWZ0ZXIgc2VlaW5nIHRoZSBydW4gYXMgY29tcGxldGVkLlxuICAgIGNvbnN0IGNsb25lZCA9IGN0eC5yZXEucmF3LmNsb25lKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJvZHkgPSAoYXdhaXQgY2xvbmVkLmpzb24oKSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICBjb25zdCBydW5JZCA9XG4gICAgICAgIHR5cGVvZiBib2R5Py5ydW5JZCA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IGJvZHkucnVuSWRcbiAgICAgICAgICA6IHR5cGVvZiAoYm9keS5wYXlsb2FkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgID8ucnVuSWQgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/ICgoYm9keS5wYXlsb2FkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5ydW5JZCBhcyBzdHJpbmcpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChydW5JZCkge1xuICAgICAgICBmbG93SW52b2NhdGlvbkNvdW50cy5zZXQoXG4gICAgICAgICAgcnVuSWQsXG4gICAgICAgICAgKGZsb3dJbnZvY2F0aW9uQ291bnRzLmdldChydW5JZCkgPz8gMCkgKyAxXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBIZWFsdGggY2hlY2sgb3Igbm9uLUpTT04gbWVzc2FnZXMg4oCUIGlnbm9yZVxuICAgIH1cbiAgICByZXR1cm4gZmxvd1BPU1QoY3R4LnJlcS5yYXcpO1xuICB9KVxuICAuZ2V0KCcvX2Zsb3ctaW52b2NhdGlvbnMvOnJ1bklkJywgKGN0eCkgPT4ge1xuICAgIGNvbnN0IGNvdW50ID0gZmxvd0ludm9jYXRpb25Db3VudHMuZ2V0KGN0eC5yZXEucGFyYW0oJ3J1bklkJykpID8/IDA7XG4gICAgcmV0dXJuIGN0eC5qc29uKHsgY291bnQgfSk7XG4gIH0pXG4gIC5nZXQoJy9fbWFuaWZlc3QnLCAoY3R4KSA9PiBjdHguanNvbihtYW5pZmVzdCkpXG4gIC5wb3N0KCcvaW52b2tlJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBhd2FpdCBjdHgucmVxLmpzb24oKS50aGVuKEludm9rZS5wYXJzZSk7XG4gICAgY29uc3QgaGFuZGxlciA9IGF3YWl0IHN0YXJ0KGpzb24ud29ya2Zsb3csIGpzb24uYXJncyk7XG5cbiAgICByZXR1cm4gY3R4Lmpzb24oeyBydW5JZDogaGFuZGxlci5ydW5JZCB9KTtcbiAgfSlcbiAgLnBvc3QoJy9ob29rcy86dG9rZW4nLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3QgaG9vayA9IGF3YWl0IGdldEhvb2tCeVRva2VuKGN0eC5yZXEucGFyYW0oJ3Rva2VuJykpO1xuICAgIGNvbnN0IHsgcnVuSWQgfSA9IGF3YWl0IHJlc3VtZUhvb2soaG9vay50b2tlbiwge1xuICAgICAgLi4uKGF3YWl0IGN0eC5yZXEuanNvbigpKSxcbiAgICAgIG1ldGFkYXRhOiBob29rLm1ldGFkYXRhLFxuICAgIH0pO1xuICAgIHJldHVybiBjdHguanNvbih7IHJ1bklkLCBob29rSWQ6IGhvb2suaG9va0lkIH0pO1xuICB9KVxuICAuZ2V0KCcvcnVucy86cnVuSWQnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3Qgd29ybGQgPSBhd2FpdCBnZXRXb3JsZCgpO1xuICAgIGNvbnN0IHJ1biA9IGF3YWl0IHdvcmxkLnJ1bnMuZ2V0KGN0eC5yZXEucGFyYW0oJ3J1bklkJykpO1xuICAgIC8vIEN1c3RvbSBKU09OIHNlcmlhbGl6YXRpb24gdG8gaGFuZGxlIFVpbnQ4QXJyYXkgYXMgYmFzZTY0XG4gICAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KHJ1biwgKF9rZXksIHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgX190eXBlOiAnVWludDhBcnJheScsXG4gICAgICAgICAgZGF0YTogQnVmZmVyLmZyb20odmFsdWUpLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKGpzb24sIHtcbiAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgIH0pO1xuICB9KVxuICAuZ2V0KCcvcnVucy86cnVuSWQvcmVhZGFibGUnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3QgcnVuSWQgPSBjdHgucmVxLnBhcmFtKCdydW5JZCcpO1xuICAgIGNvbnN0IHJ1biA9IGdldFJ1bihydW5JZCk7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShydW4uZ2V0UmVhZGFibGUoKSk7XG4gIH0pXG4gIC5nZXQoJy9ydW5zLzpydW5JZC9ldmVudHMnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3QgcnVuSWQgPSBjdHgucmVxLnBhcmFtKCdydW5JZCcpO1xuICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgZ2V0V29ybGQoKTtcbiAgICBjb25zdCBhbGxFdmVudHM6IHtcbiAgICAgIGV2ZW50SWQ6IHN0cmluZztcbiAgICAgIGV2ZW50VHlwZTogc3RyaW5nO1xuICAgICAgY29ycmVsYXRpb25JZD86IHN0cmluZztcbiAgICB9W10gPSBbXTtcbiAgICBsZXQgY3Vyc29yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCB3b3JsZC5ldmVudHMubGlzdCh7XG4gICAgICAgIHJ1bklkLFxuICAgICAgICBwYWdpbmF0aW9uOiB7IHNvcnRPcmRlcjogJ2FzYycsIGN1cnNvciB9LFxuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IGUgb2YgcGFnZS5kYXRhKSB7XG4gICAgICAgIGFsbEV2ZW50cy5wdXNoKHtcbiAgICAgICAgICBldmVudElkOiBlLmV2ZW50SWQsXG4gICAgICAgICAgZXZlbnRUeXBlOiBlLmV2ZW50VHlwZSxcbiAgICAgICAgICBjb3JyZWxhdGlvbklkOiBlLmNvcnJlbGF0aW9uSWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCFwYWdlLmhhc01vcmUpIGJyZWFrO1xuICAgICAgY3Vyc29yID0gcGFnZS5jdXJzb3IgPz8gdW5kZWZpbmVkO1xuICAgICAgaWYgKCFjdXJzb3IpIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gY3R4Lmpzb24oeyBldmVudHM6IGFsbEV2ZW50cyB9KTtcbiAgfSk7XG5cbnNlcnZlKFxuICB7XG4gICAgZmV0Y2g6IGFwcC5mZXRjaCxcbiAgICBwb3J0OiBOdW1iZXIocHJvY2Vzcy5lbnYuUE9SVCkgfHwgMCxcbiAgfSxcbiAgYXN5bmMgKGluZm8pID0+IHtcbiAgICBjb25zb2xlLmxvZyhg8J+RgiBsaXN0ZW5pbmcgb24gaHR0cDovLyR7aW5mby5hZGRyZXNzfToke2luZm8ucG9ydH1gKTtcbiAgICBjb25zb2xlLmxvZygnJyk7XG5cbiAgICBwcm9jZXNzLmVudi5QT1JUID0gaW5mby5wb3J0LnRvU3RyaW5nKCk7XG5cbiAgICBmb3IgKGNvbnN0IFtmaWxlbmFtZSwgd29ya2Zsb3dzXSBvZiBPYmplY3QuZW50cmllcyhtYW5pZmVzdC53b3JrZmxvd3MpKSB7XG4gICAgICBmb3IgKGNvbnN0IHdvcmtmbG93TmFtZSBvZiBPYmplY3Qua2V5cyhcbiAgICAgICAgd29ya2Zsb3dzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICApKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGAkIGN1cmwgLVggUE9TVCBodHRwOi8vbG9jYWxob3N0OiR7aW5mby5wb3J0fS9pbnZva2UgLWQgJyR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpbGU6IGZpbGVuYW1lLFxuICAgICAgICAgICAgICB3b3JrZmxvdzogd29ya2Zsb3dOYW1lLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICl9J2BcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB3b3JsZCA9IGF3YWl0IGdldFdvcmxkKCk7XG4gICAgaWYgKHdvcmxkLnN0YXJ0KSB7XG4gICAgICBjb25zb2xlLmxvZyhgc3RhcnRpbmcgYmFja2dyb3VuZCB0YXNrcy4uLmApO1xuICAgICAgYXdhaXQgd29ybGQuc3RhcnQoKS50aGVuKFxuICAgICAgICAoKSA9PiBjb25zb2xlLmxvZygnYmFja2dyb3VuZCB0YXNrcyBzdGFydGVkLicpLFxuICAgICAgICAoZXJyKSA9PiBjb25zb2xlLmVycm9yKCfinZcgZXJyb3Igc3RhcnRpbmcgYmFja2dyb3VuZCB0YXNrczonLCBlcnIpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5DT05UUk9MX0ZEID09PSAnMycpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmcy5jcmVhdGVXcml0ZVN0cmVhbSgnJywgeyBmZDogMyB9KTtcbiAgICAgIGNvbnRyb2wud3JpdGUoYCR7SlNPTi5zdHJpbmdpZnkoeyBzdGF0ZTogJ2xpc3RlbmluZycsIGluZm8gfSl9XFxuYCk7XG4gICAgICBjb250cm9sLmVuZCgpO1xuICAgIH1cbiAgfVxuKTtcbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLm1qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2ZXIubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztBQUN6QixPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sUUFBUSxNQUFNLDBDQUEwQyxDQUFDO0lBQzlELElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQztBQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdkMsT0FBTyxDQUFDLEtBQUssQ0FDWCwrREFBK0QsQ0FDaEUsQ0FBQztJQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQU1ELE1BQU0sTUFBTSxHQUFHLENBQUM7S0FDYixNQUFNLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQXlCLENBQUM7SUFDckUsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0NBQ3RDLENBQUM7S0FDRCxTQUFTLENBQUMsQ0FBQyxH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LFlBQVk7YUFDdkIsQ0FDRixHQUFHLENBQ0wsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztJQUMvQixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDNUMsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUN0QixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLEVBQzlDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsQ0FBQyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgc2VydmUgfSBmcm9tICdAaG9uby9ub2RlLXNlcnZlcic7XG5pbXBvcnQgeyBIb25vIH0gZnJvbSAnaG9ubyc7XG5pbXBvcnQgeyBnZXRIb29rQnlUb2tlbiwgZ2V0UnVuLCByZXN1bWVIb29rLCBzdGFydCB9IGZyb20gJ3dvcmtmbG93L2FwaSc7XG5pbXBvcnQgeyBnZXRXb3JsZCB9IGZyb20gJ3dvcmtmbG93L3J1bnRpbWUnO1xuaW1wb3J0ICogYXMgeiBmcm9tICd6b2QnO1xuaW1wb3J0IHsgUE9TVCBhcyBmbG93UE9TVCB9IGZyb20gJy4uLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cubWpzJztcbmltcG9ydCBtYW5pZmVzdCBmcm9tICcuLi8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9tYW5pZmVzdC5qc29uJyB3aXRoIHtcbiAgdHlwZTogJ2pzb24nLFxufTtcblxuaWYgKCFwcm9jZXNzLmVudi5XT1JLRkxPV19UQVJHRVRfV09STEQpIHtcbiAgY29uc29sZS5lcnJvcihcbiAgICAnRXJyb3I6IFdPUktGTE9XX1RBUkdFVF9XT1JMRCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0LidcbiAgKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufVxuXG50eXBlIEZpbGVzID0ga2V5b2YgdHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cztcbnR5cGUgV29ya2Zsb3dzPEYgZXh0ZW5kcyBGaWxlcz4gPSBrZXlvZiAodHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cylbRl07XG50eXBlIE5vbkVtcHR5QXJyYXk8VD4gPSBbVCwgLi4uVFtdXTtcblxuY29uc3QgSW52b2tlID0gelxuICAub2JqZWN0KHtcbiAgICBmaWxlOiB6LmVudW0oT2JqZWN0LmtleXMobWFuaWZlc3Qud29ya2Zsb3dzKSBhcyBOb25FbXB0eUFycmF5PEZpbGVzPiksXG4gICAgd29ya2Zsb3c6IHouc3RyaW5nKCksXG4gICAgYXJnczogei51bmtub3duKCkuYXJyYXkoKS5kZWZhdWx0KFtdKSxcbiAgfSlcbiAgLnRyYW5zZm9ybSgob2JqKSA9PiB7XG4gICAgY29uc3QgZmlsZSA9IG9iai5maWxlIGFzIGtleW9mIHR5cGVvZiBtYW5pZmVzdC53b3JrZmxvd3M7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSB6XG4gICAgICAuZW51bShcbiAgICAgICAgT2JqZWN0LmtleXMobWFuaWZlc3Qud29ya2Zsb3dzW2ZpbGVdKSBhcyBOb25FbXB0eUFycmF5PFxuICAgICAgICAgIFdvcmtmbG93czx0eXBlb2YgZmlsZT5cbiAgICAgICAgPlxuICAgICAgKVxuICAgICAgLnBhcnNlKG9iai53b3JrZmxvdyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3M6IG9iai5hcmdzLFxuICAgICAgd29ya2Zsb3c6IG1hbmlmZXN0LndvcmtmbG93c1tmaWxlXVt3b3JrZmxvd10sXG4gICAgfTtcbiAgfSk7XG5cbi8vIFRyYWNrIGZsb3cgaGFuZGxlciBpbnZvY2F0aW9ucyBwZXIgcnVuIGZvciB0ZXN0aW5nIGlubGluZSBleGVjdXRpb25cbi8vIHBlci1jb3B5LW9rOiB0aGlzIGZpbGUgaXMgYSBzdGFuZGFsb25lIHRlc3Qgc2VydmVyIGVudHJ5IChpdCBjYWxscyBgc2VydmUoKWBcbi8vIGJlbG93KSwgc28gaXQgcnVucyBhcyBpdHMgb3duIHByb2Nlc3Mgd2l0aCBvbmUgbW9kdWxlIGluc3RhbmNlLiBUaGVyZSBpcyBub1xuLy8gaG9zdCBidW5kbGVyIHRvIGNvbXBpbGUgaXQgaW50byBzZXZlcmFsIGxheWVycy5cbmNvbnN0IGZsb3dJbnZvY2F0aW9uQ291bnRzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuY29uc3QgYXBwID0gbmV3IEhvbm8oKVxuICAucG9zdCgnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cnLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgLy8gQ2xvbmUgdGhlIHJlcXVlc3QgdG8gcmVhZCB0aGUgYm9keSBmb3IgdHJhY2tpbmcgd2l0aG91dCBjb25zdW1pbmcgaXQuXG4gICAgLy8gV2UgbXVzdCBpbmNyZW1lbnQgdGhlIGludm9jYXRpb24gY291bnRlciAqYmVmb3JlKiBhd2FpdGluZyBmbG93UE9TVCxcbiAgICAvLyBvdGhlcndpc2UgdGhlIHdvcmtmbG93IG1heSBjb21wbGV0ZSAoYW5kIHRoZSB0ZXN0IG1heSBvYnNlcnZlIHRoZVxuICAgIC8vIGNvbXBsZXRlZCBzdGF0dXMpIGJlZm9yZSB0aGUgY291bnRlciBpcyBidW1wZWQsIHByb2R1Y2luZyBhIGZsYWt5XG4gICAgLy8gYGV4cGVjdGVkIDAgdG8gYmUgMWAgZmFpbHVyZSB3aGVuIHRoZSB0ZXN0IGltbWVkaWF0ZWx5IHF1ZXJpZXNcbiAgICAvLyAvX2Zsb3ctaW52b2NhdGlvbnMgYWZ0ZXIgc2VlaW5nIHRoZSBydW4gYXMgY29tcGxldGVkLlxuICAgIGNvbnN0IGNsb25lZCA9IGN0eC5yZXEucmF3LmNsb25lKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJvZHkgPSAoYXdhaXQgY2xvbmVkLmpzb24oKSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICBjb25zdCBydW5JZCA9XG4gICAgICAgIHR5cGVvZiBib2R5Py5ydW5JZCA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IGJvZHkucnVuSWRcbiAgICAgICAgICA6IHR5cGVvZiAoYm9keS5wYXlsb2FkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgID8ucnVuSWQgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/ICgoYm9keS5wYXlsb2FkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5ydW5JZCBhcyBzdHJpbmcpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChydW5JZCkge1xuICAgICAgICBmbG93SW52b2NhdGlvbkNvdW50cy5zZXQoXG4gICAgICAgICAgcnVuSWQsXG4gICAgICAgICAgKGZsb3dJbnZvY2F0aW9uQ291bnRzLmdldChydW5JZCkgPz8gMCkgKyAxXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBIZWFsdGggY2hlY2sgb3Igbm9uLUpTT04gbWVzc2FnZXMg4oCUIGlnbm9yZVxuICAgIH1cbiAgICByZXR1cm4gZmxvd1BPU1QoY3R4LnJlcS5yYXcpO1xuICB9KVxuICAuZ2V0KCcvX2Zsb3ctaW52b2NhdGlvbnMvOnJ1bklkJywgKGN0eCkgPT4ge1xuICAgIGNvbnN0IGNvdW50ID0gZmxvd0ludm9jYXRpb25Db3VudHMuZ2V0KGN0eC5yZXEucGFyYW0oJ3J1bklkJykpID8/IDA7XG4gICAgcmV0dXJuIGN0eC5qc29uKHsgY291bnQgfSk7XG4gIH0pXG4gIC5nZXQoJy9fbWFuaWZlc3QnLCAoY3R4KSA9PiBjdHguanNvbihtYW5pZmVzdCkpXG4gIC5wb3N0KCcvaW52b2tlJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBhd2FpdCBjdHgucmVxLmpzb24oKS50aGVuKEludm9rZS5wYXJzZSk7XG4gICAgY29uc3QgaGFuZGxlciA9IGF3YWl0IHN0YXJ0KGpzb24ud29ya2Zsb3csIGpzb24uYXJncyk7XG5cbiAgICByZXR1cm4gY3R4Lmpzb24oeyBydW5JZDogaGFuZGxlci5ydW5JZCB9KTtcbiAgfSlcbiAgLnBvc3QoJy9ob29rcy86dG9rZW4nLCBhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3QgaG9vayA9IGF3YWl0IGdldEhvb2tCeVRva2VuKGN0eC5yZXEucGFyYW0oJ3Rva2VuJykpO1xuICAgIGNvbnN0IHsgcnVuSWQgfSA9IGF3YWl0IHJlc3VtZUhvb2soaG9vay50b2tlbiwge1xuICAgICAgLi4uKGF3YWl0IGN0eC5yZXEuanNvbigpKSxcbiAgICAgIC8vIGBtZXRhZGF0YWAgaXMgYSBsYXppbHktaHlkcmF0ZWQgUHJvbWlzZTsgZWNobyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gICAgICBtZXRhZGF0YTogYXdhaXQgaG9vay5tZXRhZGF0YSxcbiAgICB9KTtcbiAgICByZXR1cm4gY3R4Lmpzb24oeyBydW5JZCwgaG9va0lkOiBob29rLmhvb2tJZCB9KTtcbiAgfSlcbiAgLmdldCgnL3J1bnMvOnJ1bklkJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgZ2V0V29ybGQoKTtcbiAgICBjb25zdCBydW4gPSBhd2FpdCB3b3JsZC5ydW5zLmdldChjdHgucmVxLnBhcmFtKCdydW5JZCcpKTtcbiAgICAvLyBDdXN0b20gSlNPTiBzZXJpYWxpemF0aW9uIHRvIGhhbmRsZSBVaW50OEFycmF5IGFzIGJhc2U2NFxuICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeShydW4sIChfa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIF9fdHlwZTogJ1VpbnQ4QXJyYXknLFxuICAgICAgICAgIGRhdGE6IEJ1ZmZlci5mcm9tKHZhbHVlKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShqc29uLCB7XG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICB9KTtcbiAgfSlcbiAgLmdldCgnL3J1bnMvOnJ1bklkL3JlYWRhYmxlJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IHJ1bklkID0gY3R4LnJlcS5wYXJhbSgncnVuSWQnKTtcbiAgICBjb25zdCBydW4gPSBnZXRSdW4ocnVuSWQpO1xuICAgIHJldHVybiBuZXcgUmVzcG9uc2UocnVuLmdldFJlYWRhYmxlKCkpO1xuICB9KVxuICAuZ2V0KCcvcnVucy86cnVuSWQvZXZlbnRzJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IHJ1bklkID0gY3R4LnJlcS5wYXJhbSgncnVuSWQnKTtcbiAgICBjb25zdCB3b3JsZCA9IGF3YWl0IGdldFdvcmxkKCk7XG4gICAgY29uc3QgYWxsRXZlbnRzOiB7XG4gICAgICBldmVudElkOiBzdHJpbmc7XG4gICAgICBldmVudFR5cGU6IHN0cmluZztcbiAgICAgIGNvcnJlbGF0aW9uSWQ/OiBzdHJpbmc7XG4gICAgfVtdID0gW107XG4gICAgbGV0IGN1cnNvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCBwYWdlID0gYXdhaXQgd29ybGQuZXZlbnRzLmxpc3Qoe1xuICAgICAgICBydW5JZCxcbiAgICAgICAgcGFnaW5hdGlvbjogeyBzb3J0T3JkZXI6ICdhc2MnLCBjdXJzb3IgfSxcbiAgICAgIH0pO1xuICAgICAgZm9yIChjb25zdCBlIG9mIHBhZ2UuZGF0YSkge1xuICAgICAgICBhbGxFdmVudHMucHVzaCh7XG4gICAgICAgICAgZXZlbnRJZDogZS5ldmVudElkLFxuICAgICAgICAgIGV2ZW50VHlwZTogZS5ldmVudFR5cGUsXG4gICAgICAgICAgY29ycmVsYXRpb25JZDogZS5jb3JyZWxhdGlvbklkLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICghcGFnZS5oYXNNb3JlKSBicmVhaztcbiAgICAgIGN1cnNvciA9IHBhZ2UuY3Vyc29yID8/IHVuZGVmaW5lZDtcbiAgICAgIGlmICghY3Vyc29yKSBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGN0eC5qc29uKHsgZXZlbnRzOiBhbGxFdmVudHMgfSk7XG4gIH0pO1xuXG5zZXJ2ZShcbiAge1xuICAgIGZldGNoOiBhcHAuZmV0Y2gsXG4gICAgcG9ydDogTnVtYmVyKHByb2Nlc3MuZW52LlBPUlQpIHx8IDAsXG4gIH0sXG4gIGFzeW5jIChpbmZvKSA9PiB7XG4gICAgY29uc29sZS5sb2coYPCfkYIgbGlzdGVuaW5nIG9uIGh0dHA6Ly8ke2luZm8uYWRkcmVzc306JHtpbmZvLnBvcnR9YCk7XG4gICAgY29uc29sZS5sb2coJycpO1xuXG4gICAgcHJvY2Vzcy5lbnYuUE9SVCA9IGluZm8ucG9ydC50b1N0cmluZygpO1xuXG4gICAgZm9yIChjb25zdCBbZmlsZW5hbWUsIHdvcmtmbG93c10gb2YgT2JqZWN0LmVudHJpZXMobWFuaWZlc3Qud29ya2Zsb3dzKSkge1xuICAgICAgZm9yIChjb25zdCB3b3JrZmxvd05hbWUgb2YgT2JqZWN0LmtleXMoXG4gICAgICAgIHdvcmtmbG93cyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgKSkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgJCBjdXJsIC1YIFBPU1QgaHR0cDovL2xvY2FsaG9zdDoke2luZm8ucG9ydH0vaW52b2tlIC1kICcke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWxlOiBmaWxlbmFtZSxcbiAgICAgICAgICAgICAgd29ya2Zsb3c6IHdvcmtmbG93TmFtZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApfSdgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgd29ybGQgPSBhd2FpdCBnZXRXb3JsZCgpO1xuICAgIGlmICh3b3JsZC5zdGFydCkge1xuICAgICAgY29uc29sZS5sb2coYHN0YXJ0aW5nIGJhY2tncm91bmQgdGFza3MuLi5gKTtcbiAgICAgIGF3YWl0IHdvcmxkLnN0YXJ0KCkudGhlbihcbiAgICAgICAgKCkgPT4gY29uc29sZS5sb2coJ2JhY2tncm91bmQgdGFza3Mgc3RhcnRlZC4nKSxcbiAgICAgICAgKGVycikgPT4gY29uc29sZS5lcnJvcign4p2XIGVycm9yIHN0YXJ0aW5nIGJhY2tncm91bmQgdGFza3M6JywgZXJyKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuQ09OVFJPTF9GRCA9PT0gJzMnKSB7XG4gICAgICBjb25zdCBjb250cm9sID0gZnMuY3JlYXRlV3JpdGVTdHJlYW0oJycsIHsgZmQ6IDMgfSk7XG4gICAgICBjb250cm9sLndyaXRlKGAke0pTT04uc3RyaW5naWZ5KHsgc3RhdGU6ICdsaXN0ZW5pbmcnLCBpbmZvIH0pfVxcbmApO1xuICAgICAgY29udHJvbC5lbmQoKTtcbiAgICB9XG4gIH1cbik7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow/world-testing",
3
- "version": "5.0.0-beta.49",
3
+ "version": "5.0.0-beta.50",
4
4
  "description": "Testing utilities and World implementation for Workflow SDK",
5
5
  "main": "dist/src/index.mjs",
6
6
  "files": [
@@ -17,13 +17,13 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@hono/node-server": "1.19.13",
20
- "@workflow/cli": "5.0.0-beta.49",
21
- "@workflow/core": "5.0.0-beta.49",
20
+ "@workflow/cli": "5.0.0-beta.50",
21
+ "@workflow/core": "5.0.0-beta.50",
22
22
  "@workflow/world": "5.0.0-beta.34",
23
23
  "chalk": "5.6.2",
24
24
  "hono": "4.12.25",
25
25
  "jsonlines": "0.1.1",
26
- "workflow": "5.0.0-beta.49",
26
+ "workflow": "5.0.0-beta.50",
27
27
  "zod": "~4.3.6"
28
28
  },
29
29
  "devDependencies": {