@poe-platform/safe-js 0.1.324 → 0.1.326

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-CMWXZ76K.js";
30
+ } from "./chunk-FPU2PHHJ.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-WWBX6TN2.js.map
8252
+ //# sourceMappingURL=chunk-CIIKFZ3V.js.map
@@ -14883,7 +14883,7 @@ function createFloat32ArrayPrototypes(budget, constructor) {
14883
14883
  getters.push(getter);
14884
14884
  Object.defineProperty(shared, key, { get: accessorAdapter(getter, "get"), configurable: true });
14885
14885
  }
14886
- for (const key of ["set", "slice", "subarray", "fill"])
14886
+ for (const key of ["set", "slice", "subarray", "fill", "copyWithin", "reverse"])
14887
14887
  Object.defineProperty(shared, key, { value: getFloat32Member(new Float32Array(0), key, budget, constructor), writable: true, configurable: true });
14888
14888
  const arrayPrototype = resolveIntrinsicIdentity(budget, '["Array","prototype"]');
14889
14889
  Object.defineProperty(shared, "toString", { value: getSandboxDataProperty(arrayPrototype, "toString", budget), writable: true, configurable: true });
@@ -14965,17 +14965,35 @@ function getFloat32Member(value, property, budget, defaultConstructor) {
14965
14965
  if (key === "byteLength") return storage.length * 4;
14966
14966
  if (key === "byteOffset") return storage.byteOffset;
14967
14967
  if (key === "BYTES_PER_ELEMENT") return 4;
14968
- if (!["set", "slice", "subarray", "fill"].includes(key)) return void 0;
14968
+ if (!["set", "slice", "subarray", "fill", "copyWithin", "reverse"].includes(key)) return void 0;
14969
14969
  return createSandboxClosure({
14970
14970
  guest: true,
14971
14971
  sandbox: true,
14972
14972
  name: key,
14973
- length: key === "set" || key === "fill" ? 1 : 2,
14973
+ length: key === "reverse" ? 0 : key === "set" || key === "fill" ? 1 : 2,
14974
14974
  call: (args, context) => {
14975
14975
  const receiver = context?.thisValue;
14976
14976
  if (!isFloat32Array(receiver))
14977
14977
  throw new TypeError(`Float32Array#${key} requires a Float32Array receiver.`);
14978
- const storage2 = float32Storage(receiver, key === "slice" || key === "fill");
14978
+ const storage2 = float32Storage(receiver, key === "slice" || key === "fill" || key === "copyWithin" || key === "reverse");
14979
+ if (key === "reverse") {
14980
+ const release = retainValues(budget, () => [receiver, ...args]);
14981
+ try {
14982
+ const bytes = new Uint8Array(storage2.buffer, storage2.byteOffset, storage2.length * 4);
14983
+ for (let lower = 0; lower < Math.floor(storage2.length / 2); lower++) {
14984
+ const upper = storage2.length - lower - 1;
14985
+ for (let offset = 0; offset < 4; offset++) {
14986
+ budget.visitNode();
14987
+ const saved = bytes[lower * 4 + offset];
14988
+ bytes[lower * 4 + offset] = bytes[upper * 4 + offset];
14989
+ bytes[upper * 4 + offset] = saved;
14990
+ }
14991
+ }
14992
+ return receiver;
14993
+ } finally {
14994
+ release();
14995
+ }
14996
+ }
14979
14997
  const bridge = {
14980
14998
  ...context,
14981
14999
  stack: context?.stack ?? [],
@@ -14986,6 +15004,36 @@ function getFloat32Member(value, property, budget, defaultConstructor) {
14986
15004
  }),
14987
15005
  invokeClosure: context?.invokeClosure ?? ((callee, values, thisValue, construct) => invokeBuiltinClosure(callee, values, budget, context, thisValue, construct))
14988
15006
  };
15007
+ if (key === "copyWithin") {
15008
+ return (async () => {
15009
+ const release = retainValues(budget, () => [receiver, ...args]);
15010
+ try {
15011
+ const target = relativeIndex(await sandboxNumber(args[0], budget, bridge), storage2.length);
15012
+ const start = relativeIndex(await sandboxNumber(args[1], budget, bridge), storage2.length);
15013
+ const end = args[2] === void 0 ? storage2.length : relativeIndex(await sandboxNumber(args[2], budget, bridge), storage2.length);
15014
+ let count = Math.min(end - start, storage2.length - target);
15015
+ if (count > 0) {
15016
+ const current = float32Storage(receiver, true);
15017
+ count = Math.min(count, current.length - start, current.length - target);
15018
+ if (count > 0) {
15019
+ const bytes = new Uint8Array(current.buffer, current.byteOffset, current.length * 4);
15020
+ const direction = start < target && target < start + count ? -1 : 1;
15021
+ let from = start * 4 + (direction < 0 ? count * 4 - 1 : 0);
15022
+ let to = target * 4 + (direction < 0 ? count * 4 - 1 : 0);
15023
+ for (let remaining = count * 4; remaining > 0; remaining--) {
15024
+ budget.visitNode();
15025
+ bytes[to] = bytes[from];
15026
+ from += direction;
15027
+ to += direction;
15028
+ }
15029
+ }
15030
+ }
15031
+ return receiver;
15032
+ } finally {
15033
+ release();
15034
+ }
15035
+ })();
15036
+ }
14989
15037
  if (key === "fill") {
14990
15038
  return (async () => {
14991
15039
  const release = retainValues(budget, () => [receiver, ...args]);
@@ -42364,4 +42412,4 @@ export {
42364
42412
  FileSnapshotBackend,
42365
42413
  run
42366
42414
  };
42367
- //# sourceMappingURL=chunk-CMWXZ76K.js.map
42415
+ //# sourceMappingURL=chunk-FPU2PHHJ.js.map