@workflow/world-testing 5.0.0-beta.34 → 5.0.0-beta.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.well-known/workflow/v1/flow.mjs +554 -111
- package/dist/.well-known/workflow/v1/manifest.json +493 -211
- package/dist/.well-known/workflow/v1/step.mjs +91 -21
- package/dist/src/index.d.mts.map +1 -1
- package/dist/src/index.mjs +3 -1
- package/dist/src/lineage.d.mts +8 -0
- package/dist/src/lineage.d.mts.map +1 -0
- package/dist/src/lineage.mjs +48 -0
- package/package.json +8 -8
|
@@ -16451,12 +16451,14 @@ function validateAttributeChanges(changes, context = {}) {
|
|
|
16451
16451
|
throw new AttributeValidationError(`Run attribute count would exceed limit ${ATTRIBUTE_MAX_PER_RUN} (post-merge ${postMerge})`);
|
|
16452
16452
|
}
|
|
16453
16453
|
}
|
|
16454
|
-
var RESERVED_ATTRIBUTE_KEY_PREFIX, ATTRIBUTE_KEY_MAX_LENGTH, ATTRIBUTE_VALUE_MAX_BYTES, ATTRIBUTE_MAX_PER_RUN, AttributeChangeSchema, AttributeChangesSchema, AttributeValidationError, valueByteLength;
|
|
16454
|
+
var RESERVED_ATTRIBUTE_KEY_PREFIX, ROOT_RUN_ID_ATTRIBUTE, PARENT_RUN_ID_ATTRIBUTE, ATTRIBUTE_KEY_MAX_LENGTH, ATTRIBUTE_VALUE_MAX_BYTES, ATTRIBUTE_MAX_PER_RUN, AttributeChangeSchema, AttributeChangesSchema, AttributeValidationError, valueByteLength;
|
|
16455
16455
|
var init_attributes = __esm({
|
|
16456
16456
|
"../world/dist/attributes.js"() {
|
|
16457
16457
|
"use strict";
|
|
16458
16458
|
init_zod();
|
|
16459
16459
|
RESERVED_ATTRIBUTE_KEY_PREFIX = "$";
|
|
16460
|
+
ROOT_RUN_ID_ATTRIBUTE = `${RESERVED_ATTRIBUTE_KEY_PREFIX}rootRunId`;
|
|
16461
|
+
PARENT_RUN_ID_ATTRIBUTE = `${RESERVED_ATTRIBUTE_KEY_PREFIX}parentRunId`;
|
|
16460
16462
|
ATTRIBUTE_KEY_MAX_LENGTH = 256;
|
|
16461
16463
|
ATTRIBUTE_VALUE_MAX_BYTES = 256;
|
|
16462
16464
|
ATTRIBUTE_MAX_PER_RUN = 64;
|
|
@@ -16619,6 +16621,17 @@ var init_events = __esm({
|
|
|
16619
16621
|
// stso.
|
|
16620
16622
|
stepCount: external_exports.number().int().positive().optional(),
|
|
16621
16623
|
eventCount: external_exports.number().int().positive().optional(),
|
|
16624
|
+
// Run-started-to-first-step: milliseconds from the `run_started` response
|
|
16625
|
+
// landing (or, under turbo, the local run synthesis instant) until this
|
|
16626
|
+
// step's start POST was issued. A sub-window of ttfs. Only reported
|
|
16627
|
+
// alongside the same eligibility as ttfs.
|
|
16628
|
+
rsfs: external_exports.number().optional(),
|
|
16629
|
+
// Synchronous workflow-function replay duration of only the FINAL replay
|
|
16630
|
+
// pass within the rsfs window (the pass that scheduled the first step),
|
|
16631
|
+
// excluding awaited network I/O — not accumulated across earlier
|
|
16632
|
+
// pre-first-step passes, so it is not "the replay portion of rsfs". Only
|
|
16633
|
+
// present alongside rsfs, and only for the run's first step.
|
|
16634
|
+
finalSchedulingReplay: external_exports.number().optional(),
|
|
16622
16635
|
// Names of the runtime's optional startup-latency optimizations that were
|
|
16623
16636
|
// active for this measurement (e.g. 'turbo', 'lazyStepStart',
|
|
16624
16637
|
// 'optimisticStart'), so latency metrics can be segmented by them.
|
|
@@ -19808,7 +19821,7 @@ function SemanticConvention(...names) {
|
|
|
19808
19821
|
value
|
|
19809
19822
|
]));
|
|
19810
19823
|
}
|
|
19811
|
-
var WorkflowName, WorkflowOperation, WorkflowRunId, WorkflowRunStatus, WorkflowStartedAt, WorkflowEventsCount, WorkflowArgumentsCount, WorkflowResultType, WorkflowTracePropagated, WorkflowTraceMode, WorkflowTurbo, WorkflowErrorName, WorkflowErrorMessage, WorkflowErrorCode, WorkflowStepsCreated, WorkflowHooksCreated, WorkflowWaitsCreated, WorkflowOwnedRecoverySteps, WorkflowBackstopWakesArmed, WorkflowRouteType, WorkflowRouteHandlerCached, WorkflowRouteInvocationCount, WorkflowRouteEntrypointAgeMs, WorkflowRouteModuleBodyInitMs, StepName, StepId, StepAttempt, StepStatus, StepMaxRetries, StepTracePropagated, StepTtfsMs, StepStsoMs, StepLatencyOptimizations, StepSkipped, StepSkipReason, StepArgumentsCount, StepResultType, StepErrorName, StepErrorMessage, StepFatalError, StepRetryExhausted, StepRetryTimeoutSeconds, StepRetryWillRetry, MessagingSystem, MessagingDestinationName, MessagingMessageId, MessagingOperationType, QueueOverheadMs, DeploymentId, HookToken, HookId, HookFound, WebhookHandlersTriggered, WorkflowSuspensionState, WorkflowSuspensionHookCount, WorkflowSuspensionStepCount, WorkflowSuspensionWaitCount, HttpRequestMethod, HttpRoute, UrlFull, ServerAddress, ServerPort, HttpResponseStatusCode, ErrorType, WorldParseFormat, WorkflowEventsPagesLoaded, QueueDeserializeTimeMs, QueueExecutionTimeMs, QueueSerializeTimeMs, SerializationOperation, SerializationCompressed, SerializationCodec, SerializationUncompressedBytes, SerializationStoredBytes, SerializationCompressionRatio, PeerService, RpcSystem, RpcService, RpcMethod, ErrorRetryable, ErrorCategory;
|
|
19824
|
+
var WorkflowName, WorkflowOperation, WorkflowRunId, WorkflowRunStatus, WorkflowStartedAt, WorkflowEventsCount, WorkflowArgumentsCount, WorkflowResultType, WorkflowTracePropagated, WorkflowTraceMode, WorkflowTurbo, WorkflowErrorName, WorkflowErrorMessage, WorkflowErrorCode, WorkflowStepsCreated, WorkflowHooksCreated, WorkflowWaitsCreated, WorkflowOwnedRecoverySteps, WorkflowBackstopWakesArmed, WorkflowRouteType, WorkflowRouteHandlerCached, WorkflowRouteInvocationCount, WorkflowRouteEntrypointAgeMs, WorkflowRouteModuleBodyInitMs, StepName, StepId, StepAttempt, StepStatus, StepMaxRetries, StepTracePropagated, StepTtfsMs, StepStsoMs, StepRsfsMs, StepFinalSchedulingReplayMs, StepLatencyOptimizations, StepSkipped, StepSkipReason, StepArgumentsCount, StepResultType, StepErrorName, StepErrorMessage, StepFatalError, StepRetryExhausted, StepRetryTimeoutSeconds, StepRetryWillRetry, MessagingSystem, MessagingDestinationName, MessagingMessageId, MessagingOperationType, QueueOverheadMs, DeploymentId, HookToken, HookId, HookFound, WebhookHandlersTriggered, WorkflowSuspensionState, WorkflowSuspensionHookCount, WorkflowSuspensionStepCount, WorkflowSuspensionWaitCount, HttpRequestMethod, HttpRoute, UrlFull, ServerAddress, ServerPort, HttpResponseStatusCode, ErrorType, WorldParseFormat, WorkflowEventsPagesLoaded, QueueDeserializeTimeMs, QueueExecutionTimeMs, QueueSerializeTimeMs, SerializationOperation, SerializationCompressed, SerializationCodec, SerializationUncompressedBytes, SerializationStoredBytes, SerializationCompressionRatio, PeerService, RpcSystem, RpcService, RpcMethod, ErrorRetryable, ErrorCategory;
|
|
19812
19825
|
var init_semantic_conventions = __esm({
|
|
19813
19826
|
"../core/dist/telemetry/semantic-conventions.js"() {
|
|
19814
19827
|
"use strict";
|
|
@@ -19845,6 +19858,8 @@ var init_semantic_conventions = __esm({
|
|
|
19845
19858
|
StepTracePropagated = SemanticConvention("step.trace.propagated");
|
|
19846
19859
|
StepTtfsMs = SemanticConvention("step.ttfs_ms");
|
|
19847
19860
|
StepStsoMs = SemanticConvention("step.stso_ms");
|
|
19861
|
+
StepRsfsMs = SemanticConvention("step.rsfs_ms");
|
|
19862
|
+
StepFinalSchedulingReplayMs = SemanticConvention("step.final_scheduling_replay_ms");
|
|
19848
19863
|
StepLatencyOptimizations = SemanticConvention("step.latency_optimizations");
|
|
19849
19864
|
StepSkipped = SemanticConvention("step.skipped");
|
|
19850
19865
|
StepSkipReason = SemanticConvention("step.skip_reason");
|
|
@@ -24477,7 +24492,7 @@ var version2;
|
|
|
24477
24492
|
var init_version = __esm({
|
|
24478
24493
|
"../core/dist/version.js"() {
|
|
24479
24494
|
"use strict";
|
|
24480
|
-
version2 = "5.0.0-beta.
|
|
24495
|
+
version2 = "5.0.0-beta.35";
|
|
24481
24496
|
}
|
|
24482
24497
|
});
|
|
24483
24498
|
|
|
@@ -27681,6 +27696,7 @@ __name(isRetryableWorldError, "isRetryableWorldError");
|
|
|
27681
27696
|
init_encryption();
|
|
27682
27697
|
init_logger();
|
|
27683
27698
|
init_serialization2();
|
|
27699
|
+
init_context_storage();
|
|
27684
27700
|
init_semantic_conventions();
|
|
27685
27701
|
init_telemetry();
|
|
27686
27702
|
init_version();
|
|
@@ -27690,6 +27706,16 @@ init_wait_until();
|
|
|
27690
27706
|
init_world_compatibility();
|
|
27691
27707
|
var CROSS_DEPLOYMENT_CAPABILITY_PROBE_TIMEOUT_MS = 2e3;
|
|
27692
27708
|
var ulid3 = monotonicFactory();
|
|
27709
|
+
function resolveLineageAttributes() {
|
|
27710
|
+
const store = contextStorage.getStore();
|
|
27711
|
+
const parentRunId = store?.workflowMetadata?.workflowRunId;
|
|
27712
|
+
if (!parentRunId) return void 0;
|
|
27713
|
+
return {
|
|
27714
|
+
[ROOT_RUN_ID_ATTRIBUTE]: store.rootRunId ?? parentRunId,
|
|
27715
|
+
[PARENT_RUN_ID_ATTRIBUTE]: parentRunId
|
|
27716
|
+
};
|
|
27717
|
+
}
|
|
27718
|
+
__name(resolveLineageAttributes, "resolveLineageAttributes");
|
|
27693
27719
|
var hasWarnedLatestNoOp = false;
|
|
27694
27720
|
async function start(workflow, argsOrOptions, options) {
|
|
27695
27721
|
return await waitedUntil(() => {
|
|
@@ -27774,9 +27800,14 @@ async function start(workflow, argsOrOptions, options) {
|
|
|
27774
27800
|
value
|
|
27775
27801
|
]));
|
|
27776
27802
|
}
|
|
27777
|
-
const
|
|
27778
|
-
|
|
27779
|
-
...
|
|
27803
|
+
const lineage = specVersion >= SPEC_VERSION_SUPPORTS_ATTRIBUTES ? resolveLineageAttributes() : void 0;
|
|
27804
|
+
const runAttributes = lineage ? {
|
|
27805
|
+
...lineage,
|
|
27806
|
+
...attributes
|
|
27807
|
+
} : attributes;
|
|
27808
|
+
const attributeSeed = runAttributes ? {
|
|
27809
|
+
attributes: runAttributes,
|
|
27810
|
+
...allowReservedAttributes || lineage != null ? {
|
|
27780
27811
|
allowReservedAttributes: true
|
|
27781
27812
|
} : {}
|
|
27782
27813
|
} : {};
|
|
@@ -27890,7 +27921,7 @@ __name(start, "start");
|
|
|
27890
27921
|
value: "start",
|
|
27891
27922
|
configurable: true
|
|
27892
27923
|
});
|
|
27893
|
-
})(start, "step//@workflow/core/runtime/start@5.0.0-beta.
|
|
27924
|
+
})(start, "step//@workflow/core/runtime/start@5.0.0-beta.35//start");
|
|
27894
27925
|
|
|
27895
27926
|
// ../core/dist/runtime/runs.js
|
|
27896
27927
|
async function wakeUpRun(world, runId, options) {
|
|
@@ -28226,7 +28257,7 @@ var Run = class _Run {
|
|
|
28226
28257
|
value: "wakeUp",
|
|
28227
28258
|
configurable: true
|
|
28228
28259
|
});
|
|
28229
|
-
})(Run.prototype["wakeUp"], "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
28260
|
+
})(Run.prototype["wakeUp"], "step//@workflow/core/runtime/run@5.0.0-beta.35//Run#wakeUp");
|
|
28230
28261
|
(function(__wf_fn, __wf_id) {
|
|
28231
28262
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28232
28263
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -28235,7 +28266,7 @@ var Run = class _Run {
|
|
|
28235
28266
|
value: "cancel",
|
|
28236
28267
|
configurable: true
|
|
28237
28268
|
});
|
|
28238
|
-
})(Run.prototype["cancel"], "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
28269
|
+
})(Run.prototype["cancel"], "step//@workflow/core/runtime/run@5.0.0-beta.35//Run#cancel");
|
|
28239
28270
|
(function(__wf_fn, __wf_id) {
|
|
28240
28271
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28241
28272
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -28244,7 +28275,7 @@ var Run = class _Run {
|
|
|
28244
28275
|
value: "getReadable",
|
|
28245
28276
|
configurable: true
|
|
28246
28277
|
});
|
|
28247
|
-
})(Run.prototype["getReadable"], "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
28278
|
+
})(Run.prototype["getReadable"], "step//@workflow/core/runtime/run@5.0.0-beta.35//Run#getReadable");
|
|
28248
28279
|
(function(__wf_fn, __wf_id) {
|
|
28249
28280
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28250
28281
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -28253,7 +28284,7 @@ var Run = class _Run {
|
|
|
28253
28284
|
value: "exists",
|
|
28254
28285
|
configurable: true
|
|
28255
28286
|
});
|
|
28256
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "exists").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
28287
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "exists").get, "step//@workflow/core/runtime/run@5.0.0-beta.35//Run#exists");
|
|
28257
28288
|
(function(__wf_fn, __wf_id) {
|
|
28258
28289
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28259
28290
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -28262,7 +28293,7 @@ var Run = class _Run {
|
|
|
28262
28293
|
value: "status",
|
|
28263
28294
|
configurable: true
|
|
28264
28295
|
});
|
|
28265
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "status").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
28296
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "status").get, "step//@workflow/core/runtime/run@5.0.0-beta.35//Run#status");
|
|
28266
28297
|
(function(__wf_fn, __wf_id) {
|
|
28267
28298
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28268
28299
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -28271,7 +28302,7 @@ var Run = class _Run {
|
|
|
28271
28302
|
value: "returnValue",
|
|
28272
28303
|
configurable: true
|
|
28273
28304
|
});
|
|
28274
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "returnValue").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
28305
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "returnValue").get, "step//@workflow/core/runtime/run@5.0.0-beta.35//Run#returnValue");
|
|
28275
28306
|
(function(__wf_fn, __wf_id) {
|
|
28276
28307
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28277
28308
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -28280,7 +28311,7 @@ var Run = class _Run {
|
|
|
28280
28311
|
value: "workflowName",
|
|
28281
28312
|
configurable: true
|
|
28282
28313
|
});
|
|
28283
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "workflowName").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
28314
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "workflowName").get, "step//@workflow/core/runtime/run@5.0.0-beta.35//Run#workflowName");
|
|
28284
28315
|
(function(__wf_fn, __wf_id) {
|
|
28285
28316
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28286
28317
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -28289,7 +28320,7 @@ var Run = class _Run {
|
|
|
28289
28320
|
value: "createdAt",
|
|
28290
28321
|
configurable: true
|
|
28291
28322
|
});
|
|
28292
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "createdAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
28323
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "createdAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.35//Run#createdAt");
|
|
28293
28324
|
(function(__wf_fn, __wf_id) {
|
|
28294
28325
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28295
28326
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -28298,7 +28329,7 @@ var Run = class _Run {
|
|
|
28298
28329
|
value: "startedAt",
|
|
28299
28330
|
configurable: true
|
|
28300
28331
|
});
|
|
28301
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "startedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
28332
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "startedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.35//Run#startedAt");
|
|
28302
28333
|
(function(__wf_fn, __wf_id) {
|
|
28303
28334
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28304
28335
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -28307,7 +28338,7 @@ var Run = class _Run {
|
|
|
28307
28338
|
value: "completedAt",
|
|
28308
28339
|
configurable: true
|
|
28309
28340
|
});
|
|
28310
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "completedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
28341
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "completedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.35//Run#completedAt");
|
|
28311
28342
|
(function(__wf_cls, __wf_id) {
|
|
28312
28343
|
var __wf_sym = /* @__PURE__ */ Symbol.for("workflow-class-registry"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28313
28344
|
__wf_reg.set(__wf_id, __wf_cls);
|
|
@@ -28317,7 +28348,7 @@ var Run = class _Run {
|
|
|
28317
28348
|
enumerable: false,
|
|
28318
28349
|
configurable: false
|
|
28319
28350
|
});
|
|
28320
|
-
})(Run, "class//@workflow/core/runtime/run@5.0.0-beta.
|
|
28351
|
+
})(Run, "class//@workflow/core/runtime/run@5.0.0-beta.35//Run");
|
|
28321
28352
|
|
|
28322
28353
|
// ../workflow/dist/stdlib.js
|
|
28323
28354
|
async function fetch2(...args) {
|
|
@@ -28676,13 +28707,52 @@ async function hookWorkflow(token) {
|
|
|
28676
28707
|
__name(hookWorkflow, "hookWorkflow");
|
|
28677
28708
|
hookWorkflow.workflowId = "workflow//./workflows/inline-execution//hookWorkflow";
|
|
28678
28709
|
|
|
28710
|
+
// workflows/lineage.ts
|
|
28711
|
+
async function noop() {
|
|
28712
|
+
}
|
|
28713
|
+
__name(noop, "noop");
|
|
28714
|
+
(function(__wf_fn, __wf_id) {
|
|
28715
|
+
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28716
|
+
__wf_reg.set(__wf_id, __wf_fn);
|
|
28717
|
+
__wf_fn.stepId = __wf_id;
|
|
28718
|
+
Object.defineProperty(__wf_fn, "name", {
|
|
28719
|
+
value: "noop",
|
|
28720
|
+
configurable: true
|
|
28721
|
+
});
|
|
28722
|
+
})(noop, "step//./workflows/lineage//noop");
|
|
28723
|
+
async function bodyStartsChild() {
|
|
28724
|
+
throw new Error("You attempted to execute workflow bodyStartsChild function directly. To start a workflow, use start(bodyStartsChild) from workflow/api");
|
|
28725
|
+
}
|
|
28726
|
+
__name(bodyStartsChild, "bodyStartsChild");
|
|
28727
|
+
bodyStartsChild.workflowId = "workflow//./workflows/lineage//bodyStartsChild";
|
|
28728
|
+
async function spawnedChild() {
|
|
28729
|
+
throw new Error("You attempted to execute workflow spawnedChild function directly. To start a workflow, use start(spawnedChild) from workflow/api");
|
|
28730
|
+
}
|
|
28731
|
+
__name(spawnedChild, "spawnedChild");
|
|
28732
|
+
spawnedChild.workflowId = "workflow//./workflows/lineage//spawnedChild";
|
|
28733
|
+
async function chainRoot() {
|
|
28734
|
+
throw new Error("You attempted to execute workflow chainRoot function directly. To start a workflow, use start(chainRoot) from workflow/api");
|
|
28735
|
+
}
|
|
28736
|
+
__name(chainRoot, "chainRoot");
|
|
28737
|
+
chainRoot.workflowId = "workflow//./workflows/lineage//chainRoot";
|
|
28738
|
+
async function chainMiddle() {
|
|
28739
|
+
throw new Error("You attempted to execute workflow chainMiddle function directly. To start a workflow, use start(chainMiddle) from workflow/api");
|
|
28740
|
+
}
|
|
28741
|
+
__name(chainMiddle, "chainMiddle");
|
|
28742
|
+
chainMiddle.workflowId = "workflow//./workflows/lineage//chainMiddle";
|
|
28743
|
+
async function chainLeaf() {
|
|
28744
|
+
throw new Error("You attempted to execute workflow chainLeaf function directly. To start a workflow, use start(chainLeaf) from workflow/api");
|
|
28745
|
+
}
|
|
28746
|
+
__name(chainLeaf, "chainLeaf");
|
|
28747
|
+
chainLeaf.workflowId = "workflow//./workflows/lineage//chainLeaf";
|
|
28748
|
+
|
|
28679
28749
|
// workflows/noop.ts
|
|
28680
28750
|
var count = 0;
|
|
28681
|
-
async function
|
|
28751
|
+
async function noop2(_i) {
|
|
28682
28752
|
count++;
|
|
28683
28753
|
return count;
|
|
28684
28754
|
}
|
|
28685
|
-
__name(
|
|
28755
|
+
__name(noop2, "noop");
|
|
28686
28756
|
(function(__wf_fn, __wf_id) {
|
|
28687
28757
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
28688
28758
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -28691,7 +28761,7 @@ __name(noop, "noop");
|
|
|
28691
28761
|
value: "noop",
|
|
28692
28762
|
configurable: true
|
|
28693
28763
|
});
|
|
28694
|
-
})(
|
|
28764
|
+
})(noop2, "step//./workflows/noop//noop");
|
|
28695
28765
|
async function brokenWf() {
|
|
28696
28766
|
throw new Error("You attempted to execute workflow brokenWf function directly. To start a workflow, use start(brokenWf) from workflow/api");
|
|
28697
28767
|
}
|
package/dist/src/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/index.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/index.mts"],"names":[],"mappings":"AAQA,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,QAQ9C"}
|
package/dist/src/index.mjs
CHANGED
|
@@ -3,6 +3,7 @@ import { errors } from './errors.mjs';
|
|
|
3
3
|
import { hooks } from './hooks.mjs';
|
|
4
4
|
import { idempotency } from './idempotency.mjs';
|
|
5
5
|
import { inlineExecution } from './inline-execution.mjs';
|
|
6
|
+
import { lineage } from './lineage.mjs';
|
|
6
7
|
import { nullByte } from './null-byte.mjs';
|
|
7
8
|
export function createTestSuite(pkgName) {
|
|
8
9
|
addition(pkgName);
|
|
@@ -11,5 +12,6 @@ export function createTestSuite(pkgName) {
|
|
|
11
12
|
nullByte(pkgName);
|
|
12
13
|
errors(pkgName);
|
|
13
14
|
inlineExecution(pkgName);
|
|
15
|
+
lineage(pkgName);
|
|
14
16
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZGV4Lm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsTUFBTSxVQUFVLGVBQWUsQ0FBQyxPQUFlO0lBQzdDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2YsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQixlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRpdGlvbiB9IGZyb20gJy4vYWRkaXRpb24ubWpzJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJy4vZXJyb3JzLm1qcyc7XG5pbXBvcnQgeyBob29rcyB9IGZyb20gJy4vaG9va3MubWpzJztcbmltcG9ydCB7IGlkZW1wb3RlbmN5IH0gZnJvbSAnLi9pZGVtcG90ZW5jeS5tanMnO1xuaW1wb3J0IHsgaW5saW5lRXhlY3V0aW9uIH0gZnJvbSAnLi9pbmxpbmUtZXhlY3V0aW9uLm1qcyc7XG5pbXBvcnQgeyBsaW5lYWdlIH0gZnJvbSAnLi9saW5lYWdlLm1qcyc7XG5pbXBvcnQgeyBudWxsQnl0ZSB9IGZyb20gJy4vbnVsbC1ieXRlLm1qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUZXN0U3VpdGUocGtnTmFtZTogc3RyaW5nKSB7XG4gIGFkZGl0aW9uKHBrZ05hbWUpO1xuICBpZGVtcG90ZW5jeShwa2dOYW1lKTtcbiAgaG9va3MocGtnTmFtZSk7XG4gIG51bGxCeXRlKHBrZ05hbWUpO1xuICBlcnJvcnMocGtnTmFtZSk7XG4gIGlubGluZUV4ZWN1dGlvbihwa2dOYW1lKTtcbiAgbGluZWFnZShwa2dOYW1lKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proves end-to-end that `start()` called from a workflow *body* (the canonical
|
|
3
|
+
* child-workflow spawn, not from inside a step) records cross-run lineage. The
|
|
4
|
+
* spawned child must carry `$parentRunId`/`$rootRunId` pointing at the parent,
|
|
5
|
+
* while the top-level parent itself carries none.
|
|
6
|
+
*/
|
|
7
|
+
export declare function lineage(world: string): void;
|
|
8
|
+
//# sourceMappingURL=lineage.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lineage.d.mts","sourceRoot":"","sources":["../../src/lineage.mts"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,QAuDpC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { hydrateWorkflowReturnValue } from '@workflow/core/serialization';
|
|
2
|
+
import { expect, test, vi } from 'vitest';
|
|
3
|
+
import { createFetcher, startServer } from './util.mjs';
|
|
4
|
+
const awaitCompleted = (server, runId) => vi.waitFor(async () => {
|
|
5
|
+
const run = await server.getRun(runId);
|
|
6
|
+
expect(run.status).toBe('completed');
|
|
7
|
+
return run;
|
|
8
|
+
}, { interval: 200, timeout: 10_000 });
|
|
9
|
+
// The runId a run spawned, read from its return value.
|
|
10
|
+
const spawnedRunId = (run) => hydrateWorkflowReturnValue(run.output, run.runId, undefined);
|
|
11
|
+
/**
|
|
12
|
+
* Proves end-to-end that `start()` called from a workflow *body* (the canonical
|
|
13
|
+
* child-workflow spawn, not from inside a step) records cross-run lineage. The
|
|
14
|
+
* spawned child must carry `$parentRunId`/`$rootRunId` pointing at the parent,
|
|
15
|
+
* while the top-level parent itself carries none.
|
|
16
|
+
*/
|
|
17
|
+
export function lineage(world) {
|
|
18
|
+
test('body-level start() records lineage on the child', { timeout: 30_000 }, async () => {
|
|
19
|
+
const server = await startServer({ world }).then(createFetcher);
|
|
20
|
+
const { runId: parentRunId } = await server.invoke('workflows/lineage.ts', 'bodyStartsChild', []);
|
|
21
|
+
const parent = await awaitCompleted(server, parentRunId);
|
|
22
|
+
const child = await awaitCompleted(server, await spawnedRunId(parent));
|
|
23
|
+
// The child started from the parent's body inherits the lineage; the
|
|
24
|
+
// parent is top-level, so it anchors the root to itself.
|
|
25
|
+
expect(child.attributes?.$parentRunId).toBe(parentRunId);
|
|
26
|
+
expect(child.attributes?.$rootRunId).toBe(parentRunId);
|
|
27
|
+
expect(parent.attributes?.$parentRunId).toBeUndefined();
|
|
28
|
+
});
|
|
29
|
+
test('a three-level chain groups every run under the same root', { timeout: 30_000 }, async () => {
|
|
30
|
+
const server = await startServer({ world }).then(createFetcher);
|
|
31
|
+
// Each run returns the id of the one it spawned.
|
|
32
|
+
const { runId: rootRunId } = await server.invoke('workflows/lineage.ts', 'chainRoot', []);
|
|
33
|
+
const root = await awaitCompleted(server, rootRunId);
|
|
34
|
+
const middleRunId = await spawnedRunId(root);
|
|
35
|
+
const middle = await awaitCompleted(server, middleRunId);
|
|
36
|
+
const leaf = await awaitCompleted(server, await spawnedRunId(middle));
|
|
37
|
+
// Root is top-level.
|
|
38
|
+
expect(root.attributes?.$parentRunId).toBeUndefined();
|
|
39
|
+
expect(root.attributes?.$rootRunId).toBeUndefined();
|
|
40
|
+
// Middle: root and parent coincide at depth two.
|
|
41
|
+
expect(middle.attributes?.$parentRunId).toBe(rootRunId);
|
|
42
|
+
expect(middle.attributes?.$rootRunId).toBe(rootRunId);
|
|
43
|
+
// Leaf: parent is the middle, but root is still the chain root.
|
|
44
|
+
expect(leaf.attributes?.$parentRunId).toBe(middleRunId);
|
|
45
|
+
expect(leaf.attributes?.$rootRunId).toBe(rootRunId);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZWFnZS5tanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGluZWFnZS5tdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSXhELE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBZSxFQUFFLEtBQWEsRUFBRSxFQUFFLENBQ3hELEVBQUUsQ0FBQyxPQUFPLENBQ1IsS0FBSyxJQUFJLEVBQUU7SUFDVCxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckMsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FDbkMsQ0FBQztBQUVKLHVEQUF1RDtBQUN2RCxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQXdDLEVBQUUsRUFBRSxDQUNoRSwwQkFBMEIsQ0FDeEIsR0FBRyxDQUFDLE1BQU8sRUFDWCxHQUFHLENBQUMsS0FBSyxFQUNULFNBQVMsQ0FDUyxDQUFDO0FBRXZCOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFhO0lBQ25DLElBQUksQ0FDRixpREFBaUQsRUFDakQsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQ25CLEtBQUssSUFBSSxFQUFFO1FBQ1QsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVoRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FDaEQsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQixFQUFFLENBQ0gsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN6RCxNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUV2RSxxRUFBcUU7UUFDckUseURBQXlEO1FBQ3pELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUQsQ0FBQyxDQUNGLENBQUM7SUFFRixJQUFJLENBQ0YsMERBQTBELEVBQzFELEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUNuQixLQUFLLElBQUksRUFBRTtRQUNULE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFaEUsaURBQWlEO1FBQ2pELE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUM5QyxzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLEVBQUUsQ0FDSCxDQUFDO1FBRUYsTUFBTSxJQUFJLEdBQUcsTUFBTSxjQUFjLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUV0RSxxQkFBcUI7UUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFcEQsaURBQWlEO1FBQ2pELE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEQsZ0VBQWdFO1FBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHlkcmF0ZVdvcmtmbG93UmV0dXJuVmFsdWUgfSBmcm9tICdAd29ya2Zsb3cvY29yZS9zZXJpYWxpemF0aW9uJztcbmltcG9ydCB7IGV4cGVjdCwgdGVzdCwgdmkgfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHsgY3JlYXRlRmV0Y2hlciwgc3RhcnRTZXJ2ZXIgfSBmcm9tICcuL3V0aWwubWpzJztcblxudHlwZSBGZXRjaGVyID0gUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlRmV0Y2hlcj47XG5cbmNvbnN0IGF3YWl0Q29tcGxldGVkID0gKHNlcnZlcjogRmV0Y2hlciwgcnVuSWQ6IHN0cmluZykgPT5cbiAgdmkud2FpdEZvcihcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBydW4gPSBhd2FpdCBzZXJ2ZXIuZ2V0UnVuKHJ1bklkKTtcbiAgICAgIGV4cGVjdChydW4uc3RhdHVzKS50b0JlKCdjb21wbGV0ZWQnKTtcbiAgICAgIHJldHVybiBydW47XG4gICAgfSxcbiAgICB7IGludGVydmFsOiAyMDAsIHRpbWVvdXQ6IDEwXzAwMCB9XG4gICk7XG5cbi8vIFRoZSBydW5JZCBhIHJ1biBzcGF3bmVkLCByZWFkIGZyb20gaXRzIHJldHVybiB2YWx1ZS5cbmNvbnN0IHNwYXduZWRSdW5JZCA9IChydW46IHsgb3V0cHV0PzogdW5rbm93bjsgcnVuSWQ6IHN0cmluZyB9KSA9PlxuICBoeWRyYXRlV29ya2Zsb3dSZXR1cm5WYWx1ZShcbiAgICBydW4ub3V0cHV0ISxcbiAgICBydW4ucnVuSWQsXG4gICAgdW5kZWZpbmVkXG4gICkgYXMgUHJvbWlzZTxzdHJpbmc+O1xuXG4vKipcbiAqIFByb3ZlcyBlbmQtdG8tZW5kIHRoYXQgYHN0YXJ0KClgIGNhbGxlZCBmcm9tIGEgd29ya2Zsb3cgKmJvZHkqICh0aGUgY2Fub25pY2FsXG4gKiBjaGlsZC13b3JrZmxvdyBzcGF3biwgbm90IGZyb20gaW5zaWRlIGEgc3RlcCkgcmVjb3JkcyBjcm9zcy1ydW4gbGluZWFnZS4gVGhlXG4gKiBzcGF3bmVkIGNoaWxkIG11c3QgY2FycnkgYCRwYXJlbnRSdW5JZGAvYCRyb290UnVuSWRgIHBvaW50aW5nIGF0IHRoZSBwYXJlbnQsXG4gKiB3aGlsZSB0aGUgdG9wLWxldmVsIHBhcmVudCBpdHNlbGYgY2FycmllcyBub25lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbGluZWFnZSh3b3JsZDogc3RyaW5nKSB7XG4gIHRlc3QoXG4gICAgJ2JvZHktbGV2ZWwgc3RhcnQoKSByZWNvcmRzIGxpbmVhZ2Ugb24gdGhlIGNoaWxkJyxcbiAgICB7IHRpbWVvdXQ6IDMwXzAwMCB9LFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IHN0YXJ0U2VydmVyKHsgd29ybGQgfSkudGhlbihjcmVhdGVGZXRjaGVyKTtcblxuICAgICAgY29uc3QgeyBydW5JZDogcGFyZW50UnVuSWQgfSA9IGF3YWl0IHNlcnZlci5pbnZva2UoXG4gICAgICAgICd3b3JrZmxvd3MvbGluZWFnZS50cycsXG4gICAgICAgICdib2R5U3RhcnRzQ2hpbGQnLFxuICAgICAgICBbXVxuICAgICAgKTtcblxuICAgICAgY29uc3QgcGFyZW50ID0gYXdhaXQgYXdhaXRDb21wbGV0ZWQoc2VydmVyLCBwYXJlbnRSdW5JZCk7XG4gICAgICBjb25zdCBjaGlsZCA9IGF3YWl0IGF3YWl0Q29tcGxldGVkKHNlcnZlciwgYXdhaXQgc3Bhd25lZFJ1bklkKHBhcmVudCkpO1xuXG4gICAgICAvLyBUaGUgY2hpbGQgc3RhcnRlZCBmcm9tIHRoZSBwYXJlbnQncyBib2R5IGluaGVyaXRzIHRoZSBsaW5lYWdlOyB0aGVcbiAgICAgIC8vIHBhcmVudCBpcyB0b3AtbGV2ZWwsIHNvIGl0IGFuY2hvcnMgdGhlIHJvb3QgdG8gaXRzZWxmLlxuICAgICAgZXhwZWN0KGNoaWxkLmF0dHJpYnV0ZXM/LiRwYXJlbnRSdW5JZCkudG9CZShwYXJlbnRSdW5JZCk7XG4gICAgICBleHBlY3QoY2hpbGQuYXR0cmlidXRlcz8uJHJvb3RSdW5JZCkudG9CZShwYXJlbnRSdW5JZCk7XG4gICAgICBleHBlY3QocGFyZW50LmF0dHJpYnV0ZXM/LiRwYXJlbnRSdW5JZCkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH1cbiAgKTtcblxuICB0ZXN0KFxuICAgICdhIHRocmVlLWxldmVsIGNoYWluIGdyb3VwcyBldmVyeSBydW4gdW5kZXIgdGhlIHNhbWUgcm9vdCcsXG4gICAgeyB0aW1lb3V0OiAzMF8wMDAgfSxcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBzdGFydFNlcnZlcih7IHdvcmxkIH0pLnRoZW4oY3JlYXRlRmV0Y2hlcik7XG5cbiAgICAgIC8vIEVhY2ggcnVuIHJldHVybnMgdGhlIGlkIG9mIHRoZSBvbmUgaXQgc3Bhd25lZC5cbiAgICAgIGNvbnN0IHsgcnVuSWQ6IHJvb3RSdW5JZCB9ID0gYXdhaXQgc2VydmVyLmludm9rZShcbiAgICAgICAgJ3dvcmtmbG93cy9saW5lYWdlLnRzJyxcbiAgICAgICAgJ2NoYWluUm9vdCcsXG4gICAgICAgIFtdXG4gICAgICApO1xuXG4gICAgICBjb25zdCByb290ID0gYXdhaXQgYXdhaXRDb21wbGV0ZWQoc2VydmVyLCByb290UnVuSWQpO1xuICAgICAgY29uc3QgbWlkZGxlUnVuSWQgPSBhd2FpdCBzcGF3bmVkUnVuSWQocm9vdCk7XG4gICAgICBjb25zdCBtaWRkbGUgPSBhd2FpdCBhd2FpdENvbXBsZXRlZChzZXJ2ZXIsIG1pZGRsZVJ1bklkKTtcbiAgICAgIGNvbnN0IGxlYWYgPSBhd2FpdCBhd2FpdENvbXBsZXRlZChzZXJ2ZXIsIGF3YWl0IHNwYXduZWRSdW5JZChtaWRkbGUpKTtcblxuICAgICAgLy8gUm9vdCBpcyB0b3AtbGV2ZWwuXG4gICAgICBleHBlY3Qocm9vdC5hdHRyaWJ1dGVzPy4kcGFyZW50UnVuSWQpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChyb290LmF0dHJpYnV0ZXM/LiRyb290UnVuSWQpLnRvQmVVbmRlZmluZWQoKTtcblxuICAgICAgLy8gTWlkZGxlOiByb290IGFuZCBwYXJlbnQgY29pbmNpZGUgYXQgZGVwdGggdHdvLlxuICAgICAgZXhwZWN0KG1pZGRsZS5hdHRyaWJ1dGVzPy4kcGFyZW50UnVuSWQpLnRvQmUocm9vdFJ1bklkKTtcbiAgICAgIGV4cGVjdChtaWRkbGUuYXR0cmlidXRlcz8uJHJvb3RSdW5JZCkudG9CZShyb290UnVuSWQpO1xuXG4gICAgICAvLyBMZWFmOiBwYXJlbnQgaXMgdGhlIG1pZGRsZSwgYnV0IHJvb3QgaXMgc3RpbGwgdGhlIGNoYWluIHJvb3QuXG4gICAgICBleHBlY3QobGVhZi5hdHRyaWJ1dGVzPy4kcGFyZW50UnVuSWQpLnRvQmUobWlkZGxlUnVuSWQpO1xuICAgICAgZXhwZWN0KGxlYWYuYXR0cmlidXRlcz8uJHJvb3RSdW5JZCkudG9CZShyb290UnVuSWQpO1xuICAgIH1cbiAgKTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/world-testing",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.35",
|
|
4
4
|
"description": "Testing utilities and World implementation for Workflow SDK",
|
|
5
5
|
"main": "dist/src/index.mjs",
|
|
6
6
|
"files": [
|
|
@@ -21,22 +21,22 @@
|
|
|
21
21
|
"hono": "4.12.25",
|
|
22
22
|
"jsonlines": "0.1.1",
|
|
23
23
|
"zod": "~4.3.6",
|
|
24
|
-
"@workflow/cli": "5.0.0-beta.
|
|
25
|
-
"@workflow/core": "5.0.0-beta.
|
|
24
|
+
"@workflow/cli": "5.0.0-beta.35",
|
|
25
|
+
"@workflow/core": "5.0.0-beta.35",
|
|
26
26
|
"@workflow/utils": "5.0.0-beta.6",
|
|
27
|
-
"@workflow/world": "5.0.0-beta.
|
|
28
|
-
"@workflow/world-local": "5.0.0-beta.
|
|
29
|
-
"workflow": "5.0.0-beta.
|
|
27
|
+
"@workflow/world": "5.0.0-beta.21",
|
|
28
|
+
"@workflow/world-local": "5.0.0-beta.29",
|
|
29
|
+
"workflow": "5.0.0-beta.35"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/jsonlines": "0.1.5",
|
|
33
33
|
"@types/node": "22.19.0",
|
|
34
34
|
"typescript": "^6.0.3",
|
|
35
|
-
"vitest": "^4.
|
|
35
|
+
"vitest": "^4.1.10",
|
|
36
36
|
"@workflow/tsconfig": "5.0.0-beta.0"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
-
"vitest": "^4.
|
|
39
|
+
"vitest": "^4.1.10"
|
|
40
40
|
},
|
|
41
41
|
"keywords": [],
|
|
42
42
|
"author": "",
|