poe-code 11.0.23 → 11.0.25

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.
@@ -20,7 +20,7 @@ import {
20
20
  parseMcpConfig,
21
21
  splitFrontmatter,
22
22
  withBrokenPipeGuard
23
- } from "./chunks/chunk-LRGHMX22.js";
23
+ } from "./chunks/chunk-BGO2B5YI.js";
24
24
  import {
25
25
  Budget,
26
26
  SandboxError,
@@ -32,7 +32,7 @@ import {
32
32
  replaceErrorStack,
33
33
  restore,
34
34
  run
35
- } from "./chunks/chunk-3627FMJF.js";
35
+ } from "./chunks/chunk-DXJLYASS.js";
36
36
  import "./chunks/chunk-4YIDX44G.js";
37
37
 
38
38
  // packages/safejs/src/cli.ts
@@ -3,7 +3,7 @@ import {
3
3
  createReplayableRandom,
4
4
  lint,
5
5
  run
6
- } from "./chunks/chunk-3627FMJF.js";
6
+ } from "./chunks/chunk-DXJLYASS.js";
7
7
  import "./chunks/chunk-4YIDX44G.js";
8
8
  export {
9
9
  Budget,
@@ -27,7 +27,7 @@ import {
27
27
  runWithSpawnUsageAccumulator,
28
28
  splitFrontmatter,
29
29
  supportsSpawnMode
30
- } from "./chunks/chunk-LRGHMX22.js";
30
+ } from "./chunks/chunk-BGO2B5YI.js";
31
31
  import {
32
32
  Budget,
33
33
  FileSnapshotBackend,
@@ -49,7 +49,7 @@ import {
49
49
  registerPendingHostCallPolicy,
50
50
  restore,
51
51
  run
52
- } from "./chunks/chunk-3627FMJF.js";
52
+ } from "./chunks/chunk-DXJLYASS.js";
53
53
  import "./chunks/chunk-4YIDX44G.js";
54
54
 
55
55
  // packages/safejs/src/runner/run-harness.ts
@@ -227,7 +227,7 @@ function isAssignableSandboxTarget(value) {
227
227
  !isSandboxRegex(value));
228
228
  }
