@lostgradient/weft 0.24.0 → 0.24.1
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/README.md +2 -2
- package/dist/cli/conformance.js +5 -2
- package/dist/cli/generated/operation-catalog.snapshot.json +95 -1
- package/dist/cli/generated/operation-client.generated.d.ts +28 -2
- package/dist/cli/generated/operation-client.generated.js +2 -0
- package/dist/cli/parse-schedule-arguments.js +15 -3
- package/dist/cli/schedule.js +2 -1
- package/dist/cli/types.d.ts +2 -1
- package/dist/client/http-client-requests.js +6 -9
- package/dist/client/start-body.js +1 -0
- package/dist/core/catalog/index.d.ts +2 -2
- package/dist/core/catalog/index.js +9 -2
- package/dist/core/catalog/reference-counts.d.ts +29 -14
- package/dist/core/catalog/removal.d.ts +63 -10
- package/dist/core/catalog/removal.js +18 -2
- package/dist/core/catalog/storage-io.d.ts +23 -0
- package/dist/core/catalog/storage-io.js +1 -1
- package/dist/core/engine/activity-resolution.js +17 -17
- package/dist/core/engine/bulk-operations-purge.js +14 -20
- package/dist/core/engine/bulk-operations-retry.d.ts +9 -0
- package/dist/core/engine/bulk-operations-retry.js +177 -0
- package/dist/core/engine/bulk-operations-shared.d.ts +18 -0
- package/dist/core/engine/bulk-operations-shared.js +14 -0
- package/dist/core/engine/bulk-operations.js +8 -167
- package/dist/core/engine/callback-creators-bundles.js +4 -2
- package/dist/core/engine/callback-creators-core.js +9 -1
- package/dist/core/engine/callback-creators-schedule.js +2 -2
- package/dist/core/engine/catalog-readiness.js +2 -0
- package/dist/core/engine/catalog-removal.d.ts +107 -3
- package/dist/core/engine/catalog-removal.js +66 -13
- package/dist/core/engine/catalog-tombstone-recovery.d.ts +56 -0
- package/dist/core/engine/catalog-tombstone-recovery.js +39 -0
- package/dist/core/engine/constraints.js +5 -1
- package/dist/core/engine/construction.d.ts +1 -1
- package/dist/core/engine/decode-revision.d.ts +32 -0
- package/dist/core/engine/decode-revision.js +9 -0
- package/dist/core/engine/disposal.d.ts +6 -2
- package/dist/core/engine/disposal.js +24 -10
- package/dist/core/engine/dynamic-source-errors.d.ts +81 -0
- package/dist/core/engine/dynamic-source-errors.js +25 -0
- package/dist/core/engine/dynamic-source-execution.d.ts +173 -0
- package/dist/core/engine/dynamic-source-execution.js +108 -0
- package/dist/core/engine/engine-internal-types.d.ts +16 -0
- package/dist/core/engine/engine-workflows-namespace.d.ts +10 -0
- package/dist/core/engine/engine-workflows-namespace.js +3 -1
- package/dist/core/engine/index.d.ts +18 -10
- package/dist/core/engine/index.js +21 -10
- package/dist/core/engine/inline-launch-queue.js +1 -1
- package/dist/core/engine/internals.d.ts +26 -30
- package/dist/core/engine/lifecycle/checkpoint-launch.d.ts +29 -0
- package/dist/core/engine/lifecycle/checkpoint-launch.js +75 -0
- package/dist/core/engine/lifecycle/delayed-start-registration.d.ts +30 -0
- package/dist/core/engine/lifecycle/delayed-start-registration.js +11 -0
- package/dist/core/engine/lifecycle/fork-helpers.d.ts +33 -1
- package/dist/core/engine/lifecycle/fork-helpers.js +3 -1
- package/dist/core/engine/lifecycle/recovery-revision-groups.d.ts +75 -0
- package/dist/core/engine/lifecycle/recovery-revision-groups.js +64 -0
- package/dist/core/engine/lifecycle/resume-generation-guard.d.ts +58 -0
- package/dist/core/engine/lifecycle/resume-generation-guard.js +11 -0
- package/dist/core/engine/lifecycle/resume.js +18 -9
- package/dist/core/engine/lifecycle/shared.d.ts +43 -0
- package/dist/core/engine/lifecycle/standalone-claim-acquire.d.ts +12 -0
- package/dist/core/engine/lifecycle/standalone-claim-acquire.js +6 -0
- package/dist/core/engine/lifecycle/start-commit-errors.d.ts +12 -0
- package/dist/core/engine/lifecycle/start-commit-errors.js +6 -0
- package/dist/core/engine/lifecycle/start-commit.d.ts +22 -7
- package/dist/core/engine/lifecycle/start-commit.js +49 -15
- package/dist/core/engine/lifecycle/start-exec.d.ts +18 -2
- package/dist/core/engine/lifecycle/start-exec.js +7 -5
- package/dist/core/engine/lifecycle/start-or-signal-create.js +1 -3
- package/dist/core/engine/lifecycle/start-or-signal.js +1 -1
- package/dist/core/engine/lifecycle/start-precondition-attribution.d.ts +49 -0
- package/dist/core/engine/lifecycle/start-precondition-attribution.js +13 -0
- package/dist/core/engine/lifecycle/start-revision-resolution.d.ts +34 -0
- package/dist/core/engine/lifecycle/start-revision-resolution.js +11 -0
- package/dist/core/engine/lifecycle/start-state.d.ts +16 -0
- package/dist/core/engine/lifecycle/start-state.js +60 -0
- package/dist/core/engine/lifecycle/start-terminal-conflict-purge.d.ts +66 -3
- package/dist/core/engine/lifecycle/start-terminal-conflict-purge.js +13 -3
- package/dist/core/engine/lifecycle/start.d.ts +16 -6
- package/dist/core/engine/lifecycle/start.js +38 -68
- package/dist/core/engine/lifecycle/transition.d.ts +3 -4
- package/dist/core/engine/lifecycle/transition.js +30 -80
- package/dist/core/engine/lifecycle.d.ts +4 -2
- package/dist/core/engine/lifecycle.js +6 -6
- package/dist/core/engine/listing.js +15 -1
- package/dist/core/engine/memo-durable-activity.js +4 -1
- package/dist/core/engine/nonterminal-revision-count.d.ts +25 -0
- package/dist/core/engine/nonterminal-revision-count.js +16 -0
- package/dist/core/engine/operations-time.d.ts +5 -23
- package/dist/core/engine/operations-time.js +13 -11
- package/dist/core/engine/ownership-bootstrap.d.ts +1 -1
- package/dist/core/engine/pinned-schedule-revision-count.d.ts +26 -0
- package/dist/core/engine/pinned-schedule-revision-count.js +19 -0
- package/dist/core/engine/pinned-schedule-revision.d.ts +76 -0
- package/dist/core/engine/pinned-schedule-revision.js +53 -0
- package/dist/core/engine/registration.d.ts +30 -0
- package/dist/core/engine/registration.js +17 -2
- package/dist/core/engine/retention.js +9 -2
- package/dist/core/engine/revision-errors.d.ts +71 -0
- package/dist/core/engine/revision-errors.js +13 -0
- package/dist/core/engine/schedule-revision-fire.d.ts +17 -0
- package/dist/core/engine/schedule-revision-fire.js +3 -0
- package/dist/core/engine/schedule-run.js +2 -1
- package/dist/core/engine/schedules.d.ts +2 -1
- package/dist/core/engine/schedules.js +28 -9
- package/dist/core/engine/source-diagnostics.d.ts +76 -0
- package/dist/core/engine/source-diagnostics.js +105 -0
- package/dist/core/engine/source-registration.js +4 -2
- package/dist/core/engine/source-resolution.d.ts +25 -9
- package/dist/core/engine/source-resolution.js +49 -14
- package/dist/core/engine/source-runtime-state.d.ts +92 -0
- package/dist/core/engine/source-runtime-state.js +36 -0
- package/dist/core/engine/storage-io.d.ts +19 -2
- package/dist/core/engine/storage-io.js +21 -2
- package/dist/core/engine/termination/finalizer-registration.d.ts +18 -0
- package/dist/core/engine/termination/finalizer-registration.js +21 -0
- package/dist/core/engine/termination/finalizer.d.ts +16 -19
- package/dist/core/engine/termination/finalizer.js +3 -3
- package/dist/core/engine/time-operation-callbacks.d.ts +32 -0
- package/dist/core/engine/time-operation-callbacks.js +0 -0
- package/dist/core/engine/validation/schedule-cadence.d.ts +16 -0
- package/dist/core/engine/validation/schedule-cadence.js +20 -0
- package/dist/core/engine/validation/schedule-options.d.ts +4 -1
- package/dist/core/engine/validation/schedule-options.js +14 -0
- package/dist/core/engine/validation/schedule-revision.d.ts +24 -0
- package/dist/core/engine/validation/schedule-revision.js +21 -0
- package/dist/core/engine/validation/schedule-warnings.d.ts +11 -0
- package/dist/core/engine/validation/schedule-warnings.js +5 -0
- package/dist/core/engine/validation/schedule.d.ts +4 -3
- package/dist/core/engine/validation/schedule.js +15 -26
- package/dist/core/engine/validation.js +3 -0
- package/dist/core/engine/workflow-claim-reclaim-target.d.ts +1 -1
- package/dist/core/engine/workflow-claim-reclaim-target.js +16 -2
- package/dist/core/engine/workflow-retention-deadline.d.ts +16 -0
- package/dist/core/engine/workflow-retention-deadline.js +33 -0
- package/dist/core/events/event-map.d.ts +5 -0
- package/dist/core/events/index.d.ts +1 -0
- package/dist/core/events/index.js +1 -0
- package/dist/core/events/workflow-source-events.d.ts +102 -0
- package/dist/core/events/workflow-source-events.js +57 -0
- package/dist/core/execution-strategy.d.ts +7 -0
- package/dist/core/inline-execution-strategy.context-options.d.ts +1 -1
- package/dist/core/inline-execution-strategy.js +1 -1
- package/dist/core/types/checkpoint.d.ts +14 -0
- package/dist/core/types/schedules.d.ts +52 -1
- package/dist/core/types/state.d.ts +16 -0
- package/dist/core/weft-error.d.ts +1 -1
- package/dist/core/weft-error.js +4 -1
- package/dist/core/worker-execution-strategy.d.ts +1 -0
- package/dist/core/worker-execution-strategy.js +13 -1
- package/dist/core/worker-fault-handling.d.ts +10 -0
- package/dist/core/worker-fault-handling.js +1 -0
- package/dist/core/worker-inbound-message.d.ts +1 -0
- package/dist/core/worker-inbound-message.js +1 -0
- package/dist/core/worker-protocol-guard.js +4 -0
- package/dist/core/worker-protocol.d.ts +7 -0
- package/dist/core/worker-protocol.js +2 -1
- package/dist/core/worker-turn-watchdog.d.ts +8 -1
- package/dist/core/worker-turn-watchdog.js +3 -2
- package/dist/diagnostics/format.js +5 -0
- package/dist/diagnostics/types.d.ts +24 -0
- package/dist/diagnostics/version-check.js +8 -2
- package/dist/http.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +7 -0
- package/dist/indexeddb.js +1 -1
- package/dist/json-schema.js +3 -3
- package/dist/server/fault-to-json-rpc.js +2 -1
- package/dist/server/index.d.ts +11 -0
- package/dist/server/operation-fault.d.ts +2 -0
- package/dist/server/operation-fault.js +2 -1
- package/dist/server/operations/create-schedule.d.ts +2 -0
- package/dist/server/operations/create-schedule.js +10 -6
- package/dist/server/operations/get-catalog-diagnostics.d.ts +28 -0
- package/dist/server/operations/get-catalog-diagnostics.js +10 -2
- package/dist/server/operations/get-task-detail-schema.d.ts +8 -0
- package/dist/server/operations/get-task-detail-schema.js +1 -0
- package/dist/server/operations/get-task-detail.d.ts +8 -0
- package/dist/server/operations/get-task-detail.js +1 -0
- package/dist/server/operations/get-task-diagnostics.d.ts +4 -4
- package/dist/server/operations/preload-workflow-revision.d.ts +28 -0
- package/dist/server/operations/preload-workflow-revision.js +60 -0
- package/dist/server/operations/schedule-faults.d.ts +1 -0
- package/dist/server/operations/schedule-faults.js +32 -4
- package/dist/server/operations/schedule-rest-body.d.ts +1 -0
- package/dist/server/operations/schedule-rest-body.js +2 -1
- package/dist/server/operations/static-registrations.js +6 -0
- package/dist/server/operations/update-schedule.d.ts +2 -0
- package/dist/server/operations/update-schedule.js +4 -2
- package/dist/server/operations/workflow-catalog-operation-helpers.js +27 -0
- package/dist/server/runtime/task-dispatch-envelope.d.ts +14 -0
- package/dist/server/runtime/task-dispatch-envelope.js +32 -0
- package/dist/server/runtime/task-dispatch-revision.d.ts +29 -0
- package/dist/server/runtime/task-dispatch-revision.js +13 -0
- package/dist/server/runtime/task-dispatch.js +12 -37
- package/dist/server/runtime/task-ledger-recovery.js +1 -1
- package/dist/server/runtime/task-ledger-runtime.d.ts +14 -2
- package/dist/server/runtime/task-ledger-runtime.js +5 -3
- package/dist/server/runtime/task-polling.js +9 -3
- package/dist/server/runtime/task-reconciliation.js +2 -1
- package/dist/server/runtime/websocket-worker.js +9 -0
- package/dist/server/task-ledger-codec.d.ts +9 -0
- package/dist/server/task-ledger-codec.js +4 -1
- package/dist/server/task-ledger-transition-helpers.js +1 -0
- package/dist/server/task-ledger-types.d.ts +9 -0
- package/dist/server/task-ledger.d.ts +1 -1
- package/dist/server/task-ledger.js +2 -1
- package/dist/server/task-queue-types.d.ts +2 -0
- package/dist/storage/bun-sql.js +3 -1
- package/dist/storage/catalog-keys.d.ts +19 -0
- package/dist/storage/catalog-keys.js +3 -1
- package/dist/storage/compressed-storage.js +1 -1
- package/dist/storage/index.d.ts +3 -1
- package/dist/storage/interface.d.ts +2 -0
- package/dist/storage/interface.js +1 -1
- package/dist/storage/key-prefixes.d.ts +1 -1
- package/dist/storage/key-prefixes.js +1 -0
- package/dist/storage/lmdb.d.ts +30 -2
- package/dist/storage/lmdb.js +1 -1
- package/dist/storage/memory.js +1 -1
- package/dist/storage/neon.js +2 -2
- package/dist/storage/node-sqlite.js +3 -1
- package/dist/storage/postgres.js +2 -2
- package/dist/storage/resolve.js +1 -1
- package/dist/storage/scoped-storage.js +1 -1
- package/dist/storage/testing.js +1 -1
- package/dist/storage/turso.js +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/web-extension.js +1 -1
- package/dist/worker/protocol-messages.d.ts +17 -0
- package/dist/worker/protocol-schemas.d.ts +32 -0
- package/dist/worker/protocol-schemas.js +7 -3
- package/dist/worker/protocol-task-result.js +35 -3
- package/dist/worker/protocol.js +1 -1
- package/dist/worker/registry/types.d.ts +2 -0
- package/dist/worker/registry.d.ts +1 -1
- package/dist/worker/registry.js +3 -1
- package/dist/workers/workflow-runner.d.ts +9 -0
- package/dist/workers/workflow-runner.js +9 -2
- package/dist/workers/workflow-worker-entry.js +9 -4
- package/package.json +2 -2
|
@@ -12,11 +12,15 @@ async function groupActiveWorkflowsByType(storage) {
|
|
|
12
12
|
const storedVersion = state.versionTuple.workflowVersion;
|
|
13
13
|
let group = groups.get(state.type);
|
|
14
14
|
if (!group) {
|
|
15
|
-
group = { count: 0, versionCounts: new Map };
|
|
15
|
+
group = { count: 0, versionCounts: new Map, revisionCounts: new Map, unpinnedCount: 0 };
|
|
16
16
|
groups.set(state.type, group);
|
|
17
17
|
}
|
|
18
18
|
group.count++;
|
|
19
19
|
group.versionCounts.set(storedVersion, (group.versionCounts.get(storedVersion) ?? 0) + 1);
|
|
20
|
+
if (state.revision === void 0)
|
|
21
|
+
group.unpinnedCount++;
|
|
22
|
+
else
|
|
23
|
+
group.revisionCounts.set(state.revision, (group.revisionCounts.get(state.revision) ?? 0) + 1);
|
|
20
24
|
}
|
|
21
25
|
return groups;
|
|
22
26
|
}
|
|
@@ -41,7 +45,9 @@ function buildWorkflowTypeReports(groups, registrations) {
|
|
|
41
45
|
storedVersion,
|
|
42
46
|
registeredVersion,
|
|
43
47
|
runningCount: group.count,
|
|
44
|
-
compatibility
|
|
48
|
+
compatibility,
|
|
49
|
+
revisionCounts: Object.fromEntries(group.revisionCounts),
|
|
50
|
+
unpinnedRunningCount: group.unpinnedCount
|
|
45
51
|
});
|
|
46
52
|
}
|
|
47
53
|
return reports;
|
package/dist/http.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
async function*B(e,t){if(e.body===null)return;let r=e.body.getReader(),i=new TextDecoder,o="",l=0,u=!1;try{while(!0){let{done:V,value:O}=await r.read();if(V){u=!0;break}if(l+=O.byteLength,l>t.maximumBytes)throw t.sizeLimitError();o+=i.decode(O,{stream:!0});let C=o.split(`
|
|
2
|
-
`);o=C.pop()??"";for(let Y of C)yield Y}if(o+=i.decode(),o.length>0)yield o}finally{if(!u)try{await r.cancel()}catch{}r.releaseLock()}}function b(e){let t=[];for(let r=0;r<e.length;r+=512)t.push(String.fromCharCode(...e.subarray(r,r+512)));return btoa(t.join(""))}function R(e){let t=atob(e),r=new Uint8Array(t.length);for(let i=0;i<t.length;i+=1)r[i]=t.charCodeAt(i);return r}function S(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}async function f(e,t){return await e.get(t)!==null}async function*c(e,t,r){for await(let[i]of e.scan(t,r))yield i}async function m(e,t){let r=0;for await(let i of c(e,t))r++;return r}async function y(e,t){let r=[];for await(let i of c(e,t))r.push({type:"delete",key:i});if(r.length===0)return 0;return await e.batch(r),r.length}async function h(e,t,r){let i=[];for await(let o of c(e,t,r))i.push({type:"delete",key:o});if(i.length===0)return 0;return await e.batch(i),i.length}function P(e,t,r){if(!e.capabilities()[t])throw Error(`Feature "${r}" requires storage capability "${t}", but this storage backend does not provide it.`)}function n(e){return encodeURIComponent(e)}function s(e){return String(e).padStart(16,"0")}var k={catalogEntry:(e,t)=>`catalog-entry:${n(e)}:${n(t)}`,catalogEntryPrefix:(e)=>`catalog-entry:${n(e)}:`,catalogActive:(e)=>`catalog-active:${n(e)}`};var T="default";var E={applicationMailbox:(e,t)=>`appmbx:v1:${n(e)}:${n(t)}`,applicationMailboxSinkProbe:(e,t,r)=>`appprobe:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandPrefix:(e,t)=>`appcmd:v1:${n(e)}:${n(t)}:`,applicationCommand:(e,t,r)=>`appcmd:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandReadyPrefix:(e,t)=>`appready:v1:${n(e)}:${n(t)}:`,applicationCommandReady:(e,t,r)=>`appready:v1:${n(e)}:${n(t)}:${s(r)}`,applicationCommandIdempotency:(e,t,r)=>`appidem:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandBySequencePrefix:(e,t)=>`appseq:v1:${n(e)}:${n(t)}:`,applicationCommandBySequence:(e,t,r)=>`appseq:v1:${n(e)}:${n(t)}:${s(r)}`,applicationCommandTerminalPrefix:(e,t)=>`appterm:v1:${n(e)}:${n(t)}:`,applicationCommandTerminal:(e,t,r,i)=>`appterm:v1:${n(e)}:${n(t)}:${s(r)}:${n(i)}`};var A={applicationOutbox:(e,t)=>`appobx:v1:${n(e)}:${n(t)}`,applicationOutboxSinkProbe:(e,t,r)=>`appprobe:v1:outbox:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryPrefix:(e,t)=>`appdlv:v1:${n(e)}:${n(t)}:`,applicationDelivery:(e,t,r)=>`appdlv:v1:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryDuePrefix:(e,t)=>`appdue:v1:${n(e)}:${n(t)}:`,applicationDeliveryDue:(e,t,r,i)=>`appdue:v1:${n(e)}:${n(t)}:${s(r)}:${n(i)}`,applicationDeliveryIdempotency:(e,t,r)=>`appdidem:v1:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryBySequencePrefix:(e,t)=>`appdseq:v1:${n(e)}:${n(t)}:`,applicationDeliveryBySequence:(e,t,r)=>`appdseq:v1:${n(e)}:${n(t)}:${s(r)}`,applicationDeliveryTerminalPrefix:(e,t)=>`appdterm:v1:${n(e)}:${n(t)}:`,applicationDeliveryTerminal:(e,t,r,i)=>`appdterm:v1:${n(e)}:${n(t)}:${s(r)}:${n(i)}`};var D={workflowOwnerEpoch:(e)=>`wf-owner-epoch:${n(e)}`,workflowOwnerHolder:(e)=>`wf-owner-holder:${n(e)}`,ownershipModeMarker:()=>"ownership-mode-marker"};var w=1e4;class I extends Error{code="StorageBatchOperationLimitExceededError";cap=w;count;target;constructor(e,t){super(`${e} count ${t} exceeds MAX_BATCH_OPERATIONS (${w}).`);this.name="StorageBatchOperationLimitExceededError",this.target=e,this.count=t}}function g(e,t){if(t>w)throw new I(e,t)}function L(e){return e.length>0?e.slice(0,-1)+String.fromCharCode(e.charCodeAt(e.length-1)+1):"ÿ"}function Re(e,t={}){if(t.gt!==void 0&&e<=t.gt)return!1;if(t.gte!==void 0&&e<t.gte)return!1;if(t.lt!==void 0&&e>=t.lt)return!1;if(t.lte!==void 0&&e>t.lte)return!1;return!0}function Pe(e,t){if(e===null||t===null)return e===t;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}async function _(e,t){if(e.has)return e.has(t);return f(e,t)}function K(e,t,r){if(e.keys)return e.keys(t,r);return c(e,t,r)}async function N(e,t){if(e.count)return e.count(t);return m(e,t)}async function H(e,t){if(e.deletePrefix)return e.deletePrefix(t);return y(e,t)}async function z(e,t,r){if(g("conditionalBatch conditions",t.length),g("conditionalBatch operations",r.length),P(e,"conditionalBatch","storageConditionalBatch"),!e.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return e.conditionalBatch(t,r)}var a=s,G="0",j="1",U=(e,t,r,i)=>`sig:${n(e)}:${n(t)}:${i}:${n(r)}`,ke={workflow:(e)=>`wf:${n(e)}`,checkpoint:(e)=>`wf:${n(e)}:ckpt`,checkpointHistory:(e,t)=>`wf:${n(e)}:ckpt:${String(t).padStart(10,"0")}`,timelinePrefix:(e)=>`wf:${n(e)}:timeline:`,timeline:(e,t)=>`wf:${n(e)}:timeline:${String(t).padStart(10,"0")}`,schedule:(e)=>`schedule:${n(e)}`,scheduleTick:(e,t)=>`schedule-due:${String(e).padStart(16,"0")}:${n(t)}`,scheduleRun:(e)=>`schedule-run:${n(e)}`,scheduleRunLink:(e)=>`schedule-run-link:${n(e)}`,scheduleRunBySchedulePrefix:(e)=>`schedule-run-by-schedule:${n(e)}:`,scheduleRunBySchedule:(e,t)=>`schedule-run-by-schedule:${n(e)}:${n(t)}`,operation:(e,t,r)=>`op:${e}:${a(t)}:${r}`,operationInflight:(e)=>`op:inflight:${e}`,operationQueued:(e)=>`op:queued:${e}`,operationResolved:(e)=>`op:resolved:${e}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(e,t,r)=>`audit:bulk:${a(e)}:${n(t)}:${n(r)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(e,t)=>`op:resolved-by-time:${a(e)}:${n(t)}`,asyncActivity:(e,t)=>`async-act:v1:${n(e)}:${n(t)}`,asyncActivityResolution:(e,t)=>`async-act:v1:${n(e)}:${n(t)}:resolution`,activityReconciliationPrefix:(e)=>`actrec:v1:${n(e)}:`,activityReconciliation:(e,t,r)=>`actrec:v1:${n(e)}:${n(t)}:${r}`,eventPrefix:(e)=>`ev:${n(e)}:`,event:(e,t)=>`ev:${n(e)}:${String(t).padStart(10,"0")}`,eventHead:(e)=>`ev:${n(e)}:head`,eventWatermark:(e)=>`ev:${n(e)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(e)=>`fleet-event:${String(e).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventWatermark:()=>"fleet-event-watermark",fleetEventByWorkflowPrefix:(e)=>`fleet-event-by-workflow:${n(e)}:`,fleetEventByWorkflow:(e,t)=>`fleet-event-by-workflow:${n(e)}:${String(t).padStart(10,"0")}`,signal:(e,t,r)=>U(e,t,r,j),startSignal:(e,t,r)=>U(e,t,r,G),signalSequence:(e)=>`sigseq:v1:${n(e)}`,signalAcceptedResponsePrefix:(e)=>`sigres:v1:${n(e)}:`,signalAcceptedResponse:(e,t,r)=>`sigres:v1:${n(e)}:${n(t)}:${n(r)}`,deadline:(e,t)=>`wf-deadline:${a(e)}:${n(t)}`,terminalCleanup:(e,t)=>`wf-cleanup:${a(e)}:${n(t)}`,teardownTimer:(e,t)=>`wf-teardown:${a(e)}:${n(t)}`,delayedStart:(e,t)=>`wf-delayed:${a(e)}:${n(t)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(e,t)=>`wf-terminal:${a(e)}:${n(t)}`,attribute:(e)=>`attr:${n(e)}`,attributeIndex:(e,t,r)=>`idx:${e}:${t}:${n(r)}`,tagIndex:(e,t)=>`tag:${n(e)}:${n(t)}`,updatePrefix:(e)=>`upd:${n(e)}:`,update:(e,t)=>`upd:${n(e)}:${t}`,updateResponse:(e)=>`upr:${e}`,updateIdempotency:(e,t)=>`upk:${n(e)}:${t}`,startIdempotency:(e)=>`start-idem:${n(e)}`,startIdempotencySignalId:(e)=>`start-idem:${e}`,livenessPrefix:()=>"liveness:",liveness:(e)=>`liveness:${n(e)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",...E,...A,...D,...k,budget:(e,t,r)=>`budget:${e}:${t}:${r}`,review:(e,t)=>`review:${n(e)}:${t}`,workflowHeaders:(e)=>`wf-headers:${n(e)}`,childCancellationPrefix:(e)=>`child-cancel:${n(e)}:`,childCancellation:(e,t)=>`child-cancel:${n(e)}:${n(t)}`,childWorkflowByParentPrefix:(e,t)=>`child-by-parent:${n(e)}:${t===void 0?"":`${n(t)}:`}`,childWorkflowByParent:(e,t,r)=>`child-by-parent:${n(e)}:${t===void 0?"":`${n(t)}:`}${n(r)}`,terminalCleanupNeeded:(e)=>`wf-cleanup-needed:${n(e)}`,workflowConcurrency:(e,t)=>`wf-concurrency:${n(e)}:${n(t)}`,workflowConcurrencyHolder:(e)=>`wf-concurrency-holder:${n(e)}`,workflowHasServices:(e)=>`wf-has-services:${n(e)}`,finalizerState:(e)=>`wf-finalizer-state:${n(e)}`,teardownOwed:(e)=>`wf-teardown-needed:${n(e)}`,teardownSucceeded:(e)=>`wf-teardown-succeeded:${n(e)}`,teardownDeadLetter:(e)=>`wf-teardown-deadletter:${n(e)}`,offload:(e,t)=>`offload:${n(e)}:${t}`,archive:(e,t)=>`archive:${n(e)}:${t}`,stateExecution:(e,t)=>`state:execution:${n(e)}:${n(t)}`,stateWorkflow:(e,t)=>`state:workflow-scope:${T}:${n(e)}:${n(t)}`,streamChunkPrefix:(e,t)=>`blob:${n(e)}:${t}:chunk:`,streamChunk:(e,t,r)=>`blob:${n(e)}:${t}:chunk:${String(r).padStart(10,"0")}`,streamTail:(e,t)=>`blob:${n(e)}:${t}:tail`,streamMetadata:(e,t)=>`blob:${n(e)}:${t}:meta`,budgetCharged:(e)=>`budget-charged:${e}`,toolEffect:(e,t,r)=>`tool-effect:${n(e)}:${t}:${r}`,workflowVisibilityStatus:(e,t)=>`wf-idx-status:${n(e)}:${n(t)}`,workflowVisibilityType:(e,t)=>`wf-idx-type:${n(e)}:${n(t)}`,workflowVisibilityCreated:(e,t)=>`wf-idx-created:${a(e)}:${n(t)}`,workflowVisibilityUpdated:(e,t)=>`wf-idx-updated:${a(e)}:${n(t)}`,workflowVisibilityDeadline:(e,t)=>`wf-idx-deadline:${a(e)}:${n(t)}`,workflowVisibilityManifest:(e)=>`wf-idx-manifest:${n(e)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function F(e){if(e===void 0)return;if(typeof e!=="number"||!Number.isInteger(e)||e<0)throw Error("deleteRange limit must be a finite non-negative integer");return e===0?0:e}function p(e){let t={},r=!1;for(let o of["gt","gte","lt","lte"]){let l=e[o];if(l===void 0)continue;if(typeof l!=="string")throw Error("deleteRange bounds must be strings");t[o]=l,r=!0}if(!r)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let i=F(e.limit);if(i!==void 0)t.limit=i;return t}async function q(e,t,r){let i=p(r);if(e.deleteRange)return e.deleteRange(t,i);return h(e,t,i)}function X(e,t){let r={key:e,open:!1};if(t.gte!==void 0&&t.gte>r.key)r.key=t.gte,r.open=!1;if(t.gt!==void 0&&t.gt>=r.key)r.key=t.gt,r.open=!0;return r}function J(e,t){let r={key:L(e),open:!0};if(t.lt!==void 0&&t.lt<=r.key)r.key=t.lt,r.open=!0;if(t.lte!==void 0&&t.lte<r.key)r.key=t.lte,r.open=!1;return r}function De(e,t){let r=X(e,t),i=J(e,t);if(r.key>i.key||r.key===i.key&&(r.open||i.open))return null;return{lower:r,upper:i}}function x(e){return e.replaceAll(/:+$/g,"")}function Z(e,t){let r=x(e),i=x(t);if(r.length===0)return i;if(i.length===0)return r;return`${r}:${i}`}class v{#e;#n;constructor(e,t){this.#e=e,this.#n=x(t)}#t(e){if(this.#n.length===0)return e;return e.length===0?`${this.#n}:`:`${this.#n}:${e}`}#i(e){return e.map((t)=>{if(t.type==="put")return{type:"put",key:this.#t(t.key),value:t.value};return{type:"delete",key:this.#t(t.key)}})}#o(e){if(this.#n.length===0)return e;return e.slice(this.#n.length+1)}#a(e){let t={};if(e.limit!==void 0)t.limit=e.limit;if(e.gt!==void 0)t.gt=this.#t(e.gt);if(e.gte!==void 0)t.gte=this.#t(e.gte);if(e.lt!==void 0)t.lt=this.#t(e.lt);if(e.lte!==void 0)t.lte=this.#t(e.lte);return t}#r(e={}){let t=this.#a(e);if(e.reverse!==void 0)t.reverse=e.reverse;return t}#s(e){return this.#a(e)}capabilities(){return this.#e.capabilities()}scoped(e){return new v(this.#e,Z(this.#n,e))}async get(e){return this.#e.get(this.#t(e))}async put(e,t){await this.#e.put(this.#t(e),t)}async delete(e){await this.#e.delete(this.#t(e))}async*scan(e,t){for await(let[r,i]of this.#e.scan(this.#t(e),this.#r(t)))yield[this.#o(r),i]}async batch(e){g("batch operations",e.length),await this.#e.batch(this.#i(e))}async conditionalBatch(e,t){return z(this.#e,e.map((r)=>({key:this.#t(r.key),expectedValue:r.expectedValue})),this.#i(t))}async has(e){return _(this.#e,this.#t(e))}async deletePrefix(e){return H(this.#e,this.#t(e))}async deleteRange(e,t){let r=this.#s(p(t));return q(this.#e,this.#t(e),r)}async*keys(e,t){for await(let r of K(this.#e,this.#t(e),this.#r(t)))yield this.#o(r)}async count(e){return N(this.#e,this.#t(e))}[Symbol.dispose](){this.#e[Symbol.dispose]()}}function W(e,t){return new v(e,t)}var Q=67108864;function M(e){if(e.type==="put")return{type:"put",key:e.key,value:b(e.value)};return{type:"delete",key:e.key}}function ee(e){return{key:e.key,expectedValue:e.expectedValue===null?null:b(e.expectedValue)}}function te(e){if(!S(e)||typeof e.key!=="string"||typeof e.value!=="string")throw Error("HTTPStorage scan response contained an invalid NDJSON entry.");return{key:e.key,value:e.value}}function ne(e){if(!S(e)||typeof e.applied!=="boolean")throw Error('HTTPStorage conditional batch response must include a boolean "applied" field.');return e.applied}function d(e,t,r){if(r!==void 0)e.searchParams.set(t,String(r))}function re(e){if(e.trim().length===0)return null;let t=te(JSON.parse(e));return[t.key,R(t.value)]}class ie{#e;#n;#t;constructor(e){this.#e=e.baseUrl instanceof URL?e.baseUrl:new URL(e.baseUrl),this.#n={...e.headers},this.#t=e.remoteConditionalBatch??!1}capabilities(){return{persistence:"remote",readAfterWrite:"eventual",scanConsistency:"best-effort",atomicBatch:!0,conditionalBatch:this.#t,boundedRangeDelete:!1}}#i(e){let t=this.#e.href.endsWith("/")?this.#e.href:`${this.#e.href}/`;return new URL(e.replace(/^\/+/,""),t)}#o(e){return this.#i(`/v1/storage/${encodeURIComponent(e)}`)}#a(e,t){let r=this.#i("/v1/storage");return r.searchParams.set("prefix",e),d(r,"limit",t.limit),d(r,"reverse",t.reverse),d(r,"gt",t.gt),d(r,"gte",t.gte),d(r,"lt",t.lt),d(r,"lte",t.lte),r}async#r(e,t={},r=[]){let i=new Headers(this.#n);for(let[l,u]of new Headers(t.headers).entries())i.set(l,u);let o=await fetch(e,{...t,headers:i});if(!o.ok&&!r.includes(o.status))throw Error(`HTTPStorage request failed: ${t.method??"GET"} ${e.pathname} returned ${String(o.status)}.`);return o}async get(e){let t=await this.#r(this.#o(e),{method:"GET"},[404]);if(t.status===404)return null;return new Uint8Array(await t.arrayBuffer())}async put(e,t){await this.#r(this.#o(e),{method:"PUT",headers:{"content-type":"application/octet-stream"},body:new Blob([new Uint8Array(t)])})}async delete(e){await this.#r(this.#o(e),{method:"DELETE"})}async*scan(e,t={}){let r=await this.#r(this.#a(e,t),{method:"GET",headers:{accept:"application/x-ndjson"}});for await(let i of B(r,{maximumBytes:Q,sizeLimitError:()=>Error("HTTPStorage scan response exceeded the maximum allowed size.")})){let o=re(i);if(o!==null)yield o}}async batch(e){g("batch operations",e.length),await this.#r(this.#i("/v1/storage/-/batch"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({operations:e.map(M)})})}async conditionalBatch(e,t){g("conditionalBatch conditions",e.length),g("conditionalBatch operations",t.length);let r=await this.#r(this.#i("/v1/storage/-/conditional-batch"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({conditions:e.map(ee),operations:t.map(M)})});return ne(await r.json())}has(e){return f(this,e)}async*keys(e,t){yield*c(this,e,t)}count(e){return m(this,e)}deletePrefix(e){return y(this,e)}deleteRange(e,t){return h(this,e,p(t))}scoped(e){return W(this,e)}[Symbol.dispose](){}}export{ie as HTTPStorage};
|
|
2
|
+
`);o=C.pop()??"";for(let Y of C)yield Y}if(o+=i.decode(),o.length>0)yield o}finally{if(!u)try{await r.cancel()}catch{}r.releaseLock()}}function b(e){let t=[];for(let r=0;r<e.length;r+=512)t.push(String.fromCharCode(...e.subarray(r,r+512)));return btoa(t.join(""))}function R(e){let t=atob(e),r=new Uint8Array(t.length);for(let i=0;i<t.length;i+=1)r[i]=t.charCodeAt(i);return r}function S(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}async function f(e,t){return await e.get(t)!==null}async function*c(e,t,r){for await(let[i]of e.scan(t,r))yield i}async function m(e,t){let r=0;for await(let i of c(e,t))r++;return r}async function y(e,t){let r=[];for await(let i of c(e,t))r.push({type:"delete",key:i});if(r.length===0)return 0;return await e.batch(r),r.length}async function h(e,t,r){let i=[];for await(let o of c(e,t,r))i.push({type:"delete",key:o});if(i.length===0)return 0;return await e.batch(i),i.length}function P(e,t,r){if(!e.capabilities()[t])throw Error(`Feature "${r}" requires storage capability "${t}", but this storage backend does not provide it.`)}function n(e){return encodeURIComponent(e)}function s(e){return String(e).padStart(16,"0")}var k={catalogEntry:(e,t)=>`catalog-entry:${n(e)}:${n(t)}`,catalogEntryPrefix:(e)=>`catalog-entry:${n(e)}:`,catalogActive:(e)=>`catalog-active:${n(e)}`,catalogTombstone:(e,t)=>`catalog-tombstone:${n(e)}:${n(t)}`,catalogTombstonePrefix:()=>"catalog-tombstone:"};var T="default";var E={applicationMailbox:(e,t)=>`appmbx:v1:${n(e)}:${n(t)}`,applicationMailboxSinkProbe:(e,t,r)=>`appprobe:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandPrefix:(e,t)=>`appcmd:v1:${n(e)}:${n(t)}:`,applicationCommand:(e,t,r)=>`appcmd:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandReadyPrefix:(e,t)=>`appready:v1:${n(e)}:${n(t)}:`,applicationCommandReady:(e,t,r)=>`appready:v1:${n(e)}:${n(t)}:${s(r)}`,applicationCommandIdempotency:(e,t,r)=>`appidem:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandBySequencePrefix:(e,t)=>`appseq:v1:${n(e)}:${n(t)}:`,applicationCommandBySequence:(e,t,r)=>`appseq:v1:${n(e)}:${n(t)}:${s(r)}`,applicationCommandTerminalPrefix:(e,t)=>`appterm:v1:${n(e)}:${n(t)}:`,applicationCommandTerminal:(e,t,r,i)=>`appterm:v1:${n(e)}:${n(t)}:${s(r)}:${n(i)}`};var A={applicationOutbox:(e,t)=>`appobx:v1:${n(e)}:${n(t)}`,applicationOutboxSinkProbe:(e,t,r)=>`appprobe:v1:outbox:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryPrefix:(e,t)=>`appdlv:v1:${n(e)}:${n(t)}:`,applicationDelivery:(e,t,r)=>`appdlv:v1:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryDuePrefix:(e,t)=>`appdue:v1:${n(e)}:${n(t)}:`,applicationDeliveryDue:(e,t,r,i)=>`appdue:v1:${n(e)}:${n(t)}:${s(r)}:${n(i)}`,applicationDeliveryIdempotency:(e,t,r)=>`appdidem:v1:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryBySequencePrefix:(e,t)=>`appdseq:v1:${n(e)}:${n(t)}:`,applicationDeliveryBySequence:(e,t,r)=>`appdseq:v1:${n(e)}:${n(t)}:${s(r)}`,applicationDeliveryTerminalPrefix:(e,t)=>`appdterm:v1:${n(e)}:${n(t)}:`,applicationDeliveryTerminal:(e,t,r,i)=>`appdterm:v1:${n(e)}:${n(t)}:${s(r)}:${n(i)}`};var D={workflowOwnerEpoch:(e)=>`wf-owner-epoch:${n(e)}`,workflowOwnerHolder:(e)=>`wf-owner-holder:${n(e)}`,ownershipModeMarker:()=>"ownership-mode-marker"};var w=1e4;class I extends Error{code="StorageBatchOperationLimitExceededError";cap=w;count;target;constructor(e,t){super(`${e} count ${t} exceeds MAX_BATCH_OPERATIONS (${w}).`);this.name="StorageBatchOperationLimitExceededError",this.target=e,this.count=t}}function g(e,t){if(t>w)throw new I(e,t)}function L(e){return e.length>0?e.slice(0,-1)+String.fromCharCode(e.charCodeAt(e.length-1)+1):"ÿ"}function Re(e,t={}){if(t.gt!==void 0&&e<=t.gt)return!1;if(t.gte!==void 0&&e<t.gte)return!1;if(t.lt!==void 0&&e>=t.lt)return!1;if(t.lte!==void 0&&e>t.lte)return!1;return!0}function Pe(e,t){if(e===null||t===null)return e===t;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}async function _(e,t){if(e.has)return e.has(t);return f(e,t)}function K(e,t,r){if(e.keys)return e.keys(t,r);return c(e,t,r)}async function N(e,t){if(e.count)return e.count(t);return m(e,t)}async function H(e,t){if(e.deletePrefix)return e.deletePrefix(t);return y(e,t)}async function z(e,t,r){if(g("conditionalBatch conditions",t.length),g("conditionalBatch operations",r.length),P(e,"conditionalBatch","storageConditionalBatch"),!e.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return e.conditionalBatch(t,r)}var a=s,G="0",j="1",U=(e,t,r,i)=>`sig:${n(e)}:${n(t)}:${i}:${n(r)}`,ke={workflow:(e)=>`wf:${n(e)}`,checkpoint:(e)=>`wf:${n(e)}:ckpt`,checkpointHistory:(e,t)=>`wf:${n(e)}:ckpt:${String(t).padStart(10,"0")}`,timelinePrefix:(e)=>`wf:${n(e)}:timeline:`,timeline:(e,t)=>`wf:${n(e)}:timeline:${String(t).padStart(10,"0")}`,schedule:(e)=>`schedule:${n(e)}`,scheduleTick:(e,t)=>`schedule-due:${String(e).padStart(16,"0")}:${n(t)}`,scheduleRun:(e)=>`schedule-run:${n(e)}`,scheduleRunLink:(e)=>`schedule-run-link:${n(e)}`,scheduleRunBySchedulePrefix:(e)=>`schedule-run-by-schedule:${n(e)}:`,scheduleRunBySchedule:(e,t)=>`schedule-run-by-schedule:${n(e)}:${n(t)}`,operation:(e,t,r)=>`op:${e}:${a(t)}:${r}`,operationInflight:(e)=>`op:inflight:${e}`,operationQueued:(e)=>`op:queued:${e}`,operationResolved:(e)=>`op:resolved:${e}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(e,t,r)=>`audit:bulk:${a(e)}:${n(t)}:${n(r)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(e,t)=>`op:resolved-by-time:${a(e)}:${n(t)}`,asyncActivity:(e,t)=>`async-act:v1:${n(e)}:${n(t)}`,asyncActivityResolution:(e,t)=>`async-act:v1:${n(e)}:${n(t)}:resolution`,activityReconciliationPrefix:(e)=>`actrec:v1:${n(e)}:`,activityReconciliation:(e,t,r)=>`actrec:v1:${n(e)}:${n(t)}:${r}`,eventPrefix:(e)=>`ev:${n(e)}:`,event:(e,t)=>`ev:${n(e)}:${String(t).padStart(10,"0")}`,eventHead:(e)=>`ev:${n(e)}:head`,eventWatermark:(e)=>`ev:${n(e)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(e)=>`fleet-event:${String(e).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventWatermark:()=>"fleet-event-watermark",fleetEventByWorkflowPrefix:(e)=>`fleet-event-by-workflow:${n(e)}:`,fleetEventByWorkflow:(e,t)=>`fleet-event-by-workflow:${n(e)}:${String(t).padStart(10,"0")}`,signal:(e,t,r)=>U(e,t,r,j),startSignal:(e,t,r)=>U(e,t,r,G),signalSequence:(e)=>`sigseq:v1:${n(e)}`,signalAcceptedResponsePrefix:(e)=>`sigres:v1:${n(e)}:`,signalAcceptedResponse:(e,t,r)=>`sigres:v1:${n(e)}:${n(t)}:${n(r)}`,deadline:(e,t)=>`wf-deadline:${a(e)}:${n(t)}`,terminalCleanup:(e,t)=>`wf-cleanup:${a(e)}:${n(t)}`,teardownTimer:(e,t)=>`wf-teardown:${a(e)}:${n(t)}`,delayedStart:(e,t)=>`wf-delayed:${a(e)}:${n(t)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(e,t)=>`wf-terminal:${a(e)}:${n(t)}`,attribute:(e)=>`attr:${n(e)}`,attributeIndex:(e,t,r)=>`idx:${e}:${t}:${n(r)}`,tagIndex:(e,t)=>`tag:${n(e)}:${n(t)}`,updatePrefix:(e)=>`upd:${n(e)}:`,update:(e,t)=>`upd:${n(e)}:${t}`,updateResponse:(e)=>`upr:${e}`,updateIdempotency:(e,t)=>`upk:${n(e)}:${t}`,startIdempotency:(e)=>`start-idem:${n(e)}`,startIdempotencySignalId:(e)=>`start-idem:${e}`,livenessPrefix:()=>"liveness:",liveness:(e)=>`liveness:${n(e)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",...E,...A,...D,...k,budget:(e,t,r)=>`budget:${e}:${t}:${r}`,review:(e,t)=>`review:${n(e)}:${t}`,workflowHeaders:(e)=>`wf-headers:${n(e)}`,childCancellationPrefix:(e)=>`child-cancel:${n(e)}:`,childCancellation:(e,t)=>`child-cancel:${n(e)}:${n(t)}`,childWorkflowByParentPrefix:(e,t)=>`child-by-parent:${n(e)}:${t===void 0?"":`${n(t)}:`}`,childWorkflowByParent:(e,t,r)=>`child-by-parent:${n(e)}:${t===void 0?"":`${n(t)}:`}${n(r)}`,terminalCleanupNeeded:(e)=>`wf-cleanup-needed:${n(e)}`,workflowConcurrency:(e,t)=>`wf-concurrency:${n(e)}:${n(t)}`,workflowConcurrencyHolder:(e)=>`wf-concurrency-holder:${n(e)}`,workflowHasServices:(e)=>`wf-has-services:${n(e)}`,finalizerState:(e)=>`wf-finalizer-state:${n(e)}`,teardownOwed:(e)=>`wf-teardown-needed:${n(e)}`,teardownSucceeded:(e)=>`wf-teardown-succeeded:${n(e)}`,teardownDeadLetter:(e)=>`wf-teardown-deadletter:${n(e)}`,offload:(e,t)=>`offload:${n(e)}:${t}`,archive:(e,t)=>`archive:${n(e)}:${t}`,stateExecution:(e,t)=>`state:execution:${n(e)}:${n(t)}`,stateWorkflow:(e,t)=>`state:workflow-scope:${T}:${n(e)}:${n(t)}`,streamChunkPrefix:(e,t)=>`blob:${n(e)}:${t}:chunk:`,streamChunk:(e,t,r)=>`blob:${n(e)}:${t}:chunk:${String(r).padStart(10,"0")}`,streamTail:(e,t)=>`blob:${n(e)}:${t}:tail`,streamMetadata:(e,t)=>`blob:${n(e)}:${t}:meta`,budgetCharged:(e)=>`budget-charged:${e}`,toolEffect:(e,t,r)=>`tool-effect:${n(e)}:${t}:${r}`,workflowVisibilityStatus:(e,t)=>`wf-idx-status:${n(e)}:${n(t)}`,workflowVisibilityType:(e,t)=>`wf-idx-type:${n(e)}:${n(t)}`,workflowVisibilityCreated:(e,t)=>`wf-idx-created:${a(e)}:${n(t)}`,workflowVisibilityUpdated:(e,t)=>`wf-idx-updated:${a(e)}:${n(t)}`,workflowVisibilityDeadline:(e,t)=>`wf-idx-deadline:${a(e)}:${n(t)}`,workflowVisibilityManifest:(e)=>`wf-idx-manifest:${n(e)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function F(e){if(e===void 0)return;if(typeof e!=="number"||!Number.isInteger(e)||e<0)throw Error("deleteRange limit must be a finite non-negative integer");return e===0?0:e}function p(e){let t={},r=!1;for(let o of["gt","gte","lt","lte"]){let l=e[o];if(l===void 0)continue;if(typeof l!=="string")throw Error("deleteRange bounds must be strings");t[o]=l,r=!0}if(!r)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let i=F(e.limit);if(i!==void 0)t.limit=i;return t}async function q(e,t,r){let i=p(r);if(e.deleteRange)return e.deleteRange(t,i);return h(e,t,i)}function X(e,t){let r={key:e,open:!1};if(t.gte!==void 0&&t.gte>r.key)r.key=t.gte,r.open=!1;if(t.gt!==void 0&&t.gt>=r.key)r.key=t.gt,r.open=!0;return r}function J(e,t){let r={key:L(e),open:!0};if(t.lt!==void 0&&t.lt<=r.key)r.key=t.lt,r.open=!0;if(t.lte!==void 0&&t.lte<r.key)r.key=t.lte,r.open=!1;return r}function De(e,t){let r=X(e,t),i=J(e,t);if(r.key>i.key||r.key===i.key&&(r.open||i.open))return null;return{lower:r,upper:i}}function x(e){return e.replaceAll(/:+$/g,"")}function Z(e,t){let r=x(e),i=x(t);if(r.length===0)return i;if(i.length===0)return r;return`${r}:${i}`}class v{#e;#n;constructor(e,t){this.#e=e,this.#n=x(t)}#t(e){if(this.#n.length===0)return e;return e.length===0?`${this.#n}:`:`${this.#n}:${e}`}#i(e){return e.map((t)=>{if(t.type==="put")return{type:"put",key:this.#t(t.key),value:t.value};return{type:"delete",key:this.#t(t.key)}})}#o(e){if(this.#n.length===0)return e;return e.slice(this.#n.length+1)}#a(e){let t={};if(e.limit!==void 0)t.limit=e.limit;if(e.gt!==void 0)t.gt=this.#t(e.gt);if(e.gte!==void 0)t.gte=this.#t(e.gte);if(e.lt!==void 0)t.lt=this.#t(e.lt);if(e.lte!==void 0)t.lte=this.#t(e.lte);return t}#r(e={}){let t=this.#a(e);if(e.reverse!==void 0)t.reverse=e.reverse;return t}#s(e){return this.#a(e)}capabilities(){return this.#e.capabilities()}scoped(e){return new v(this.#e,Z(this.#n,e))}async get(e){return this.#e.get(this.#t(e))}async put(e,t){await this.#e.put(this.#t(e),t)}async delete(e){await this.#e.delete(this.#t(e))}async*scan(e,t){for await(let[r,i]of this.#e.scan(this.#t(e),this.#r(t)))yield[this.#o(r),i]}async batch(e){g("batch operations",e.length),await this.#e.batch(this.#i(e))}async conditionalBatch(e,t){return z(this.#e,e.map((r)=>({key:this.#t(r.key),expectedValue:r.expectedValue})),this.#i(t))}async has(e){return _(this.#e,this.#t(e))}async deletePrefix(e){return H(this.#e,this.#t(e))}async deleteRange(e,t){let r=this.#s(p(t));return q(this.#e,this.#t(e),r)}async*keys(e,t){for await(let r of K(this.#e,this.#t(e),this.#r(t)))yield this.#o(r)}async count(e){return N(this.#e,this.#t(e))}[Symbol.dispose](){this.#e[Symbol.dispose]()}}function W(e,t){return new v(e,t)}var Q=67108864;function M(e){if(e.type==="put")return{type:"put",key:e.key,value:b(e.value)};return{type:"delete",key:e.key}}function ee(e){return{key:e.key,expectedValue:e.expectedValue===null?null:b(e.expectedValue)}}function te(e){if(!S(e)||typeof e.key!=="string"||typeof e.value!=="string")throw Error("HTTPStorage scan response contained an invalid NDJSON entry.");return{key:e.key,value:e.value}}function ne(e){if(!S(e)||typeof e.applied!=="boolean")throw Error('HTTPStorage conditional batch response must include a boolean "applied" field.');return e.applied}function d(e,t,r){if(r!==void 0)e.searchParams.set(t,String(r))}function re(e){if(e.trim().length===0)return null;let t=te(JSON.parse(e));return[t.key,R(t.value)]}class ie{#e;#n;#t;constructor(e){this.#e=e.baseUrl instanceof URL?e.baseUrl:new URL(e.baseUrl),this.#n={...e.headers},this.#t=e.remoteConditionalBatch??!1}capabilities(){return{persistence:"remote",readAfterWrite:"eventual",scanConsistency:"best-effort",atomicBatch:!0,conditionalBatch:this.#t,boundedRangeDelete:!1}}#i(e){let t=this.#e.href.endsWith("/")?this.#e.href:`${this.#e.href}/`;return new URL(e.replace(/^\/+/,""),t)}#o(e){return this.#i(`/v1/storage/${encodeURIComponent(e)}`)}#a(e,t){let r=this.#i("/v1/storage");return r.searchParams.set("prefix",e),d(r,"limit",t.limit),d(r,"reverse",t.reverse),d(r,"gt",t.gt),d(r,"gte",t.gte),d(r,"lt",t.lt),d(r,"lte",t.lte),r}async#r(e,t={},r=[]){let i=new Headers(this.#n);for(let[l,u]of new Headers(t.headers).entries())i.set(l,u);let o=await fetch(e,{...t,headers:i});if(!o.ok&&!r.includes(o.status))throw Error(`HTTPStorage request failed: ${t.method??"GET"} ${e.pathname} returned ${String(o.status)}.`);return o}async get(e){let t=await this.#r(this.#o(e),{method:"GET"},[404]);if(t.status===404)return null;return new Uint8Array(await t.arrayBuffer())}async put(e,t){await this.#r(this.#o(e),{method:"PUT",headers:{"content-type":"application/octet-stream"},body:new Blob([new Uint8Array(t)])})}async delete(e){await this.#r(this.#o(e),{method:"DELETE"})}async*scan(e,t={}){let r=await this.#r(this.#a(e,t),{method:"GET",headers:{accept:"application/x-ndjson"}});for await(let i of B(r,{maximumBytes:Q,sizeLimitError:()=>Error("HTTPStorage scan response exceeded the maximum allowed size.")})){let o=re(i);if(o!==null)yield o}}async batch(e){g("batch operations",e.length),await this.#r(this.#i("/v1/storage/-/batch"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({operations:e.map(M)})})}async conditionalBatch(e,t){g("conditionalBatch conditions",e.length),g("conditionalBatch operations",t.length);let r=await this.#r(this.#i("/v1/storage/-/conditional-batch"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({conditions:e.map(ee),operations:t.map(M)})});return ne(await r.json())}has(e){return f(this,e)}async*keys(e,t){yield*c(this,e,t)}count(e){return m(this,e)}deletePrefix(e){return y(this,e)}deleteRange(e,t){return h(this,e,p(t))}scoped(e){return W(this,e)}[Symbol.dispose](){}}export{ie as HTTPStorage};
|
package/dist/index.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export type { WeftErrorCode } from './core/weft-error.ts';
|
|
|
21
21
|
export { FAULT_CODE_TO_FAILURE_CATEGORY, failureCategoryForFaultCode, isFaultCode, } from './core/fault-code.ts';
|
|
22
22
|
export type { FaultCode } from './core/fault-code.ts';
|
|
23
23
|
export { DurableActivityScopeError, DurableActivityUnsupportedError, durableActivity, } from './core/context/durable-activity.ts';
|
|
24
|
-
export { ActivityReconciliationCapabilityError, ActivityReconciliationConflictError, ActivityReconciliationIndeterminateError, ActivityResolutionError, AsyncActivityTokenNotFoundError, BulkDeleteRequiresTerminalWorkflowsError, BulkOperationConfirmationError, ENGINE_LEASE_LOST_WARNING_NAME, ENGINE_LEASE_SYNCHRONOUS_DISPOSE_WARNING_NAME, Engine, EngineCreateNameMismatchError, EngineDisposalError, EngineDisposedError, EngineLeaseAcquisitionTimeoutError, EngineLeaseCorruptedError, EngineLeaseNotHeldError, IdempotencyKeyPurgedError, PersistedDataCorruptError, PersistedDataIncompatibleError, ScheduleHandle, StartOrSignalConflictError, WorkflowAlreadyExistsError, WorkflowConcurrencyLimitExceededError, WorkflowHandle, WorkflowNotFoundError, WorkflowNotRegisteredError, WorkflowSuspendNotSupportedError, WorkflowTeardownPendingError, WorkflowTypeNotRegisteredForRecoveryError, } from './core/engine';
|
|
24
|
+
export { ActivityReconciliationCapabilityError, ActivityReconciliationConflictError, ActivityReconciliationIndeterminateError, ActivityResolutionError, AsyncActivityTokenNotFoundError, BulkDeleteRequiresTerminalWorkflowsError, BulkOperationConfirmationError, DynamicWorkflowSourceUnavailableError, ENGINE_LEASE_LOST_WARNING_NAME, ENGINE_LEASE_SYNCHRONOUS_DISPOSE_WARNING_NAME, Engine, EngineCreateNameMismatchError, EngineDisposalError, EngineDisposedError, EngineLeaseAcquisitionTimeoutError, EngineLeaseCorruptedError, EngineLeaseNotHeldError, IdempotencyKeyPurgedError, PersistedDataCorruptError, PersistedDataIncompatibleError, ScheduleHandle, StartOrSignalConflictError, WorkflowAlreadyExistsError, WorkflowConcurrencyLimitExceededError, WorkflowHandle, WorkflowNotFoundError, WorkflowNotRegisteredError, WorkflowRevisionUnavailableError, WorkflowSourceNotRegisteredError, WorkflowSuspendNotSupportedError, WorkflowTeardownPendingError, WorkflowTypeNotRegisteredForRecoveryError, } from './core/engine';
|
|
25
25
|
export { OwnershipModeMismatchError, WORKFLOW_CLAIM_LOST_WARNING_NAME, WORKFLOW_WAKE_DISCARDED_WARNING_NAME, WeftWorkflowClaimLostWarning, WeftWorkflowWakeDiscardedWarning, WorkflowClaimUnavailableError, } from './core/engine';
|
|
26
26
|
export type { ActivateWorkflowRevisionOptions, EngineCreateOptions, EngineLeaseHealth, EngineStateNamespace, EngineWorkflowsNamespace, LeaseLostReason, RecoverAllOptions, RecoveredWorkflowInfo, RegistryAgnosticEngine, ResolveWorkflowSourceOptions, WorkflowWakeKind, } from './core/engine';
|
|
27
27
|
export { WorkflowCatalogConflictError, WorkflowRevisionNotInstalledError, } from './core/catalog/index.ts';
|
|
@@ -31,10 +31,10 @@ export type { WorkflowSourceDescriptor, WorkflowSourceDescriptorInput, WorkflowS
|
|
|
31
31
|
export { getWorkflowRevisionDiagnostics, removeWorkflowRevision } from './core/engine';
|
|
32
32
|
export type { WorkflowCatalogRemovalResult, WorkflowRevisionDiagnostics, WorkflowRevisionReferenceCounts, } from './core/engine';
|
|
33
33
|
export { DEFAULT_CHECKPOINT_SIZE_WARNING_THRESHOLD, DEFAULT_MAX_NESTING_DEPTH, DEFAULT_POLL_INTERVAL_MS, DEFAULT_RETRY_POLICY, DEFAULT_VISIBILITY_TIMEOUT_MS, HISTORY_CIRCUIT_BREAKER_REASON, WorkflowBuilderError, query, schedule, signal, update, workflow, } from './core/types';
|
|
34
|
-
export type { ActivityArgsFor, ActivityCallOptions, ActivityCallable, ActivityContext, ActivityDefinition, ActivityEntryInput, ActivityFunction, ActivityMap, ActivityMapInput, ActivityObjectInput, ActivityResultFor, ActivityVerificationContext, ActivityVerificationPhase, ActivityVerificationResult, AnyActivityDefinition, AnyWorkflowDefinition, ArchiveAdapter, BuilderState, BuiltWorkflowDefinition, BulkCancelResult, BulkDeleteResult, BulkOperationAction, BulkOperationAuditEvent, BulkOperationCommitOptions, BulkOperationDryRunOptions, BulkOperationDryRunResult, BulkOperationError, BulkOperationFilterSummary, BulkOperationOptions, BulkOperationPrincipal, BulkOperationScopeSummary, BulkRetryFailedResult, BulkSignalAllCommitOptions, BulkSignalAllDryRunOptions, BulkSignalAllOptions, BulkSignalResult, BulkTagResult, Checkpoint, CheckpointState, CheckpointSummary, CompletedReviewEntry, CoordinatedUpdateResult, DefinitionSchema, Duration, EngineOptions, FailureCategory, ForkLineage, ForkOptions, HistoryPolicy, InferActivityEntries, InferActivityEntry, InferWorkflowEntries, InferWorkflowEntry, InitialBuilderState, LaunchMetadata, ListFilter, ListOptions, MarkBuilderState, NormalizeActivities, NormalizedActivityEntry, NormalizedRetentionPolicy, PaginatedResult, PayloadSizePolicy, PendingAsyncActivityInfo, PendingAsyncActivityListOptions, PendingAsyncActivityPage, PendingReviewEntry, PurgeResult, QueryDefinition, QueryMap, QueryShape, RegisteredWorkflowDefinition, RestartLineage, RetentionOverview, RetentionPolicy, RetryPolicy, ReviewDecision, ReviewListEntry, ReviewListFilter, ReviewStatus, ScheduleDefinition, ScheduleFilter, ScheduleOptions, ScheduleOverlapPolicy, ScheduleQueuedRun, ScheduleSpec, ScheduleState, ScheduleStatus, ScheduleSummary, ScheduleUpdateOptions, SearchAttributeDefinition, SearchAttributeHandle, SearchAttributeSchema, SearchAttributeValue, Serializer, SignalDefinition, SignalDeliveryOptions, SignalMap, SignalPayload, StartOptions, StartOrSignalOptions, StartOrSignalSignal, SubmitReviewOptions, TerminationReason, UpdateDefinition, UpdateMap, UpdatePayload, WorkerReplayOperationFailure, WorkerReplayOperationSignature, WorkflowAlreadyRegistered, WorkflowAtomicState, WorkflowAtomicStateOptions, WorkflowBuilder, WorkflowBuilderOptions, WorkflowConcurrencyOptions, WorkflowContext, WorkflowDefinition, WorkflowEvent, WorkflowFinalizerStatus, WorkflowFunction, WorkflowGenerator, WorkflowId, WorkflowKeyedRaceResult, WorkflowLogLevel, WorkflowLogRecord, WorkflowLogger, WorkflowRegistry, WorkflowReplay, WorkflowScheduleProvenance, WorkflowServicesResolution, WorkflowServicesResolverInfo, WorkflowServicesResolverLaunchOptions, WorkflowServicesResolverScheduleInfo, WorkflowSessionState, WorkflowSnapshot, WorkflowState, WorkflowStateNamespace, WorkflowStatus, WorkflowSummary, WorkflowTimelineEntry, WorkflowTimelineOperationDetail, WorkflowTimelineStatus, WorkflowTypeRetentionPolicy, } from './core/types';
|
|
34
|
+
export type { ActivityArgsFor, ActivityCallOptions, ActivityCallable, ActivityContext, ActivityDefinition, ActivityEntryInput, ActivityFunction, ActivityMap, ActivityMapInput, ActivityObjectInput, ActivityResultFor, ActivityVerificationContext, ActivityVerificationPhase, ActivityVerificationResult, AnyActivityDefinition, AnyWorkflowDefinition, ArchiveAdapter, BuilderState, BuiltWorkflowDefinition, BulkCancelResult, BulkDeleteResult, BulkOperationAction, BulkOperationAuditEvent, BulkOperationCommitOptions, BulkOperationDryRunOptions, BulkOperationDryRunResult, BulkOperationError, BulkOperationFilterSummary, BulkOperationOptions, BulkOperationPrincipal, BulkOperationScopeSummary, BulkRetryFailedResult, BulkSignalAllCommitOptions, BulkSignalAllDryRunOptions, BulkSignalAllOptions, BulkSignalResult, BulkTagResult, Checkpoint, CheckpointState, CheckpointSummary, CompletedReviewEntry, CoordinatedUpdateResult, DefinitionSchema, Duration, EngineOptions, FailureCategory, ForkLineage, ForkOptions, HistoryPolicy, InferActivityEntries, InferActivityEntry, InferWorkflowEntries, InferWorkflowEntry, InitialBuilderState, LaunchMetadata, ListFilter, ListOptions, MarkBuilderState, NormalizeActivities, NormalizedActivityEntry, NormalizedRetentionPolicy, PaginatedResult, PayloadSizePolicy, PendingAsyncActivityInfo, PendingAsyncActivityListOptions, PendingAsyncActivityPage, PendingReviewEntry, PurgeResult, QueryDefinition, QueryMap, QueryShape, RegisteredWorkflowDefinition, RestartLineage, RetentionOverview, RetentionPolicy, RetryPolicy, ReviewDecision, ReviewListEntry, ReviewListFilter, ReviewStatus, ScheduleDefinition, ScheduleFilter, ScheduleOptions, ScheduleOverlapPolicy, ScheduleQueuedRun, ScheduleRevisionPolicy, ScheduleSpec, ScheduleState, ScheduleStatus, ScheduleSummary, ScheduleUpdateOptions, SearchAttributeDefinition, SearchAttributeHandle, SearchAttributeSchema, SearchAttributeValue, Serializer, SignalDefinition, SignalDeliveryOptions, SignalMap, SignalPayload, StartOptions, StartOrSignalOptions, StartOrSignalSignal, SubmitReviewOptions, TerminationReason, UpdateDefinition, UpdateMap, UpdatePayload, WorkerReplayOperationFailure, WorkerReplayOperationSignature, WorkflowAlreadyRegistered, WorkflowAtomicState, WorkflowAtomicStateOptions, WorkflowBuilder, WorkflowBuilderOptions, WorkflowConcurrencyOptions, WorkflowContext, WorkflowDefinition, WorkflowEvent, WorkflowFinalizerStatus, WorkflowFunction, WorkflowGenerator, WorkflowId, WorkflowKeyedRaceResult, WorkflowLogLevel, WorkflowLogRecord, WorkflowLogger, WorkflowRegistry, WorkflowReplay, WorkflowScheduleProvenance, WorkflowServicesResolution, WorkflowServicesResolverInfo, WorkflowServicesResolverLaunchOptions, WorkflowServicesResolverScheduleInfo, WorkflowSessionState, WorkflowSnapshot, WorkflowState, WorkflowStateNamespace, WorkflowStatus, WorkflowSummary, WorkflowTimelineEntry, WorkflowTimelineOperationDetail, WorkflowTimelineStatus, WorkflowTypeRetentionPolicy, } from './core/types';
|
|
35
35
|
export { AlertManager } from './alerting/index';
|
|
36
36
|
export type { AlertAction, AlertMetric, AlertRule, AlertStateSnapshot, AlertStatus, AlertingOptions, WebhookTarget, } from './alerting/types';
|
|
37
|
-
export { ActivityAsyncPendingEvent, ActivityCompletedEvent, ActivityFailedEvent, ActivityStartedEvent, AlertFiredEvent, AlertResolvedEvent, AttributesChangedEvent, CheckpointSizeWarningEvent, ConstraintViolatedEvent, DevelopmentWarningEvent, ScheduleFiredEvent, ScheduleMissedFireEvent, SignalDeliveredEvent, SignalReceivedEvent, StorageSizeReportedEvent, TaskResultDeadLetteredEvent, UpdateCompletedEvent, UpdateReceivedEvent, WorkflowCancelledEvent, WorkflowCompletedEvent, WorkflowDefinitionRegisteredEvent, WorkflowFailedEvent, WorkflowRecoverySkippedEvent, WorkflowResumedEvent, WorkflowRevisionActivatedEvent, WorkflowRevisionActivationRejectedEvent, WorkflowRevisionDrainingEvent, WorkflowRevisionInstalledEvent, WorkflowRevisionRemovedEvent, WorkflowStartedEvent, WorkflowSuspendedEvent, WorkflowTeardownEvent, WorkflowTimedOutEvent, } from './core/events';
|
|
37
|
+
export { ActivityAsyncPendingEvent, ActivityCompletedEvent, ActivityFailedEvent, ActivityStartedEvent, AlertFiredEvent, AlertResolvedEvent, AttributesChangedEvent, CheckpointSizeWarningEvent, ConstraintViolatedEvent, DevelopmentWarningEvent, ScheduleFiredEvent, ScheduleMissedFireEvent, SignalDeliveredEvent, SignalReceivedEvent, StorageSizeReportedEvent, TaskResultDeadLetteredEvent, UpdateCompletedEvent, UpdateReceivedEvent, WorkflowCancelledEvent, WorkflowCompletedEvent, WorkflowDefinitionRegisteredEvent, WorkflowFailedEvent, WorkflowRecoverySkippedEvent, WorkflowResumedEvent, WorkflowRevisionActivatedEvent, WorkflowRevisionActivationRejectedEvent, WorkflowRevisionDrainingEvent, WorkflowRevisionInstalledEvent, WorkflowRevisionRemovedEvent, WorkflowSourceLoadCancelledEvent, WorkflowSourceLoadFailedEvent, WorkflowSourceLoadReadyEvent, WorkflowSourceLoadStartedEvent, WorkflowStartedEvent, WorkflowSuspendedEvent, WorkflowTeardownEvent, WorkflowTimedOutEvent, } from './core/events';
|
|
38
38
|
export type { TypedEventTarget, WeftEventMap, WorkflowRecoverySkippedReason, WorkflowTeardownStatus, } from './core/events';
|
|
39
39
|
export { detectRuntime, detectRuntimeVersion, hashBytes, hashString, sleep, } from './runtime/portable';
|
|
40
40
|
export type { RuntimeKind } from './runtime/portable';
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,7 @@ export {
|
|
|
24
24
|
AsyncActivityTokenNotFoundError,
|
|
25
25
|
BulkDeleteRequiresTerminalWorkflowsError,
|
|
26
26
|
BulkOperationConfirmationError,
|
|
27
|
+
DynamicWorkflowSourceUnavailableError,
|
|
27
28
|
ENGINE_LEASE_LOST_WARNING_NAME,
|
|
28
29
|
ENGINE_LEASE_SYNCHRONOUS_DISPOSE_WARNING_NAME,
|
|
29
30
|
Engine,
|
|
@@ -43,6 +44,8 @@ export {
|
|
|
43
44
|
WorkflowHandle,
|
|
44
45
|
WorkflowNotFoundError,
|
|
45
46
|
WorkflowNotRegisteredError,
|
|
47
|
+
WorkflowRevisionUnavailableError,
|
|
48
|
+
WorkflowSourceNotRegisteredError,
|
|
46
49
|
WorkflowSuspendNotSupportedError,
|
|
47
50
|
WorkflowTeardownPendingError,
|
|
48
51
|
WorkflowTypeNotRegisteredForRecoveryError
|
|
@@ -106,6 +109,10 @@ export {
|
|
|
106
109
|
WorkflowRevisionDrainingEvent,
|
|
107
110
|
WorkflowRevisionInstalledEvent,
|
|
108
111
|
WorkflowRevisionRemovedEvent,
|
|
112
|
+
WorkflowSourceLoadCancelledEvent,
|
|
113
|
+
WorkflowSourceLoadFailedEvent,
|
|
114
|
+
WorkflowSourceLoadReadyEvent,
|
|
115
|
+
WorkflowSourceLoadStartedEvent,
|
|
109
116
|
WorkflowStartedEvent,
|
|
110
117
|
WorkflowSuspendedEvent,
|
|
111
118
|
WorkflowTeardownEvent,
|
package/dist/indexeddb.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
async function I(e,t){return await e.get(t)!==null}async function*C(e,t,r){for await(let[i]of e.scan(t,r))yield i}async function A(e,t){let r=0;for await(let i of C(e,t))r++;return r}async function E(e,t){let r=[];for await(let i of C(e,t))r.push({type:"delete",key:i});if(r.length===0)return 0;return await e.batch(r),r.length}async function T(e,t,r){let i=[];for await(let o of C(e,t,r))i.push({type:"delete",key:o});if(i.length===0)return 0;return await e.batch(i),i.length}function K(e,t,r){if(!e.capabilities()[t])throw Error(`Feature "${r}" requires storage capability "${t}", but this storage backend does not provide it.`)}function n(e){return encodeURIComponent(e)}function y(e){return String(e).padStart(16,"0")}var _={catalogEntry:(e,t)=>`catalog-entry:${n(e)}:${n(t)}`,catalogEntryPrefix:(e)=>`catalog-entry:${n(e)}:`,catalogActive:(e)=>`catalog-active:${n(e)}`};var L="default";var z={applicationMailbox:(e,t)=>`appmbx:v1:${n(e)}:${n(t)}`,applicationMailboxSinkProbe:(e,t,r)=>`appprobe:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandPrefix:(e,t)=>`appcmd:v1:${n(e)}:${n(t)}:`,applicationCommand:(e,t,r)=>`appcmd:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandReadyPrefix:(e,t)=>`appready:v1:${n(e)}:${n(t)}:`,applicationCommandReady:(e,t,r)=>`appready:v1:${n(e)}:${n(t)}:${y(r)}`,applicationCommandIdempotency:(e,t,r)=>`appidem:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandBySequencePrefix:(e,t)=>`appseq:v1:${n(e)}:${n(t)}:`,applicationCommandBySequence:(e,t,r)=>`appseq:v1:${n(e)}:${n(t)}:${y(r)}`,applicationCommandTerminalPrefix:(e,t)=>`appterm:v1:${n(e)}:${n(t)}:`,applicationCommandTerminal:(e,t,r,i)=>`appterm:v1:${n(e)}:${n(t)}:${y(r)}:${n(i)}`};var U={applicationOutbox:(e,t)=>`appobx:v1:${n(e)}:${n(t)}`,applicationOutboxSinkProbe:(e,t,r)=>`appprobe:v1:outbox:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryPrefix:(e,t)=>`appdlv:v1:${n(e)}:${n(t)}:`,applicationDelivery:(e,t,r)=>`appdlv:v1:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryDuePrefix:(e,t)=>`appdue:v1:${n(e)}:${n(t)}:`,applicationDeliveryDue:(e,t,r,i)=>`appdue:v1:${n(e)}:${n(t)}:${y(r)}:${n(i)}`,applicationDeliveryIdempotency:(e,t,r)=>`appdidem:v1:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryBySequencePrefix:(e,t)=>`appdseq:v1:${n(e)}:${n(t)}:`,applicationDeliveryBySequence:(e,t,r)=>`appdseq:v1:${n(e)}:${n(t)}:${y(r)}`,applicationDeliveryTerminalPrefix:(e,t)=>`appdterm:v1:${n(e)}:${n(t)}:`,applicationDeliveryTerminal:(e,t,r,i)=>`appdterm:v1:${n(e)}:${n(t)}:${y(r)}:${n(i)}`};var q={workflowOwnerEpoch:(e)=>`wf-owner-epoch:${n(e)}`,workflowOwnerHolder:(e)=>`wf-owner-holder:${n(e)}`,ownershipModeMarker:()=>"ownership-mode-marker"};var O=1e4;class M extends Error{code="StorageBatchOperationLimitExceededError";cap=O;count;target;constructor(e,t){super(`${e} count ${t} exceeds MAX_BATCH_OPERATIONS (${O}).`);this.name="StorageBatchOperationLimitExceededError",this.target=e,this.count=t}}function h(e,t){if(t>O)throw new M(e,t)}function w(e){return e.length>0?e.slice(0,-1)+String.fromCharCode(e.charCodeAt(e.length-1)+1):"ÿ"}function W(e,t={}){if(t.gt!==void 0&&e<=t.gt)return!1;if(t.gte!==void 0&&e<t.gte)return!1;if(t.lt!==void 0&&e>=t.lt)return!1;if(t.lte!==void 0&&e>t.lte)return!1;return!0}function N(e,t){if(e===null||t===null)return e===t;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}async function j(e,t){if(e.has)return e.has(t);return I(e,t)}function H(e,t,r){if(e.keys)return e.keys(t,r);return C(e,t,r)}async function F(e,t){if(e.count)return e.count(t);return A(e,t)}async function Y(e,t){if(e.deletePrefix)return e.deletePrefix(t);return E(e,t)}async function X(e,t,r){if(h("conditionalBatch conditions",t.length),h("conditionalBatch operations",r.length),K(e,"conditionalBatch","storageConditionalBatch"),!e.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return e.conditionalBatch(t,r)}var f=y,te="0",ne="1",V=(e,t,r,i)=>`sig:${n(e)}:${n(t)}:${i}:${n(r)}`,ke={workflow:(e)=>`wf:${n(e)}`,checkpoint:(e)=>`wf:${n(e)}:ckpt`,checkpointHistory:(e,t)=>`wf:${n(e)}:ckpt:${String(t).padStart(10,"0")}`,timelinePrefix:(e)=>`wf:${n(e)}:timeline:`,timeline:(e,t)=>`wf:${n(e)}:timeline:${String(t).padStart(10,"0")}`,schedule:(e)=>`schedule:${n(e)}`,scheduleTick:(e,t)=>`schedule-due:${String(e).padStart(16,"0")}:${n(t)}`,scheduleRun:(e)=>`schedule-run:${n(e)}`,scheduleRunLink:(e)=>`schedule-run-link:${n(e)}`,scheduleRunBySchedulePrefix:(e)=>`schedule-run-by-schedule:${n(e)}:`,scheduleRunBySchedule:(e,t)=>`schedule-run-by-schedule:${n(e)}:${n(t)}`,operation:(e,t,r)=>`op:${e}:${f(t)}:${r}`,operationInflight:(e)=>`op:inflight:${e}`,operationQueued:(e)=>`op:queued:${e}`,operationResolved:(e)=>`op:resolved:${e}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(e,t,r)=>`audit:bulk:${f(e)}:${n(t)}:${n(r)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(e,t)=>`op:resolved-by-time:${f(e)}:${n(t)}`,asyncActivity:(e,t)=>`async-act:v1:${n(e)}:${n(t)}`,asyncActivityResolution:(e,t)=>`async-act:v1:${n(e)}:${n(t)}:resolution`,activityReconciliationPrefix:(e)=>`actrec:v1:${n(e)}:`,activityReconciliation:(e,t,r)=>`actrec:v1:${n(e)}:${n(t)}:${r}`,eventPrefix:(e)=>`ev:${n(e)}:`,event:(e,t)=>`ev:${n(e)}:${String(t).padStart(10,"0")}`,eventHead:(e)=>`ev:${n(e)}:head`,eventWatermark:(e)=>`ev:${n(e)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(e)=>`fleet-event:${String(e).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventWatermark:()=>"fleet-event-watermark",fleetEventByWorkflowPrefix:(e)=>`fleet-event-by-workflow:${n(e)}:`,fleetEventByWorkflow:(e,t)=>`fleet-event-by-workflow:${n(e)}:${String(t).padStart(10,"0")}`,signal:(e,t,r)=>V(e,t,r,ne),startSignal:(e,t,r)=>V(e,t,r,te),signalSequence:(e)=>`sigseq:v1:${n(e)}`,signalAcceptedResponsePrefix:(e)=>`sigres:v1:${n(e)}:`,signalAcceptedResponse:(e,t,r)=>`sigres:v1:${n(e)}:${n(t)}:${n(r)}`,deadline:(e,t)=>`wf-deadline:${f(e)}:${n(t)}`,terminalCleanup:(e,t)=>`wf-cleanup:${f(e)}:${n(t)}`,teardownTimer:(e,t)=>`wf-teardown:${f(e)}:${n(t)}`,delayedStart:(e,t)=>`wf-delayed:${f(e)}:${n(t)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(e,t)=>`wf-terminal:${f(e)}:${n(t)}`,attribute:(e)=>`attr:${n(e)}`,attributeIndex:(e,t,r)=>`idx:${e}:${t}:${n(r)}`,tagIndex:(e,t)=>`tag:${n(e)}:${n(t)}`,updatePrefix:(e)=>`upd:${n(e)}:`,update:(e,t)=>`upd:${n(e)}:${t}`,updateResponse:(e)=>`upr:${e}`,updateIdempotency:(e,t)=>`upk:${n(e)}:${t}`,startIdempotency:(e)=>`start-idem:${n(e)}`,startIdempotencySignalId:(e)=>`start-idem:${e}`,livenessPrefix:()=>"liveness:",liveness:(e)=>`liveness:${n(e)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",...z,...U,...q,..._,budget:(e,t,r)=>`budget:${e}:${t}:${r}`,review:(e,t)=>`review:${n(e)}:${t}`,workflowHeaders:(e)=>`wf-headers:${n(e)}`,childCancellationPrefix:(e)=>`child-cancel:${n(e)}:`,childCancellation:(e,t)=>`child-cancel:${n(e)}:${n(t)}`,childWorkflowByParentPrefix:(e,t)=>`child-by-parent:${n(e)}:${t===void 0?"":`${n(t)}:`}`,childWorkflowByParent:(e,t,r)=>`child-by-parent:${n(e)}:${t===void 0?"":`${n(t)}:`}${n(r)}`,terminalCleanupNeeded:(e)=>`wf-cleanup-needed:${n(e)}`,workflowConcurrency:(e,t)=>`wf-concurrency:${n(e)}:${n(t)}`,workflowConcurrencyHolder:(e)=>`wf-concurrency-holder:${n(e)}`,workflowHasServices:(e)=>`wf-has-services:${n(e)}`,finalizerState:(e)=>`wf-finalizer-state:${n(e)}`,teardownOwed:(e)=>`wf-teardown-needed:${n(e)}`,teardownSucceeded:(e)=>`wf-teardown-succeeded:${n(e)}`,teardownDeadLetter:(e)=>`wf-teardown-deadletter:${n(e)}`,offload:(e,t)=>`offload:${n(e)}:${t}`,archive:(e,t)=>`archive:${n(e)}:${t}`,stateExecution:(e,t)=>`state:execution:${n(e)}:${n(t)}`,stateWorkflow:(e,t)=>`state:workflow-scope:${L}:${n(e)}:${n(t)}`,streamChunkPrefix:(e,t)=>`blob:${n(e)}:${t}:chunk:`,streamChunk:(e,t,r)=>`blob:${n(e)}:${t}:chunk:${String(r).padStart(10,"0")}`,streamTail:(e,t)=>`blob:${n(e)}:${t}:tail`,streamMetadata:(e,t)=>`blob:${n(e)}:${t}:meta`,budgetCharged:(e)=>`budget-charged:${e}`,toolEffect:(e,t,r)=>`tool-effect:${n(e)}:${t}:${r}`,workflowVisibilityStatus:(e,t)=>`wf-idx-status:${n(e)}:${n(t)}`,workflowVisibilityType:(e,t)=>`wf-idx-type:${n(e)}:${n(t)}`,workflowVisibilityCreated:(e,t)=>`wf-idx-created:${f(e)}:${n(t)}`,workflowVisibilityUpdated:(e,t)=>`wf-idx-updated:${f(e)}:${n(t)}`,workflowVisibilityDeadline:(e,t)=>`wf-idx-deadline:${f(e)}:${n(t)}`,workflowVisibilityManifest:(e)=>`wf-idx-manifest:${n(e)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function re(e){if(e===void 0)return;if(typeof e!=="number"||!Number.isInteger(e)||e<0)throw Error("deleteRange limit must be a finite non-negative integer");return e===0?0:e}function D(e){let t={},r=!1;for(let o of["gt","gte","lt","lte"]){let a=e[o];if(a===void 0)continue;if(typeof a!=="string")throw Error("deleteRange bounds must be strings");t[o]=a,r=!0}if(!r)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let i=re(e.limit);if(i!==void 0)t.limit=i;return t}async function G(e,t,r){let i=D(r);if(e.deleteRange)return e.deleteRange(t,i);return T(e,t,i)}function ie(e,t){let r={key:e,open:!1};if(t.gte!==void 0&&t.gte>r.key)r.key=t.gte,r.open=!1;if(t.gt!==void 0&&t.gt>=r.key)r.key=t.gt,r.open=!0;return r}function oe(e,t){let r={key:w(e),open:!0};if(t.lt!==void 0&&t.lt<=r.key)r.key=t.lt,r.open=!0;if(t.lte!==void 0&&t.lte<r.key)r.key=t.lte,r.open=!1;return r}function Q(e,t){let r=ie(e,t),i=oe(e,t);if(r.key>i.key||r.key===i.key&&(r.open||i.open))return null;return{lower:r,upper:i}}function P(e){return e.replaceAll(/:+$/g,"")}function ae(e,t){let r=P(e),i=P(t);if(r.length===0)return i;if(i.length===0)return r;return`${r}:${i}`}class k{#t;#n;constructor(e,t){this.#t=e,this.#n=P(t)}#e(e){if(this.#n.length===0)return e;return e.length===0?`${this.#n}:`:`${this.#n}:${e}`}#r(e){return e.map((t)=>{if(t.type==="put")return{type:"put",key:this.#e(t.key),value:t.value};return{type:"delete",key:this.#e(t.key)}})}#i(e){if(this.#n.length===0)return e;return e.slice(this.#n.length+1)}#o(e){let t={};if(e.limit!==void 0)t.limit=e.limit;if(e.gt!==void 0)t.gt=this.#e(e.gt);if(e.gte!==void 0)t.gte=this.#e(e.gte);if(e.lt!==void 0)t.lt=this.#e(e.lt);if(e.lte!==void 0)t.lte=this.#e(e.lte);return t}#a(e={}){let t=this.#o(e);if(e.reverse!==void 0)t.reverse=e.reverse;return t}#s(e){return this.#o(e)}capabilities(){return this.#t.capabilities()}scoped(e){return new k(this.#t,ae(this.#n,e))}async get(e){return this.#t.get(this.#e(e))}async put(e,t){await this.#t.put(this.#e(e),t)}async delete(e){await this.#t.delete(this.#e(e))}async*scan(e,t){for await(let[r,i]of this.#t.scan(this.#e(e),this.#a(t)))yield[this.#i(r),i]}async batch(e){h("batch operations",e.length),await this.#t.batch(this.#r(e))}async conditionalBatch(e,t){return X(this.#t,e.map((r)=>({key:this.#e(r.key),expectedValue:r.expectedValue})),this.#r(t))}async has(e){return j(this.#t,this.#e(e))}async deletePrefix(e){return Y(this.#t,this.#e(e))}async deleteRange(e,t){let r=this.#s(D(t));return G(this.#t,this.#e(e),r)}async*keys(e,t){for await(let r of H(this.#t,this.#e(e),this.#a(t)))yield this.#i(r)}async count(e){return F(this.#t,this.#e(e))}[Symbol.dispose](){this.#t[Symbol.dispose]()}}function J(e,t){return new k(e,t)}var l="kv";function se(e=globalThis){let{indexedDB:t,IDBKeyRange:r}=e;if(t===void 0||r===void 0)throw Error("IndexedDBStorage requires both indexedDB and IDBKeyRange runtime globals.");return{indexedDB:t,IDBKeyRange:r}}function x(e){return new Promise((t,r)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>r(e.error)})}function le(e,t){let r=null,i=null,o=null,a=(s,c)=>{let u=s??Error(c);if(i){let d=i;r=null,i=null,d(u);return}o=u};return e.onsuccess=()=>{if(!r)return;let s=r;r=null,i=null,s(e.result)},e.onerror=()=>{a(e.error,"IndexedDB cursor request failed.")},t.onerror=()=>{a(t.error,"IndexedDB transaction failed.")},t.onabort=()=>{a(t.error,"IndexedDB transaction aborted.")},()=>new Promise((s,c)=>{if(o){let u=o;o=null,c(u);return}if(r=s,i=c,e.readyState==="done"){let u=r;r=null,i=null,u?.(e.result)}})}async function*Z(e,t,r,i,o,a){let{limit:s,reverse:c}=i,u=w(r),d=t.bound(r,u,!1,!0),b=c?"prev":"next",p=e.transaction(l,"readonly"),g=p.objectStore(l),m=o(g,d,b),S=le(m,p),v=0,R=!1;try{let B=await S();while(B){if(s!==void 0&&v>=s)break;let ee=B.key;if(W(ee,i))yield a(B),v++;B.continue(),B=await S()}R=!0}finally{if(!R)try{p.abort()}catch{}}}class ce{#t;#n=null;#e;#r;constructor(e="weft",t=se()){this.#t=e,this.#r=t,this.#e=this.#i()}capabilities(){return{persistence:"local",readAfterWrite:"linearizable",scanConsistency:"best-effort",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#i(){let e=this.#r.indexedDB.open(this.#t,1);return e.onupgradeneeded=()=>{let t=e.result;if(!t.objectStoreNames.contains(l))t.createObjectStore(l)},x(e).then((t)=>(this.#n=t,t))}async get(e){let i=(await this.#e).transaction(l,"readonly").objectStore(l),o=await x(i.get(e));return o===void 0?null:new Uint8Array(o)}async put(e,t){let o=(await this.#e).transaction(l,"readwrite").objectStore(l);await x(o.put(t,e))}async delete(e){let i=(await this.#e).transaction(l,"readwrite").objectStore(l);await x(i.delete(e))}async has(e){let i=(await this.#e).transaction(l,"readonly").objectStore(l);return await x(i.count(e))>0}async deletePrefix(e){let t=await this.#e,r=w(e),i=this.#r.IDBKeyRange.bound(e,r,!1,!0);return new Promise((o,a)=>{let s=t.transaction(l,"readwrite"),c=s.objectStore(l),u=0,d=c.count(i);d.onsuccess=()=>{u=d.result,c.delete(i)},s.oncomplete=()=>o(u),s.onerror=()=>a(s.error)})}async deleteRange(e,t){let r=D(t),i=Q(e,r);if(i===null)return 0;let o=this.#r.IDBKeyRange.bound(i.lower.key,i.upper.key,i.lower.open,i.upper.open),a=await this.#e,{limit:s}=r;return new Promise((c,u)=>{let d=a.transaction(l,"readwrite"),b=d.objectStore(l),p=0;if(s===void 0){let g=b.count(o);g.onsuccess=()=>{p=g.result,b.delete(o)}}else{let g=b.openCursor(o,"next");g.onsuccess=()=>{let m=g.result;if(m===null||p>=s)return;if(m.delete(),p++,p<s)m.continue()}}d.oncomplete=()=>c(p),d.onerror=()=>u(d.error)})}async*scan(e,t={}){let r=await this.#e;yield*Z(r,this.#r.IDBKeyRange,e,t,(i,o,a)=>i.openCursor(o,a),(i)=>[i.key,new Uint8Array(i.value)])}async batch(e){if(h("batch operations",e.length),e.length===0)return;let t=await this.#e;return new Promise((r,i)=>{let o=t.transaction(l,"readwrite"),a=o.objectStore(l);for(let s of e)if(s.type==="put")a.put(s.value,s.key);else a.delete(s.key);o.oncomplete=()=>r(),o.onerror=()=>i(o.error)})}async conditionalBatch(e,t){h("conditionalBatch conditions",e.length),h("conditionalBatch operations",t.length);let r=await this.#e;return new Promise((i,o)=>{let a=r.transaction(l,"readwrite"),s=a.objectStore(l),c=!1,u=!1,d=(g,m)=>{if(c)return;c=!0,o(g??Error(m))};a.oncomplete=()=>{if(c)return;c=!0,i(!0)},a.onerror=()=>{d(a.error,"IndexedDB conditionalBatch transaction failed.")},a.onabort=()=>{if(c)return;if(c=!0,u){i(!1);return}o(a.error??Error("IndexedDB conditionalBatch transaction aborted."))};let b=()=>{for(let g of t)if(g.type==="put")s.put(g.value,g.key);else s.delete(g.key)},p=(g)=>{if(g>=e.length){b();return}let m=e[g],S=s.get(m.key);S.onsuccess=()=>{let v=S.result,R=v===void 0?null:new Uint8Array(v);if(!N(R,m.expectedValue)){u=!0,a.abort();return}p(g+1)},S.onerror=()=>{d(S.error,"IndexedDB conditionalBatch condition check failed.")}};p(0)})}async*keys(e,t={}){let r=await this.#e;yield*Z(r,this.#r.IDBKeyRange,e,t,(i,o,a)=>i.openKeyCursor(o,a),(i)=>i.key)}async count(e){let t=await this.#e,r=w(e),o=t.transaction(l,"readonly").objectStore(l);return x(o.count(this.#r.IDBKeyRange.bound(e,r,!1,!0)))}scoped(e){return J(this,e)}[Symbol.dispose](){if(this.#n)this.#n.close(),this.#n=null}}export{ce as IndexedDBStorage};
|
|
1
|
+
async function I(e,t){return await e.get(t)!==null}async function*C(e,t,r){for await(let[i]of e.scan(t,r))yield i}async function A(e,t){let r=0;for await(let i of C(e,t))r++;return r}async function E(e,t){let r=[];for await(let i of C(e,t))r.push({type:"delete",key:i});if(r.length===0)return 0;return await e.batch(r),r.length}async function T(e,t,r){let i=[];for await(let o of C(e,t,r))i.push({type:"delete",key:o});if(i.length===0)return 0;return await e.batch(i),i.length}function K(e,t,r){if(!e.capabilities()[t])throw Error(`Feature "${r}" requires storage capability "${t}", but this storage backend does not provide it.`)}function n(e){return encodeURIComponent(e)}function y(e){return String(e).padStart(16,"0")}var _={catalogEntry:(e,t)=>`catalog-entry:${n(e)}:${n(t)}`,catalogEntryPrefix:(e)=>`catalog-entry:${n(e)}:`,catalogActive:(e)=>`catalog-active:${n(e)}`,catalogTombstone:(e,t)=>`catalog-tombstone:${n(e)}:${n(t)}`,catalogTombstonePrefix:()=>"catalog-tombstone:"};var L="default";var z={applicationMailbox:(e,t)=>`appmbx:v1:${n(e)}:${n(t)}`,applicationMailboxSinkProbe:(e,t,r)=>`appprobe:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandPrefix:(e,t)=>`appcmd:v1:${n(e)}:${n(t)}:`,applicationCommand:(e,t,r)=>`appcmd:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandReadyPrefix:(e,t)=>`appready:v1:${n(e)}:${n(t)}:`,applicationCommandReady:(e,t,r)=>`appready:v1:${n(e)}:${n(t)}:${y(r)}`,applicationCommandIdempotency:(e,t,r)=>`appidem:v1:${n(e)}:${n(t)}:${n(r)}`,applicationCommandBySequencePrefix:(e,t)=>`appseq:v1:${n(e)}:${n(t)}:`,applicationCommandBySequence:(e,t,r)=>`appseq:v1:${n(e)}:${n(t)}:${y(r)}`,applicationCommandTerminalPrefix:(e,t)=>`appterm:v1:${n(e)}:${n(t)}:`,applicationCommandTerminal:(e,t,r,i)=>`appterm:v1:${n(e)}:${n(t)}:${y(r)}:${n(i)}`};var U={applicationOutbox:(e,t)=>`appobx:v1:${n(e)}:${n(t)}`,applicationOutboxSinkProbe:(e,t,r)=>`appprobe:v1:outbox:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryPrefix:(e,t)=>`appdlv:v1:${n(e)}:${n(t)}:`,applicationDelivery:(e,t,r)=>`appdlv:v1:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryDuePrefix:(e,t)=>`appdue:v1:${n(e)}:${n(t)}:`,applicationDeliveryDue:(e,t,r,i)=>`appdue:v1:${n(e)}:${n(t)}:${y(r)}:${n(i)}`,applicationDeliveryIdempotency:(e,t,r)=>`appdidem:v1:${n(e)}:${n(t)}:${n(r)}`,applicationDeliveryBySequencePrefix:(e,t)=>`appdseq:v1:${n(e)}:${n(t)}:`,applicationDeliveryBySequence:(e,t,r)=>`appdseq:v1:${n(e)}:${n(t)}:${y(r)}`,applicationDeliveryTerminalPrefix:(e,t)=>`appdterm:v1:${n(e)}:${n(t)}:`,applicationDeliveryTerminal:(e,t,r,i)=>`appdterm:v1:${n(e)}:${n(t)}:${y(r)}:${n(i)}`};var q={workflowOwnerEpoch:(e)=>`wf-owner-epoch:${n(e)}`,workflowOwnerHolder:(e)=>`wf-owner-holder:${n(e)}`,ownershipModeMarker:()=>"ownership-mode-marker"};var O=1e4;class M extends Error{code="StorageBatchOperationLimitExceededError";cap=O;count;target;constructor(e,t){super(`${e} count ${t} exceeds MAX_BATCH_OPERATIONS (${O}).`);this.name="StorageBatchOperationLimitExceededError",this.target=e,this.count=t}}function h(e,t){if(t>O)throw new M(e,t)}function w(e){return e.length>0?e.slice(0,-1)+String.fromCharCode(e.charCodeAt(e.length-1)+1):"ÿ"}function W(e,t={}){if(t.gt!==void 0&&e<=t.gt)return!1;if(t.gte!==void 0&&e<t.gte)return!1;if(t.lt!==void 0&&e>=t.lt)return!1;if(t.lte!==void 0&&e>t.lte)return!1;return!0}function N(e,t){if(e===null||t===null)return e===t;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}async function j(e,t){if(e.has)return e.has(t);return I(e,t)}function H(e,t,r){if(e.keys)return e.keys(t,r);return C(e,t,r)}async function F(e,t){if(e.count)return e.count(t);return A(e,t)}async function Y(e,t){if(e.deletePrefix)return e.deletePrefix(t);return E(e,t)}async function X(e,t,r){if(h("conditionalBatch conditions",t.length),h("conditionalBatch operations",r.length),K(e,"conditionalBatch","storageConditionalBatch"),!e.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return e.conditionalBatch(t,r)}var f=y,te="0",ne="1",V=(e,t,r,i)=>`sig:${n(e)}:${n(t)}:${i}:${n(r)}`,ke={workflow:(e)=>`wf:${n(e)}`,checkpoint:(e)=>`wf:${n(e)}:ckpt`,checkpointHistory:(e,t)=>`wf:${n(e)}:ckpt:${String(t).padStart(10,"0")}`,timelinePrefix:(e)=>`wf:${n(e)}:timeline:`,timeline:(e,t)=>`wf:${n(e)}:timeline:${String(t).padStart(10,"0")}`,schedule:(e)=>`schedule:${n(e)}`,scheduleTick:(e,t)=>`schedule-due:${String(e).padStart(16,"0")}:${n(t)}`,scheduleRun:(e)=>`schedule-run:${n(e)}`,scheduleRunLink:(e)=>`schedule-run-link:${n(e)}`,scheduleRunBySchedulePrefix:(e)=>`schedule-run-by-schedule:${n(e)}:`,scheduleRunBySchedule:(e,t)=>`schedule-run-by-schedule:${n(e)}:${n(t)}`,operation:(e,t,r)=>`op:${e}:${f(t)}:${r}`,operationInflight:(e)=>`op:inflight:${e}`,operationQueued:(e)=>`op:queued:${e}`,operationResolved:(e)=>`op:resolved:${e}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(e,t,r)=>`audit:bulk:${f(e)}:${n(t)}:${n(r)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(e,t)=>`op:resolved-by-time:${f(e)}:${n(t)}`,asyncActivity:(e,t)=>`async-act:v1:${n(e)}:${n(t)}`,asyncActivityResolution:(e,t)=>`async-act:v1:${n(e)}:${n(t)}:resolution`,activityReconciliationPrefix:(e)=>`actrec:v1:${n(e)}:`,activityReconciliation:(e,t,r)=>`actrec:v1:${n(e)}:${n(t)}:${r}`,eventPrefix:(e)=>`ev:${n(e)}:`,event:(e,t)=>`ev:${n(e)}:${String(t).padStart(10,"0")}`,eventHead:(e)=>`ev:${n(e)}:head`,eventWatermark:(e)=>`ev:${n(e)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(e)=>`fleet-event:${String(e).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventWatermark:()=>"fleet-event-watermark",fleetEventByWorkflowPrefix:(e)=>`fleet-event-by-workflow:${n(e)}:`,fleetEventByWorkflow:(e,t)=>`fleet-event-by-workflow:${n(e)}:${String(t).padStart(10,"0")}`,signal:(e,t,r)=>V(e,t,r,ne),startSignal:(e,t,r)=>V(e,t,r,te),signalSequence:(e)=>`sigseq:v1:${n(e)}`,signalAcceptedResponsePrefix:(e)=>`sigres:v1:${n(e)}:`,signalAcceptedResponse:(e,t,r)=>`sigres:v1:${n(e)}:${n(t)}:${n(r)}`,deadline:(e,t)=>`wf-deadline:${f(e)}:${n(t)}`,terminalCleanup:(e,t)=>`wf-cleanup:${f(e)}:${n(t)}`,teardownTimer:(e,t)=>`wf-teardown:${f(e)}:${n(t)}`,delayedStart:(e,t)=>`wf-delayed:${f(e)}:${n(t)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(e,t)=>`wf-terminal:${f(e)}:${n(t)}`,attribute:(e)=>`attr:${n(e)}`,attributeIndex:(e,t,r)=>`idx:${e}:${t}:${n(r)}`,tagIndex:(e,t)=>`tag:${n(e)}:${n(t)}`,updatePrefix:(e)=>`upd:${n(e)}:`,update:(e,t)=>`upd:${n(e)}:${t}`,updateResponse:(e)=>`upr:${e}`,updateIdempotency:(e,t)=>`upk:${n(e)}:${t}`,startIdempotency:(e)=>`start-idem:${n(e)}`,startIdempotencySignalId:(e)=>`start-idem:${e}`,livenessPrefix:()=>"liveness:",liveness:(e)=>`liveness:${n(e)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",...z,...U,...q,..._,budget:(e,t,r)=>`budget:${e}:${t}:${r}`,review:(e,t)=>`review:${n(e)}:${t}`,workflowHeaders:(e)=>`wf-headers:${n(e)}`,childCancellationPrefix:(e)=>`child-cancel:${n(e)}:`,childCancellation:(e,t)=>`child-cancel:${n(e)}:${n(t)}`,childWorkflowByParentPrefix:(e,t)=>`child-by-parent:${n(e)}:${t===void 0?"":`${n(t)}:`}`,childWorkflowByParent:(e,t,r)=>`child-by-parent:${n(e)}:${t===void 0?"":`${n(t)}:`}${n(r)}`,terminalCleanupNeeded:(e)=>`wf-cleanup-needed:${n(e)}`,workflowConcurrency:(e,t)=>`wf-concurrency:${n(e)}:${n(t)}`,workflowConcurrencyHolder:(e)=>`wf-concurrency-holder:${n(e)}`,workflowHasServices:(e)=>`wf-has-services:${n(e)}`,finalizerState:(e)=>`wf-finalizer-state:${n(e)}`,teardownOwed:(e)=>`wf-teardown-needed:${n(e)}`,teardownSucceeded:(e)=>`wf-teardown-succeeded:${n(e)}`,teardownDeadLetter:(e)=>`wf-teardown-deadletter:${n(e)}`,offload:(e,t)=>`offload:${n(e)}:${t}`,archive:(e,t)=>`archive:${n(e)}:${t}`,stateExecution:(e,t)=>`state:execution:${n(e)}:${n(t)}`,stateWorkflow:(e,t)=>`state:workflow-scope:${L}:${n(e)}:${n(t)}`,streamChunkPrefix:(e,t)=>`blob:${n(e)}:${t}:chunk:`,streamChunk:(e,t,r)=>`blob:${n(e)}:${t}:chunk:${String(r).padStart(10,"0")}`,streamTail:(e,t)=>`blob:${n(e)}:${t}:tail`,streamMetadata:(e,t)=>`blob:${n(e)}:${t}:meta`,budgetCharged:(e)=>`budget-charged:${e}`,toolEffect:(e,t,r)=>`tool-effect:${n(e)}:${t}:${r}`,workflowVisibilityStatus:(e,t)=>`wf-idx-status:${n(e)}:${n(t)}`,workflowVisibilityType:(e,t)=>`wf-idx-type:${n(e)}:${n(t)}`,workflowVisibilityCreated:(e,t)=>`wf-idx-created:${f(e)}:${n(t)}`,workflowVisibilityUpdated:(e,t)=>`wf-idx-updated:${f(e)}:${n(t)}`,workflowVisibilityDeadline:(e,t)=>`wf-idx-deadline:${f(e)}:${n(t)}`,workflowVisibilityManifest:(e)=>`wf-idx-manifest:${n(e)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function re(e){if(e===void 0)return;if(typeof e!=="number"||!Number.isInteger(e)||e<0)throw Error("deleteRange limit must be a finite non-negative integer");return e===0?0:e}function D(e){let t={},r=!1;for(let o of["gt","gte","lt","lte"]){let a=e[o];if(a===void 0)continue;if(typeof a!=="string")throw Error("deleteRange bounds must be strings");t[o]=a,r=!0}if(!r)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let i=re(e.limit);if(i!==void 0)t.limit=i;return t}async function G(e,t,r){let i=D(r);if(e.deleteRange)return e.deleteRange(t,i);return T(e,t,i)}function ie(e,t){let r={key:e,open:!1};if(t.gte!==void 0&&t.gte>r.key)r.key=t.gte,r.open=!1;if(t.gt!==void 0&&t.gt>=r.key)r.key=t.gt,r.open=!0;return r}function oe(e,t){let r={key:w(e),open:!0};if(t.lt!==void 0&&t.lt<=r.key)r.key=t.lt,r.open=!0;if(t.lte!==void 0&&t.lte<r.key)r.key=t.lte,r.open=!1;return r}function Q(e,t){let r=ie(e,t),i=oe(e,t);if(r.key>i.key||r.key===i.key&&(r.open||i.open))return null;return{lower:r,upper:i}}function P(e){return e.replaceAll(/:+$/g,"")}function ae(e,t){let r=P(e),i=P(t);if(r.length===0)return i;if(i.length===0)return r;return`${r}:${i}`}class k{#t;#n;constructor(e,t){this.#t=e,this.#n=P(t)}#e(e){if(this.#n.length===0)return e;return e.length===0?`${this.#n}:`:`${this.#n}:${e}`}#r(e){return e.map((t)=>{if(t.type==="put")return{type:"put",key:this.#e(t.key),value:t.value};return{type:"delete",key:this.#e(t.key)}})}#i(e){if(this.#n.length===0)return e;return e.slice(this.#n.length+1)}#o(e){let t={};if(e.limit!==void 0)t.limit=e.limit;if(e.gt!==void 0)t.gt=this.#e(e.gt);if(e.gte!==void 0)t.gte=this.#e(e.gte);if(e.lt!==void 0)t.lt=this.#e(e.lt);if(e.lte!==void 0)t.lte=this.#e(e.lte);return t}#a(e={}){let t=this.#o(e);if(e.reverse!==void 0)t.reverse=e.reverse;return t}#s(e){return this.#o(e)}capabilities(){return this.#t.capabilities()}scoped(e){return new k(this.#t,ae(this.#n,e))}async get(e){return this.#t.get(this.#e(e))}async put(e,t){await this.#t.put(this.#e(e),t)}async delete(e){await this.#t.delete(this.#e(e))}async*scan(e,t){for await(let[r,i]of this.#t.scan(this.#e(e),this.#a(t)))yield[this.#i(r),i]}async batch(e){h("batch operations",e.length),await this.#t.batch(this.#r(e))}async conditionalBatch(e,t){return X(this.#t,e.map((r)=>({key:this.#e(r.key),expectedValue:r.expectedValue})),this.#r(t))}async has(e){return j(this.#t,this.#e(e))}async deletePrefix(e){return Y(this.#t,this.#e(e))}async deleteRange(e,t){let r=this.#s(D(t));return G(this.#t,this.#e(e),r)}async*keys(e,t){for await(let r of H(this.#t,this.#e(e),this.#a(t)))yield this.#i(r)}async count(e){return F(this.#t,this.#e(e))}[Symbol.dispose](){this.#t[Symbol.dispose]()}}function J(e,t){return new k(e,t)}var l="kv";function se(e=globalThis){let{indexedDB:t,IDBKeyRange:r}=e;if(t===void 0||r===void 0)throw Error("IndexedDBStorage requires both indexedDB and IDBKeyRange runtime globals.");return{indexedDB:t,IDBKeyRange:r}}function x(e){return new Promise((t,r)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>r(e.error)})}function le(e,t){let r=null,i=null,o=null,a=(s,c)=>{let u=s??Error(c);if(i){let d=i;r=null,i=null,d(u);return}o=u};return e.onsuccess=()=>{if(!r)return;let s=r;r=null,i=null,s(e.result)},e.onerror=()=>{a(e.error,"IndexedDB cursor request failed.")},t.onerror=()=>{a(t.error,"IndexedDB transaction failed.")},t.onabort=()=>{a(t.error,"IndexedDB transaction aborted.")},()=>new Promise((s,c)=>{if(o){let u=o;o=null,c(u);return}if(r=s,i=c,e.readyState==="done"){let u=r;r=null,i=null,u?.(e.result)}})}async function*Z(e,t,r,i,o,a){let{limit:s,reverse:c}=i,u=w(r),d=t.bound(r,u,!1,!0),b=c?"prev":"next",p=e.transaction(l,"readonly"),g=p.objectStore(l),m=o(g,d,b),S=le(m,p),v=0,R=!1;try{let B=await S();while(B){if(s!==void 0&&v>=s)break;let ee=B.key;if(W(ee,i))yield a(B),v++;B.continue(),B=await S()}R=!0}finally{if(!R)try{p.abort()}catch{}}}class ce{#t;#n=null;#e;#r;constructor(e="weft",t=se()){this.#t=e,this.#r=t,this.#e=this.#i()}capabilities(){return{persistence:"local",readAfterWrite:"linearizable",scanConsistency:"best-effort",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#i(){let e=this.#r.indexedDB.open(this.#t,1);return e.onupgradeneeded=()=>{let t=e.result;if(!t.objectStoreNames.contains(l))t.createObjectStore(l)},x(e).then((t)=>(this.#n=t,t))}async get(e){let i=(await this.#e).transaction(l,"readonly").objectStore(l),o=await x(i.get(e));return o===void 0?null:new Uint8Array(o)}async put(e,t){let o=(await this.#e).transaction(l,"readwrite").objectStore(l);await x(o.put(t,e))}async delete(e){let i=(await this.#e).transaction(l,"readwrite").objectStore(l);await x(i.delete(e))}async has(e){let i=(await this.#e).transaction(l,"readonly").objectStore(l);return await x(i.count(e))>0}async deletePrefix(e){let t=await this.#e,r=w(e),i=this.#r.IDBKeyRange.bound(e,r,!1,!0);return new Promise((o,a)=>{let s=t.transaction(l,"readwrite"),c=s.objectStore(l),u=0,d=c.count(i);d.onsuccess=()=>{u=d.result,c.delete(i)},s.oncomplete=()=>o(u),s.onerror=()=>a(s.error)})}async deleteRange(e,t){let r=D(t),i=Q(e,r);if(i===null)return 0;let o=this.#r.IDBKeyRange.bound(i.lower.key,i.upper.key,i.lower.open,i.upper.open),a=await this.#e,{limit:s}=r;return new Promise((c,u)=>{let d=a.transaction(l,"readwrite"),b=d.objectStore(l),p=0;if(s===void 0){let g=b.count(o);g.onsuccess=()=>{p=g.result,b.delete(o)}}else{let g=b.openCursor(o,"next");g.onsuccess=()=>{let m=g.result;if(m===null||p>=s)return;if(m.delete(),p++,p<s)m.continue()}}d.oncomplete=()=>c(p),d.onerror=()=>u(d.error)})}async*scan(e,t={}){let r=await this.#e;yield*Z(r,this.#r.IDBKeyRange,e,t,(i,o,a)=>i.openCursor(o,a),(i)=>[i.key,new Uint8Array(i.value)])}async batch(e){if(h("batch operations",e.length),e.length===0)return;let t=await this.#e;return new Promise((r,i)=>{let o=t.transaction(l,"readwrite"),a=o.objectStore(l);for(let s of e)if(s.type==="put")a.put(s.value,s.key);else a.delete(s.key);o.oncomplete=()=>r(),o.onerror=()=>i(o.error)})}async conditionalBatch(e,t){h("conditionalBatch conditions",e.length),h("conditionalBatch operations",t.length);let r=await this.#e;return new Promise((i,o)=>{let a=r.transaction(l,"readwrite"),s=a.objectStore(l),c=!1,u=!1,d=(g,m)=>{if(c)return;c=!0,o(g??Error(m))};a.oncomplete=()=>{if(c)return;c=!0,i(!0)},a.onerror=()=>{d(a.error,"IndexedDB conditionalBatch transaction failed.")},a.onabort=()=>{if(c)return;if(c=!0,u){i(!1);return}o(a.error??Error("IndexedDB conditionalBatch transaction aborted."))};let b=()=>{for(let g of t)if(g.type==="put")s.put(g.value,g.key);else s.delete(g.key)},p=(g)=>{if(g>=e.length){b();return}let m=e[g],S=s.get(m.key);S.onsuccess=()=>{let v=S.result,R=v===void 0?null:new Uint8Array(v);if(!N(R,m.expectedValue)){u=!0,a.abort();return}p(g+1)},S.onerror=()=>{d(S.error,"IndexedDB conditionalBatch condition check failed.")}};p(0)})}async*keys(e,t={}){let r=await this.#e;yield*Z(r,this.#r.IDBKeyRange,e,t,(i,o,a)=>i.openKeyCursor(o,a),(i)=>i.key)}async count(e){let t=await this.#e,r=w(e),o=t.transaction(l,"readonly").objectStore(l);return x(o.count(this.#r.IDBKeyRange.bound(e,r,!1,!0)))}scoped(e){return J(this,e)}[Symbol.dispose](){if(this.#n)this.#n.close(),this.#n=null}}export{ce as IndexedDBStorage};
|
package/dist/json-schema.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var y=import.meta.require;class i extends Error{code;constructor(r,e,t){super(e,t);this.code=r,this.name=r}}var
|
|
3
|
-
`)}function
|
|
4
|
-
${d(t)}`}var
|
|
2
|
+
var y=import.meta.require;class i extends Error{code;constructor(r,e,t){super(e,t);this.code=r,this.name=r}}var l={WorkflowAlreadyExistsError:!0,BulkDeleteRequiresTerminalWorkflowsError:!0,BulkOperationConfirmationError:!0,WorkflowTypeNotRegisteredForRecoveryError:!0,EngineCreateNameMismatchError:!0,EngineDisposedError:!0,EngineDisposalError:!0,WorkflowNotFoundError:!0,WorkflowNotRegisteredError:!0,WorkflowConcurrencyLimitExceededError:!0,WorkflowSuspendNotSupportedError:!0,ActivityResolutionError:!0,BranchTopologyChangedError:!0,PersistedDataIncompatibleError:!0,PersistedDataCorruptError:!0,WorkflowTimeoutError:!0,HttpClientError:!0,WorkerProtocolIncompatibleError:!0,UpdateTimeoutError:!0,UpdateValidationError:!0,WorkflowTerminalError:!0,WorkflowBuilderError:!0,VersionMismatchError:!0,EffectReplayConflictError:!0,ReviewTimeoutError:!0,AtomicStateConflictError:!0,StandardSchemaValidationError:!0,ActivityReconciliationCapabilityError:!0,ActivityReconciliationConflictError:!0,ActivityReconciliationIndeterminateError:!0,DurableActivityScopeError:!0,DurableActivityUnsupportedError:!0,AsyncActivityTokenNotFoundError:!0,ActivityScheduleToCloseTimeoutError:!0,ActivityPerAttemptTimeoutError:!0,PayloadSizeExceededError:!0,StartOrSignalConflictError:!0,WorkflowTeardownPendingError:!0,IdempotencyKeyPurgedError:!0,WorkerManifestBuildError:!0,OwnershipModeMismatchError:!0,ApplicationCommandValidationError:!0,MailboxContentionError:!0,ApplicationDeliveryValidationError:!0,OutboxContentionError:!0,WaitBudgetElapsedError:!0,WorkflowCatalogConflictError:!0,WorkflowRevisionNotInstalledError:!0,WorkflowSourceValidationError:!0,WorkflowSourceNotRegisteredError:!0,DynamicWorkflowSourceUnavailableError:!0,WorkflowRevisionUnavailableError:!0},g=new Set(Object.keys(l));class o extends i{fieldName;operation;issues;constructor(r){super("StandardSchemaValidationError",p(r.fieldName,r.operation,r.issues));this.fieldName=r.fieldName,this.operation=r.operation,this.issues=r.issues}}async function s(r,e,t){let a=r["~standard"];if(!u(a))throw TypeError(`Schema for ${t.fieldName} does not provide runtime validation. Attach a Standard Schema validator (Zod, Valibot, or another vendor) or supply a runtime-validating schema at this boundary.`);let n=await a.validate(e);if(n.issues===void 0)return n.value;throw new o({fieldName:t.fieldName,operation:t.operation,issues:n.issues.map(c)})}function d(r){return r.map((e)=>e.path===""?e.message:`${e.path}: ${e.message}`).join(`
|
|
3
|
+
`)}function u(r){return typeof r.validate==="function"}function c(r){return{message:r.message,path:E(r.path)}}function E(r){if(r===void 0||r.length===0)return"";let e="";for(let t of r)e+="/",e+=f(t);return e}function f(r){let e=m(r)?r.key:r;return S(String(e))}function m(r){return r!==null&&typeof r==="object"&&"key"in r}function S(r){return r.replace(/~/g,"~0").replace(/\//g,"~1")}function p(r,e,t){return`Validation failed for ${e===void 0?r:`${e} ${r}`}:
|
|
4
|
+
${d(t)}`}var C=d,v=o,R=s;export{v as StandardSchemaValidationError,C as formatStandardSchemaIssues,R as validateStandardSchema};
|
|
@@ -36,7 +36,8 @@ function dataForConflict(data) {
|
|
|
36
36
|
missingWorkflowCount: data.missingWorkflowCount,
|
|
37
37
|
samplesTruncated: data.samplesTruncated,
|
|
38
38
|
currentGeneration: data.currentGeneration,
|
|
39
|
-
compatibilityReasons: data.compatibilityReasons === void 0 ? void 0 : [...data.compatibilityReasons]
|
|
39
|
+
compatibilityReasons: data.compatibilityReasons === void 0 ? void 0 : [...data.compatibilityReasons],
|
|
40
|
+
sourceValidationReasons: data.sourceValidationReasons === void 0 ? void 0 : [...data.sourceValidationReasons]
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
43
|
function dataForNotFound(data) {
|
package/dist/server/index.d.ts
CHANGED
|
@@ -327,6 +327,17 @@ export interface TaskDispatch {
|
|
|
327
327
|
workflowId?: string | undefined;
|
|
328
328
|
/** Durable token for the workflow run that launched this task, when known. */
|
|
329
329
|
workflowExecutionToken?: string | undefined;
|
|
330
|
+
/**
|
|
331
|
+
* The dispatching workflow run's persisted `WorkflowState.revision`
|
|
332
|
+
* (WFT-20), when known. When BOTH `workflowId` and `workflowRevision` are
|
|
333
|
+
* supplied, `dispatchTask` rejects the dispatch before reserving any
|
|
334
|
+
* worker capacity if the persisted run's revision disagrees — the run was
|
|
335
|
+
* displaced (e.g. by a `start-new` restart) since this revision was
|
|
336
|
+
* captured. The worker echoes this value back on `taskResult`; a
|
|
337
|
+
* completion whose echoed revision disagrees with the in-flight dispatch's
|
|
338
|
+
* is rejected as stale.
|
|
339
|
+
*/
|
|
340
|
+
workflowRevision?: string | undefined;
|
|
330
341
|
/** When true, prefer the worker that last handled a task for this workflow. Requires `workflowId`. */
|
|
331
342
|
sticky?: boolean;
|
|
332
343
|
/** Visibility timeout in milliseconds. Defaults to `DEFAULT_VISIBILITY_TIMEOUT` (30 000). */
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
*/
|
|
37
37
|
import type { WorkflowCompatibilityReason } from '../core/contract/compatibility.ts';
|
|
38
38
|
import type { FaultCode } from '../core/fault-code.ts';
|
|
39
|
+
import type { WorkflowSourceRejectionReason } from '../core/source/errors.ts';
|
|
39
40
|
import { type WeftErrorCode } from '../core/weft-error.ts';
|
|
40
41
|
/** Transport identifiers as seen by `executeOperation`. */
|
|
41
42
|
export type TransportKind = 'http-rest' | 'jsonRpcHttp' | 'jsonRpcWebSocket' | 'jsonRpcStdio';
|
|
@@ -81,6 +82,7 @@ export type OperationFault = {
|
|
|
81
82
|
samplesTruncated?: boolean | undefined;
|
|
82
83
|
currentGeneration?: number | undefined;
|
|
83
84
|
compatibilityReasons?: readonly WorkflowCompatibilityReason[] | undefined;
|
|
85
|
+
sourceValidationReasons?: readonly WorkflowSourceRejectionReason[] | undefined;
|
|
84
86
|
};
|
|
85
87
|
} | {
|
|
86
88
|
code: 'Unprocessable';
|
|
@@ -32,7 +32,8 @@ const NO_REST_FAULT_DATA = Object.freeze({}), REST_FAULT_DATA_EXTRACTORS = {
|
|
|
32
32
|
missingWorkflowCount: data.missingWorkflowCount,
|
|
33
33
|
samplesTruncated: data.samplesTruncated,
|
|
34
34
|
currentGeneration: data.currentGeneration,
|
|
35
|
-
compatibilityReasons: data.compatibilityReasons === void 0 ? void 0 : [...data.compatibilityReasons]
|
|
35
|
+
compatibilityReasons: data.compatibilityReasons === void 0 ? void 0 : [...data.compatibilityReasons],
|
|
36
|
+
sourceValidationReasons: data.sourceValidationReasons === void 0 ? void 0 : [...data.sourceValidationReasons]
|
|
36
37
|
}),
|
|
37
38
|
Unprocessable: () => NO_REST_FAULT_DATA,
|
|
38
39
|
PayloadTooLarge: (data) => ({ maxBytes: data.maxBytes }),
|
|
@@ -10,6 +10,7 @@ declare const createScheduleInput: z.ZodObject<{
|
|
|
10
10
|
overlap: z.ZodOptional<z.ZodUnknown>;
|
|
11
11
|
backfill: z.ZodOptional<z.ZodUnknown>;
|
|
12
12
|
jitter: z.ZodOptional<z.ZodUnknown>;
|
|
13
|
+
revisionPolicy: z.ZodOptional<z.ZodUnknown>;
|
|
13
14
|
}, z.core.$strip>;
|
|
14
15
|
declare const createScheduleOutput: z.ZodObject<{
|
|
15
16
|
id: z.ZodString;
|
|
@@ -26,6 +27,7 @@ export declare const createScheduleOperation: import("../operation-catalog.ts").
|
|
|
26
27
|
overlap?: unknown;
|
|
27
28
|
backfill?: unknown;
|
|
28
29
|
jitter?: unknown;
|
|
30
|
+
revisionPolicy?: unknown;
|
|
29
31
|
}, {
|
|
30
32
|
id: string;
|
|
31
33
|
}, unknown>;
|
|
@@ -19,7 +19,8 @@ const createScheduleInput = z.object({
|
|
|
19
19
|
description: z.unknown().optional().describe("Operator-facing schedule description. Runtime validation requires a string."),
|
|
20
20
|
overlap: z.unknown().optional(),
|
|
21
21
|
backfill: z.unknown().optional(),
|
|
22
|
-
jitter: z.unknown().optional()
|
|
22
|
+
jitter: z.unknown().optional(),
|
|
23
|
+
revisionPolicy: z.unknown().optional().describe('Revision policy (WFT-20). Runtime validation requires "active-at-fire" or "pinned"; defaults to "active-at-fire".')
|
|
23
24
|
}), createScheduleOutput = z.object({
|
|
24
25
|
id: z.string()
|
|
25
26
|
});
|
|
@@ -42,12 +43,13 @@ function validateOptionalScheduleFields(input) {
|
|
|
42
43
|
description: validatedOptions.description,
|
|
43
44
|
overlap: validatedOptions.overlap,
|
|
44
45
|
backfill: validatedOptions.backfill,
|
|
45
|
-
jitter: validatedOptions.jitter
|
|
46
|
+
jitter: validatedOptions.jitter,
|
|
47
|
+
revisionPolicy: validatedOptions.revisionPolicy
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
50
|
function validateCreateScheduleInput(input) {
|
|
49
|
-
const { type, spec } = validateRequiredScheduleFields(input), { id, description, overlap, backfill, jitter } = validateOptionalScheduleFields(input);
|
|
50
|
-
return { type, spec, id, description, overlap, backfill, jitter };
|
|
51
|
+
const { type, spec } = validateRequiredScheduleFields(input), { id, description, overlap, backfill, jitter, revisionPolicy } = validateOptionalScheduleFields(input);
|
|
52
|
+
return { type, spec, id, description, overlap, backfill, jitter, revisionPolicy };
|
|
51
53
|
}
|
|
52
54
|
export const createScheduleOperation = defineOperation({
|
|
53
55
|
name: "weft.schedules.create",
|
|
@@ -68,7 +70,8 @@ export const createScheduleOperation = defineOperation({
|
|
|
68
70
|
...validated.description !== void 0 ? { description: validated.description } : {},
|
|
69
71
|
...validated.overlap !== void 0 ? { overlap: validated.overlap } : {},
|
|
70
72
|
...validated.backfill !== void 0 ? { backfill: validated.backfill } : {},
|
|
71
|
-
...validated.jitter !== void 0 ? { jitter: validated.jitter } : {}
|
|
73
|
+
...validated.jitter !== void 0 ? { jitter: validated.jitter } : {},
|
|
74
|
+
...validated.revisionPolicy !== void 0 ? { revisionPolicy: validated.revisionPolicy } : {}
|
|
72
75
|
};
|
|
73
76
|
try {
|
|
74
77
|
return { id: (await typedEngine.schedule(validated.type, input.input, validated.spec, options)).id };
|
|
@@ -90,7 +93,8 @@ export const createScheduleOperation = defineOperation({
|
|
|
90
93
|
description: { kind: "body-field", bodyField: "description" },
|
|
91
94
|
overlap: { kind: "body-field", bodyField: "overlap" },
|
|
92
95
|
backfill: { kind: "body-field", bodyField: "backfill" },
|
|
93
|
-
jitter: { kind: "body-field", bodyField: "jitter" }
|
|
96
|
+
jitter: { kind: "body-field", bodyField: "jitter" },
|
|
97
|
+
revisionPolicy: { kind: "body-field", bodyField: "revisionPolicy" }
|
|
94
98
|
},
|
|
95
99
|
extractInput: async (request, _pathParams, context) => {
|
|
96
100
|
const record = await parseScheduleRestBodyRequestRecord(request, context);
|
|
@@ -38,6 +38,26 @@ declare const getCatalogDiagnosticsOutput: z.ZodObject<{
|
|
|
38
38
|
retainedRecoveryRecords: z.ZodNumber;
|
|
39
39
|
}, z.core.$strict>;
|
|
40
40
|
removable: z.ZodBoolean;
|
|
41
|
+
source: z.ZodOptional<z.ZodObject<{
|
|
42
|
+
kind: z.ZodLiteral<"module">;
|
|
43
|
+
requestedRevision: z.ZodString;
|
|
44
|
+
state: z.ZodEnum<{
|
|
45
|
+
failed: "failed";
|
|
46
|
+
cancelled: "cancelled";
|
|
47
|
+
idle: "idle";
|
|
48
|
+
loading: "loading";
|
|
49
|
+
ready: "ready";
|
|
50
|
+
}>;
|
|
51
|
+
loadDurationMs: z.ZodOptional<z.ZodNumber>;
|
|
52
|
+
lastFailureCategory: z.ZodOptional<z.ZodEnum<{
|
|
53
|
+
application: "application";
|
|
54
|
+
timeout: "timeout";
|
|
55
|
+
cancellation: "cancellation";
|
|
56
|
+
resource: "resource";
|
|
57
|
+
system: "system";
|
|
58
|
+
}>>;
|
|
59
|
+
waiterCount: z.ZodNumber;
|
|
60
|
+
}, z.core.$strict>>;
|
|
41
61
|
}, z.core.$strict>;
|
|
42
62
|
export type GetCatalogDiagnosticsInput = z.infer<typeof getCatalogDiagnosticsInput>;
|
|
43
63
|
export type GetCatalogDiagnosticsOutput = z.infer<typeof getCatalogDiagnosticsOutput>;
|
|
@@ -79,6 +99,14 @@ export declare const getCatalogDiagnosticsOperation: import("../operation-catalo
|
|
|
79
99
|
};
|
|
80
100
|
removable: boolean;
|
|
81
101
|
activeRevision?: string | undefined;
|
|
102
|
+
source?: {
|
|
103
|
+
kind: "module";
|
|
104
|
+
requestedRevision: string;
|
|
105
|
+
state: "failed" | "cancelled" | "idle" | "loading" | "ready";
|
|
106
|
+
waiterCount: number;
|
|
107
|
+
loadDurationMs?: number | undefined;
|
|
108
|
+
lastFailureCategory?: "application" | "timeout" | "cancellation" | "resource" | "system" | undefined;
|
|
109
|
+
} | undefined;
|
|
82
110
|
}, unknown>;
|
|
83
111
|
/** REST binding for `weft.catalog.diagnostics`: `GET /v1/catalog/:name/revisions/:revision/diagnostics`. */
|
|
84
112
|
export declare const getCatalogDiagnosticsRestBinding: UnknownRestBinding;
|
|
@@ -13,6 +13,13 @@ const workflowRevisionReferenceCountsSchema = z.object({
|
|
|
13
13
|
}).strict(), getCatalogDiagnosticsInput = z.object({
|
|
14
14
|
name: z.string().min(1),
|
|
15
15
|
revision: z.string().min(1)
|
|
16
|
+
}).strict(), sourceLoadDiagnosticsSchema = z.object({
|
|
17
|
+
kind: z.literal("module"),
|
|
18
|
+
requestedRevision: z.string(),
|
|
19
|
+
state: z.enum(["idle", "loading", "ready", "failed", "cancelled"]),
|
|
20
|
+
loadDurationMs: z.number().nonnegative().optional(),
|
|
21
|
+
lastFailureCategory: z.enum(["application", "timeout", "cancellation", "resource", "system"]).optional(),
|
|
22
|
+
waiterCount: z.number().int().nonnegative()
|
|
16
23
|
}).strict(), getCatalogDiagnosticsOutput = z.object({
|
|
17
24
|
name: z.string(),
|
|
18
25
|
revision: z.string(),
|
|
@@ -20,13 +27,14 @@ const workflowRevisionReferenceCountsSchema = z.object({
|
|
|
20
27
|
active: z.boolean(),
|
|
21
28
|
activeRevision: z.string().optional(),
|
|
22
29
|
references: workflowRevisionReferenceCountsSchema,
|
|
23
|
-
removable: z.boolean()
|
|
30
|
+
removable: z.boolean(),
|
|
31
|
+
source: sourceLoadDiagnosticsSchema.optional()
|
|
24
32
|
}).strict();
|
|
25
33
|
export const getCatalogDiagnosticsOperation = defineOperation({
|
|
26
34
|
name: "weft.catalog.diagnostics",
|
|
27
35
|
mcpExposable: !1,
|
|
28
36
|
summary: "Get bounded reference-count and removability diagnostics for one workflow revision",
|
|
29
|
-
description: "Report whether a `(name, revision)` workflow catalog entry is installed, whether it is currently the active revision, its full reference-count breakdown, and whether it's currently removable. Never returns manifest or contract content.",
|
|
37
|
+
description: "Report whether a `(name, revision)` workflow catalog entry is installed, whether it is currently the active revision, its full reference-count breakdown, and whether it's currently removable. When `name` was ever registered as a dynamic workflow source (`engine.registerSource()`), also reports its bounded load-state diagnostics: source kind, load state, load duration, last failure category, and outstanding waiter count. Never returns manifest or contract content.",
|
|
30
38
|
destructive: !1,
|
|
31
39
|
tags: ["Observability"],
|
|
32
40
|
inputSchema: getCatalogDiagnosticsInput,
|
|
@@ -39,6 +39,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
39
39
|
operationId: z.ZodString;
|
|
40
40
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
41
41
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
42
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
42
43
|
workflowType: z.ZodString;
|
|
43
44
|
activityName: z.ZodString;
|
|
44
45
|
queue: z.ZodString;
|
|
@@ -77,6 +78,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
77
78
|
operationId: z.ZodString;
|
|
78
79
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
79
80
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
81
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
80
82
|
workflowType: z.ZodString;
|
|
81
83
|
activityName: z.ZodString;
|
|
82
84
|
queue: z.ZodString;
|
|
@@ -120,6 +122,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
120
122
|
operationId: z.ZodString;
|
|
121
123
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
122
124
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
125
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
123
126
|
workflowType: z.ZodString;
|
|
124
127
|
activityName: z.ZodString;
|
|
125
128
|
queue: z.ZodString;
|
|
@@ -160,6 +163,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
160
163
|
operationId: z.ZodString;
|
|
161
164
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
162
165
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
166
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
163
167
|
workflowType: z.ZodString;
|
|
164
168
|
activityName: z.ZodString;
|
|
165
169
|
queue: z.ZodString;
|
|
@@ -200,6 +204,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
200
204
|
operationId: z.ZodString;
|
|
201
205
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
202
206
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
207
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
203
208
|
workflowType: z.ZodString;
|
|
204
209
|
activityName: z.ZodString;
|
|
205
210
|
queue: z.ZodString;
|
|
@@ -235,6 +240,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
235
240
|
operationId: z.ZodString;
|
|
236
241
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
237
242
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
243
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
238
244
|
workflowType: z.ZodString;
|
|
239
245
|
activityName: z.ZodString;
|
|
240
246
|
queue: z.ZodString;
|
|
@@ -270,6 +276,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
270
276
|
operationId: z.ZodString;
|
|
271
277
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
272
278
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
279
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
273
280
|
workflowType: z.ZodString;
|
|
274
281
|
activityName: z.ZodString;
|
|
275
282
|
queue: z.ZodString;
|
|
@@ -311,6 +318,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
311
318
|
operationId: z.ZodString;
|
|
312
319
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
313
320
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
321
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
314
322
|
workflowType: z.ZodString;
|
|
315
323
|
activityName: z.ZodString;
|
|
316
324
|
queue: z.ZodString;
|
|
@@ -23,6 +23,7 @@ const taskDetailBaseFields = {
|
|
|
23
23
|
operationId: z.string(),
|
|
24
24
|
workflowId: z.string().optional(),
|
|
25
25
|
workflowExecutionToken: z.string().optional(),
|
|
26
|
+
workflowRevision: z.string().optional(),
|
|
26
27
|
workflowType: z.string(),
|
|
27
28
|
activityName: z.string(),
|
|
28
29
|
queue: z.string(),
|
|
@@ -60,6 +60,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
60
60
|
adoptedAt?: number | undefined;
|
|
61
61
|
workflowId?: string | undefined;
|
|
62
62
|
workflowExecutionToken?: string | undefined;
|
|
63
|
+
workflowRevision?: string | undefined;
|
|
63
64
|
priority?: number | undefined;
|
|
64
65
|
retryPolicy?: {
|
|
65
66
|
maxAttempts: number;
|
|
@@ -95,6 +96,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
95
96
|
adoptedAt?: number | undefined;
|
|
96
97
|
workflowId?: string | undefined;
|
|
97
98
|
workflowExecutionToken?: string | undefined;
|
|
99
|
+
workflowRevision?: string | undefined;
|
|
98
100
|
priority?: number | undefined;
|
|
99
101
|
retryPolicy?: {
|
|
100
102
|
maxAttempts: number;
|
|
@@ -130,6 +132,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
130
132
|
adoptedAt?: number | undefined;
|
|
131
133
|
workflowId?: string | undefined;
|
|
132
134
|
workflowExecutionToken?: string | undefined;
|
|
135
|
+
workflowRevision?: string | undefined;
|
|
133
136
|
priority?: number | undefined;
|
|
134
137
|
retryPolicy?: {
|
|
135
138
|
maxAttempts: number;
|
|
@@ -168,6 +171,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
168
171
|
lastRequeueReason?: string | undefined;
|
|
169
172
|
workflowId?: string | undefined;
|
|
170
173
|
workflowExecutionToken?: string | undefined;
|
|
174
|
+
workflowRevision?: string | undefined;
|
|
171
175
|
priority?: number | undefined;
|
|
172
176
|
retryPolicy?: {
|
|
173
177
|
maxAttempts: number;
|
|
@@ -206,6 +210,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
206
210
|
lastRequeueReason?: string | undefined;
|
|
207
211
|
workflowId?: string | undefined;
|
|
208
212
|
workflowExecutionToken?: string | undefined;
|
|
213
|
+
workflowRevision?: string | undefined;
|
|
209
214
|
priority?: number | undefined;
|
|
210
215
|
retryPolicy?: {
|
|
211
216
|
maxAttempts: number;
|
|
@@ -246,6 +251,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
246
251
|
lastRequeueReason?: string | undefined;
|
|
247
252
|
workflowId?: string | undefined;
|
|
248
253
|
workflowExecutionToken?: string | undefined;
|
|
254
|
+
workflowRevision?: string | undefined;
|
|
249
255
|
priority?: number | undefined;
|
|
250
256
|
retryPolicy?: {
|
|
251
257
|
maxAttempts: number;
|
|
@@ -286,6 +292,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
286
292
|
lastRequeueReason?: string | undefined;
|
|
287
293
|
workflowId?: string | undefined;
|
|
288
294
|
workflowExecutionToken?: string | undefined;
|
|
295
|
+
workflowRevision?: string | undefined;
|
|
289
296
|
priority?: number | undefined;
|
|
290
297
|
retryPolicy?: {
|
|
291
298
|
maxAttempts: number;
|
|
@@ -324,6 +331,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
324
331
|
lastRequeueReason?: string | undefined;
|
|
325
332
|
workflowId?: string | undefined;
|
|
326
333
|
workflowExecutionToken?: string | undefined;
|
|
334
|
+
workflowRevision?: string | undefined;
|
|
327
335
|
priority?: number | undefined;
|
|
328
336
|
retryPolicy?: {
|
|
329
337
|
maxAttempts: number;
|
|
@@ -38,6 +38,7 @@ function baseEnvelopeFields(record) {
|
|
|
38
38
|
operationId: record.operationId,
|
|
39
39
|
...record.workflowId !== void 0 ? { workflowId: record.workflowId } : {},
|
|
40
40
|
...record.workflowExecutionToken !== void 0 ? { workflowExecutionToken: record.workflowExecutionToken } : {},
|
|
41
|
+
...record.workflowRevision !== void 0 ? { workflowRevision: record.workflowRevision } : {},
|
|
41
42
|
workflowType: record.workflowType,
|
|
42
43
|
activityName: record.activityName,
|
|
43
44
|
queue: record.queue,
|