@lostgradient/weft 0.21.0 → 0.22.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 -4
- package/dist/cli/console.js +5 -5
- package/dist/cli/generated/operation-catalog.snapshot.json +207 -80
- package/dist/cli/generated/operation-client.generated.d.ts +120 -43
- package/dist/cli/help-text.d.ts +1 -1
- package/dist/cli/help-text.js +1 -1
- package/dist/client/http-client-storage.js +1 -1
- package/dist/core/engine/index.d.ts +22 -0
- package/dist/http.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/indexeddb.js +1 -1
- package/dist/json-schema.js +3 -3
- package/dist/observability/index.js +2 -2
- package/dist/runtime/portable.js +3 -3
- package/dist/server/operations/get-task-diagnostics.d.ts +115 -25
- package/dist/server/operations/get-task-diagnostics.js +93 -7
- package/dist/storage/auto.js +1 -1
- package/dist/storage/bun-sql.js +2 -2
- package/dist/storage/compressed-storage.js +1 -1
- package/dist/storage/http.js +1 -1
- package/dist/storage/interface.js +1 -1
- package/dist/storage/lmdb.js +1 -1
- package/dist/storage/memory.js +1 -1
- package/dist/storage/neon.js +4 -4
- package/dist/storage/node-sqlite-loader.js +2 -0
- package/dist/storage/node-sqlite.js +5 -2
- package/dist/storage/postgres.js +4 -4
- 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 +2 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/web-extension.js +1 -1
- package/dist/worker/protocol.js +1 -1
- package/package.json +7 -8
|
@@ -9,14 +9,22 @@ import {
|
|
|
9
9
|
calculateHeartbeatAgeMs,
|
|
10
10
|
calculateQueueLatencyMs
|
|
11
11
|
} from "../task-state.js";
|
|
12
|
-
const DEFAULT_STALE_QUEUED_AFTER_MS = 60000, DEFAULT_STALE_HEARTBEAT_AFTER_MS = 60000, DEFAULT_RETRY_STORM_MINIMUM_ATTEMPTS = 3, DEFAULT_LIMIT = 50, MAX_LIMIT = 200, taskDiagnosticKindSchema = z.enum([
|
|
12
|
+
const DEFAULT_STALE_QUEUED_AFTER_MS = 60000, DEFAULT_STALE_HEARTBEAT_AFTER_MS = 60000, DEFAULT_RETRY_STORM_MINIMUM_ATTEMPTS = 3, DEFAULT_UNADOPTED_AFTER_MS = 60000, DEFAULT_LIMIT = 50, MAX_LIMIT = 200, taskDiagnosticKindSchema = z.enum([
|
|
13
13
|
"stuck-queued",
|
|
14
14
|
"stale-inflight",
|
|
15
15
|
"retry-storm",
|
|
16
16
|
"all-workers-at-capacity",
|
|
17
|
-
"dead-lettered"
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
"dead-lettered",
|
|
18
|
+
"delayed",
|
|
19
|
+
"unadopted-terminal"
|
|
20
|
+
]), existingTaskDiagnosticItemSchema = z.object({
|
|
21
|
+
kind: z.enum([
|
|
22
|
+
"stuck-queued",
|
|
23
|
+
"stale-inflight",
|
|
24
|
+
"retry-storm",
|
|
25
|
+
"all-workers-at-capacity",
|
|
26
|
+
"dead-lettered"
|
|
27
|
+
]),
|
|
20
28
|
state: z.enum(["queued", "inflight", "resolved", "capacity", "dead-lettered"]),
|
|
21
29
|
operationId: z.string().optional(),
|
|
22
30
|
workflowId: z.string().optional(),
|
|
@@ -35,12 +43,37 @@ const DEFAULT_STALE_QUEUED_AFTER_MS = 60000, DEFAULT_STALE_HEARTBEAT_AFTER_MS =
|
|
|
35
43
|
storageError: z.string().optional(),
|
|
36
44
|
retryAttempts: z.number().int().nonnegative().optional(),
|
|
37
45
|
evidence: z.array(z.string())
|
|
38
|
-
}).strict(),
|
|
46
|
+
}).strict(), delayedTaskDiagnosticItemSchema = z.object({
|
|
47
|
+
kind: z.literal("delayed"),
|
|
48
|
+
state: z.literal("queued"),
|
|
49
|
+
operationId: z.string(),
|
|
50
|
+
workflowId: z.string().optional(),
|
|
51
|
+
queue: z.string(),
|
|
52
|
+
retryCount: z.number().int().nonnegative(),
|
|
53
|
+
requeueCount: z.number().int().nonnegative(),
|
|
54
|
+
availableAt: z.number().nonnegative(),
|
|
55
|
+
evidence: z.array(z.string())
|
|
56
|
+
}).strict(), unadoptedTerminalTaskDiagnosticItemSchema = z.object({
|
|
57
|
+
kind: z.literal("unadopted-terminal"),
|
|
58
|
+
state: z.literal("resolved"),
|
|
59
|
+
operationId: z.string(),
|
|
60
|
+
workflowId: z.string().optional(),
|
|
61
|
+
queue: z.string(),
|
|
62
|
+
terminalAt: z.number().nonnegative(),
|
|
63
|
+
adopted: z.literal(!1),
|
|
64
|
+
evidence: z.array(z.string())
|
|
65
|
+
}).strict(), taskDiagnosticItemSchema = z.union([
|
|
66
|
+
existingTaskDiagnosticItemSchema,
|
|
67
|
+
delayedTaskDiagnosticItemSchema,
|
|
68
|
+
unadoptedTerminalTaskDiagnosticItemSchema
|
|
69
|
+
]), taskDiagnosticsSummarySchema = z.object({
|
|
39
70
|
stuckQueued: z.number().int().nonnegative(),
|
|
40
71
|
staleInflight: z.number().int().nonnegative(),
|
|
41
72
|
retryStorms: z.number().int().nonnegative(),
|
|
42
73
|
allWorkersAtCapacity: z.number().int().nonnegative(),
|
|
43
|
-
deadLettered: z.number().int().nonnegative()
|
|
74
|
+
deadLettered: z.number().int().nonnegative(),
|
|
75
|
+
delayed: z.number().int().nonnegative(),
|
|
76
|
+
unadoptedTerminal: z.number().int().nonnegative()
|
|
44
77
|
}).strict(), getTaskDiagnosticsOutput = z.object({
|
|
45
78
|
items: z.array(taskDiagnosticItemSchema),
|
|
46
79
|
summary: taskDiagnosticsSummarySchema,
|
|
@@ -52,6 +85,8 @@ const DEFAULT_STALE_QUEUED_AFTER_MS = 60000, DEFAULT_STALE_HEARTBEAT_AFTER_MS =
|
|
|
52
85
|
staleQueuedAfterMs: z.number().int().nonnegative().default(DEFAULT_STALE_QUEUED_AFTER_MS),
|
|
53
86
|
staleHeartbeatAfterMs: z.number().int().nonnegative().default(DEFAULT_STALE_HEARTBEAT_AFTER_MS),
|
|
54
87
|
retryStormMinimumAttempts: z.number().int().min(1).default(DEFAULT_RETRY_STORM_MINIMUM_ATTEMPTS),
|
|
88
|
+
includeExpectedDelayed: z.boolean().default(!1),
|
|
89
|
+
unadoptedAfterMs: z.number().int().nonnegative().default(DEFAULT_UNADOPTED_AFTER_MS),
|
|
55
90
|
limit: z.number().int().min(1).max(MAX_LIMIT).default(DEFAULT_LIMIT)
|
|
56
91
|
}), clearTaskDeadLetterInput = z.object({
|
|
57
92
|
operationId: z.string().min(1)
|
|
@@ -128,7 +163,9 @@ async function collectTaskDiagnostics({
|
|
|
128
163
|
staleInflight: 0,
|
|
129
164
|
retryStorms: 0,
|
|
130
165
|
allWorkersAtCapacity: 0,
|
|
131
|
-
deadLettered: 0
|
|
166
|
+
deadLettered: 0,
|
|
167
|
+
delayed: 0,
|
|
168
|
+
unadoptedTerminal: 0
|
|
132
169
|
}, relevantQueues = new Set, addItem = (item) => {
|
|
133
170
|
incrementSummary(summary, item.kind);
|
|
134
171
|
if (items.length < input.limit)
|
|
@@ -155,6 +192,8 @@ async function collectTaskDiagnostics({
|
|
|
155
192
|
function addRecordDiagnostics(decoded, input, currentTime, addItem) {
|
|
156
193
|
switch (decoded.state) {
|
|
157
194
|
case "queued":
|
|
195
|
+
if (input.includeExpectedDelayed && decoded.availableAt > currentTime)
|
|
196
|
+
addDelayedDiagnostic(decoded, addItem);
|
|
158
197
|
if (decoded.availableAt <= currentTime)
|
|
159
198
|
addQueuedDiagnostics(decoded, input, currentTime, addItem);
|
|
160
199
|
addRetryStormDiagnostic(decoded, "queued", input, addItem);
|
|
@@ -166,6 +205,7 @@ function addRecordDiagnostics(decoded, input, currentTime, addItem) {
|
|
|
166
205
|
addRetryStormDiagnostic(decoded, "inflight", input, addItem);
|
|
167
206
|
return;
|
|
168
207
|
case "terminal":
|
|
208
|
+
addUnadoptedTerminalDiagnostic(decoded, input, currentTime, addItem);
|
|
169
209
|
return;
|
|
170
210
|
case "deadLettered":
|
|
171
211
|
addDeadLetterDiagnostics(decoded, addItem);
|
|
@@ -175,6 +215,33 @@ function addRecordDiagnostics(decoded, input, currentTime, addItem) {
|
|
|
175
215
|
}
|
|
176
216
|
}
|
|
177
217
|
}
|
|
218
|
+
function addDelayedDiagnostic(record, addItem) {
|
|
219
|
+
addItem({
|
|
220
|
+
kind: "delayed",
|
|
221
|
+
state: "queued",
|
|
222
|
+
operationId: record.operationId,
|
|
223
|
+
workflowId: record.workflowId,
|
|
224
|
+
queue: record.queue,
|
|
225
|
+
retryCount: record.retryCount,
|
|
226
|
+
requeueCount: record.requeueCount,
|
|
227
|
+
availableAt: record.availableAt,
|
|
228
|
+
evidence: [`Task is delayed until ${record.availableAt} on queue "${record.queue}"`]
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
function addUnadoptedTerminalDiagnostic(record, input, currentTime, addItem) {
|
|
232
|
+
if (record.adopted || record.terminalAt > currentTime - input.unadoptedAfterMs)
|
|
233
|
+
return;
|
|
234
|
+
addItem({
|
|
235
|
+
kind: "unadopted-terminal",
|
|
236
|
+
state: "resolved",
|
|
237
|
+
operationId: record.operationId,
|
|
238
|
+
workflowId: record.workflowId,
|
|
239
|
+
queue: record.queue,
|
|
240
|
+
terminalAt: record.terminalAt,
|
|
241
|
+
adopted: !1,
|
|
242
|
+
evidence: [`Terminal task has remained unadopted for ${currentTime - record.terminalAt}ms`]
|
|
243
|
+
});
|
|
244
|
+
}
|
|
178
245
|
function addQueuedDiagnostics(record, input, currentTime, addItem) {
|
|
179
246
|
const queueLatencyMs = Math.max(0, currentTime - record.lastQueuedAt);
|
|
180
247
|
if (queueLatencyMs < input.staleQueuedAfterMs)
|
|
@@ -337,11 +404,26 @@ function incrementSummary(summary, kind) {
|
|
|
337
404
|
case "dead-lettered":
|
|
338
405
|
summary.deadLettered += 1;
|
|
339
406
|
return;
|
|
407
|
+
case "delayed":
|
|
408
|
+
summary.delayed += 1;
|
|
409
|
+
return;
|
|
410
|
+
case "unadopted-terminal":
|
|
411
|
+
summary.unadoptedTerminal += 1;
|
|
412
|
+
return;
|
|
340
413
|
}
|
|
341
414
|
}
|
|
342
415
|
function parseOptionalNumber(value) {
|
|
343
416
|
return value === null || value.length === 0 ? void 0 : Number(value);
|
|
344
417
|
}
|
|
418
|
+
function parseOptionalBoolean(value) {
|
|
419
|
+
if (value === null || value.length === 0)
|
|
420
|
+
return;
|
|
421
|
+
if (value === "true")
|
|
422
|
+
return !0;
|
|
423
|
+
if (value === "false")
|
|
424
|
+
return !1;
|
|
425
|
+
return value;
|
|
426
|
+
}
|
|
345
427
|
export const getTaskDiagnosticsRestBinding = {
|
|
346
428
|
method: "GET",
|
|
347
429
|
path: "/v1/tasks/diagnostics",
|
|
@@ -354,6 +436,8 @@ export const getTaskDiagnosticsRestBinding = {
|
|
|
354
436
|
staleQueuedAfterMs: { kind: "query", queryParam: "staleQueuedAfterMs" },
|
|
355
437
|
staleHeartbeatAfterMs: { kind: "query", queryParam: "staleHeartbeatAfterMs" },
|
|
356
438
|
retryStormMinimumAttempts: { kind: "query", queryParam: "retryStormMinimumAttempts" },
|
|
439
|
+
includeExpectedDelayed: { kind: "query", queryParam: "includeExpectedDelayed" },
|
|
440
|
+
unadoptedAfterMs: { kind: "query", queryParam: "unadoptedAfterMs" },
|
|
357
441
|
limit: { kind: "query", queryParam: "limit" }
|
|
358
442
|
},
|
|
359
443
|
extractInput: async (request) => {
|
|
@@ -365,6 +449,8 @@ export const getTaskDiagnosticsRestBinding = {
|
|
|
365
449
|
staleQueuedAfterMs: parseOptionalNumber(url.searchParams.get("staleQueuedAfterMs")),
|
|
366
450
|
staleHeartbeatAfterMs: parseOptionalNumber(url.searchParams.get("staleHeartbeatAfterMs")),
|
|
367
451
|
retryStormMinimumAttempts: parseOptionalNumber(url.searchParams.get("retryStormMinimumAttempts")),
|
|
452
|
+
includeExpectedDelayed: parseOptionalBoolean(url.searchParams.get("includeExpectedDelayed")),
|
|
453
|
+
unadoptedAfterMs: parseOptionalNumber(url.searchParams.get("unadoptedAfterMs")),
|
|
368
454
|
limit: parseOptionalNumber(url.searchParams.get("limit"))
|
|
369
455
|
};
|
|
370
456
|
},
|
package/dist/storage/auto.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var o=import.meta.require;function f(e){return{hasBun:typeof e.Bun<"u",hasIndexedDB:typeof e.indexedDB<"u",hasNode:e.process!==void 0&&typeof e.process.versions?.node==="string",hasWebExtensionStorage:e.browser?.storage!==void 0||e.chrome?.storage!==void 0}}async function g(e){let{createHash:n}=await import("crypto"),t=e.process?.cwd?.()??"weft-default";return n("sha256").update(t).digest("hex").slice(0,16)}async function u(e){let[{mkdirSync:n},{tmpdir:t},a]=await Promise.all([import("fs"),import("os"),import("path")]),i=e.process?.env?.WEFT_DEFAULT_STORAGE_PATH,c=i!==void 0&&i.length>0?i:a.join(t(),"weft-default",`${await g(e)}.db`);return n(a.dirname(c),{recursive:!0}),c}function d(e,n){if(n==="Bun")return typeof e.Bun;if(n==="browser.storage")return typeof(e.browser?.storage??e.chrome?.storage);return typeof e.process}function s(e,n){return import.meta.url.endsWith(".ts")?e:n}async function r(e){return await import(e)}function p(e){if(e.browser?.storage!==void 0)return e.browser;if(e.chrome?.storage!==void 0)return e.chrome;return{}}function y(e){let{indexedDB:n,IDBKeyRange:t}=e;if(n===void 0||t===void 0)throw Error("resolveDefaultStorage: IndexedDB resolution requires both indexedDB and IDBKeyRange.");return{indexedDB:n,IDBKeyRange:t}}function D(e){let n=typeof e.indexedDB,t=typeof e.IDBKeyRange;return`typeof indexedDB=${n}, typeof IDBKeyRange=${t}`}var w=s("./bun-sql.ts","./bun-sql.js"),B=s("./node-sqlite.ts","./node-sqlite.js"),x=s("./indexeddb.ts","./indexeddb.js"),b=s("./web-extension.ts","./web-extension.js");async function S(e=globalThis){let n=f(e);if(n.hasBun){let{BunSQLiteStorage:t}=await r(w);return new t(await u(e))}if(n.hasNode){let{NodeSQLiteStorage:t}=await r(B);return new t(await u(e))}if(n.hasWebExtensionStorage){let{WebExtensionStorage:t}=await r(b);return new t({},p(e))}if(n.hasIndexedDB){let{IndexedDBStorage:t}=await r(x);return new t("weft",y(e))}throw Error(`resolveDefaultStorage: requires Bun, Node, WebExtension storage, or IndexedDB. Detected: typeof Bun=${d(e,"Bun")}, typeof process=${d(e,"process")}, typeof browser.storage=${d(e,"browser.storage")}, ${D(e)}.`)}export{S as resolveDefaultStorage};
|
package/dist/storage/bun-sql.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var r=import.meta.require;function L(F,X,$){if(!F.capabilities()[X])throw Error(`Feature "${$}" requires storage capability "${X}", but this storage backend does not provide it.`)}function g(F){let X=F.capabilities(),$=[];if(X.persistence!=="local"&&X.persistence!=="remote")$.push(`persistence must be "local" or "remote" (got "${X.persistence}")`);if(X.readAfterWrite!=="linearizable")$.push(`readAfterWrite must be "linearizable" (got "${X.readAfterWrite}")`);if(X.scanConsistency!=="snapshot")$.push(`scanConsistency must be "snapshot" (got "${X.scanConsistency}")`);if(!X.atomicBatch)$.push("atomicBatch must be true");if(!X.conditionalBatch)$.push("conditionalBatch must be true");if($.length>0)throw Error(`Storage is not durable enough for recovery: ${$.join("; ")}.`)}var Z="default";async function C(F,X){return await F.get(X)!==null}async function*P(F,X,$){for await(let[j]of F.scan(X,$))yield j}async function H(F,X){let $=0;for await(let j of P(F,X))$++;return $}async function N(F,X){let $=[];for await(let j of P(F,X))$.push({type:"delete",key:j});if($.length===0)return 0;return await F.batch($),$.length}async function XF(F,X,$){let j=[];for await(let W of P(F,X,$))j.push({type:"delete",key:W});if(j.length===0)return 0;return await F.batch(j),j.length}function Y(F){return encodeURIComponent(F)}function u(F){return decodeURIComponent(F)}function f(F){try{return decodeURIComponent(F)}catch{return null}}var S={workflowOwnerEpoch:(F)=>`wf-owner-epoch:${Y(F)}`,workflowOwnerHolder:(F)=>`wf-owner-holder:${Y(F)}`,ownershipModeMarker:()=>"ownership-mode-marker"};var I=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","child-by-parent:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","ownership-mode-marker","op:","review:","schedule:","schedule-due:","schedule-run-by-schedule:","schedule-run-link:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-owner-epoch:","wf-owner-holder:","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-teardown-succeeded:","wf-terminal:"];var _=1e4,zF=1e4;class E extends Error{code="StorageBatchOperationLimitExceededError";cap=_;count;target;constructor(F,X){super(`${F} count ${X} exceeds MAX_BATCH_OPERATIONS (${_}).`);this.name="StorageBatchOperationLimitExceededError",this.target=F,this.count=X}}function K(F,X){if(X>_)throw new E(F,X)}function WF(F){return F.length>0?F.slice(0,-1)+String.fromCharCode(F.charCodeAt(F.length-1)+1):"\xFF"}function LF(F,X={}){if(X.gt!==void 0&&F<=X.gt)return!1;if(X.gte!==void 0&&F<X.gte)return!1;if(X.lt!==void 0&&F>=X.lt)return!1;if(X.lte!==void 0&&F>X.lte)return!1;return!0}function ZF(F,X){if(F===null||X===null)return F===X;if(F.byteLength!==X.byteLength)return!1;for(let $=0;$<F.byteLength;$++)if(F[$]!==X[$])return!1;return!0}async function _F(F,X){if(F.has)return F.has(X);return C(F,X)}function GF(F,X,$){if(F.keys)return F.keys(X,$);return P(F,X,$)}async function MF(F,X){if(F.count)return F.count(X);return H(F,X)}async function DF(F,X){if(F.deletePrefix)return F.deletePrefix(X);return N(F,X)}async function CF(F,X){K("batch operations",X.length),await F.batch(X)}async function HF(F,X,$){if(K("conditionalBatch conditions",X.length),K("conditionalBatch operations",$.length),L(F,"conditionalBatch","storageConditionalBatch"),!F.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return F.conditionalBatch(X,$)}var J=(F)=>String(F).padStart(16,"0"),p="0",k="1",B=(F,X,$,j)=>`sig:${Y(F)}:${Y(X)}:${j}:${Y($)}`,NF={workflow:(F)=>`wf:${Y(F)}`,checkpoint:(F)=>`wf:${Y(F)}:ckpt`,checkpointHistory:(F,X)=>`wf:${Y(F)}:ckpt:${String(X).padStart(10,"0")}`,timelinePrefix:(F)=>`wf:${Y(F)}:timeline:`,timeline:(F,X)=>`wf:${Y(F)}:timeline:${String(X).padStart(10,"0")}`,schedule:(F)=>`schedule:${Y(F)}`,scheduleTick:(F,X)=>`schedule-due:${String(F).padStart(16,"0")}:${Y(X)}`,scheduleRun:(F)=>`schedule-run:${Y(F)}`,scheduleRunLink:(F)=>`schedule-run-link:${Y(F)}`,scheduleRunBySchedulePrefix:(F)=>`schedule-run-by-schedule:${Y(F)}:`,scheduleRunBySchedule:(F,X)=>`schedule-run-by-schedule:${Y(F)}:${Y(X)}`,operation:(F,X,$)=>`op:${F}:${J(X)}:${$}`,operationInflight:(F)=>`op:inflight:${F}`,operationQueued:(F)=>`op:queued:${F}`,operationResolved:(F)=>`op:resolved:${F}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(F,X,$)=>`audit:bulk:${J(F)}:${Y(X)}:${Y($)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(F,X)=>`op:resolved-by-time:${J(F)}:${Y(X)}`,asyncActivity:(F,X)=>`async-act:v1:${Y(F)}:${Y(X)}`,asyncActivityResolution:(F,X)=>`async-act:v1:${Y(F)}:${Y(X)}:resolution`,activityReconciliationPrefix:(F)=>`actrec:v1:${Y(F)}:`,activityReconciliation:(F,X,$)=>`actrec:v1:${Y(F)}:${Y(X)}:${$}`,eventPrefix:(F)=>`ev:${Y(F)}:`,event:(F,X)=>`ev:${Y(F)}:${String(X).padStart(10,"0")}`,eventHead:(F)=>`ev:${Y(F)}:head`,eventWatermark:(F)=>`ev:${Y(F)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(F)=>`fleet-event:${String(F).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(F)=>`fleet-event-by-workflow:${Y(F)}:`,fleetEventByWorkflow:(F,X)=>`fleet-event-by-workflow:${Y(F)}:${String(X).padStart(10,"0")}`,signal:(F,X,$)=>B(F,X,$,k),startSignal:(F,X,$)=>B(F,X,$,p),signalSequence:(F)=>`sigseq:v1:${Y(F)}`,signalAcceptedResponsePrefix:(F)=>`sigres:v1:${Y(F)}:`,signalAcceptedResponse:(F,X,$)=>`sigres:v1:${Y(F)}:${Y(X)}:${Y($)}`,deadline:(F,X)=>`wf-deadline:${J(F)}:${Y(X)}`,terminalCleanup:(F,X)=>`wf-cleanup:${J(F)}:${Y(X)}`,teardownTimer:(F,X)=>`wf-teardown:${J(F)}:${Y(X)}`,delayedStart:(F,X)=>`wf-delayed:${J(F)}:${Y(X)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(F,X)=>`wf-terminal:${J(F)}:${Y(X)}`,attribute:(F)=>`attr:${Y(F)}`,attributeIndex:(F,X,$)=>`idx:${F}:${X}:${Y($)}`,tagIndex:(F,X)=>`tag:${Y(F)}:${Y(X)}`,updatePrefix:(F)=>`upd:${Y(F)}:`,update:(F,X)=>`upd:${Y(F)}:${X}`,updateResponse:(F)=>`upr:${F}`,updateIdempotency:(F,X)=>`upk:${Y(F)}:${X}`,startIdempotency:(F)=>`start-idem:${Y(F)}`,startIdempotencySignalId:(F)=>`start-idem:${F}`,livenessPrefix:()=>"liveness:",liveness:(F)=>`liveness:${Y(F)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",...S,budget:(F,X,$)=>`budget:${F}:${X}:${$}`,review:(F,X)=>`review:${Y(F)}:${X}`,workflowHeaders:(F)=>`wf-headers:${Y(F)}`,childCancellationPrefix:(F)=>`child-cancel:${Y(F)}:`,childCancellation:(F,X)=>`child-cancel:${Y(F)}:${Y(X)}`,childWorkflowByParentPrefix:(F,X)=>`child-by-parent:${Y(F)}:${X===void 0?"":`${Y(X)}:`}`,childWorkflowByParent:(F,X,$)=>`child-by-parent:${Y(F)}:${X===void 0?"":`${Y(X)}:`}${Y($)}`,terminalCleanupNeeded:(F)=>`wf-cleanup-needed:${Y(F)}`,workflowConcurrency:(F,X)=>`wf-concurrency:${Y(F)}:${Y(X)}`,workflowConcurrencyHolder:(F)=>`wf-concurrency-holder:${Y(F)}`,workflowHasServices:(F)=>`wf-has-services:${Y(F)}`,finalizerState:(F)=>`wf-finalizer-state:${Y(F)}`,teardownOwed:(F)=>`wf-teardown-needed:${Y(F)}`,teardownSucceeded:(F)=>`wf-teardown-succeeded:${Y(F)}`,teardownDeadLetter:(F)=>`wf-teardown-deadletter:${Y(F)}`,offload:(F,X)=>`offload:${Y(F)}:${X}`,archive:(F,X)=>`archive:${Y(F)}:${X}`,stateExecution:(F,X)=>`state:execution:${Y(F)}:${Y(X)}`,stateWorkflow:(F,X)=>`state:workflow-scope:${Z}:${Y(F)}:${Y(X)}`,streamChunkPrefix:(F,X)=>`blob:${Y(F)}:${X}:chunk:`,streamChunk:(F,X,$)=>`blob:${Y(F)}:${X}:chunk:${String($).padStart(10,"0")}`,streamTail:(F,X)=>`blob:${Y(F)}:${X}:tail`,streamMetadata:(F,X)=>`blob:${Y(F)}:${X}:meta`,budgetCharged:(F)=>`budget-charged:${F}`,toolEffect:(F,X,$)=>`tool-effect:${Y(F)}:${X}:${$}`,workflowVisibilityStatus:(F,X)=>`wf-idx-status:${Y(F)}:${Y(X)}`,workflowVisibilityType:(F,X)=>`wf-idx-type:${Y(F)}:${Y(X)}`,workflowVisibilityCreated:(F,X)=>`wf-idx-created:${J(F)}:${Y(X)}`,workflowVisibilityUpdated:(F,X)=>`wf-idx-updated:${J(F)}:${Y(X)}`,workflowVisibilityDeadline:(F,X)=>`wf-idx-deadline:${J(F)}:${Y(X)}`,workflowVisibilityManifest:(F)=>`wf-idx-manifest:${Y(F)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};var V;function w(){if(V&&"bun"in V)return V.bun;return globalThis.Bun}function v(){return typeof w()<"u"}function l(){if(V&&"process"in V)return V.process;return globalThis.process}function O(F){let $=l()?.getBuiltinModule;if(typeof $!=="function")return;return $(F)}function x(){let F=O("node:zlib");if(!F)throw Error("gzip/gunzip require Bun or Node 22.5+ (process.getBuiltinModule). "+"Not available in browser or edge runtimes \u2014 use CompressionStream directly.");return F}function A(F){if(v())return new Uint8Array(Bun.gzipSync(new Uint8Array(F)));return new Uint8Array(x().gzipSync(F))}function T(F){if(v())return new Uint8Array(Bun.gunzipSync(new Uint8Array(F)));return new Uint8Array(x().gunzipSync(F))}function R(){return O("node:zlib")}function b(){let F=R();if(!F)throw Error("Brotli compression requires Bun or Node 22.5+ with process.getBuiltinModule support. Use gzip compression for browser/edge runtimes.");return F}function n(F){return new Uint8Array(b().brotliCompressSync(F))}function s(F){return new Uint8Array(b().brotliDecompressSync(F))}var z=193,G=0,h=1,c=2,Q=2;function y(F){return d(F)}function d(F){switch(F){case"gzip":return{algorithm:"gzip",compress(X){return A(X)}};case"brotli":return{algorithm:"brotli",compress(X){return n(X)}};case"none":return{algorithm:"none",compress(X){return X}}}}async function M(F,X,$){if(F.length<$||X.algorithm==="none"){let U=new Uint8Array(F.length+Q);return U[0]=z,U[1]=G,U.set(F,Q),U}let j=await X.compress(F);if(j.length+Q>=F.length+Q){let U=new Uint8Array(F.length+Q);return U[0]=z,U[1]=G,U.set(F,Q),U}let W=X.algorithm==="gzip"?h:c,q=new Uint8Array(j.length+Q);return q[0]=z,q[1]=W,q.set(j,Q),q}async function D(F){if(F.length<Q)throw Error("Compression payload missing 2-byte header.");if(F[0]!==z)throw Error("Compression payload missing magic byte 0xC1.");let X=F[1],$=F.slice(Q);switch(X){case G:return $;case h:return T($);case c:return s($);default:throw Error(`Compression payload uses unsupported algorithm byte 0x${X.toString(16).padStart(2,"0")}.`)}}var a=4096,i="gzip";function m(F){return{threshold:F?.threshold??a,algorithm:F?.algorithm??i}}class t{#F;#X;#Y;constructor(F,X){this.#F=F;let $=m(X);if(this.#X=y($.algorithm),this.#Y=$.threshold,F.query){let j=F.query.bind(F);Object.defineProperty(this,"query",{value:j,enumerable:!0,configurable:!0})}}capabilities(){let F=this.#F.capabilities();return{persistence:F.persistence,readAfterWrite:F.readAfterWrite,scanConsistency:F.scanConsistency,atomicBatch:F.atomicBatch,conditionalBatch:!1,boundedRangeDelete:!1}}async get(F){let X=await this.#F.get(F);if(!X)return null;return D(X)}async put(F,X){let $=await M(X,this.#X,this.#Y);return this.#F.put(F,$)}async delete(F){return this.#F.delete(F)}async*scan(F,X){for await(let[$,j]of this.#F.scan(F,X))yield[$,await D(j)]}async batch(F){K("batch operations",F.length);let X=await Promise.all(F.map(async($)=>{if($.type==="put")return{type:"put",key:$.key,value:await M($.value,this.#X,this.#Y)};return $}));return this.#F.batch(X)}[Symbol.dispose](){this.#F[Symbol.dispose]()}}export{t as CompressedStorage};
|
|
2
|
+
var Q=import.meta.require;function f(e,t,n){if(!e.capabilities()[t])throw Error(`Feature "${n}" requires storage capability "${t}", but this storage backend does not provide it.`)}function D(e){let t=e.capabilities(),n=[];if(t.persistence!=="local"&&t.persistence!=="remote")n.push(`persistence must be "local" or "remote" (got "${t.persistence}")`);if(t.readAfterWrite!=="linearizable")n.push(`readAfterWrite must be "linearizable" (got "${t.readAfterWrite}")`);if(t.scanConsistency!=="snapshot")n.push(`scanConsistency must be "snapshot" (got "${t.scanConsistency}")`);if(!t.atomicBatch)n.push("atomicBatch must be true");if(!t.conditionalBatch)n.push("conditionalBatch must be true");if(n.length>0)throw Error(`Storage is not durable enough for recovery: ${n.join("; ")}.`)}var m="default";async function S(e,t){return await e.get(t)!==null}async function*l(e,t,n){for await(let[i]of e.scan(t,n))yield i}async function x(e,t){let n=0;for await(let i of l(e,t))n++;return n}async function C(e,t){let n=[];for await(let i of l(e,t))n.push({type:"delete",key:i});if(n.length===0)return 0;return await e.batch(n),n.length}async function re(e,t,n){let i=[];for await(let p of l(e,t,n))i.push({type:"delete",key:p});if(i.length===0)return 0;return await e.batch(i),i.length}function r(e){return encodeURIComponent(e)}function M(e){return decodeURIComponent(e)}function N(e){try{return decodeURIComponent(e)}catch{return null}}var A={workflowOwnerEpoch:(e)=>`wf-owner-epoch:${r(e)}`,workflowOwnerHolder:(e)=>`wf-owner-holder:${r(e)}`,ownershipModeMarker:()=>"ownership-mode-marker"};var K=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","child-by-parent:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","ownership-mode-marker","op:","review:","schedule:","schedule-due:","schedule-run-by-schedule:","schedule-run-link:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-owner-epoch:","wf-owner-holder:","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-teardown-succeeded:","wf-terminal:"];var y=1e4,pe=1e4;class B extends Error{code="StorageBatchOperationLimitExceededError";cap=y;count;target;constructor(e,t){super(`${e} count ${t} exceeds MAX_BATCH_OPERATIONS (${y}).`);this.name="StorageBatchOperationLimitExceededError",this.target=e,this.count=t}}function u(e,t){if(t>y)throw new B(e,t)}function fe(e){return e.length>0?e.slice(0,-1)+String.fromCharCode(e.charCodeAt(e.length-1)+1):"\xFF"}function me(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 ye(e,t){if(e===null||t===null)return e===t;if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n++)if(e[n]!==t[n])return!1;return!0}async function he(e,t){if(e.has)return e.has(t);return S(e,t)}function be(e,t,n){if(e.keys)return e.keys(t,n);return l(e,t,n)}async function we(e,t){if(e.count)return e.count(t);return x(e,t)}async function Se(e,t){if(e.deletePrefix)return e.deletePrefix(t);return C(e,t)}async function $e(e,t){u("batch operations",t.length),await e.batch(t)}async function xe(e,t,n){if(u("conditionalBatch conditions",t.length),u("conditionalBatch operations",n.length),f(e,"conditionalBatch","storageConditionalBatch"),!e.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return e.conditionalBatch(t,n)}var o=(e)=>String(e).padStart(16,"0"),H="0",V="1",v=(e,t,n,i)=>`sig:${r(e)}:${r(t)}:${i}:${r(n)}`,Ce={workflow:(e)=>`wf:${r(e)}`,checkpoint:(e)=>`wf:${r(e)}:ckpt`,checkpointHistory:(e,t)=>`wf:${r(e)}:ckpt:${String(t).padStart(10,"0")}`,timelinePrefix:(e)=>`wf:${r(e)}:timeline:`,timeline:(e,t)=>`wf:${r(e)}:timeline:${String(t).padStart(10,"0")}`,schedule:(e)=>`schedule:${r(e)}`,scheduleTick:(e,t)=>`schedule-due:${String(e).padStart(16,"0")}:${r(t)}`,scheduleRun:(e)=>`schedule-run:${r(e)}`,scheduleRunLink:(e)=>`schedule-run-link:${r(e)}`,scheduleRunBySchedulePrefix:(e)=>`schedule-run-by-schedule:${r(e)}:`,scheduleRunBySchedule:(e,t)=>`schedule-run-by-schedule:${r(e)}:${r(t)}`,operation:(e,t,n)=>`op:${e}:${o(t)}:${n}`,operationInflight:(e)=>`op:inflight:${e}`,operationQueued:(e)=>`op:queued:${e}`,operationResolved:(e)=>`op:resolved:${e}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(e,t,n)=>`audit:bulk:${o(e)}:${r(t)}:${r(n)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(e,t)=>`op:resolved-by-time:${o(e)}:${r(t)}`,asyncActivity:(e,t)=>`async-act:v1:${r(e)}:${r(t)}`,asyncActivityResolution:(e,t)=>`async-act:v1:${r(e)}:${r(t)}:resolution`,activityReconciliationPrefix:(e)=>`actrec:v1:${r(e)}:`,activityReconciliation:(e,t,n)=>`actrec:v1:${r(e)}:${r(t)}:${n}`,eventPrefix:(e)=>`ev:${r(e)}:`,event:(e,t)=>`ev:${r(e)}:${String(t).padStart(10,"0")}`,eventHead:(e)=>`ev:${r(e)}:head`,eventWatermark:(e)=>`ev:${r(e)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(e)=>`fleet-event:${String(e).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(e)=>`fleet-event-by-workflow:${r(e)}:`,fleetEventByWorkflow:(e,t)=>`fleet-event-by-workflow:${r(e)}:${String(t).padStart(10,"0")}`,signal:(e,t,n)=>v(e,t,n,V),startSignal:(e,t,n)=>v(e,t,n,H),signalSequence:(e)=>`sigseq:v1:${r(e)}`,signalAcceptedResponsePrefix:(e)=>`sigres:v1:${r(e)}:`,signalAcceptedResponse:(e,t,n)=>`sigres:v1:${r(e)}:${r(t)}:${r(n)}`,deadline:(e,t)=>`wf-deadline:${o(e)}:${r(t)}`,terminalCleanup:(e,t)=>`wf-cleanup:${o(e)}:${r(t)}`,teardownTimer:(e,t)=>`wf-teardown:${o(e)}:${r(t)}`,delayedStart:(e,t)=>`wf-delayed:${o(e)}:${r(t)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(e,t)=>`wf-terminal:${o(e)}:${r(t)}`,attribute:(e)=>`attr:${r(e)}`,attributeIndex:(e,t,n)=>`idx:${e}:${t}:${r(n)}`,tagIndex:(e,t)=>`tag:${r(e)}:${r(t)}`,updatePrefix:(e)=>`upd:${r(e)}:`,update:(e,t)=>`upd:${r(e)}:${t}`,updateResponse:(e)=>`upr:${e}`,updateIdempotency:(e,t)=>`upk:${r(e)}:${t}`,startIdempotency:(e)=>`start-idem:${r(e)}`,startIdempotencySignalId:(e)=>`start-idem:${e}`,livenessPrefix:()=>"liveness:",liveness:(e)=>`liveness:${r(e)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",...A,budget:(e,t,n)=>`budget:${e}:${t}:${n}`,review:(e,t)=>`review:${r(e)}:${t}`,workflowHeaders:(e)=>`wf-headers:${r(e)}`,childCancellationPrefix:(e)=>`child-cancel:${r(e)}:`,childCancellation:(e,t)=>`child-cancel:${r(e)}:${r(t)}`,childWorkflowByParentPrefix:(e,t)=>`child-by-parent:${r(e)}:${t===void 0?"":`${r(t)}:`}`,childWorkflowByParent:(e,t,n)=>`child-by-parent:${r(e)}:${t===void 0?"":`${r(t)}:`}${r(n)}`,terminalCleanupNeeded:(e)=>`wf-cleanup-needed:${r(e)}`,workflowConcurrency:(e,t)=>`wf-concurrency:${r(e)}:${r(t)}`,workflowConcurrencyHolder:(e)=>`wf-concurrency-holder:${r(e)}`,workflowHasServices:(e)=>`wf-has-services:${r(e)}`,finalizerState:(e)=>`wf-finalizer-state:${r(e)}`,teardownOwed:(e)=>`wf-teardown-needed:${r(e)}`,teardownSucceeded:(e)=>`wf-teardown-succeeded:${r(e)}`,teardownDeadLetter:(e)=>`wf-teardown-deadletter:${r(e)}`,offload:(e,t)=>`offload:${r(e)}:${t}`,archive:(e,t)=>`archive:${r(e)}:${t}`,stateExecution:(e,t)=>`state:execution:${r(e)}:${r(t)}`,stateWorkflow:(e,t)=>`state:workflow-scope:${m}:${r(e)}:${r(t)}`,streamChunkPrefix:(e,t)=>`blob:${r(e)}:${t}:chunk:`,streamChunk:(e,t,n)=>`blob:${r(e)}:${t}:chunk:${String(n).padStart(10,"0")}`,streamTail:(e,t)=>`blob:${r(e)}:${t}:tail`,streamMetadata:(e,t)=>`blob:${r(e)}:${t}:meta`,budgetCharged:(e)=>`budget-charged:${e}`,toolEffect:(e,t,n)=>`tool-effect:${r(e)}:${t}:${n}`,workflowVisibilityStatus:(e,t)=>`wf-idx-status:${r(e)}:${r(t)}`,workflowVisibilityType:(e,t)=>`wf-idx-type:${r(e)}:${r(t)}`,workflowVisibilityCreated:(e,t)=>`wf-idx-created:${o(e)}:${r(t)}`,workflowVisibilityUpdated:(e,t)=>`wf-idx-updated:${o(e)}:${r(t)}`,workflowVisibilityDeadline:(e,t)=>`wf-idx-deadline:${o(e)}:${r(t)}`,workflowVisibilityManifest:(e)=>`wf-idx-manifest:${r(e)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};var c;function q(){if(c&&"bun"in c)return c.bun;return globalThis.Bun}function P(){return typeof q()<"u"}function F(){if(c&&"process"in c)return c.process;return globalThis.process}function O(e){let t=F();if(typeof t?.getBuiltinModule!=="function")return;return t.getBuiltinModule(e)}function E(){let e=O("node:zlib");if(!e)throw Error("gzip/gunzip require Bun or Node 22.5+ (process.getBuiltinModule). "+"Not available in browser or edge runtimes \u2014 use CompressionStream directly.");return e}function k(e){if(P())return new Uint8Array(Bun.gzipSync(new Uint8Array(e)));return new Uint8Array(E().gzipSync(e))}function R(e){if(P())return new Uint8Array(Bun.gunzipSync(new Uint8Array(e)));return new Uint8Array(E().gunzipSync(e))}function T(){return O("node:zlib")}function U(){let e=T();if(!e)throw Error("Brotli compression requires Bun or Node 22.5+ with process.getBuiltinModule support. Use gzip compression for browser/edge runtimes.");return e}function W(e){return new Uint8Array(U().brotliCompressSync(e))}function G(e){return new Uint8Array(U().brotliDecompressSync(e))}var g=193,h=0,_=1,I=2,s=2;function z(e){return Y(e)}function Y(e){switch(e){case"gzip":return{algorithm:"gzip",compress(t){return k(t)}};case"brotli":return{algorithm:"brotli",compress(t){return W(t)}};case"none":return{algorithm:"none",compress(t){return t}}}}async function b(e,t,n){if(e.length<n||t.algorithm==="none"){let a=new Uint8Array(e.length+s);return a[0]=g,a[1]=h,a.set(e,s),a}let i=await t.compress(e);if(i.length+s>=e.length+s){let a=new Uint8Array(e.length+s);return a[0]=g,a[1]=h,a.set(e,s),a}let p=t.algorithm==="gzip"?_:I,d=new Uint8Array(i.length+s);return d[0]=g,d[1]=p,d.set(i,s),d}async function w(e){if(e.length<s)throw Error("Compression payload missing 2-byte header.");if(e[0]!==g)throw Error("Compression payload missing magic byte 0xC1.");let t=e[1],n=e.slice(s);switch(t){case h:return n;case _:return R(n);case I:return G(n);default:throw Error(`Compression payload uses unsupported algorithm byte 0x${t.toString(16).padStart(2,"0")}.`)}}var Z=4096,X="gzip";function L(e){return{threshold:e?.threshold??Z,algorithm:e?.algorithm??X}}class j{#e;#t;#r;constructor(e,t){this.#e=e;let n=L(t);if(this.#t=z(n.algorithm),this.#r=n.threshold,e.query){let i=e.query.bind(e);Object.defineProperty(this,"query",{value:i,enumerable:!0,configurable:!0})}}capabilities(){let e=this.#e.capabilities();return{persistence:e.persistence,readAfterWrite:e.readAfterWrite,scanConsistency:e.scanConsistency,atomicBatch:e.atomicBatch,conditionalBatch:!1,boundedRangeDelete:!1}}async get(e){let t=await this.#e.get(e);if(!t)return null;return w(t)}async put(e,t){let n=await b(t,this.#t,this.#r);return this.#e.put(e,n)}async delete(e){return this.#e.delete(e)}async*scan(e,t){for await(let[n,i]of this.#e.scan(e,t))yield[n,await w(i)]}async batch(e){u("batch operations",e.length);let t=await Promise.all(e.map(async(n)=>{if(n.type==="put")return{type:"put",key:n.key,value:await b(n.value,this.#t,this.#r)};return n}));return this.#e.batch(t)}[Symbol.dispose](){this.#e[Symbol.dispose]()}}export{j as CompressedStorage};
|
package/dist/storage/http.js
CHANGED
|
@@ -105,7 +105,7 @@ export class HTTPStorage {
|
|
|
105
105
|
await this.#request(this.#storageKeyUrl(key), {
|
|
106
106
|
method: "PUT",
|
|
107
107
|
headers: { "content-type": "application/octet-stream" },
|
|
108
|
-
body: new Blob([value])
|
|
108
|
+
body: new Blob([new Uint8Array(value)])
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
async delete(key) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var k=import.meta.require;function s(e,t,n){if(!e.capabilities()[t])throw Error(`Feature "${n}" requires storage capability "${t}", but this storage backend does not provide it.`)}function w(e){let t=e.capabilities(),n=[];if(t.persistence!=="local"&&t.persistence!=="remote")n.push(`persistence must be "local" or "remote" (got "${t.persistence}")`);if(t.readAfterWrite!=="linearizable")n.push(`readAfterWrite must be "linearizable" (got "${t.readAfterWrite}")`);if(t.scanConsistency!=="snapshot")n.push(`scanConsistency must be "snapshot" (got "${t.scanConsistency}")`);if(!t.atomicBatch)n.push("atomicBatch must be true");if(!t.conditionalBatch)n.push("conditionalBatch must be true");if(n.length>0)throw Error(`Storage is not durable enough for recovery: ${n.join("; ")}.`)}var l="default";async function d(e,t){return await e.get(t)!==null}async function*a(e,t,n){for await(let[i]of e.scan(t,n))yield i}async function u(e,t){let n=0;for await(let i of a(e,t))n++;return n}async function f(e,t){let n=[];for await(let i of a(e,t))n.push({type:"delete",key:i});if(n.length===0)return 0;return await e.batch(n),n.length}async function O(e,t,n){let i=[];for await(let y of a(e,t,n))i.push({type:"delete",key:y});if(i.length===0)return 0;return await e.batch(i),i.length}function r(e){return encodeURIComponent(e)}function b(e){return decodeURIComponent(e)}function S(e){try{return decodeURIComponent(e)}catch{return null}}var p={workflowOwnerEpoch:(e)=>`wf-owner-epoch:${r(e)}`,workflowOwnerHolder:(e)=>`wf-owner-holder:${r(e)}`,ownershipModeMarker:()=>"ownership-mode-marker"};var x=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","child-by-parent:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","ownership-mode-marker","op:","review:","schedule:","schedule-due:","schedule-run-by-schedule:","schedule-run-link:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-owner-epoch:","wf-owner-holder:","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-teardown-succeeded:","wf-terminal:"];var c=1e4,U=1e4;class h extends Error{code="StorageBatchOperationLimitExceededError";cap=c;count;target;constructor(e,t){super(`${e} count ${t} exceeds MAX_BATCH_OPERATIONS (${c}).`);this.name="StorageBatchOperationLimitExceededError",this.target=e,this.count=t}}function g(e,t){if(t>c)throw new h(e,t)}function V(e){return e.length>0?e.slice(0,-1)+String.fromCharCode(e.charCodeAt(e.length-1)+1):"\xFF"}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 q(e,t){if(e===null||t===null)return e===t;if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n++)if(e[n]!==t[n])return!1;return!0}async function N(e,t){if(e.has)return e.has(t);return d(e,t)}function F(e,t,n){if(e.keys)return e.keys(t,n);return a(e,t,n)}async function z(e,t){if(e.count)return e.count(t);return u(e,t)}async function G(e,t){if(e.deletePrefix)return e.deletePrefix(t);return f(e,t)}async function X(e,t){g("batch operations",t.length),await e.batch(t)}async function Y(e,t,n){if(g("conditionalBatch conditions",t.length),g("conditionalBatch operations",n.length),s(e,"conditionalBatch","storageConditionalBatch"),!e.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return e.conditionalBatch(t,n)}var o=(e)=>String(e).padStart(16,"0"),v="0",C="1",m=(e,t,n,i)=>`sig:${r(e)}:${r(t)}:${i}:${r(n)}`,j={workflow:(e)=>`wf:${r(e)}`,checkpoint:(e)=>`wf:${r(e)}:ckpt`,checkpointHistory:(e,t)=>`wf:${r(e)}:ckpt:${String(t).padStart(10,"0")}`,timelinePrefix:(e)=>`wf:${r(e)}:timeline:`,timeline:(e,t)=>`wf:${r(e)}:timeline:${String(t).padStart(10,"0")}`,schedule:(e)=>`schedule:${r(e)}`,scheduleTick:(e,t)=>`schedule-due:${String(e).padStart(16,"0")}:${r(t)}`,scheduleRun:(e)=>`schedule-run:${r(e)}`,scheduleRunLink:(e)=>`schedule-run-link:${r(e)}`,scheduleRunBySchedulePrefix:(e)=>`schedule-run-by-schedule:${r(e)}:`,scheduleRunBySchedule:(e,t)=>`schedule-run-by-schedule:${r(e)}:${r(t)}`,operation:(e,t,n)=>`op:${e}:${o(t)}:${n}`,operationInflight:(e)=>`op:inflight:${e}`,operationQueued:(e)=>`op:queued:${e}`,operationResolved:(e)=>`op:resolved:${e}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(e,t,n)=>`audit:bulk:${o(e)}:${r(t)}:${r(n)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(e,t)=>`op:resolved-by-time:${o(e)}:${r(t)}`,asyncActivity:(e,t)=>`async-act:v1:${r(e)}:${r(t)}`,asyncActivityResolution:(e,t)=>`async-act:v1:${r(e)}:${r(t)}:resolution`,activityReconciliationPrefix:(e)=>`actrec:v1:${r(e)}:`,activityReconciliation:(e,t,n)=>`actrec:v1:${r(e)}:${r(t)}:${n}`,eventPrefix:(e)=>`ev:${r(e)}:`,event:(e,t)=>`ev:${r(e)}:${String(t).padStart(10,"0")}`,eventHead:(e)=>`ev:${r(e)}:head`,eventWatermark:(e)=>`ev:${r(e)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(e)=>`fleet-event:${String(e).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(e)=>`fleet-event-by-workflow:${r(e)}:`,fleetEventByWorkflow:(e,t)=>`fleet-event-by-workflow:${r(e)}:${String(t).padStart(10,"0")}`,signal:(e,t,n)=>m(e,t,n,C),startSignal:(e,t,n)=>m(e,t,n,v),signalSequence:(e)=>`sigseq:v1:${r(e)}`,signalAcceptedResponsePrefix:(e)=>`sigres:v1:${r(e)}:`,signalAcceptedResponse:(e,t,n)=>`sigres:v1:${r(e)}:${r(t)}:${r(n)}`,deadline:(e,t)=>`wf-deadline:${o(e)}:${r(t)}`,terminalCleanup:(e,t)=>`wf-cleanup:${o(e)}:${r(t)}`,teardownTimer:(e,t)=>`wf-teardown:${o(e)}:${r(t)}`,delayedStart:(e,t)=>`wf-delayed:${o(e)}:${r(t)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(e,t)=>`wf-terminal:${o(e)}:${r(t)}`,attribute:(e)=>`attr:${r(e)}`,attributeIndex:(e,t,n)=>`idx:${e}:${t}:${r(n)}`,tagIndex:(e,t)=>`tag:${r(e)}:${r(t)}`,updatePrefix:(e)=>`upd:${r(e)}:`,update:(e,t)=>`upd:${r(e)}:${t}`,updateResponse:(e)=>`upr:${e}`,updateIdempotency:(e,t)=>`upk:${r(e)}:${t}`,startIdempotency:(e)=>`start-idem:${r(e)}`,startIdempotencySignalId:(e)=>`start-idem:${e}`,livenessPrefix:()=>"liveness:",liveness:(e)=>`liveness:${r(e)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",...p,budget:(e,t,n)=>`budget:${e}:${t}:${n}`,review:(e,t)=>`review:${r(e)}:${t}`,workflowHeaders:(e)=>`wf-headers:${r(e)}`,childCancellationPrefix:(e)=>`child-cancel:${r(e)}:`,childCancellation:(e,t)=>`child-cancel:${r(e)}:${r(t)}`,childWorkflowByParentPrefix:(e,t)=>`child-by-parent:${r(e)}:${t===void 0?"":`${r(t)}:`}`,childWorkflowByParent:(e,t,n)=>`child-by-parent:${r(e)}:${t===void 0?"":`${r(t)}:`}${r(n)}`,terminalCleanupNeeded:(e)=>`wf-cleanup-needed:${r(e)}`,workflowConcurrency:(e,t)=>`wf-concurrency:${r(e)}:${r(t)}`,workflowConcurrencyHolder:(e)=>`wf-concurrency-holder:${r(e)}`,workflowHasServices:(e)=>`wf-has-services:${r(e)}`,finalizerState:(e)=>`wf-finalizer-state:${r(e)}`,teardownOwed:(e)=>`wf-teardown-needed:${r(e)}`,teardownSucceeded:(e)=>`wf-teardown-succeeded:${r(e)}`,teardownDeadLetter:(e)=>`wf-teardown-deadletter:${r(e)}`,offload:(e,t)=>`offload:${r(e)}:${t}`,archive:(e,t)=>`archive:${r(e)}:${t}`,stateExecution:(e,t)=>`state:execution:${r(e)}:${r(t)}`,stateWorkflow:(e,t)=>`state:workflow-scope:${l}:${r(e)}:${r(t)}`,streamChunkPrefix:(e,t)=>`blob:${r(e)}:${t}:chunk:`,streamChunk:(e,t,n)=>`blob:${r(e)}:${t}:chunk:${String(n).padStart(10,"0")}`,streamTail:(e,t)=>`blob:${r(e)}:${t}:tail`,streamMetadata:(e,t)=>`blob:${r(e)}:${t}:meta`,budgetCharged:(e)=>`budget-charged:${e}`,toolEffect:(e,t,n)=>`tool-effect:${r(e)}:${t}:${n}`,workflowVisibilityStatus:(e,t)=>`wf-idx-status:${r(e)}:${r(t)}`,workflowVisibilityType:(e,t)=>`wf-idx-type:${r(e)}:${r(t)}`,workflowVisibilityCreated:(e,t)=>`wf-idx-created:${o(e)}:${r(t)}`,workflowVisibilityUpdated:(e,t)=>`wf-idx-updated:${o(e)}:${r(t)}`,workflowVisibilityDeadline:(e,t)=>`wf-idx-deadline:${o(e)}:${r(t)}`,workflowVisibilityManifest:(e)=>`wf-idx-manifest:${r(e)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};export{l as DEFAULT_SCOPE,j as KEYS,c as MAX_BATCH_OPERATIONS,U as MAX_SCAN_LIMIT,h as StorageBatchOperationLimitExceededError,x as WEFT_RESERVED_KEY_PREFIXES,w as assertDurableStorageForRecovery,g as assertStorageBatchOperationCount,b as decodeStorageKeyComponent,r as encodeStorageKeyComponent,W as matchesScanOptions,s as requireStorageCapability,V as resolvePrefixRangeEnd,X as storageBatch,Y as storageConditionalBatch,z as storageCount,G as storageDeletePrefix,N as storageHas,F as storageKeys,q as storageValuesEqual,S as tryDecodeStorageKeyComponent};
|
package/dist/storage/lmdb.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var s=import.meta.require;function L(_,F,Y){if(!_.capabilities()[F])throw Error(`Feature "${Y}" requires storage capability "${F}", but this storage backend does not provide it.`)}function g(_){let F=_.capabilities(),Y=[];if(F.persistence!=="local"&&F.persistence!=="remote")Y.push(`persistence must be "local" or "remote" (got "${F.persistence}")`);if(F.readAfterWrite!=="linearizable")Y.push(`readAfterWrite must be "linearizable" (got "${F.readAfterWrite}")`);if(F.scanConsistency!=="snapshot")Y.push(`scanConsistency must be "snapshot" (got "${F.scanConsistency}")`);if(!F.atomicBatch)Y.push("atomicBatch must be true");if(!F.conditionalBatch)Y.push("conditionalBatch must be true");if(Y.length>0)throw Error(`Storage is not durable enough for recovery: ${Y.join("; ")}.`)}var N="default";async function D(_,F){return await _.get(F)!==null}async function*G(_,F,Y){for await(let[X]of _.scan(F,Y))yield X}async function R(_,F){let Y=0;for await(let X of G(_,F))Y++;return Y}async function A(_,F){let Y=[];for await(let X of G(_,F))Y.push({type:"delete",key:X});if(Y.length===0)return 0;return await _.batch(Y),Y.length}async function S(_,F,Y){let X=[];for await(let U of G(_,F,Y))X.push({type:"delete",key:U});if(X.length===0)return 0;return await _.batch(X),X.length}function E(_){return encodeURIComponent(_)}function I(_){return decodeURIComponent(_)}function w(_){try{return decodeURIComponent(_)}catch{return null}}var C={workflowOwnerEpoch:(_)=>`wf-owner-epoch:${E(_)}`,workflowOwnerHolder:(_)=>`wf-owner-holder:${E(_)}`,ownershipModeMarker:()=>"ownership-mode-marker"};var k=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","child-by-parent:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","ownership-mode-marker","op:","review:","schedule:","schedule-due:","schedule-run-by-schedule:","schedule-run-link:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-owner-epoch:","wf-owner-holder:","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-teardown-succeeded:","wf-terminal:"];var q=1e4,Q_=1e4;class K extends Error{code="StorageBatchOperationLimitExceededError";cap=q;count;target;constructor(_,F){super(`${_} count ${F} exceeds MAX_BATCH_OPERATIONS (${q}).`);this.name="StorageBatchOperationLimitExceededError",this.target=_,this.count=F}}function Z(_,F){if(F>q)throw new K(_,F)}function V(_){return _.length>0?_.slice(0,-1)+String.fromCharCode(_.charCodeAt(_.length-1)+1):"\xFF"}function W(_,F={}){if(F.gt!==void 0&&_<=F.gt)return!1;if(F.gte!==void 0&&_<F.gte)return!1;if(F.lt!==void 0&&_>=F.lt)return!1;if(F.lte!==void 0&&_>F.lte)return!1;return!0}function P(_,F){if(_===null||F===null)return _===F;if(_.byteLength!==F.byteLength)return!1;for(let Y=0;Y<_.byteLength;Y++)if(_[Y]!==F[Y])return!1;return!0}async function v(_,F){if(_.has)return _.has(F);return D(_,F)}function O(_,F,Y){if(_.keys)return _.keys(F,Y);return G(_,F,Y)}async function h(_,F){if(_.count)return _.count(F);return R(_,F)}async function b(_,F){if(_.deletePrefix)return _.deletePrefix(F);return A(_,F)}async function Z_(_,F){Z("batch operations",F.length),await _.batch(F)}async function m(_,F,Y){if(Z("conditionalBatch conditions",F.length),Z("conditionalBatch operations",Y.length),L(_,"conditionalBatch","storageConditionalBatch"),!_.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return _.conditionalBatch(F,Y)}var M=(_)=>String(_).padStart(16,"0"),f="0",l="1",z=(_,F,Y,X)=>`sig:${E(_)}:${E(F)}:${X}:${E(Y)}`,$_={workflow:(_)=>`wf:${E(_)}`,checkpoint:(_)=>`wf:${E(_)}:ckpt`,checkpointHistory:(_,F)=>`wf:${E(_)}:ckpt:${String(F).padStart(10,"0")}`,timelinePrefix:(_)=>`wf:${E(_)}:timeline:`,timeline:(_,F)=>`wf:${E(_)}:timeline:${String(F).padStart(10,"0")}`,schedule:(_)=>`schedule:${E(_)}`,scheduleTick:(_,F)=>`schedule-due:${String(_).padStart(16,"0")}:${E(F)}`,scheduleRun:(_)=>`schedule-run:${E(_)}`,scheduleRunLink:(_)=>`schedule-run-link:${E(_)}`,scheduleRunBySchedulePrefix:(_)=>`schedule-run-by-schedule:${E(_)}:`,scheduleRunBySchedule:(_,F)=>`schedule-run-by-schedule:${E(_)}:${E(F)}`,operation:(_,F,Y)=>`op:${_}:${M(F)}:${Y}`,operationInflight:(_)=>`op:inflight:${_}`,operationQueued:(_)=>`op:queued:${_}`,operationResolved:(_)=>`op:resolved:${_}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(_,F,Y)=>`audit:bulk:${M(_)}:${E(F)}:${E(Y)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(_,F)=>`op:resolved-by-time:${M(_)}:${E(F)}`,asyncActivity:(_,F)=>`async-act:v1:${E(_)}:${E(F)}`,asyncActivityResolution:(_,F)=>`async-act:v1:${E(_)}:${E(F)}:resolution`,activityReconciliationPrefix:(_)=>`actrec:v1:${E(_)}:`,activityReconciliation:(_,F,Y)=>`actrec:v1:${E(_)}:${E(F)}:${Y}`,eventPrefix:(_)=>`ev:${E(_)}:`,event:(_,F)=>`ev:${E(_)}:${String(F).padStart(10,"0")}`,eventHead:(_)=>`ev:${E(_)}:head`,eventWatermark:(_)=>`ev:${E(_)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(_)=>`fleet-event:${String(_).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(_)=>`fleet-event-by-workflow:${E(_)}:`,fleetEventByWorkflow:(_,F)=>`fleet-event-by-workflow:${E(_)}:${String(F).padStart(10,"0")}`,signal:(_,F,Y)=>z(_,F,Y,l),startSignal:(_,F,Y)=>z(_,F,Y,f),signalSequence:(_)=>`sigseq:v1:${E(_)}`,signalAcceptedResponsePrefix:(_)=>`sigres:v1:${E(_)}:`,signalAcceptedResponse:(_,F,Y)=>`sigres:v1:${E(_)}:${E(F)}:${E(Y)}`,deadline:(_,F)=>`wf-deadline:${M(_)}:${E(F)}`,terminalCleanup:(_,F)=>`wf-cleanup:${M(_)}:${E(F)}`,teardownTimer:(_,F)=>`wf-teardown:${M(_)}:${E(F)}`,delayedStart:(_,F)=>`wf-delayed:${M(_)}:${E(F)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(_,F)=>`wf-terminal:${M(_)}:${E(F)}`,attribute:(_)=>`attr:${E(_)}`,attributeIndex:(_,F,Y)=>`idx:${_}:${F}:${E(Y)}`,tagIndex:(_,F)=>`tag:${E(_)}:${E(F)}`,updatePrefix:(_)=>`upd:${E(_)}:`,update:(_,F)=>`upd:${E(_)}:${F}`,updateResponse:(_)=>`upr:${_}`,updateIdempotency:(_,F)=>`upk:${E(_)}:${F}`,startIdempotency:(_)=>`start-idem:${E(_)}`,startIdempotencySignalId:(_)=>`start-idem:${_}`,livenessPrefix:()=>"liveness:",liveness:(_)=>`liveness:${E(_)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",...C,budget:(_,F,Y)=>`budget:${_}:${F}:${Y}`,review:(_,F)=>`review:${E(_)}:${F}`,workflowHeaders:(_)=>`wf-headers:${E(_)}`,childCancellationPrefix:(_)=>`child-cancel:${E(_)}:`,childCancellation:(_,F)=>`child-cancel:${E(_)}:${E(F)}`,childWorkflowByParentPrefix:(_,F)=>`child-by-parent:${E(_)}:${F===void 0?"":`${E(F)}:`}`,childWorkflowByParent:(_,F,Y)=>`child-by-parent:${E(_)}:${F===void 0?"":`${E(F)}:`}${E(Y)}`,terminalCleanupNeeded:(_)=>`wf-cleanup-needed:${E(_)}`,workflowConcurrency:(_,F)=>`wf-concurrency:${E(_)}:${E(F)}`,workflowConcurrencyHolder:(_)=>`wf-concurrency-holder:${E(_)}`,workflowHasServices:(_)=>`wf-has-services:${E(_)}`,finalizerState:(_)=>`wf-finalizer-state:${E(_)}`,teardownOwed:(_)=>`wf-teardown-needed:${E(_)}`,teardownSucceeded:(_)=>`wf-teardown-succeeded:${E(_)}`,teardownDeadLetter:(_)=>`wf-teardown-deadletter:${E(_)}`,offload:(_,F)=>`offload:${E(_)}:${F}`,archive:(_,F)=>`archive:${E(_)}:${F}`,stateExecution:(_,F)=>`state:execution:${E(_)}:${E(F)}`,stateWorkflow:(_,F)=>`state:workflow-scope:${N}:${E(_)}:${E(F)}`,streamChunkPrefix:(_,F)=>`blob:${E(_)}:${F}:chunk:`,streamChunk:(_,F,Y)=>`blob:${E(_)}:${F}:chunk:${String(Y).padStart(10,"0")}`,streamTail:(_,F)=>`blob:${E(_)}:${F}:tail`,streamMetadata:(_,F)=>`blob:${E(_)}:${F}:meta`,budgetCharged:(_)=>`budget-charged:${_}`,toolEffect:(_,F,Y)=>`tool-effect:${E(_)}:${F}:${Y}`,workflowVisibilityStatus:(_,F)=>`wf-idx-status:${E(_)}:${E(F)}`,workflowVisibilityType:(_,F)=>`wf-idx-type:${E(_)}:${E(F)}`,workflowVisibilityCreated:(_,F)=>`wf-idx-created:${M(_)}:${E(F)}`,workflowVisibilityUpdated:(_,F)=>`wf-idx-updated:${M(_)}:${E(F)}`,workflowVisibilityDeadline:(_,F)=>`wf-idx-deadline:${M(_)}:${E(F)}`,workflowVisibilityManifest:(_)=>`wf-idx-manifest:${E(_)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function d(_){if(_===void 0)return;if(typeof _!=="number"||!Number.isInteger(_)||_<0)throw Error("deleteRange limit must be a finite non-negative integer");return _===0?0:_}function H(_){let F={},Y=!1;for(let U of["gt","gte","lt","lte"]){let Q=_[U];if(Q===void 0)continue;if(typeof Q!=="string")throw Error("deleteRange bounds must be strings");F[U]=Q,Y=!0}if(!Y)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let X=d(_.limit);if(X!==void 0)F.limit=X;return F}async function c(_,F,Y){let X=H(Y);if(_.deleteRange)return _.deleteRange(F,X);return S(_,F,X)}function B(_){return _.replaceAll(/:+$/g,"")}function p(_,F){let Y=B(_),X=B(F);if(Y.length===0)return X;if(X.length===0)return Y;return`${Y}:${X}`}class T{#_;#Y;constructor(_,F){this.#_=_,this.#Y=B(F)}#F(_){if(this.#Y.length===0)return _;return _.length===0?`${this.#Y}:`:`${this.#Y}:${_}`}#E(_){return _.map((F)=>{if(F.type==="put")return{type:"put",key:this.#F(F.key),value:F.value};return{type:"delete",key:this.#F(F.key)}})}#X(_){if(this.#Y.length===0)return _;return _.slice(this.#Y.length+1)}#U(_){let F={};if(_.limit!==void 0)F.limit=_.limit;if(_.gt!==void 0)F.gt=this.#F(_.gt);if(_.gte!==void 0)F.gte=this.#F(_.gte);if(_.lt!==void 0)F.lt=this.#F(_.lt);if(_.lte!==void 0)F.lte=this.#F(_.lte);return F}#M(_={}){let F=this.#U(_);if(_.reverse!==void 0)F.reverse=_.reverse;return F}#Q(_){return this.#U(_)}capabilities(){return this.#_.capabilities()}scoped(_){return new T(this.#_,p(this.#Y,_))}async get(_){return this.#_.get(this.#F(_))}async put(_,F){await this.#_.put(this.#F(_),F)}async delete(_){await this.#_.delete(this.#F(_))}async*scan(_,F){for await(let[Y,X]of this.#_.scan(this.#F(_),this.#M(F)))yield[this.#X(Y),X]}async batch(_){Z("batch operations",_.length),await this.#_.batch(this.#E(_))}async conditionalBatch(_,F){return m(this.#_,_.map((Y)=>({key:this.#F(Y.key),expectedValue:Y.expectedValue})),this.#E(F))}async has(_){return v(this.#_,this.#F(_))}async deletePrefix(_){return b(this.#_,this.#F(_))}async deleteRange(_,F){let Y=this.#Q(H(F));return c(this.#_,this.#F(_),Y)}async*keys(_,F){for await(let Y of O(this.#_,this.#F(_),this.#M(F)))yield this.#X(Y)}async count(_){return h(this.#_,this.#F(_))}[Symbol.dispose](){this.#_[Symbol.dispose]()}}function u(_,F){return new T(_,F)}import*as x from"lmdb";class a{#_;#Y=!1;#F=null;constructor(_){this.#_=x.open({path:_,encoding:"binary"})}#E(){if(this.#Y)throw Error("LMDBStorage is closed")}capabilities(){return{persistence:"local",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!1}}async get(_){this.#E();let F=this.#_.get(_);if(F===void 0)return null;return new Uint8Array(F)}async put(_,F){this.#E(),await this.#_.put(_,Buffer.from(F))}async delete(_){this.#E(),await this.#_.remove(_)}async has(_){return this.#E(),this.#_.doesExist(_)}async deletePrefix(_){this.#E();let F=[];for await(let Y of this.keys(_))F.push(Y);if(F.length===0)return 0;return await this.#_.batch(()=>{for(let Y of F)this.#_.remove(Y)}),F.length}async deleteRange(_,F){this.#E();let Y=H(F),X=[];for await(let U of this.keys(_,Y))X.push(U);if(X.length===0)return 0;return await this.#_.batch(()=>{for(let U of X)this.#_.remove(U)}),X.length}async*scan(_,F={}){this.#E();let{limit:Y,reverse:X}=F,U=V(_),Q=X?this.#_.getRange({start:U,end:_,reverse:!0}):this.#_.getRange({start:_,end:U}),J=0,j=!1;for(let{key:$,value:y}of Q){if(!$.startsWith(_)){if(X&&!j)continue;break}if(j=!0,!W($,F))continue;if(Y!==void 0&&J>=Y)break;yield[$,new Uint8Array(y)],J++}}async*keys(_,F={}){this.#E();let{limit:Y,reverse:X}=F,U=V(_),Q=X?this.#_.getKeys({start:U,end:_,reverse:!0}):this.#_.getKeys({start:_,end:U}),J=0,j=!1;for(let $ of Q){if(!$.startsWith(_)){if(X&&!j)continue;break}if(j=!0,!W($,F))continue;if(Y!==void 0&&J>=Y)break;yield $,J++}}async count(_){this.#E();let F=V(_);return this.#_.getKeysCount({start:_,end:F})}scoped(_){return this.#E(),u(this,_)}async batch(_){if(this.#E(),Z("batch operations",_.length),_.length===0)return;await this.#_.batch(()=>{for(let F of _)if(F.type==="put")this.#_.put(F.key,Buffer.from(F.value));else this.#_.remove(F.key)})}async conditionalBatch(_,F){return this.#E(),Z("conditionalBatch conditions",_.length),Z("conditionalBatch operations",F.length),this.#_.transactionSync(()=>{for(let X of _){let U=this.#_.get(X.key),Q=U===void 0?null:new Uint8Array(U);if(!P(Q,X.expectedValue))return!1}for(let X of F)if(X.type==="put")this.#_.putSync(X.key,Buffer.from(X.value));else this.#_.removeSync(X.key);return!0})}close(){return this.#Y=!0,this.#F??=(async()=>{await Promise.resolve(),await this.#_.close()})(),this.#F}[Symbol.dispose](){this.close()}}export{a as LMDBStorage};
|
|
2
|
+
var X=import.meta.require;function h(e,t,r){if(!e.capabilities()[t])throw Error(`Feature "${r}" requires storage capability "${t}", but this storage backend does not provide it.`)}function U(e){let t=e.capabilities(),r=[];if(t.persistence!=="local"&&t.persistence!=="remote")r.push(`persistence must be "local" or "remote" (got "${t.persistence}")`);if(t.readAfterWrite!=="linearizable")r.push(`readAfterWrite must be "linearizable" (got "${t.readAfterWrite}")`);if(t.scanConsistency!=="snapshot")r.push(`scanConsistency must be "snapshot" (got "${t.scanConsistency}")`);if(!t.atomicBatch)r.push("atomicBatch must be true");if(!t.conditionalBatch)r.push("conditionalBatch must be true");if(r.length>0)throw Error(`Storage is not durable enough for recovery: ${r.join("; ")}.`)}var m="default";async function v(e,t){return await e.get(t)!==null}async function*u(e,t,r){for await(let[i]of e.scan(t,r))yield i}async function x(e,t){let r=0;for await(let i of u(e,t))r++;return r}async function k(e,t){let r=[];for await(let i of u(e,t))r.push({type:"delete",key:i});if(r.length===0)return 0;return await e.batch(r),r.length}async function O(e,t,r){let i=[];for await(let o of u(e,t,r))i.push({type:"delete",key:o});if(i.length===0)return 0;return await e.batch(i),i.length}function n(e){return encodeURIComponent(e)}function V(e){return decodeURIComponent(e)}function N(e){try{return decodeURIComponent(e)}catch{return null}}var R={workflowOwnerEpoch:(e)=>`wf-owner-epoch:${n(e)}`,workflowOwnerHolder:(e)=>`wf-owner-holder:${n(e)}`,ownershipModeMarker:()=>"ownership-mode-marker"};var W=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","child-by-parent:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","ownership-mode-marker","op:","review:","schedule:","schedule-due:","schedule-run-by-schedule:","schedule-run-link:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-owner-epoch:","wf-owner-holder:","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-teardown-succeeded:","wf-terminal:"];var y=1e4,le=1e4;class P extends Error{code="StorageBatchOperationLimitExceededError";cap=y;count;target;constructor(e,t){super(`${e} count ${t} exceeds MAX_BATCH_OPERATIONS (${y}).`);this.name="StorageBatchOperationLimitExceededError",this.target=e,this.count=t}}function l(e,t){if(t>y)throw new P(e,t)}function p(e){return e.length>0?e.slice(0,-1)+String.fromCharCode(e.charCodeAt(e.length-1)+1):"\xFF"}function b(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 B(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 D(e,t){if(e.has)return e.has(t);return v(e,t)}function A(e,t,r){if(e.keys)return e.keys(t,r);return u(e,t,r)}async function E(e,t){if(e.count)return e.count(t);return x(e,t)}async function I(e,t){if(e.deletePrefix)return e.deletePrefix(t);return k(e,t)}async function ce(e,t){l("batch operations",t.length),await e.batch(t)}async function z(e,t,r){if(l("conditionalBatch conditions",t.length),l("conditionalBatch operations",r.length),h(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 s=(e)=>String(e).padStart(16,"0"),M="0",H="1",C=(e,t,r,i)=>`sig:${n(e)}:${n(t)}:${i}:${n(r)}`,ge={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}:${s(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:${s(e)}:${n(t)}:${n(r)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(e,t)=>`op:resolved-by-time:${s(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",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)=>C(e,t,r,H),startSignal:(e,t,r)=>C(e,t,r,M),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:${s(e)}:${n(t)}`,terminalCleanup:(e,t)=>`wf-cleanup:${s(e)}:${n(t)}`,teardownTimer:(e,t)=>`wf-teardown:${s(e)}:${n(t)}`,delayedStart:(e,t)=>`wf-delayed:${s(e)}:${n(t)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(e,t)=>`wf-terminal:${s(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",...R,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:${m}:${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:${s(e)}:${n(t)}`,workflowVisibilityUpdated:(e,t)=>`wf-idx-updated:${s(e)}:${n(t)}`,workflowVisibilityDeadline:(e,t)=>`wf-idx-deadline:${s(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 q(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 f(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=q(e.limit);if(i!==void 0)t.limit=i;return t}async function _(e,t,r){let i=f(r);if(e.deleteRange)return e.deleteRange(t,i);return O(e,t,i)}function w(e){return e.replaceAll(/:+$/g,"")}function F(e,t){let r=w(e),i=w(t);if(r.length===0)return i;if(i.length===0)return r;return`${r}:${i}`}class S{#e;#r;constructor(e,t){this.#e=e,this.#r=w(t)}#t(e){if(this.#r.length===0)return e;return e.length===0?`${this.#r}:`:`${this.#r}:${e}`}#n(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)}})}#i(e){if(this.#r.length===0)return e;return e.slice(this.#r.length+1)}#o(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}#s(e={}){let t=this.#o(e);if(e.reverse!==void 0)t.reverse=e.reverse;return t}#a(e){return this.#o(e)}capabilities(){return this.#e.capabilities()}scoped(e){return new S(this.#e,F(this.#r,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.#s(t)))yield[this.#i(r),i]}async batch(e){l("batch operations",e.length),await this.#e.batch(this.#n(e))}async conditionalBatch(e,t){return z(this.#e,e.map((r)=>({key:this.#t(r.key),expectedValue:r.expectedValue})),this.#n(t))}async has(e){return D(this.#e,this.#t(e))}async deletePrefix(e){return I(this.#e,this.#t(e))}async deleteRange(e,t){let r=this.#a(f(t));return _(this.#e,this.#t(e),r)}async*keys(e,t){for await(let r of A(this.#e,this.#t(e),this.#s(t)))yield this.#i(r)}async count(e){return E(this.#e,this.#t(e))}[Symbol.dispose](){this.#e[Symbol.dispose]()}}function L(e,t){return new S(e,t)}import*as T from"lmdb";class G{#e;#r=!1;#t=null;constructor(e){this.#e=T.open({path:e,encoding:"binary"})}#n(){if(this.#r)throw Error("LMDBStorage is closed")}capabilities(){return{persistence:"local",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!1}}async get(e){this.#n();let t=this.#e.get(e);if(t===void 0)return null;return new Uint8Array(t)}async put(e,t){this.#n(),await this.#e.put(e,Buffer.from(t))}async delete(e){this.#n(),await this.#e.remove(e)}async has(e){return this.#n(),this.#e.doesExist(e)}async deletePrefix(e){this.#n();let t=[];for await(let r of this.keys(e))t.push(r);if(t.length===0)return 0;return await this.#e.batch(()=>{for(let r of t)this.#e.remove(r)}),t.length}async deleteRange(e,t){this.#n();let r=f(t),i=[];for await(let o of this.keys(e,r))i.push(o);if(i.length===0)return 0;return await this.#e.batch(()=>{for(let o of i)this.#e.remove(o)}),i.length}async*scan(e,t={}){this.#n();let{limit:r,reverse:i}=t,o=p(e),a=i?this.#e.getRange({start:o,end:e,reverse:!0}):this.#e.getRange({start:e,end:o}),g=0,d=!1;for(let{key:c,value:K}of a){if(!c.startsWith(e)){if(i&&!d)continue;break}if(d=!0,!b(c,t))continue;if(r!==void 0&&g>=r)break;yield[c,new Uint8Array(K)],g++}}async*keys(e,t={}){this.#n();let{limit:r,reverse:i}=t,o=p(e),a=i?this.#e.getKeys({start:o,end:e,reverse:!0}):this.#e.getKeys({start:e,end:o}),g=0,d=!1;for(let c of a){if(!c.startsWith(e)){if(i&&!d)continue;break}if(d=!0,!b(c,t))continue;if(r!==void 0&&g>=r)break;yield c,g++}}async count(e){this.#n();let t=p(e);return this.#e.getKeysCount({start:e,end:t})}scoped(e){return this.#n(),L(this,e)}async batch(e){if(this.#n(),l("batch operations",e.length),e.length===0)return;await this.#e.batch(()=>{for(let t of e)if(t.type==="put")this.#e.put(t.key,Buffer.from(t.value));else this.#e.remove(t.key)})}async conditionalBatch(e,t){return this.#n(),l("conditionalBatch conditions",e.length),l("conditionalBatch operations",t.length),this.#e.transactionSync(()=>{for(let i of e){let o=this.#e.get(i.key),a=o===void 0?null:new Uint8Array(o);if(!B(a,i.expectedValue))return!1}for(let i of t)if(i.type==="put")this.#e.putSync(i.key,Buffer.from(i.value));else this.#e.removeSync(i.key);return!0})}close(){return this.#r=!0,this.#t??=(async()=>{await Promise.resolve(),await this.#e.close()})(),this.#t}[Symbol.dispose](){this.close()}}export{G as LMDBStorage};
|
package/dist/storage/memory.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var p=import.meta.require;function L(_,F,Y){if(!_.capabilities()[F])throw Error(`Feature "${Y}" requires storage capability "${F}", but this storage backend does not provide it.`)}function x(_){let F=_.capabilities(),Y=[];if(F.persistence!=="local"&&F.persistence!=="remote")Y.push(`persistence must be "local" or "remote" (got "${F.persistence}")`);if(F.readAfterWrite!=="linearizable")Y.push(`readAfterWrite must be "linearizable" (got "${F.readAfterWrite}")`);if(F.scanConsistency!=="snapshot")Y.push(`scanConsistency must be "snapshot" (got "${F.scanConsistency}")`);if(!F.atomicBatch)Y.push("atomicBatch must be true");if(!F.conditionalBatch)Y.push("conditionalBatch must be true");if(Y.length>0)throw Error(`Storage is not durable enough for recovery: ${Y.join("; ")}.`)}var N="default";async function B(_,F){return await _.get(F)!==null}async function*j(_,F,Y){for await(let[E]of _.scan(F,Y))yield E}async function R(_,F){let Y=0;for await(let E of j(_,F))Y++;return Y}async function A(_,F){let Y=[];for await(let E of j(_,F))Y.push({type:"delete",key:E});if(Y.length===0)return 0;return await _.batch(Y),Y.length}async function C(_,F,Y){let E=[];for await(let M of j(_,F,Y))E.push({type:"delete",key:M});if(E.length===0)return 0;return await _.batch(E),E.length}function X(_){return encodeURIComponent(_)}function g(_){return decodeURIComponent(_)}function y(_){try{return decodeURIComponent(_)}catch{return null}}var z={workflowOwnerEpoch:(_)=>`wf-owner-epoch:${X(_)}`,workflowOwnerHolder:(_)=>`wf-owner-holder:${X(_)}`,ownershipModeMarker:()=>"ownership-mode-marker"};var I=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","child-by-parent:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","ownership-mode-marker","op:","review:","schedule:","schedule-due:","schedule-run-by-schedule:","schedule-run-link:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-owner-epoch:","wf-owner-holder:","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-teardown-succeeded:","wf-terminal:"];var q=1e4,U_=1e4;class P extends Error{code="StorageBatchOperationLimitExceededError";cap=q;count;target;constructor(_,F){super(`${_} count ${F} exceeds MAX_BATCH_OPERATIONS (${q}).`);this.name="StorageBatchOperationLimitExceededError",this.target=_,this.count=F}}function $(_,F){if(F>q)throw new P(_,F)}function V(_){return _.length>0?_.slice(0,-1)+String.fromCharCode(_.charCodeAt(_.length-1)+1):"\xFF"}function H(_,F={}){if(F.gt!==void 0&&_<=F.gt)return!1;if(F.gte!==void 0&&_<F.gte)return!1;if(F.lt!==void 0&&_>=F.lt)return!1;if(F.lte!==void 0&&_>F.lte)return!1;return!0}function O(_,F){if(_===null||F===null)return _===F;if(_.byteLength!==F.byteLength)return!1;for(let Y=0;Y<_.byteLength;Y++)if(_[Y]!==F[Y])return!1;return!0}async function v(_,F){if(_.has)return _.has(F);return B(_,F)}function K(_,F,Y){if(_.keys)return _.keys(F,Y);return j(_,F,Y)}async function b(_,F){if(_.count)return _.count(F);return R(_,F)}async function h(_,F){if(_.deletePrefix)return _.deletePrefix(F);return A(_,F)}async function M_(_,F){$("batch operations",F.length),await _.batch(F)}async function m(_,F,Y){if($("conditionalBatch conditions",F.length),$("conditionalBatch operations",Y.length),L(_,"conditionalBatch","storageConditionalBatch"),!_.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return _.conditionalBatch(F,Y)}var Q=(_)=>String(_).padStart(16,"0"),w="0",f="1",S=(_,F,Y,E)=>`sig:${X(_)}:${X(F)}:${E}:${X(Y)}`,Q_={workflow:(_)=>`wf:${X(_)}`,checkpoint:(_)=>`wf:${X(_)}:ckpt`,checkpointHistory:(_,F)=>`wf:${X(_)}:ckpt:${String(F).padStart(10,"0")}`,timelinePrefix:(_)=>`wf:${X(_)}:timeline:`,timeline:(_,F)=>`wf:${X(_)}:timeline:${String(F).padStart(10,"0")}`,schedule:(_)=>`schedule:${X(_)}`,scheduleTick:(_,F)=>`schedule-due:${String(_).padStart(16,"0")}:${X(F)}`,scheduleRun:(_)=>`schedule-run:${X(_)}`,scheduleRunLink:(_)=>`schedule-run-link:${X(_)}`,scheduleRunBySchedulePrefix:(_)=>`schedule-run-by-schedule:${X(_)}:`,scheduleRunBySchedule:(_,F)=>`schedule-run-by-schedule:${X(_)}:${X(F)}`,operation:(_,F,Y)=>`op:${_}:${Q(F)}:${Y}`,operationInflight:(_)=>`op:inflight:${_}`,operationQueued:(_)=>`op:queued:${_}`,operationResolved:(_)=>`op:resolved:${_}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(_,F,Y)=>`audit:bulk:${Q(_)}:${X(F)}:${X(Y)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(_,F)=>`op:resolved-by-time:${Q(_)}:${X(F)}`,asyncActivity:(_,F)=>`async-act:v1:${X(_)}:${X(F)}`,asyncActivityResolution:(_,F)=>`async-act:v1:${X(_)}:${X(F)}:resolution`,activityReconciliationPrefix:(_)=>`actrec:v1:${X(_)}:`,activityReconciliation:(_,F,Y)=>`actrec:v1:${X(_)}:${X(F)}:${Y}`,eventPrefix:(_)=>`ev:${X(_)}:`,event:(_,F)=>`ev:${X(_)}:${String(F).padStart(10,"0")}`,eventHead:(_)=>`ev:${X(_)}:head`,eventWatermark:(_)=>`ev:${X(_)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(_)=>`fleet-event:${String(_).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(_)=>`fleet-event-by-workflow:${X(_)}:`,fleetEventByWorkflow:(_,F)=>`fleet-event-by-workflow:${X(_)}:${String(F).padStart(10,"0")}`,signal:(_,F,Y)=>S(_,F,Y,f),startSignal:(_,F,Y)=>S(_,F,Y,w),signalSequence:(_)=>`sigseq:v1:${X(_)}`,signalAcceptedResponsePrefix:(_)=>`sigres:v1:${X(_)}:`,signalAcceptedResponse:(_,F,Y)=>`sigres:v1:${X(_)}:${X(F)}:${X(Y)}`,deadline:(_,F)=>`wf-deadline:${Q(_)}:${X(F)}`,terminalCleanup:(_,F)=>`wf-cleanup:${Q(_)}:${X(F)}`,teardownTimer:(_,F)=>`wf-teardown:${Q(_)}:${X(F)}`,delayedStart:(_,F)=>`wf-delayed:${Q(_)}:${X(F)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(_,F)=>`wf-terminal:${Q(_)}:${X(F)}`,attribute:(_)=>`attr:${X(_)}`,attributeIndex:(_,F,Y)=>`idx:${_}:${F}:${X(Y)}`,tagIndex:(_,F)=>`tag:${X(_)}:${X(F)}`,updatePrefix:(_)=>`upd:${X(_)}:`,update:(_,F)=>`upd:${X(_)}:${F}`,updateResponse:(_)=>`upr:${_}`,updateIdempotency:(_,F)=>`upk:${X(_)}:${F}`,startIdempotency:(_)=>`start-idem:${X(_)}`,startIdempotencySignalId:(_)=>`start-idem:${_}`,livenessPrefix:()=>"liveness:",liveness:(_)=>`liveness:${X(_)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",...z,budget:(_,F,Y)=>`budget:${_}:${F}:${Y}`,review:(_,F)=>`review:${X(_)}:${F}`,workflowHeaders:(_)=>`wf-headers:${X(_)}`,childCancellationPrefix:(_)=>`child-cancel:${X(_)}:`,childCancellation:(_,F)=>`child-cancel:${X(_)}:${X(F)}`,childWorkflowByParentPrefix:(_,F)=>`child-by-parent:${X(_)}:${F===void 0?"":`${X(F)}:`}`,childWorkflowByParent:(_,F,Y)=>`child-by-parent:${X(_)}:${F===void 0?"":`${X(F)}:`}${X(Y)}`,terminalCleanupNeeded:(_)=>`wf-cleanup-needed:${X(_)}`,workflowConcurrency:(_,F)=>`wf-concurrency:${X(_)}:${X(F)}`,workflowConcurrencyHolder:(_)=>`wf-concurrency-holder:${X(_)}`,workflowHasServices:(_)=>`wf-has-services:${X(_)}`,finalizerState:(_)=>`wf-finalizer-state:${X(_)}`,teardownOwed:(_)=>`wf-teardown-needed:${X(_)}`,teardownSucceeded:(_)=>`wf-teardown-succeeded:${X(_)}`,teardownDeadLetter:(_)=>`wf-teardown-deadletter:${X(_)}`,offload:(_,F)=>`offload:${X(_)}:${F}`,archive:(_,F)=>`archive:${X(_)}:${F}`,stateExecution:(_,F)=>`state:execution:${X(_)}:${X(F)}`,stateWorkflow:(_,F)=>`state:workflow-scope:${N}:${X(_)}:${X(F)}`,streamChunkPrefix:(_,F)=>`blob:${X(_)}:${F}:chunk:`,streamChunk:(_,F,Y)=>`blob:${X(_)}:${F}:chunk:${String(Y).padStart(10,"0")}`,streamTail:(_,F)=>`blob:${X(_)}:${F}:tail`,streamMetadata:(_,F)=>`blob:${X(_)}:${F}:meta`,budgetCharged:(_)=>`budget-charged:${_}`,toolEffect:(_,F,Y)=>`tool-effect:${X(_)}:${F}:${Y}`,workflowVisibilityStatus:(_,F)=>`wf-idx-status:${X(_)}:${X(F)}`,workflowVisibilityType:(_,F)=>`wf-idx-type:${X(_)}:${X(F)}`,workflowVisibilityCreated:(_,F)=>`wf-idx-created:${Q(_)}:${X(F)}`,workflowVisibilityUpdated:(_,F)=>`wf-idx-updated:${Q(_)}:${X(F)}`,workflowVisibilityDeadline:(_,F)=>`wf-idx-deadline:${Q(_)}:${X(F)}`,workflowVisibilityManifest:(_)=>`wf-idx-manifest:${X(_)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function k(_){if(_===void 0)return;if(typeof _!=="number"||!Number.isInteger(_)||_<0)throw Error("deleteRange limit must be a finite non-negative integer");return _===0?0:_}function G(_){let F={},Y=!1;for(let M of["gt","gte","lt","lte"]){let U=_[M];if(U===void 0)continue;if(typeof U!=="string")throw Error("deleteRange bounds must be strings");F[M]=U,Y=!0}if(!Y)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let E=k(_.limit);if(E!==void 0)F.limit=E;return F}async function u(_,F,Y){let E=G(Y);if(_.deleteRange)return _.deleteRange(F,E);return C(_,F,E)}function W(_){return _.replaceAll(/:+$/g,"")}function l(_,F){let Y=W(_),E=W(F);if(Y.length===0)return E;if(E.length===0)return Y;return`${Y}:${E}`}class T{#_;#Y;constructor(_,F){this.#_=_,this.#Y=W(F)}#F(_){if(this.#Y.length===0)return _;return _.length===0?`${this.#Y}:`:`${this.#Y}:${_}`}#X(_){return _.map((F)=>{if(F.type==="put")return{type:"put",key:this.#F(F.key),value:F.value};return{type:"delete",key:this.#F(F.key)}})}#E(_){if(this.#Y.length===0)return _;return _.slice(this.#Y.length+1)}#U(_){let F={};if(_.limit!==void 0)F.limit=_.limit;if(_.gt!==void 0)F.gt=this.#F(_.gt);if(_.gte!==void 0)F.gte=this.#F(_.gte);if(_.lt!==void 0)F.lt=this.#F(_.lt);if(_.lte!==void 0)F.lte=this.#F(_.lte);return F}#M(_={}){let F=this.#U(_);if(_.reverse!==void 0)F.reverse=_.reverse;return F}#Q(_){return this.#U(_)}capabilities(){return this.#_.capabilities()}scoped(_){return new T(this.#_,l(this.#Y,_))}async get(_){return this.#_.get(this.#F(_))}async put(_,F){await this.#_.put(this.#F(_),F)}async delete(_){await this.#_.delete(this.#F(_))}async*scan(_,F){for await(let[Y,E]of this.#_.scan(this.#F(_),this.#M(F)))yield[this.#E(Y),E]}async batch(_){$("batch operations",_.length),await this.#_.batch(this.#X(_))}async conditionalBatch(_,F){return m(this.#_,_.map((Y)=>({key:this.#F(Y.key),expectedValue:Y.expectedValue})),this.#X(F))}async has(_){return v(this.#_,this.#F(_))}async deletePrefix(_){return h(this.#_,this.#F(_))}async deleteRange(_,F){let Y=this.#Q(G(F));return u(this.#_,this.#F(_),Y)}async*keys(_,F){for await(let Y of K(this.#_,this.#F(_),this.#M(F)))yield this.#E(Y)}async count(_){return b(this.#_,this.#F(_))}[Symbol.dispose](){this.#_[Symbol.dispose]()}}function c(_,F){return new T(_,F)}class d{#_;constructor(){this.#_=new Map}capabilities(){return{persistence:"ephemeral",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#Y(_,F,Y){return _>=F&&_<Y}#F(_,F){let Y=[];for(let E of this.#_.keys())if(this.#Y(E,_,F))Y.push(E);return Y.toSorted()}async get(_){return this.#_.get(_)??null}async put(_,F){this.#_.set(_,F)}async delete(_){this.#_.delete(_)}async*scan(_,F={}){let{limit:Y,reverse:E}=F,M=V(_),U=this.#F(_,M);if(U=U.filter((J)=>H(J,F)),E)U.reverse();let Z=0;for(let J of U){if(Y!==void 0&&Z>=Y)break;let D=this.#_.get(J);if(D!==void 0)yield[J,D],Z++}}async batch(_){$("batch operations",_.length),this.#X(_)}#X(_){for(let F of _)if(F.type==="put")this.#_.set(F.key,F.value);else this.#_.delete(F.key)}async conditionalBatch(_,F){$("conditionalBatch conditions",_.length),$("conditionalBatch operations",F.length);for(let Y of _){let E=this.#_.get(Y.key)??null;if(!O(E,Y.expectedValue))return!1}return this.#X(F),!0}async has(_){return this.#_.has(_)}async deletePrefix(_){let F=V(_),Y=this.#F(_,F);for(let E of Y)this.#_.delete(E);return Y.length}async deleteRange(_,F){let Y=G(F),E=V(_),M=this.#F(_,E).filter((Z)=>H(Z,Y)),U=Y.limit===void 0?M:M.slice(0,Y.limit);for(let Z of U)this.#_.delete(Z);return U.length}async*keys(_,F={}){let{limit:Y,reverse:E}=F,M=V(_),U=this.#F(_,M);if(U=U.filter((J)=>H(J,F)),E)U.reverse();let Z=0;for(let J of U){if(Y!==void 0&&Z>=Y)break;yield J,Z++}}async count(_){let F=V(_);return this.#F(_,F).length}scoped(_){return c(this,_)}get size(){return this.#_.size}clear(){this.#_.clear()}snapshot(){let _=new Map;for(let[F,Y]of this.#_)_.set(F,new Uint8Array(Y));return _}[Symbol.dispose](){this.#_.clear()}}export{d as MemoryStorage};
|
|
2
|
+
var F=import.meta.require;function h(e,t,n){if(!e.capabilities()[t])throw Error(`Feature "${n}" requires storage capability "${t}", but this storage backend does not provide it.`)}function L(e){let t=e.capabilities(),n=[];if(t.persistence!=="local"&&t.persistence!=="remote")n.push(`persistence must be "local" or "remote" (got "${t.persistence}")`);if(t.readAfterWrite!=="linearizable")n.push(`readAfterWrite must be "linearizable" (got "${t.readAfterWrite}")`);if(t.scanConsistency!=="snapshot")n.push(`scanConsistency must be "snapshot" (got "${t.scanConsistency}")`);if(!t.atomicBatch)n.push("atomicBatch must be true");if(!t.conditionalBatch)n.push("conditionalBatch must be true");if(n.length>0)throw Error(`Storage is not durable enough for recovery: ${n.join("; ")}.`)}var y="default";async function x(e,t){return await e.get(t)!==null}async function*u(e,t,n){for await(let[i]of e.scan(t,n))yield i}async function v(e,t){let n=0;for await(let i of u(e,t))n++;return n}async function k(e,t){let n=[];for await(let i of u(e,t))n.push({type:"delete",key:i});if(n.length===0)return 0;return await e.batch(n),n.length}async function O(e,t,n){let i=[];for await(let s of u(e,t,n))i.push({type:"delete",key:s});if(i.length===0)return 0;return await e.batch(i),i.length}function r(e){return encodeURIComponent(e)}function U(e){return decodeURIComponent(e)}function K(e){try{return decodeURIComponent(e)}catch{return null}}var R={workflowOwnerEpoch:(e)=>`wf-owner-epoch:${r(e)}`,workflowOwnerHolder:(e)=>`wf-owner-holder:${r(e)}`,ownershipModeMarker:()=>"ownership-mode-marker"};var M=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","child-by-parent:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","ownership-mode-marker","op:","review:","schedule:","schedule-due:","schedule-run-by-schedule:","schedule-run-link:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-owner-epoch:","wf-owner-holder:","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-teardown-succeeded:","wf-terminal:"];var m=1e4,se=1e4;class P extends Error{code="StorageBatchOperationLimitExceededError";cap=m;count;target;constructor(e,t){super(`${e} count ${t} exceeds MAX_BATCH_OPERATIONS (${m}).`);this.name="StorageBatchOperationLimitExceededError",this.target=e,this.count=t}}function c(e,t){if(t>m)throw new P(e,t)}function d(e){return e.length>0?e.slice(0,-1)+String.fromCharCode(e.charCodeAt(e.length-1)+1):"\xFF"}function f(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 B(e,t){if(e===null||t===null)return e===t;if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n++)if(e[n]!==t[n])return!1;return!0}async function A(e,t){if(e.has)return e.has(t);return x(e,t)}function D(e,t,n){if(e.keys)return e.keys(t,n);return u(e,t,n)}async function E(e,t){if(e.count)return e.count(t);return v(e,t)}async function I(e,t){if(e.deletePrefix)return e.deletePrefix(t);return k(e,t)}async function ae(e,t){c("batch operations",t.length),await e.batch(t)}async function z(e,t,n){if(c("conditionalBatch conditions",t.length),c("conditionalBatch operations",n.length),h(e,"conditionalBatch","storageConditionalBatch"),!e.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return e.conditionalBatch(t,n)}var a=(e)=>String(e).padStart(16,"0"),V="0",N="1",C=(e,t,n,i)=>`sig:${r(e)}:${r(t)}:${i}:${r(n)}`,le={workflow:(e)=>`wf:${r(e)}`,checkpoint:(e)=>`wf:${r(e)}:ckpt`,checkpointHistory:(e,t)=>`wf:${r(e)}:ckpt:${String(t).padStart(10,"0")}`,timelinePrefix:(e)=>`wf:${r(e)}:timeline:`,timeline:(e,t)=>`wf:${r(e)}:timeline:${String(t).padStart(10,"0")}`,schedule:(e)=>`schedule:${r(e)}`,scheduleTick:(e,t)=>`schedule-due:${String(e).padStart(16,"0")}:${r(t)}`,scheduleRun:(e)=>`schedule-run:${r(e)}`,scheduleRunLink:(e)=>`schedule-run-link:${r(e)}`,scheduleRunBySchedulePrefix:(e)=>`schedule-run-by-schedule:${r(e)}:`,scheduleRunBySchedule:(e,t)=>`schedule-run-by-schedule:${r(e)}:${r(t)}`,operation:(e,t,n)=>`op:${e}:${a(t)}:${n}`,operationInflight:(e)=>`op:inflight:${e}`,operationQueued:(e)=>`op:queued:${e}`,operationResolved:(e)=>`op:resolved:${e}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(e,t,n)=>`audit:bulk:${a(e)}:${r(t)}:${r(n)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(e,t)=>`op:resolved-by-time:${a(e)}:${r(t)}`,asyncActivity:(e,t)=>`async-act:v1:${r(e)}:${r(t)}`,asyncActivityResolution:(e,t)=>`async-act:v1:${r(e)}:${r(t)}:resolution`,activityReconciliationPrefix:(e)=>`actrec:v1:${r(e)}:`,activityReconciliation:(e,t,n)=>`actrec:v1:${r(e)}:${r(t)}:${n}`,eventPrefix:(e)=>`ev:${r(e)}:`,event:(e,t)=>`ev:${r(e)}:${String(t).padStart(10,"0")}`,eventHead:(e)=>`ev:${r(e)}:head`,eventWatermark:(e)=>`ev:${r(e)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(e)=>`fleet-event:${String(e).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(e)=>`fleet-event-by-workflow:${r(e)}:`,fleetEventByWorkflow:(e,t)=>`fleet-event-by-workflow:${r(e)}:${String(t).padStart(10,"0")}`,signal:(e,t,n)=>C(e,t,n,N),startSignal:(e,t,n)=>C(e,t,n,V),signalSequence:(e)=>`sigseq:v1:${r(e)}`,signalAcceptedResponsePrefix:(e)=>`sigres:v1:${r(e)}:`,signalAcceptedResponse:(e,t,n)=>`sigres:v1:${r(e)}:${r(t)}:${r(n)}`,deadline:(e,t)=>`wf-deadline:${a(e)}:${r(t)}`,terminalCleanup:(e,t)=>`wf-cleanup:${a(e)}:${r(t)}`,teardownTimer:(e,t)=>`wf-teardown:${a(e)}:${r(t)}`,delayedStart:(e,t)=>`wf-delayed:${a(e)}:${r(t)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(e,t)=>`wf-terminal:${a(e)}:${r(t)}`,attribute:(e)=>`attr:${r(e)}`,attributeIndex:(e,t,n)=>`idx:${e}:${t}:${r(n)}`,tagIndex:(e,t)=>`tag:${r(e)}:${r(t)}`,updatePrefix:(e)=>`upd:${r(e)}:`,update:(e,t)=>`upd:${r(e)}:${t}`,updateResponse:(e)=>`upr:${e}`,updateIdempotency:(e,t)=>`upk:${r(e)}:${t}`,startIdempotency:(e)=>`start-idem:${r(e)}`,startIdempotencySignalId:(e)=>`start-idem:${e}`,livenessPrefix:()=>"liveness:",liveness:(e)=>`liveness:${r(e)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",...R,budget:(e,t,n)=>`budget:${e}:${t}:${n}`,review:(e,t)=>`review:${r(e)}:${t}`,workflowHeaders:(e)=>`wf-headers:${r(e)}`,childCancellationPrefix:(e)=>`child-cancel:${r(e)}:`,childCancellation:(e,t)=>`child-cancel:${r(e)}:${r(t)}`,childWorkflowByParentPrefix:(e,t)=>`child-by-parent:${r(e)}:${t===void 0?"":`${r(t)}:`}`,childWorkflowByParent:(e,t,n)=>`child-by-parent:${r(e)}:${t===void 0?"":`${r(t)}:`}${r(n)}`,terminalCleanupNeeded:(e)=>`wf-cleanup-needed:${r(e)}`,workflowConcurrency:(e,t)=>`wf-concurrency:${r(e)}:${r(t)}`,workflowConcurrencyHolder:(e)=>`wf-concurrency-holder:${r(e)}`,workflowHasServices:(e)=>`wf-has-services:${r(e)}`,finalizerState:(e)=>`wf-finalizer-state:${r(e)}`,teardownOwed:(e)=>`wf-teardown-needed:${r(e)}`,teardownSucceeded:(e)=>`wf-teardown-succeeded:${r(e)}`,teardownDeadLetter:(e)=>`wf-teardown-deadletter:${r(e)}`,offload:(e,t)=>`offload:${r(e)}:${t}`,archive:(e,t)=>`archive:${r(e)}:${t}`,stateExecution:(e,t)=>`state:execution:${r(e)}:${r(t)}`,stateWorkflow:(e,t)=>`state:workflow-scope:${y}:${r(e)}:${r(t)}`,streamChunkPrefix:(e,t)=>`blob:${r(e)}:${t}:chunk:`,streamChunk:(e,t,n)=>`blob:${r(e)}:${t}:chunk:${String(n).padStart(10,"0")}`,streamTail:(e,t)=>`blob:${r(e)}:${t}:tail`,streamMetadata:(e,t)=>`blob:${r(e)}:${t}:meta`,budgetCharged:(e)=>`budget-charged:${e}`,toolEffect:(e,t,n)=>`tool-effect:${r(e)}:${t}:${n}`,workflowVisibilityStatus:(e,t)=>`wf-idx-status:${r(e)}:${r(t)}`,workflowVisibilityType:(e,t)=>`wf-idx-type:${r(e)}:${r(t)}`,workflowVisibilityCreated:(e,t)=>`wf-idx-created:${a(e)}:${r(t)}`,workflowVisibilityUpdated:(e,t)=>`wf-idx-updated:${a(e)}:${r(t)}`,workflowVisibilityDeadline:(e,t)=>`wf-idx-deadline:${a(e)}:${r(t)}`,workflowVisibilityManifest:(e)=>`wf-idx-manifest:${r(e)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function H(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={},n=!1;for(let s of["gt","gte","lt","lte"]){let o=e[s];if(o===void 0)continue;if(typeof o!=="string")throw Error("deleteRange bounds must be strings");t[s]=o,n=!0}if(!n)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let i=H(e.limit);if(i!==void 0)t.limit=i;return t}async function _(e,t,n){let i=p(n);if(e.deleteRange)return e.deleteRange(t,i);return O(e,t,i)}function b(e){return e.replaceAll(/:+$/g,"")}function W(e,t){let n=b(e),i=b(t);if(n.length===0)return i;if(i.length===0)return n;return`${n}:${i}`}class w{#e;#n;constructor(e,t){this.#e=e,this.#n=b(t)}#t(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.#t(t.key),value:t.value};return{type:"delete",key:this.#t(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.#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}#s(e={}){let t=this.#o(e);if(e.reverse!==void 0)t.reverse=e.reverse;return t}#a(e){return this.#o(e)}capabilities(){return this.#e.capabilities()}scoped(e){return new w(this.#e,W(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[n,i]of this.#e.scan(this.#t(e),this.#s(t)))yield[this.#i(n),i]}async batch(e){c("batch operations",e.length),await this.#e.batch(this.#r(e))}async conditionalBatch(e,t){return z(this.#e,e.map((n)=>({key:this.#t(n.key),expectedValue:n.expectedValue})),this.#r(t))}async has(e){return A(this.#e,this.#t(e))}async deletePrefix(e){return I(this.#e,this.#t(e))}async deleteRange(e,t){let n=this.#a(p(t));return _(this.#e,this.#t(e),n)}async*keys(e,t){for await(let n of D(this.#e,this.#t(e),this.#s(t)))yield this.#i(n)}async count(e){return E(this.#e,this.#t(e))}[Symbol.dispose](){this.#e[Symbol.dispose]()}}function T(e,t){return new w(e,t)}class q{#e;constructor(){this.#e=new Map}capabilities(){return{persistence:"ephemeral",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#n(e,t,n){return e>=t&&e<n}#t(e,t){let n=[];for(let i of this.#e.keys())if(this.#n(i,e,t))n.push(i);return n.toSorted()}async get(e){return this.#e.get(e)??null}async put(e,t){this.#e.set(e,t)}async delete(e){this.#e.delete(e)}async*scan(e,t={}){let{limit:n,reverse:i}=t,s=d(e),o=this.#t(e,s);if(o=o.filter((g)=>f(g,t)),i)o.reverse();let l=0;for(let g of o){if(n!==void 0&&l>=n)break;let S=this.#e.get(g);if(S!==void 0)yield[g,S],l++}}async batch(e){c("batch operations",e.length),this.#r(e)}#r(e){for(let t of e)if(t.type==="put")this.#e.set(t.key,t.value);else this.#e.delete(t.key)}async conditionalBatch(e,t){c("conditionalBatch conditions",e.length),c("conditionalBatch operations",t.length);for(let n of e){let i=this.#e.get(n.key)??null;if(!B(i,n.expectedValue))return!1}return this.#r(t),!0}async has(e){return this.#e.has(e)}async deletePrefix(e){let t=d(e),n=this.#t(e,t);for(let i of n)this.#e.delete(i);return n.length}async deleteRange(e,t){let n=p(t),i=d(e),s=this.#t(e,i).filter((l)=>f(l,n)),o=n.limit===void 0?s:s.slice(0,n.limit);for(let l of o)this.#e.delete(l);return o.length}async*keys(e,t={}){let{limit:n,reverse:i}=t,s=d(e),o=this.#t(e,s);if(o=o.filter((g)=>f(g,t)),i)o.reverse();let l=0;for(let g of o){if(n!==void 0&&l>=n)break;yield g,l++}}async count(e){let t=d(e);return this.#t(e,t).length}scoped(e){return T(this,e)}get size(){return this.#e.size}clear(){this.#e.clear()}snapshot(){let e=new Map;for(let[t,n]of this.#e)e.set(t,new Uint8Array(n));return e}[Symbol.dispose](){this.#e.clear()}}export{q as MemoryStorage};
|