229
229
  async function arrayFromSandboxValues(args, budget) {
230
- const [items, mapFn] = args;
230
+ const [items, mapFn, thisValue] = args;
231
231
  const iterator = getSandboxIterator(items);
232
232
  const values = iterator === undefined
233
233
  ? Reflect.apply(Array.from, Array, [items])
@@ -240,7 +240,7 @@ async function arrayFromSandboxValues(args, budget) {
240
240
  }
241
241
  const mappedValues = [];
242
242
  for (const [index, value] of values.entries()) {
243
- const result = await mapFn.call([value, index]);
243
+ const result = await mapFn.call([value, index], { stack: [], thisValue });
244
244
  if (isSandboxPromise(result) && result.synchronousPrefix !== undefined) {
245
245
  await result.synchronousPrefix;
246
246
  }
@@ -2286,19 +2286,19 @@ async function evaluateNumberMethodCall(node, target, methodName, context) {
2286
2286
  function createArrayMethodOptions(context) {
2287
2287
  return {
2288
2288
  budget: context.budget,
2289
- callClosure: (closure, args, stack) => invokeSandboxClosure(closure, args, context, stack)
2289
+ callClosure: (closure, args, stack, thisValue) => invokeSandboxClosure(closure, args, context, stack, undefined, thisValue)
2290
2290
  };
2291
2291
  }
2292
2292
  function createMapMethodOptions(context) {
2293
2293
  return {
2294
2294
  budget: context.budget,
2295
- callClosure: (closure, args, stack) => invokeSandboxClosure(closure, args, context, stack)
2295
+ callClosure: (closure, args, stack, thisValue) => invokeSandboxClosure(closure, args, context, stack, undefined, thisValue)
2296
2296
  };
2297
2297
  }
2298
2298
  function createSetMethodOptions(context) {
2299
2299
  return {
2300
2300
  budget: context.budget,
2301
- callClosure: (closure, args, stack) => invokeSandboxClosure(closure, args, context, stack)
2301
+ callClosure: (closure, args, stack, thisValue) => invokeSandboxClosure(closure, args, context, stack, undefined, thisValue)
2302
2302
  };
2303
2303
  }
2304
2304
  function createFunctionMethodOptions(context) {
@@ -3,7 +3,7 @@ import { type SandboxArray, type SandboxClosure, type SandboxValue } from "../va
3
3
  export type ArrayMethodName = "map" | "filter" | "find" | "findIndex" | "findLast" | "findLastIndex" | "some" | "every" | "reduce" | "reduceRight" | "forEach" | "flatMap" | "flat" | "includes" | "indexOf" | "lastIndexOf" | "join" | "slice" | "concat" | "splice" | "fill" | "copyWithin" | "at" | "sort" | "reverse" | "toSorted" | "toReversed" | "toSpliced" | "with" | "push" | "pop" | "shift" | "unshift";
4
4
  export type ArrayMethodOptions = {
5
5
  budget: Budget;
6
- callClosure: (closure: SandboxClosure, args: readonly SandboxValue[], stack: readonly string[]) => Promise<SandboxValue>;
6
+ callClosure: (closure: SandboxClosure, args: readonly SandboxValue[], stack: readonly string[], thisValue?: SandboxValue) => Promise<SandboxValue>;
7
7
  };
8
8
  export declare function getArrayMember(value: SandboxArray, property: string | number, options: ArrayMethodOptions): SandboxValue | undefined;
9
9
  export declare function isArrayMethodName(property: string | number): property is ArrayMethodName;
@@ -96,30 +96,30 @@ export async function callArrayMethod(value, methodName, args, options, stack =
96
96
  async function callArrayMethodUnlocked(value, methodName, args, options, stack) {
97
97
  switch (methodName) {
98
98
  case "map":
99
- return budgetProducedValue(await mapArray(value, getRequiredCallback(methodName, args[0]), options, stack), options.budget);
99
+ return budgetProducedValue(await mapArray(value, getRequiredCallback(methodName, args[0]), options, stack, args[1]), options.budget);
100
100
  case "filter":
101
- return budgetProducedValue(await filterArray(value, getRequiredCallback(methodName, args[0]), options, stack), options.budget);
101
+ return budgetProducedValue(await filterArray(value, getRequiredCallback(methodName, args[0]), options, stack, args[1]), options.budget);
102
102
  case "find":
103
- return budgetProducedValue(await findInArray(value, getRequiredCallback(methodName, args[0]), options, stack), options.budget);
103
+ return budgetProducedValue(await findInArray(value, getRequiredCallback(methodName, args[0]), options, stack, args[1]), options.budget);
104
104
  case "findIndex":
105
- return await findIndexInArray(value, getRequiredCallback(methodName, args[0]), options, stack);
105
+ return await findIndexInArray(value, getRequiredCallback(methodName, args[0]), options, stack, args[1]);
106
106
  case "findLast":
107
- return budgetProducedValue(await findLastInArray(value, getRequiredCallback(methodName, args[0]), options, stack), options.budget);
107
+ return budgetProducedValue(await findLastInArray(value, getRequiredCallback(methodName, args[0]), options, stack, args[1]), options.budget);
108
108
  case "findLastIndex":
109
- return await findLastIndexInArray(value, getRequiredCallback(methodName, args[0]), options, stack);
109
+ return await findLastIndexInArray(value, getRequiredCallback(methodName, args[0]), options, stack, args[1]);
110
110
  case "some":
111
- return await someInArray(value, getRequiredCallback(methodName, args[0]), options, stack);
111
+ return await someInArray(value, getRequiredCallback(methodName, args[0]), options, stack, args[1]);
112
112
  case "every":
113
- return await everyInArray(value, getRequiredCallback(methodName, args[0]), options, stack);
113
+ return await everyInArray(value, getRequiredCallback(methodName, args[0]), options, stack, args[1]);
114
114
  case "reduce":
115
115
  return budgetProducedValue(await reduceArray(value, getRequiredCallback(methodName, args[0]), args.length > 1, args[1], options, stack), options.budget);
116
116
  case "reduceRight":
117
117
  return budgetProducedValue(await reduceRightArray(value, getRequiredCallback(methodName, args[0]), args.length > 1, args[1], options, stack), options.budget);
118
118
  case "forEach":
119
- await forEachArray(value, getRequiredCallback(methodName, args[0]), options, stack);
119
+ await forEachArray(value, getRequiredCallback(methodName, args[0]), options, stack, args[1]);
120
120
  return undefined;
121
121
  case "flatMap":
122
- return budgetProducedValue(await flatMapArray(value, getRequiredCallback(methodName, args[0]), options, stack), options.budget);
122
+ return budgetProducedValue(await flatMapArray(value, getRequiredCallback(methodName, args[0]), options, stack, args[1]), options.budget);
123
123
  case "flat":
124
124
  return budgetProducedValue(flattenArray(value, toIntegerOrInfinity(args[0] ?? 1), options.budget), options.budget);
125
125
  case "includes":
@@ -264,83 +264,83 @@ function getRequiredCallback(methodName, value) {
264
264
  }
265
265
  return value;
266
266
  }
267
- async function mapArray(value, callback, options, stack) {
267
+ async function mapArray(value, callback, options, stack, thisValue) {
268
268
  const length = value.length;
269
269
  const result = new Array(length);
270
270
  for (let index = 0; index < length; index += 1) {
271
271
  if (!(index in value)) {
272
272
  continue;
273
273
  }
274
- result[index] = await callArrayCallback(callback, value[index], index, value, options, stack);
274
+ result[index] = await callArrayCallback(callback, value[index], index, value, options, stack, thisValue);
275
275
  }
276
276
  return result;
277
277
  }
278
- async function filterArray(value, callback, options, stack) {
278
+ async function filterArray(value, callback, options, stack, thisValue) {
279
279
  const length = value.length;
280
280
  const result = [];
281
281
  for (let index = 0; index < length; index += 1) {
282
282
  if (!(index in value)) {
283
283
  continue;
284
284
  }
285
- if (await callArrayCallback(callback, value[index], index, value, options, stack)) {
285
+ if (await callArrayCallback(callback, value[index], index, value, options, stack, thisValue)) {
286
286
  result.push(value[index]);
287
287
  }
288
288
  }
289
289
  return result;
290
290
  }
291
- async function findInArray(value, callback, options, stack) {
292
- const index = await findIndexInArray(value, callback, options, stack);
291
+ async function findInArray(value, callback, options, stack, thisValue) {
292
+ const index = await findIndexInArray(value, callback, options, stack, thisValue);
293
293
  return index < 0 ? undefined : value[index];
294
294
  }
295
- async function findIndexInArray(value, callback, options, stack) {
295
+ async function findIndexInArray(value, callback, options, stack, thisValue) {
296
296
  const length = value.length;
297
297
  for (let index = 0; index < length; index += 1) {
298
298
  const entry = index in value ? value[index] : undefined;
299
- if (await callArrayCallback(callback, entry, index, value, options, stack)) {
299
+ if (await callArrayCallback(callback, entry, index, value, options, stack, thisValue)) {
300
300
  return index;
301
301
  }
302
302
  }
303
303
  return -1;
304
304
  }
305
- async function findLastInArray(value, callback, options, stack) {
305
+ async function findLastInArray(value, callback, options, stack, thisValue) {
306
306
  const length = value.length;
307
307
  for (let index = length - 1; index >= 0; index -= 1) {
308
308
  const entry = index in value ? value[index] : undefined;
309
- if (await callArrayCallback(callback, entry, index, value, options, stack)) {
309
+ if (await callArrayCallback(callback, entry, index, value, options, stack, thisValue)) {
310
310
  return entry;
311
311
  }
312
312
  }
313
313
  return undefined;
314
314
  }
315
- async function findLastIndexInArray(value, callback, options, stack) {
315
+ async function findLastIndexInArray(value, callback, options, stack, thisValue) {
316
316
  const length = value.length;
317
317
  for (let index = length - 1; index >= 0; index -= 1) {
318
318
  const entry = index in value ? value[index] : undefined;
319
- if (await callArrayCallback(callback, entry, index, value, options, stack)) {
319
+ if (await callArrayCallback(callback, entry, index, value, options, stack, thisValue)) {
320
320
  return index;
321
321
  }
322
322
  }
323
323
  return -1;
324
324
  }
325
- async function someInArray(value, callback, options, stack) {
325
+ async function someInArray(value, callback, options, stack, thisValue) {
326
326
  const length = value.length;
327
327
  for (let index = 0; index < length; index += 1) {
328
328
  if (!(index in value)) {
329
329
  continue;
330
330
  }
331
- if (await callArrayCallback(callback, value[index], index, value, options, stack)) {
331
+ if (await callArrayCallback(callback, value[index], index, value, options, stack, thisValue)) {
332
332
  return true;
333
333
  }
334
334
  }
335
335
  return false;
336
336
  }
337
- async function everyInArray(value, callback, options, stack) {
337
+ async function everyInArray(value, callback, options, stack, thisValue) {
338
338
  const length = value.length;
339
339
  for (let index = 0; index < length; index += 1) {
340
340
  if (!(index in value)) {
341
341
  continue;
342
342
  }
343
- if (!(await callArrayCallback(callback, value[index], index, value, options, stack))) {
343
+ if (!(await callArrayCallback(callback, value[index], index, value, options, stack, thisValue))) {
344
344
  return false;
345
345
  }
346
346
  }
@@ -388,23 +388,23 @@ async function reduceFromRight(value, callback, accumulator, startIndex, length,
388
388
  }
389
389
  return current;
390
390
  }
391
- async function forEachArray(value, callback, options, stack) {
391
+ async function forEachArray(value, callback, options, stack, thisValue) {
392
392
  const length = value.length;
393
393
  for (let index = 0; index < length; index += 1) {
394
394
  if (!(index in value)) {
395
395
  continue;
396
396
  }
397
- await callArrayCallback(callback, value[index], index, value, options, stack);
397
+ await callArrayCallback(callback, value[index], index, value, options, stack, thisValue);
398
398
  }
399
399
  }
400
- async function flatMapArray(value, callback, options, stack) {
400
+ async function flatMapArray(value, callback, options, stack, thisValue) {
401
401
  const length = value.length;
402
402
  const result = [];
403
403
  for (let index = 0; index < length; index += 1) {
404
404
  if (!(index in value)) {
405
405
  continue;
406
406
  }
407
- const mapped = await callArrayCallback(callback, value[index], index, value, options, stack);
407
+ const mapped = await callArrayCallback(callback, value[index], index, value, options, stack, thisValue);
408
408
  if (Array.isArray(mapped)) {
409
409
  for (let mappedIndex = 0; mappedIndex < mapped.length; mappedIndex += 1) {
410
410
  if (!(mappedIndex in mapped)) {
@@ -477,8 +477,8 @@ async function compareEntries(left, right, comparator, options, stack) {
477
477
  const result = Number(await options.callClosure(comparator, [left, right], stack));
478
478
  return Number.isNaN(result) ? 0 : result;
479
479
  }
480
- async function callArrayCallback(callback, value, index, array, options, stack) {
481
- return options.callClosure(callback, [value, index, array], stack);
480
+ async function callArrayCallback(callback, value, index, array, options, stack, thisValue) {
481
+ return options.callClosure(callback, [value, index, array], stack, thisValue);
482
482
  }
483
483
  function findNextDefinedIndex(value, startIndex, direction, length) {
484
484
  for (let index = startIndex; direction > 0 ? index < length : index >= 0; index += direction) {
@@ -3,7 +3,7 @@ import { type SandboxClosure, type SandboxMap, type SandboxValue } from "../valu
3
3
  export type MapMethodName = "get" | "set" | "has" | "delete" | "clear" | "forEach" | "keys" | "values" | "entries";
4
4
  export type MapMethodOptions = {
5
5
  budget: Budget;
6
- callClosure: (closure: SandboxClosure, args: readonly SandboxValue[], stack: readonly string[]) => Promise<SandboxValue>;
6
+ callClosure: (closure: SandboxClosure, args: readonly SandboxValue[], stack: readonly string[], thisValue?: SandboxValue) => Promise<SandboxValue>;
7
7
  };
8
8
  export declare function isMapMethodName(value: string | number): value is MapMethodName;
9
9
  export declare function getMapMember(target: SandboxMap, property: string | number, options: MapMethodOptions): SandboxValue | undefined;
@@ -57,7 +57,7 @@ export async function callMapMethod(target, methodName, args, options, stack = [
57
57
  const entries = [...target.entries];
58
58
  for (let index = 0; index < entries.length; index += 1) {
59
59
  const [key, value] = entries[index];
60
- await options.callClosure(callback, [value, key, target], stack);
60
+ await options.callClosure(callback, [value, key, target], stack, args[1]);
61
61
  }
62
62
  }
63
63
  finally {
@@ -3,7 +3,7 @@ import { type SandboxClosure, type SandboxSet, type SandboxValue } from "../valu
3
3
  export type SetMethodName = "add" | "has" | "delete" | "clear" | "forEach" | "keys" | "values" | "entries";
4
4
  export type SetMethodOptions = {
5
5
  budget: Budget;
6
- callClosure: (closure: SandboxClosure, args: readonly SandboxValue[], stack: readonly string[]) => Promise<SandboxValue>;
6
+ callClosure: (closure: SandboxClosure, args: readonly SandboxValue[], stack: readonly string[], thisValue?: SandboxValue) => Promise<SandboxValue>;
7
7
  };
8
8
  export declare function isSetMethodName(value: string | number): value is SetMethodName;
9
9
  export declare function getSetMember(target: SandboxSet, property: string | number, options: SetMethodOptions): SandboxValue | undefined;
@@ -54,7 +54,7 @@ export async function callSetMethod(target, methodName, args, options, stack = [
54
54
  const values = [...target.values];
55
55
  for (let index = 0; index < values.length; index += 1) {
56
56
  const value = values[index];
57
- await options.callClosure(callback, [value, value, target], stack);
57
+ await options.callClosure(callback, [value, value, target], stack, args[1]);
58
58
  }
59
59
  }
60
60
  finally {
@@ -20,6 +20,7 @@ export function restore(snapshot, options) {
20
20
  validateDumpEnvelope(snapshot);
21
21
  validateSnapshotMigration(snapshot.migration, snapshot.sourceHash);
22
22
  if (snapshot.executionSemantics !== EXECUTION_SEMANTICS &&
23
+ snapshot.executionSemantics !== "jobs-v6" &&
23
24
  (snapshot.executionSemantics !== undefined ||
24
25
  snapshot.promiseReplay !== undefined ||
25
26
  snapshot.replay !== undefined ||
@@ -71,6 +71,8 @@ export function run(source, options = {}) {
71
71
  options.signal?.addEventListener("abort", captureCancellationSnapshot, { once: true });
72
72
  try {
73
73
  const restoredSnapshot = options.snapshot === undefined ? undefined : restore(options.snapshot, { source });
74
+ const executionSemantics = restoredSnapshot?.executionSemantics === "jobs-v6" ? "jobs-v6" : EXECUTION_SEMANTICS;
75
+ const convertInitialInput = (convert) => executionSemantics === "jobs-v6" ? convert() : promiseReplayContext.exit(convert);
74
76
  if (restoredSnapshot !== undefined) {
75
77
  leaveSnapshotRun = enterSnapshotRun(restoredSnapshot);
76
78
  }
@@ -93,7 +95,7 @@ export function run(source, options = {}) {
93
95
  resumeNodeId: restoredSnapshot.pendingAwaits?.[0]?.nodeId
94
96
  }
95
97
  : undefined;
96
- const callerBindings = options.bindings === undefined
98
+ const callerBindings = convertInitialInput(() => options.bindings === undefined
97
99
  ? {}
98
100
  : wrapCallerInjectedBindings(options.bindings, {
99
101
  budget,
@@ -101,7 +103,7 @@ export function run(source, options = {}) {
101
103
  moduleId: "<bindings>",
102
104
  signal: options.signal,
103
105
  lifecycle
104
- });
106
+ }));
105
107
  const builtinBindings = {
106
108
  ...createConsoleJsonGlobals({
107
109
  budget,
@@ -126,7 +128,7 @@ export function run(source, options = {}) {
126
128
  }),
127
129
  ...createRegexGlobals()
128
130
  };
129
- const importMeta = deepCopyToSandbox(options.importMeta ?? {});
131
+ const importMeta = convertInitialInput(() => deepCopyToSandbox(options.importMeta ?? {}));
130
132
  if (restoredSnapshot?.migration !== undefined) {
131
133
  if (Object.hasOwn(importMeta, "migration"))
132
134
  throw new TypeError("import.meta.migration is reserved for migrated checkpoint state.");
@@ -139,15 +141,15 @@ export function run(source, options = {}) {
139
141
  }
140
142
  const initialInputs = prepareReplayInputs({
141
143
  bindings: callerBindings,
142
- imports: resolveModuleImports(module, options.modules, {
144
+ imports: convertInitialInput(() => resolveModuleImports(module, options.modules, {
143
145
  budget,
144
146
  hostCalls,
145
147
  signal: options.signal,
146
148
  allowMissing: restoredSnapshot?.initialInputs !== undefined
147
- }),
148
- entryPointArgs: options.entryPointArgs === undefined
149
+ })),
150
+ entryPointArgs: convertInitialInput(() => options.entryPointArgs === undefined
149
151
  ? undefined
150
- : deepCopyToSandbox([...options.entryPointArgs]),
152
+ : deepCopyToSandbox([...options.entryPointArgs])),
151
153
  importMeta
152
154
  }, restoredSnapshot?.initialInputs, (promise, id) => {
153
155
  if (promise !== undefined)
@@ -188,6 +190,7 @@ export function run(source, options = {}) {
188
190
  });
189
191
  snapshotScheduler = activeSnapshotScheduler;
190
192
  createFailureSnapshot = () => createRunSnapshot({
193
+ executionSemantics,
191
194
  migration: restoredSnapshot?.migration,
192
195
  bindings: executionScope.snapshot().bindings,
193
196
  clock: options.clock,
@@ -214,6 +217,7 @@ export function run(source, options = {}) {
214
217
  }
215
218
  const interpreterSnapshot = yieldPoint.snapshot();
216
219
  snapshot = createRunSnapshot({
220
+ executionSemantics,
217
221
  migration: restoredSnapshot?.migration,
218
222
  bindings: interpreterSnapshot.bindings,
219
223
  clock: options.clock,
@@ -258,6 +262,7 @@ export function run(source, options = {}) {
258
262
  }
259
263
  const interpreterSnapshot = yieldPoint.snapshot();
260
264
  snapshot = createRunSnapshot({
265
+ executionSemantics,
261
266
  migration: restoredSnapshot?.migration,
262
267
  bindings: interpreterSnapshot.bindings,
263
268
  clock: options.clock,
@@ -296,6 +301,7 @@ export function run(source, options = {}) {
296
301
  replayError = error.message;
297
302
  }
298
303
  const snapshot = createRunSnapshot({
304
+ executionSemantics,
299
305
  migration: restoredSnapshot?.migration,
300
306
  bindings: executionScope.snapshot().bindings,
301
307
  clock: options.clock,
@@ -459,7 +465,7 @@ function createExecutableNode(module) {
459
465
  function createRunSnapshot(input) {
460
466
  return {
461
467
  version: DUMP_FORMAT_VERSION,
462
- executionSemantics: EXECUTION_SEMANTICS,
468
+ executionSemantics: input.executionSemantics,
463
469
  sourceHash: input.sourceHash,
464
470
  ...(input.migration === undefined ? {} : { migration: structuredClone(input.migration) }),
465
471
  bindings: input.bindings,
@@ -1,5 +1,5 @@
1
1
  export declare const DUMP_FORMAT_VERSION = 1;
2
- export declare const EXECUTION_SEMANTICS = "jobs-v6";
2
+ export declare const EXECUTION_SEMANTICS = "jobs-v7";
3
3
  export type DumpableSnapshot = {
4
4
  sourceHash: string;
5
5
  [key: string]: unknown;
@@ -1,5 +1,5 @@
1
1
  export const DUMP_FORMAT_VERSION = 1;
2
- export const EXECUTION_SEMANTICS = "jobs-v6";
2
+ export const EXECUTION_SEMANTICS = "jobs-v7";
3
3
  import { assertSnapshotGraphDepth } from "../graph-depth.js";
4
4
  import { sandboxErrorTypes } from "../error/shape.js";
5
5
  import { getSandboxArgumentEntries, isSandboxArguments } from "../interp/arguments.js";
@@ -2,8 +2,8 @@ import { HostCallJournal } from "../interp/host-call.js";
2
2
  import { decodeReplayData } from "./replay-data.js";
3
3
  import { validateSnapshotData } from "./validation.js";
4
4
  export function validateMigrationSemantics(value) {
5
- if (!["jobs-v1", "jobs-v2", "jobs-v3", "jobs-v4", "jobs-v5", "jobs-v6"].includes(value))
6
- throw new TypeError("Migration requires a supported execution-semantics marker (jobs-v1 through jobs-v6).");
5
+ if (!["jobs-v1", "jobs-v2", "jobs-v3", "jobs-v4", "jobs-v5", "jobs-v6", "jobs-v7"].includes(value))
6
+ throw new TypeError("Migration requires a supported execution-semantics marker (jobs-v1 through jobs-v7).");
7
7
  }
8
8
  export function validateMigrationJournal(sourceHash, replay, hostCalls = []) {
9
9
  if (replay === undefined)