@poe-platform/safe-js 0.1.223 → 0.1.225

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.
@@ -27,7 +27,7 @@ import {
27
27
  validateMigrationSemantics,
28
28
  validateSnapshotData,
29
29
  validateSnapshotMigration
30
- } from "./chunk-PEHO3DVD.js";
30
+ } from "./chunk-P2JEDD2J.js";
31
31
 
32
32
  // packages/safe-js/src/migrate.ts
33
33
  import { createHash } from "node:crypto";
@@ -8249,4 +8249,4 @@ export {
8249
8249
  parseMcpConfig,
8250
8250
  makeMcpModule
8251
8251
  };
8252
- //# sourceMappingURL=chunk-JJKJAB53.js.map
8252
+ //# sourceMappingURL=chunk-NG6CD75M.js.map
@@ -8581,7 +8581,18 @@ function captureGuestHeapNode(value, encode) {
8581
8581
  ...value.state !== "suspended" || origin2.expressionStates === void 0 ? {} : {
8582
8582
  expressionStates: Object.fromEntries([...origin2.expressionStates].map(([id, expression]) => [
8583
8583
  String(id),
8584
- expression.kind === "binary" ? { kind: "binary", left: encode(expression.left) } : expression.kind === "template" ? { ...expression } : expression.kind === "object" ? {
8584
+ expression.kind === "binary" ? { kind: "binary", left: encode(expression.left) } : expression.kind === "member-assignment" ? {
8585
+ kind: "member-assignment",
8586
+ object: encode(expression.object),
8587
+ property: encode(expression.property),
8588
+ current: encode(expression.current),
8589
+ ...Object.hasOwn(expression, "key") ? { key: encode(expression.key) } : {},
8590
+ ...Object.hasOwn(expression, "superReceiver") ? { superReceiver: encode(expression.superReceiver) } : {}
8591
+ } : expression.kind === "member" ? {
8592
+ kind: "member",
8593
+ object: encode(expression.object),
8594
+ ...Object.hasOwn(expression, "superReceiver") ? { superReceiver: encode(expression.superReceiver) } : {}
8595
+ } : expression.kind === "template" ? { ...expression } : expression.kind === "object" ? {
8585
8596
  kind: "object",
8586
8597
  value: encode(expression.value),
8587
8598
  index: expression.index,
@@ -16870,13 +16881,15 @@ async function evaluateMemberAssignmentExpression(node, context) {
16870
16881
  if (node.left.type !== "MemberExpression") {
16871
16882
  throw new TypeError("Expected member assignment target.");
16872
16883
  }
16873
- return evaluateMemberAccess(node.left, context, async (member) => {
16884
+ const restored = context.generatorResume === void 0 || node.nodeId === void 0 ? void 0 : context.restoredGeneratorExpressionStates?.get(node.nodeId);
16885
+ if (restored !== void 0 && restored.kind !== "member-assignment") throw new TypeError("Invalid assignment continuation.");
16886
+ const assign = async (member) => {
16874
16887
  if (member.kind === "nullish") {
16875
16888
  throw new TypeError("Cannot assign properties of null or undefined.");
16876
16889
  }
16877
- let property;
16878
- let current = void 0;
16879
- if (node.operator !== "=") {
16890
+ let property = restored?.key;
16891
+ let current = restored?.current;
16892
+ if (node.operator !== "=" && restored === void 0) {
16880
16893
  if (member.object === null || member.object === void 0) {
16881
16894
  throw new TypeError("Cannot assign properties of null or undefined.");
16882
16895
  }
@@ -16913,7 +16926,18 @@ async function evaluateMemberAssignmentExpression(node, context) {
16913
16926
  value: current
16914
16927
  };
16915
16928
  }
16916
- let operands = [current, property];
16929
+ if (context.generatorYield !== void 0 && node.nodeId !== void 0) {
16930
+ const state = {
16931
+ kind: "member-assignment",
16932
+ object: member.object,
16933
+ property: member.property,
16934
+ current,
16935
+ ...property === void 0 ? {} : { key: property },
16936
+ ...member.superReceiver === void 0 ? {} : { superReceiver: member.superReceiver.value }
16937
+ };
16938
+ context = { ...context, generatorExpressionStates: new Map([...context.generatorExpressionStates ?? [], [node.nodeId, state]]) };
16939
+ }
16940
+ let operands = [current, property, member.object, member.property, member.superReceiver?.value];
16917
16941
  const release = retainValues(context.budget, () => operands);
16918
16942
  try {
16919
16943
  const right = await evaluateNode(node.right, context);
@@ -16925,7 +16949,7 @@ async function evaluateMemberAssignmentExpression(node, context) {
16925
16949
  if (member.object === null || member.object === void 0) {
16926
16950
  throw new TypeError("Cannot assign properties of null or undefined.");
16927
16951
  }
16928
- operands = [value];
16952
+ operands = [value, member.object, member.property, member.superReceiver?.value];
16929
16953
  property ??= await toPropertyKey(
16930
16954
  member.property,
16931
16955
  context.budget,
@@ -16950,7 +16974,14 @@ async function evaluateMemberAssignmentExpression(node, context) {
16950
16974
  } finally {
16951
16975
  release();
16952
16976
  }
16977
+ };
16978
+ if (restored !== void 0) return assign({
16979
+ kind: "resolved",
16980
+ object: restored.object,
16981
+ property: restored.property,
16982
+ ...Object.hasOwn(restored, "superReceiver") ? { superReceiver: { value: restored.superReceiver } } : {}
16953
16983
  });
16984
+ return evaluateMemberAccess(node.left, context, assign);
16954
16985
  }
16955
16986
  async function evaluateLogicalExpression(node, context) {
16956
16987
  if (context.generatorResume !== void 0 && containsResumeTarget(node.right, /* @__PURE__ */ new Set([context.generatorResume.yieldNodeId])))
@@ -18228,13 +18259,24 @@ function attachFatalSandboxErrorContext(error, node, stackFrames) {
18228
18259
  replaceErrorStack(error, stackFrames);
18229
18260
  }
18230
18261
  async function evaluateMemberAccess(node, context, consume) {
18231
- const superReceiver = node.object.type === "Super" ? { value: context.scope.lookup("this") } : void 0;
18232
- const object = await evaluateNode(node.object, context);
18262
+ const restored = context.generatorResume === void 0 || node.nodeId === void 0 ? void 0 : context.restoredGeneratorExpressionStates?.get(node.nodeId);
18263
+ if (restored !== void 0 && restored.kind !== "member") throw new TypeError("Invalid member continuation.");
18264
+ const thisBinding = node.object.type === "Super" ? context.scope.lookup("this") : void 0;
18265
+ const superReceiver = restored?.kind === "member" && Object.hasOwn(restored, "superReceiver") ? { value: restored.superReceiver } : thisBinding === void 0 ? void 0 : { value: thisBinding.found ? thisBinding.value : void 0 };
18266
+ const object = restored?.kind === "member" ? { kind: "normal", value: restored.object } : await evaluateNode(node.object, context);
18233
18267
  if (object.kind !== "normal") return object;
18234
18268
  if ((object.value === null || object.value === void 0) && node.optional) {
18235
18269
  return consume({ kind: "nullish" });
18236
18270
  }
18237
18271
  let property;
18272
+ if (node.computed && context.generatorYield !== void 0 && node.nodeId !== void 0) {
18273
+ const state = {
18274
+ kind: "member",
18275
+ object: object.value,
18276
+ ...superReceiver === void 0 ? {} : { superReceiver: superReceiver.value }
18277
+ };
18278
+ context = { ...context, generatorExpressionStates: new Map([...context.generatorExpressionStates ?? [], [node.nodeId, state]]) };
18279
+ }
18238
18280
  const release = retainValues(context.budget, () => [object.value, property]);
18239
18281
  try {
18240
18282
  const result = node.computed ? await evaluateNode(node.property, context) : { kind: "normal", value: getStaticPropertyName2(node.property) };
@@ -18244,7 +18286,7 @@ async function evaluateMemberAccess(node, context, consume) {
18244
18286
  kind: "resolved",
18245
18287
  object: object.value,
18246
18288
  property,
18247
- ...superReceiver === void 0 ? {} : { superReceiver: { value: superReceiver.value.found ? superReceiver.value.value : void 0 } }
18289
+ ...superReceiver === void 0 ? {} : { superReceiver }
18248
18290
  });
18249
18291
  } finally {
18250
18292
  release();
@@ -22430,6 +22472,11 @@ function validateGuestHeapNode(raw, heap, maxArrayLength = 4294967295) {
22430
22472
  const expression = record2(raw2);
22431
22473
  if (expression.kind === "binary") {
22432
22474
  fields(expression, ["kind", "left"]);
22475
+ } else if (expression.kind === "member-assignment") {
22476
+ fields(expression, ["kind", "object", "property", "current"], ["key", "superReceiver"]);
22477
+ if (Object.hasOwn(expression, "key") && typeof expression.key !== "string") reference(expression.key, ["symbol"]);
22478
+ } else if (expression.kind === "member") {
22479
+ fields(expression, ["kind", "object"], ["superReceiver"]);
22433
22480
  } else if (expression.kind === "template") {
22434
22481
  fields(expression, ["kind", "prefix", "index"]);
22435
22482
  integer(expression.index);
@@ -22605,7 +22652,11 @@ function validateGuestFunctionAst(record3, origin) {
22605
22652
  pending.push({
22606
22653
  value,
22607
22654
  blocks,
22608
- expressions: node.type === "BinaryExpression" && key === "right" && typeof node.nodeId === "number" ? new Map([...frame.expressions, [node.nodeId, { kind: "binary" }]]) : frame.expressions,
22655
+ expressions: node.type === "BinaryExpression" && key === "right" && typeof node.nodeId === "number" ? new Map([...frame.expressions, [node.nodeId, { kind: "binary" }]]) : node.type === "AssignmentExpression" && key === "right" && typeof node.nodeId === "number" && node.left.type === "MemberExpression" ? new Map([...frame.expressions, [node.nodeId, {
22656
+ kind: "member-assignment",
22657
+ key: node.operator !== "=",
22658
+ superReceiver: node.left.object.type === "Super"
22659
+ }]]) : node.type === "MemberExpression" && node.computed === true && key === "property" && typeof node.nodeId === "number" ? new Map([...frame.expressions, [node.nodeId, { kind: "member", superReceiver: node.object.type === "Super" }]]) : frame.expressions,
22609
22660
  finalizers: node.type === "TryStatement" && key === "finalizer" && typeof node.nodeId === "number" ? /* @__PURE__ */ new Set([...frame.finalizers, node.nodeId]) : frame.finalizers
22610
22661
  });
22611
22662
  }
@@ -22631,7 +22682,7 @@ function validateGuestFunctionAst(record3, origin) {
22631
22682
  for (const [id, expression] of expressions) {
22632
22683
  const expected = yieldExpressions?.get(Number(id));
22633
22684
  const compatibleKind = expected?.kind === expression.kind || expected?.kind === "call" && expected.member === true && expression.kind === "array-call";
22634
- if (expected === void 0 || !compatibleKind || expected.kind !== "binary" && expected.index !== expression.index || expected.kind === "object" && expected.key !== Object.hasOwn(expression, "key"))
22685
+ if (expected === void 0 || !compatibleKind || expected.kind !== "binary" && expected.kind !== "member" && expected.kind !== "member-assignment" && expected.index !== expression.index || expected.kind === "member-assignment" && (expected.key !== Object.hasOwn(expression, "key") || expected.superReceiver !== Object.hasOwn(expression, "superReceiver")) || expected.kind === "member" && expected.superReceiver !== Object.hasOwn(expression, "superReceiver") || expected.kind === "object" && expected.key !== Object.hasOwn(expression, "key"))
22635
22686
  throw new TypeError("Invalid generator AST identity: unrelated expression continuation");
22636
22687
  }
22637
22688
  }
@@ -38877,4 +38928,4 @@ export {
38877
38928
  FileSnapshotBackend,
38878
38929
  run
38879
38930
  };
38880
- //# sourceMappingURL=chunk-PEHO3DVD.js.map
38931
+ //# sourceMappingURL=chunk-P2JEDD2J.js.map