poe-code 11.0.30 → 11.0.31

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-44GTB3XV.js";
23
+ } from "./chunks/chunk-5IU6NPGM.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-XPDK2VVP.js";
35
+ } from "./chunks/chunk-NPXVDTLX.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-XPDK2VVP.js";
6
+ } from "./chunks/chunk-NPXVDTLX.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-44GTB3XV.js";
30
+ } from "./chunks/chunk-5IU6NPGM.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-XPDK2VVP.js";
52
+ } from "./chunks/chunk-NPXVDTLX.js";
53
53
  import "./chunks/chunk-4YIDX44G.js";
54
54
 
55
55
  // packages/safejs/src/runner/run-harness.ts
@@ -520,10 +520,14 @@ function stableStringify(value) {
520
520
  return JSON.stringify(normalize(value, seen));
521
521
  }
522
522
  function normalize(value, seen) {
523
+ if (typeof value === "function")
524
+ return undefined;
525
+ if (typeof value === "bigint")
526
+ throw new TypeError("Do not know how to serialize a BigInt");
523
527
  if (value === undefined)
524
- return { $type: "undefined" };
528
+ return Object.assign(Object.create(null), { $type: "undefined" });
525
529
  if (typeof value === "number" && !Number.isFinite(value))
526
- return { $type: "number", value: String(value) };
530
+ return Object.assign(Object.create(null), { $type: "number", value: String(value) });
527
531
  if (value === null || typeof value !== "object")
528
532
  return value;
529
533
  if (seen.has(value))
@@ -532,6 +536,7 @@ function normalize(value, seen) {
532
536
  try {
533
537
  if (Array.isArray(value)) {
534
538
  const normalized = new Array(value.length);
539
+ Object.setPrototypeOf(normalized, null);
535
540
  for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(value))) {
536
541
  if (!isArrayIndexKey(key))
537
542
  continue;
@@ -542,9 +547,18 @@ function normalize(value, seen) {
542
547
  }
543
548
  return normalized;
544
549
  }
545
- return Object.fromEntries(Object.keys(value)
546
- .sort()
547
- .map((key) => [key, normalize(value[key], seen)]));
550
+ const normalized = Object.create(null);
551
+ const descriptors = Object.getOwnPropertyDescriptors(value);
552
+ for (const key of Object.keys(descriptors).sort()) {
553
+ const descriptor = descriptors[key];
554
+ if (!descriptor.enumerable)
555
+ continue;
556
+ if (!("value" in descriptor)) {
557
+ throw new TypeError("Host call arguments cannot contain accessor properties.");
558
+ }
559
+ defineOwnDataProperty(normalized, key, normalize(descriptor.value, seen));
560
+ }
561
+ return normalized;
548
562
  }
549
563
  finally {
550
564
  seen.delete(value);