@secure-exec/core 0.1.1-rc.2 → 0.2.0-rc.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.
Files changed (102) hide show
  1. package/dist/esm-compiler.d.ts +5 -1
  2. package/dist/esm-compiler.js +5 -1
  3. package/dist/fs-helpers.d.ts +1 -1
  4. package/dist/generated/isolate-runtime.d.ts +15 -15
  5. package/dist/generated/isolate-runtime.js +15 -15
  6. package/dist/index.d.ts +25 -6
  7. package/dist/index.js +23 -3
  8. package/dist/isolate-runtime/apply-custom-global-policy.js +3 -3
  9. package/dist/isolate-runtime/apply-timing-mitigation-freeze.js +10 -8
  10. package/dist/isolate-runtime/apply-timing-mitigation-off.js +2 -2
  11. package/dist/isolate-runtime/bridge-attach.js +2 -2
  12. package/dist/isolate-runtime/bridge-initial-globals.js +3 -3
  13. package/dist/isolate-runtime/eval-script-result.js +1 -1
  14. package/dist/isolate-runtime/global-exposure-helpers.js +2 -2
  15. package/dist/isolate-runtime/init-commonjs-module-globals.js +2 -2
  16. package/dist/isolate-runtime/override-process-cwd.js +1 -1
  17. package/dist/isolate-runtime/override-process-env.js +1 -1
  18. package/dist/isolate-runtime/require-setup.js +2236 -19
  19. package/dist/isolate-runtime/set-commonjs-file-globals.js +2 -2
  20. package/dist/isolate-runtime/set-stdin-data.js +1 -1
  21. package/dist/isolate-runtime/setup-dynamic-import.js +47 -15
  22. package/dist/isolate-runtime/setup-fs-facade.js +2 -2
  23. package/dist/kernel/command-registry.d.ts +44 -0
  24. package/dist/kernel/command-registry.js +114 -0
  25. package/dist/kernel/device-layer.d.ts +12 -0
  26. package/dist/kernel/device-layer.js +262 -0
  27. package/dist/kernel/dns-cache.d.ts +29 -0
  28. package/dist/kernel/dns-cache.js +52 -0
  29. package/dist/kernel/fd-table.d.ts +84 -0
  30. package/dist/kernel/fd-table.js +278 -0
  31. package/dist/kernel/file-lock.d.ts +34 -0
  32. package/dist/kernel/file-lock.js +123 -0
  33. package/dist/kernel/host-adapter.d.ts +50 -0
  34. package/dist/kernel/host-adapter.js +8 -0
  35. package/dist/kernel/index.d.ts +36 -0
  36. package/dist/kernel/index.js +34 -0
  37. package/dist/kernel/inode-table.d.ts +43 -0
  38. package/dist/kernel/inode-table.js +85 -0
  39. package/dist/kernel/kernel.d.ts +9 -0
  40. package/dist/kernel/kernel.js +1396 -0
  41. package/dist/kernel/permissions.d.ts +27 -0
  42. package/dist/kernel/permissions.js +118 -0
  43. package/dist/kernel/pipe-manager.d.ts +64 -0
  44. package/dist/kernel/pipe-manager.js +267 -0
  45. package/dist/kernel/proc-layer.d.ts +11 -0
  46. package/dist/kernel/proc-layer.js +501 -0
  47. package/dist/kernel/process-table.d.ts +124 -0
  48. package/dist/kernel/process-table.js +631 -0
  49. package/dist/kernel/pty.d.ts +108 -0
  50. package/dist/kernel/pty.js +541 -0
  51. package/dist/kernel/socket-table.d.ts +305 -0
  52. package/dist/kernel/socket-table.js +1124 -0
  53. package/dist/kernel/timer-table.d.ts +54 -0
  54. package/dist/kernel/timer-table.js +108 -0
  55. package/dist/kernel/types.d.ts +500 -0
  56. package/dist/kernel/types.js +89 -0
  57. package/dist/kernel/user.d.ts +29 -0
  58. package/dist/kernel/user.js +35 -0
  59. package/dist/kernel/vfs.d.ts +54 -0
  60. package/dist/kernel/vfs.js +8 -0
  61. package/dist/kernel/wait.d.ts +45 -0
  62. package/dist/kernel/wait.js +112 -0
  63. package/dist/kernel/wstatus.d.ts +21 -0
  64. package/dist/kernel/wstatus.js +33 -0
  65. package/dist/module-resolver.d.ts +4 -0
  66. package/dist/module-resolver.js +4 -0
  67. package/dist/package-bundler.d.ts +6 -1
  68. package/dist/runtime-driver.d.ts +3 -1
  69. package/dist/shared/bridge-contract.d.ts +529 -94
  70. package/dist/shared/bridge-contract.js +86 -3
  71. package/dist/shared/console-formatter.js +4 -0
  72. package/dist/shared/global-exposure.js +345 -0
  73. package/dist/shared/in-memory-fs.d.ts +30 -11
  74. package/dist/shared/in-memory-fs.js +383 -109
  75. package/dist/shared/permissions.d.ts +4 -6
  76. package/dist/shared/permissions.js +24 -28
  77. package/dist/types.d.ts +20 -130
  78. package/dist/types.js +5 -0
  79. package/package.json +12 -22
  80. package/dist/bridge/active-handles.d.ts +0 -22
  81. package/dist/bridge/active-handles.js +0 -55
  82. package/dist/bridge/child-process.d.ts +0 -99
  83. package/dist/bridge/child-process.js +0 -656
  84. package/dist/bridge/fs.d.ts +0 -281
  85. package/dist/bridge/fs.js +0 -2231
  86. package/dist/bridge/index.d.ts +0 -10
  87. package/dist/bridge/index.js +0 -41
  88. package/dist/bridge/module.d.ts +0 -75
  89. package/dist/bridge/module.js +0 -299
  90. package/dist/bridge/network.d.ts +0 -250
  91. package/dist/bridge/network.js +0 -1433
  92. package/dist/bridge/os.d.ts +0 -13
  93. package/dist/bridge/os.js +0 -256
  94. package/dist/bridge/polyfills.d.ts +0 -2
  95. package/dist/bridge/polyfills.js +0 -11
  96. package/dist/bridge/process.d.ts +0 -89
  97. package/dist/bridge/process.js +0 -994
  98. package/dist/bridge.js +0 -11766
  99. package/dist/python-runtime.d.ts +0 -16
  100. package/dist/python-runtime.js +0 -45
  101. package/dist/runtime.d.ts +0 -31
  102. package/dist/runtime.js +0 -69
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  (() => {
3
- // isolate-runtime/src/inject/require-setup.ts
3
+ // ../core/isolate-runtime/src/inject/require-setup.ts
4
4
  var __requireExposeCustomGlobal = typeof globalThis.__runtimeExposeCustomGlobal === "function" ? globalThis.__runtimeExposeCustomGlobal : function exposeCustomGlobal(name2, value) {
5
5
  Object.defineProperty(globalThis, name2, {
6
6
  value,
@@ -9,23 +9,48 @@
9
9
  enumerable: true
10
10
  });
11
11
  };
12
- if (typeof globalThis.AbortController === "undefined" || typeof globalThis.AbortSignal === "undefined") {
12
+ if (typeof globalThis.AbortController === "undefined" || typeof globalThis.AbortSignal === "undefined" || typeof globalThis.AbortSignal?.prototype?.addEventListener !== "function" || typeof globalThis.AbortSignal?.prototype?.removeEventListener !== "function") {
13
+ let getAbortSignalState = function(signal) {
14
+ const state = abortSignalState.get(signal);
15
+ if (!state) {
16
+ throw new Error("Invalid AbortSignal");
17
+ }
18
+ return state;
19
+ };
20
+ getAbortSignalState2 = getAbortSignalState;
21
+ const abortSignalState = /* @__PURE__ */ new WeakMap();
13
22
  class AbortSignal {
14
23
  constructor() {
15
- this.aborted = false;
16
- this.reason = void 0;
17
24
  this.onabort = null;
18
- this._listeners = [];
25
+ abortSignalState.set(this, {
26
+ aborted: false,
27
+ reason: void 0,
28
+ listeners: []
29
+ });
30
+ }
31
+ get aborted() {
32
+ return getAbortSignalState(this).aborted;
33
+ }
34
+ get reason() {
35
+ return getAbortSignalState(this).reason;
36
+ }
37
+ get _listeners() {
38
+ return getAbortSignalState(this).listeners.slice();
39
+ }
40
+ getEventListeners(type) {
41
+ if (type !== "abort") return [];
42
+ return getAbortSignalState(this).listeners.slice();
19
43
  }
20
44
  addEventListener(type, listener) {
21
45
  if (type !== "abort" || typeof listener !== "function") return;
22
- this._listeners.push(listener);
46
+ getAbortSignalState(this).listeners.push(listener);
23
47
  }
24
48
  removeEventListener(type, listener) {
25
49
  if (type !== "abort" || typeof listener !== "function") return;
26
- const index = this._listeners.indexOf(listener);
50
+ const listeners = getAbortSignalState(this).listeners;
51
+ const index = listeners.indexOf(listener);
27
52
  if (index !== -1) {
28
- this._listeners.splice(index, 1);
53
+ listeners.splice(index, 1);
29
54
  }
30
55
  }
31
56
  dispatchEvent(event) {
@@ -36,7 +61,7 @@
36
61
  } catch {
37
62
  }
38
63
  }
39
- const listeners = this._listeners.slice();
64
+ const listeners = getAbortSignalState(this).listeners.slice();
40
65
  for (const listener of listeners) {
41
66
  try {
42
67
  listener.call(this, event);
@@ -51,15 +76,24 @@
51
76
  this.signal = new AbortSignal();
52
77
  }
53
78
  abort(reason) {
54
- if (this.signal.aborted) return;
55
- this.signal.aborted = true;
56
- this.signal.reason = reason;
79
+ const state = getAbortSignalState(this.signal);
80
+ if (state.aborted) return;
81
+ state.aborted = true;
82
+ state.reason = reason;
57
83
  this.signal.dispatchEvent({ type: "abort" });
58
84
  }
59
85
  }
60
86
  __requireExposeCustomGlobal("AbortSignal", AbortSignal);
61
87
  __requireExposeCustomGlobal("AbortController", AbortController);
62
88
  }
89
+ var getAbortSignalState2;
90
+ if (typeof globalThis.AbortSignal === "function" && typeof globalThis.AbortController === "function" && typeof globalThis.AbortSignal.abort !== "function") {
91
+ globalThis.AbortSignal.abort = function abort(reason) {
92
+ const controller = new globalThis.AbortController();
93
+ controller.abort(reason);
94
+ return controller.signal;
95
+ };
96
+ }
63
97
  if (typeof globalThis.structuredClone !== "function") {
64
98
  let structuredClonePolyfill = function(value) {
65
99
  if (value === null || typeof value !== "object") {
@@ -80,6 +114,10 @@
80
114
  __requireExposeCustomGlobal("structuredClone", structuredClonePolyfill);
81
115
  }
82
116
  var structuredClonePolyfill2;
117
+ if (typeof globalThis.SharedArrayBuffer === "undefined") {
118
+ globalThis.SharedArrayBuffer = ArrayBuffer;
119
+ __requireExposeCustomGlobal("SharedArrayBuffer", ArrayBuffer);
120
+ }
83
121
  if (typeof globalThis.btoa !== "function") {
84
122
  __requireExposeCustomGlobal("btoa", function btoa(input) {
85
123
  return Buffer.from(String(input), "binary").toString("base64");
@@ -96,6 +134,34 @@
96
134
  if (lastSlash === 0) return "/";
97
135
  return p.slice(0, lastSlash);
98
136
  }
137
+ if (typeof globalThis.TextDecoder === "function") {
138
+ _OrigTextDecoder = globalThis.TextDecoder;
139
+ _utf8Aliases = {
140
+ "utf-8": true,
141
+ "utf8": true,
142
+ "unicode-1-1-utf-8": true,
143
+ "ascii": true,
144
+ "us-ascii": true,
145
+ "iso-8859-1": true,
146
+ "latin1": true,
147
+ "binary": true,
148
+ "windows-1252": true,
149
+ "utf-16le": true,
150
+ "utf-16": true,
151
+ "ucs-2": true,
152
+ "ucs2": true
153
+ };
154
+ globalThis.TextDecoder = function TextDecoder(encoding, options) {
155
+ var label = encoding !== void 0 ? String(encoding).toLowerCase().replace(/\s/g, "") : "utf-8";
156
+ if (_utf8Aliases[label]) {
157
+ return new _OrigTextDecoder("utf-8", options);
158
+ }
159
+ return new _OrigTextDecoder(encoding, options);
160
+ };
161
+ globalThis.TextDecoder.prototype = _OrigTextDecoder.prototype;
162
+ }
163
+ var _OrigTextDecoder;
164
+ var _utf8Aliases;
99
165
  function _patchPolyfill(name2, result2) {
100
166
  if (typeof result2 !== "object" && typeof result2 !== "function" || result2 === null) {
101
167
  return result2;
@@ -129,6 +195,39 @@
129
195
  if (typeof BufferCtor.constants !== "object" || BufferCtor.constants === null) {
130
196
  BufferCtor.constants = result2.constants;
131
197
  }
198
+ var proto = BufferCtor.prototype;
199
+ if (proto && typeof proto.utf8Slice !== "function") {
200
+ var encodings = ["utf8", "latin1", "ascii", "hex", "base64", "ucs2", "utf16le"];
201
+ for (var ei = 0; ei < encodings.length; ei++) {
202
+ var enc = encodings[ei];
203
+ (function(e) {
204
+ if (typeof proto[e + "Slice"] !== "function") {
205
+ proto[e + "Slice"] = function(start, end) {
206
+ return this.toString(e, start, end);
207
+ };
208
+ }
209
+ if (typeof proto[e + "Write"] !== "function") {
210
+ proto[e + "Write"] = function(string, offset, length) {
211
+ return this.write(string, offset, length, e);
212
+ };
213
+ }
214
+ })(enc);
215
+ }
216
+ }
217
+ if (typeof BufferCtor.allocUnsafe === "function" && !BufferCtor.allocUnsafe._secureExecPatched) {
218
+ var _origAllocUnsafe = BufferCtor.allocUnsafe;
219
+ BufferCtor.allocUnsafe = function(size) {
220
+ try {
221
+ return _origAllocUnsafe.apply(this, arguments);
222
+ } catch (error) {
223
+ if (error && error.name === "RangeError" && typeof size === "number" && size > maxLength) {
224
+ throw new Error("Array buffer allocation failed");
225
+ }
226
+ throw error;
227
+ }
228
+ };
229
+ BufferCtor.allocUnsafe._secureExecPatched = true;
230
+ }
132
231
  }
133
232
  return result2;
134
233
  }
@@ -136,6 +235,146 @@
136
235
  result2.formatWithOptions = function formatWithOptions(inspectOptions, ...args) {
137
236
  return result2.format.apply(null, args);
138
237
  };
238
+ }
239
+ if (name2 === "util") {
240
+ if (typeof result2.inspect === "function" && typeof result2.inspect.custom === "undefined") {
241
+ result2.inspect.custom = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
242
+ }
243
+ if (typeof result2.inspect === "function" && !result2.inspect._secureExecPatchedCustomInspect) {
244
+ const customInspectSymbol = result2.inspect.custom || /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
245
+ const originalInspect = result2.inspect;
246
+ const formatObjectKey = function(key) {
247
+ return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key) ? key : originalInspect(key);
248
+ };
249
+ const containsCustomInspectable = function(value, depth, seen) {
250
+ if (value === null) {
251
+ return false;
252
+ }
253
+ if (typeof value !== "object" && typeof value !== "function") {
254
+ return false;
255
+ }
256
+ if (typeof value[customInspectSymbol] === "function") {
257
+ return true;
258
+ }
259
+ if (depth < 0 || seen.has(value)) {
260
+ return false;
261
+ }
262
+ seen.add(value);
263
+ if (Array.isArray(value)) {
264
+ for (const entry of value) {
265
+ if (containsCustomInspectable(entry, depth - 1, seen)) {
266
+ seen.delete(value);
267
+ return true;
268
+ }
269
+ }
270
+ seen.delete(value);
271
+ return false;
272
+ }
273
+ for (const key of Object.keys(value)) {
274
+ if (containsCustomInspectable(value[key], depth - 1, seen)) {
275
+ seen.delete(value);
276
+ return true;
277
+ }
278
+ }
279
+ seen.delete(value);
280
+ return false;
281
+ };
282
+ const inspectWithCustom = function(value, depth, options, seen) {
283
+ if (value === null || typeof value !== "object" && typeof value !== "function") {
284
+ return originalInspect(value, options);
285
+ }
286
+ if (seen.has(value)) {
287
+ return "[Circular]";
288
+ }
289
+ if (typeof value[customInspectSymbol] === "function") {
290
+ return value[customInspectSymbol](depth, options, result2.inspect);
291
+ }
292
+ if (depth < 0) {
293
+ return originalInspect(value, options);
294
+ }
295
+ seen.add(value);
296
+ if (Array.isArray(value)) {
297
+ const items = value.map((entry) => inspectWithCustom(entry, depth - 1, options, seen));
298
+ seen.delete(value);
299
+ return `[ ${items.join(", ")} ]`;
300
+ }
301
+ const proto2 = Object.getPrototypeOf(value);
302
+ if (proto2 === Object.prototype || proto2 === null) {
303
+ const entries = Object.keys(value).map(
304
+ (key) => `${formatObjectKey(key)}: ${inspectWithCustom(value[key], depth - 1, options, seen)}`
305
+ );
306
+ seen.delete(value);
307
+ return `{ ${entries.join(", ")} }`;
308
+ }
309
+ seen.delete(value);
310
+ return originalInspect(value, options);
311
+ };
312
+ result2.inspect = function inspect(value, options) {
313
+ const inspectOptions = typeof options === "object" && options !== null ? options : {};
314
+ const depth = typeof inspectOptions.depth === "number" ? inspectOptions.depth : 2;
315
+ if (!containsCustomInspectable(value, depth, /* @__PURE__ */ new Set())) {
316
+ return originalInspect.call(this, value, options);
317
+ }
318
+ return inspectWithCustom(value, depth, inspectOptions, /* @__PURE__ */ new Set());
319
+ };
320
+ result2.inspect.custom = customInspectSymbol;
321
+ result2.inspect._secureExecPatchedCustomInspect = true;
322
+ }
323
+ return result2;
324
+ }
325
+ if (name2 === "events") {
326
+ if (typeof result2.getEventListeners !== "function") {
327
+ result2.getEventListeners = function getEventListeners(target, eventName) {
328
+ if (target && typeof target.listeners === "function") {
329
+ return target.listeners(eventName);
330
+ }
331
+ if (target && typeof target.getEventListeners === "function") {
332
+ return target.getEventListeners(eventName);
333
+ }
334
+ if (target && eventName === "abort" && Array.isArray(target._listeners)) {
335
+ return target._listeners.slice();
336
+ }
337
+ return [];
338
+ };
339
+ }
340
+ return result2;
341
+ }
342
+ if (name2 === "stream") {
343
+ const ReadableCtor = result2.Readable;
344
+ const readableFrom = typeof ReadableCtor === "function" ? ReadableCtor.from : void 0;
345
+ const readableFromSource = typeof readableFrom === "function" ? Function.prototype.toString.call(readableFrom) : "";
346
+ const hasBrowserReadableFromStub = readableFromSource.indexOf(
347
+ "Readable.from is not available in the browser"
348
+ ) !== -1 || readableFromSource.indexOf("require_from_browser") !== -1;
349
+ if (typeof ReadableCtor === "function" && (typeof readableFrom !== "function" || hasBrowserReadableFromStub)) {
350
+ ReadableCtor.from = function from(iterable, options) {
351
+ const readable = new ReadableCtor(Object.assign({ read() {
352
+ } }, options || {}));
353
+ Promise.resolve().then(async function() {
354
+ try {
355
+ if (iterable && typeof iterable[Symbol.asyncIterator] === "function") {
356
+ for await (const chunk of iterable) {
357
+ readable.push(chunk);
358
+ }
359
+ } else if (iterable && typeof iterable[Symbol.iterator] === "function") {
360
+ for (const chunk of iterable) {
361
+ readable.push(chunk);
362
+ }
363
+ } else {
364
+ readable.push(iterable);
365
+ }
366
+ readable.push(null);
367
+ } catch (error) {
368
+ if (typeof readable.destroy === "function") {
369
+ readable.destroy(error);
370
+ } else {
371
+ readable.emit("error", error);
372
+ }
373
+ }
374
+ });
375
+ return readable;
376
+ };
377
+ }
139
378
  return result2;
140
379
  }
141
380
  if (name2 === "url") {
@@ -185,6 +424,1859 @@
185
424
  }
186
425
  return result2;
187
426
  }
427
+ if (name2 === "zlib") {
428
+ if (typeof result2.constants !== "object" || result2.constants === null) {
429
+ var zlibConstants = {};
430
+ var constKeys = Object.keys(result2);
431
+ for (var ci = 0; ci < constKeys.length; ci++) {
432
+ var ck = constKeys[ci];
433
+ if (ck.indexOf("Z_") === 0 && typeof result2[ck] === "number") {
434
+ zlibConstants[ck] = result2[ck];
435
+ }
436
+ }
437
+ if (typeof zlibConstants.DEFLATE !== "number") zlibConstants.DEFLATE = 1;
438
+ if (typeof zlibConstants.INFLATE !== "number") zlibConstants.INFLATE = 2;
439
+ if (typeof zlibConstants.GZIP !== "number") zlibConstants.GZIP = 3;
440
+ if (typeof zlibConstants.DEFLATERAW !== "number") zlibConstants.DEFLATERAW = 4;
441
+ if (typeof zlibConstants.INFLATERAW !== "number") zlibConstants.INFLATERAW = 5;
442
+ if (typeof zlibConstants.UNZIP !== "number") zlibConstants.UNZIP = 6;
443
+ if (typeof zlibConstants.GUNZIP !== "number") zlibConstants.GUNZIP = 7;
444
+ result2.constants = zlibConstants;
445
+ }
446
+ return result2;
447
+ }
448
+ if (name2 === "crypto") {
449
+ let createCryptoRangeError2 = function(name3, message) {
450
+ var error = new RangeError(message);
451
+ error.code = "ERR_OUT_OF_RANGE";
452
+ error.name = "RangeError";
453
+ return error;
454
+ }, createCryptoError2 = function(code, message) {
455
+ var error = new Error(message);
456
+ error.code = code;
457
+ return error;
458
+ }, encodeCryptoResult2 = function(buffer, encoding) {
459
+ if (!encoding || encoding === "buffer") return buffer;
460
+ return buffer.toString(encoding);
461
+ }, isSharedArrayBufferInstance2 = function(value) {
462
+ return typeof SharedArrayBuffer !== "undefined" && value instanceof SharedArrayBuffer;
463
+ }, isBinaryLike2 = function(value) {
464
+ return Buffer.isBuffer(value) || ArrayBuffer.isView(value) || value instanceof ArrayBuffer || isSharedArrayBufferInstance2(value);
465
+ }, normalizeByteSource2 = function(value, name3, options) {
466
+ var allowNull = options && options.allowNull;
467
+ if (allowNull && value === null) {
468
+ return null;
469
+ }
470
+ if (typeof value === "string") {
471
+ return Buffer.from(value, "utf8");
472
+ }
473
+ if (Buffer.isBuffer(value)) {
474
+ return Buffer.from(value);
475
+ }
476
+ if (ArrayBuffer.isView(value)) {
477
+ return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
478
+ }
479
+ if (value instanceof ArrayBuffer || isSharedArrayBufferInstance2(value)) {
480
+ return Buffer.from(value);
481
+ }
482
+ throw createInvalidArgTypeError(
483
+ name3,
484
+ "of type string or an instance of ArrayBuffer, Buffer, TypedArray, or DataView",
485
+ value
486
+ );
487
+ }, serializeCipherBridgeOptions2 = function(options) {
488
+ if (!options) {
489
+ return "";
490
+ }
491
+ var serialized = {};
492
+ if (options.authTagLength !== void 0) {
493
+ serialized.authTagLength = options.authTagLength;
494
+ }
495
+ if (options.authTag) {
496
+ serialized.authTag = options.authTag.toString("base64");
497
+ }
498
+ if (options.aad) {
499
+ serialized.aad = options.aad.toString("base64");
500
+ }
501
+ if (options.aadOptions !== void 0) {
502
+ serialized.aadOptions = options.aadOptions;
503
+ }
504
+ if (options.autoPadding !== void 0) {
505
+ serialized.autoPadding = options.autoPadding;
506
+ }
507
+ if (options.validateOnly !== void 0) {
508
+ serialized.validateOnly = options.validateOnly;
509
+ }
510
+ return JSON.stringify(serialized);
511
+ };
512
+ var createCryptoRangeError = createCryptoRangeError2, createCryptoError = createCryptoError2, encodeCryptoResult = encodeCryptoResult2, isSharedArrayBufferInstance = isSharedArrayBufferInstance2, isBinaryLike = isBinaryLike2, normalizeByteSource = normalizeByteSource2, serializeCipherBridgeOptions = serializeCipherBridgeOptions2;
513
+ var _runtimeRequire = globalThis.require;
514
+ var _streamModule = _runtimeRequire && _runtimeRequire("stream");
515
+ var _utilModule = _runtimeRequire && _runtimeRequire("util");
516
+ var _Transform = _streamModule && _streamModule.Transform;
517
+ var _inherits = _utilModule && _utilModule.inherits;
518
+ if (typeof _cryptoHashDigest !== "undefined") {
519
+ let SandboxHash2 = function(algorithm, options) {
520
+ if (!(this instanceof SandboxHash2)) {
521
+ return new SandboxHash2(algorithm, options);
522
+ }
523
+ if (!_Transform || !_inherits) {
524
+ throw new Error("stream.Transform is required for crypto.Hash");
525
+ }
526
+ if (typeof algorithm !== "string") {
527
+ throw createInvalidArgTypeError("algorithm", "of type string", algorithm);
528
+ }
529
+ _Transform.call(this, options);
530
+ this._algorithm = algorithm;
531
+ this._chunks = [];
532
+ this._finalized = false;
533
+ this._cachedDigest = null;
534
+ this._allowCachedDigest = false;
535
+ };
536
+ var SandboxHash = SandboxHash2;
537
+ _inherits(SandboxHash2, _Transform);
538
+ SandboxHash2.prototype.update = function update(data, inputEncoding) {
539
+ if (this._finalized) {
540
+ throw createCryptoError2("ERR_CRYPTO_HASH_FINALIZED", "Digest already called");
541
+ }
542
+ if (typeof data === "string") {
543
+ this._chunks.push(Buffer.from(data, inputEncoding || "utf8"));
544
+ } else if (isBinaryLike2(data)) {
545
+ this._chunks.push(Buffer.from(data));
546
+ } else {
547
+ throw createInvalidArgTypeError(
548
+ "data",
549
+ "one of type string, Buffer, TypedArray, or DataView",
550
+ data
551
+ );
552
+ }
553
+ return this;
554
+ };
555
+ SandboxHash2.prototype._finishDigest = function _finishDigest() {
556
+ if (this._cachedDigest) {
557
+ return this._cachedDigest;
558
+ }
559
+ var combined = Buffer.concat(this._chunks);
560
+ var resultBase64 = _cryptoHashDigest.applySync(void 0, [
561
+ this._algorithm,
562
+ combined.toString("base64")
563
+ ]);
564
+ this._cachedDigest = Buffer.from(resultBase64, "base64");
565
+ this._finalized = true;
566
+ return this._cachedDigest;
567
+ };
568
+ SandboxHash2.prototype.digest = function digest(encoding) {
569
+ if (this._finalized && !this._allowCachedDigest) {
570
+ throw createCryptoError2("ERR_CRYPTO_HASH_FINALIZED", "Digest already called");
571
+ }
572
+ var resultBuffer = this._finishDigest();
573
+ this._allowCachedDigest = false;
574
+ return encodeCryptoResult2(resultBuffer, encoding);
575
+ };
576
+ SandboxHash2.prototype.copy = function copy() {
577
+ if (this._finalized) {
578
+ throw createCryptoError2("ERR_CRYPTO_HASH_FINALIZED", "Digest already called");
579
+ }
580
+ var c = new SandboxHash2(this._algorithm);
581
+ c._chunks = this._chunks.slice();
582
+ return c;
583
+ };
584
+ SandboxHash2.prototype._transform = function _transform(chunk, encoding, callback) {
585
+ try {
586
+ this.update(chunk, encoding === "buffer" ? void 0 : encoding);
587
+ callback();
588
+ } catch (error) {
589
+ callback(normalizeCryptoBridgeError(error));
590
+ }
591
+ };
592
+ SandboxHash2.prototype._flush = function _flush(callback) {
593
+ try {
594
+ var output = this._finishDigest();
595
+ this._allowCachedDigest = true;
596
+ this.push(output);
597
+ callback();
598
+ } catch (error) {
599
+ callback(normalizeCryptoBridgeError(error));
600
+ }
601
+ };
602
+ result2.createHash = function createHash(algorithm, options) {
603
+ return new SandboxHash2(algorithm, options);
604
+ };
605
+ result2.Hash = SandboxHash2;
606
+ }
607
+ if (typeof _cryptoHmacDigest !== "undefined") {
608
+ let SandboxHmac2 = function(algorithm, key) {
609
+ this._algorithm = algorithm;
610
+ if (typeof key === "string") {
611
+ this._key = Buffer.from(key, "utf8");
612
+ } else if (key && typeof key === "object" && key._pem !== void 0) {
613
+ this._key = Buffer.from(key._pem, "utf8");
614
+ } else {
615
+ this._key = Buffer.from(key);
616
+ }
617
+ this._chunks = [];
618
+ };
619
+ var SandboxHmac = SandboxHmac2;
620
+ SandboxHmac2.prototype.update = function update(data, inputEncoding) {
621
+ if (typeof data === "string") {
622
+ this._chunks.push(Buffer.from(data, inputEncoding || "utf8"));
623
+ } else {
624
+ this._chunks.push(Buffer.from(data));
625
+ }
626
+ return this;
627
+ };
628
+ SandboxHmac2.prototype.digest = function digest(encoding) {
629
+ var combined = Buffer.concat(this._chunks);
630
+ var resultBase64 = _cryptoHmacDigest.applySync(void 0, [
631
+ this._algorithm,
632
+ this._key.toString("base64"),
633
+ combined.toString("base64")
634
+ ]);
635
+ var resultBuffer = Buffer.from(resultBase64, "base64");
636
+ if (!encoding || encoding === "buffer") return resultBuffer;
637
+ return resultBuffer.toString(encoding);
638
+ };
639
+ SandboxHmac2.prototype.copy = function copy() {
640
+ var c = new SandboxHmac2(this._algorithm, this._key);
641
+ c._chunks = this._chunks.slice();
642
+ return c;
643
+ };
644
+ SandboxHmac2.prototype.write = function write(data, encoding) {
645
+ this.update(data, encoding);
646
+ return true;
647
+ };
648
+ SandboxHmac2.prototype.end = function end(data, encoding) {
649
+ if (data) this.update(data, encoding);
650
+ };
651
+ result2.createHmac = function createHmac(algorithm, key) {
652
+ return new SandboxHmac2(algorithm, key);
653
+ };
654
+ result2.Hmac = SandboxHmac2;
655
+ }
656
+ if (typeof _cryptoRandomFill !== "undefined") {
657
+ result2.randomBytes = function randomBytes(size, callback) {
658
+ if (typeof size !== "number" || size < 0 || size !== (size | 0)) {
659
+ var err = new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
660
+ if (typeof callback === "function") {
661
+ callback(err);
662
+ return;
663
+ }
664
+ throw err;
665
+ }
666
+ if (size > 2147483647) {
667
+ var rangeErr = new RangeError('The value of "size" is out of range. It must be >= 0 && <= 2147483647. Received ' + size);
668
+ if (typeof callback === "function") {
669
+ callback(rangeErr);
670
+ return;
671
+ }
672
+ throw rangeErr;
673
+ }
674
+ var buf = Buffer.alloc(size);
675
+ var offset = 0;
676
+ while (offset < size) {
677
+ var chunk = Math.min(size - offset, 65536);
678
+ var base64 = _cryptoRandomFill.applySync(void 0, [chunk]);
679
+ var hostBytes = Buffer.from(base64, "base64");
680
+ hostBytes.copy(buf, offset);
681
+ offset += chunk;
682
+ }
683
+ if (typeof callback === "function") {
684
+ callback(null, buf);
685
+ return;
686
+ }
687
+ return buf;
688
+ };
689
+ result2.randomFillSync = function randomFillSync(buffer, offset, size) {
690
+ if (offset === void 0) offset = 0;
691
+ var byteLength = buffer.byteLength !== void 0 ? buffer.byteLength : buffer.length;
692
+ if (size === void 0) size = byteLength - offset;
693
+ if (offset < 0 || size < 0 || offset + size > byteLength) {
694
+ throw new RangeError('The value of "offset + size" is out of range.');
695
+ }
696
+ var bytes = new Uint8Array(buffer.buffer || buffer, buffer.byteOffset ? buffer.byteOffset + offset : offset, size);
697
+ var filled = 0;
698
+ while (filled < size) {
699
+ var chunk = Math.min(size - filled, 65536);
700
+ var base64 = _cryptoRandomFill.applySync(void 0, [chunk]);
701
+ var hostBytes = Buffer.from(base64, "base64");
702
+ bytes.set(hostBytes, filled);
703
+ filled += chunk;
704
+ }
705
+ return buffer;
706
+ };
707
+ result2.randomFill = function randomFill(buffer, offsetOrCb, sizeOrCb, callback) {
708
+ var offset = 0;
709
+ var size;
710
+ var cb;
711
+ if (typeof offsetOrCb === "function") {
712
+ cb = offsetOrCb;
713
+ } else if (typeof sizeOrCb === "function") {
714
+ offset = offsetOrCb || 0;
715
+ cb = sizeOrCb;
716
+ } else {
717
+ offset = offsetOrCb || 0;
718
+ size = sizeOrCb;
719
+ cb = callback;
720
+ }
721
+ if (typeof cb !== "function") {
722
+ throw new TypeError("Callback must be a function");
723
+ }
724
+ try {
725
+ result2.randomFillSync(buffer, offset, size);
726
+ cb(null, buffer);
727
+ } catch (e) {
728
+ cb(e);
729
+ }
730
+ };
731
+ result2.randomInt = function randomInt(minOrMax, maxOrCb, callback) {
732
+ var min, max, cb;
733
+ if (typeof maxOrCb === "function" || maxOrCb === void 0) {
734
+ min = 0;
735
+ max = minOrMax;
736
+ cb = maxOrCb;
737
+ } else {
738
+ min = minOrMax;
739
+ max = maxOrCb;
740
+ cb = callback;
741
+ }
742
+ if (!Number.isSafeInteger(min)) {
743
+ var minErr = new TypeError('The "min" argument must be a safe integer');
744
+ if (typeof cb === "function") {
745
+ cb(minErr);
746
+ return;
747
+ }
748
+ throw minErr;
749
+ }
750
+ if (!Number.isSafeInteger(max)) {
751
+ var maxErr = new TypeError('The "max" argument must be a safe integer');
752
+ if (typeof cb === "function") {
753
+ cb(maxErr);
754
+ return;
755
+ }
756
+ throw maxErr;
757
+ }
758
+ if (max <= min) {
759
+ var rangeErr2 = new RangeError('The value of "max" is out of range. It must be greater than the value of "min" (' + min + ")");
760
+ if (typeof cb === "function") {
761
+ cb(rangeErr2);
762
+ return;
763
+ }
764
+ throw rangeErr2;
765
+ }
766
+ var range = max - min;
767
+ var bytes = 6;
768
+ var maxValid = Math.pow(2, 48) - Math.pow(2, 48) % range;
769
+ var val;
770
+ do {
771
+ var base64 = _cryptoRandomFill.applySync(void 0, [bytes]);
772
+ var buf = Buffer.from(base64, "base64");
773
+ val = buf.readUIntBE(0, bytes);
774
+ } while (val >= maxValid);
775
+ var result22 = min + val % range;
776
+ if (typeof cb === "function") {
777
+ cb(null, result22);
778
+ return;
779
+ }
780
+ return result22;
781
+ };
782
+ }
783
+ if (typeof _cryptoPbkdf2 !== "undefined") {
784
+ let createPbkdf2ArgTypeError2 = function(name3, value) {
785
+ var received;
786
+ if (value == null) {
787
+ received = " Received " + value;
788
+ } else if (typeof value === "object") {
789
+ received = value.constructor && value.constructor.name ? " Received an instance of " + value.constructor.name : " Received [object Object]";
790
+ } else {
791
+ var inspected = typeof value === "string" ? "'" + value + "'" : String(value);
792
+ received = " Received type " + typeof value + " (" + inspected + ")";
793
+ }
794
+ var error = new TypeError('The "' + name3 + '" argument must be of type number.' + received);
795
+ error.code = "ERR_INVALID_ARG_TYPE";
796
+ return error;
797
+ }, validatePbkdf2Args2 = function(password, salt, iterations, keylen, digest) {
798
+ var pwBuf = normalizeByteSource2(password, "password");
799
+ var saltBuf = normalizeByteSource2(salt, "salt");
800
+ if (typeof iterations !== "number") {
801
+ throw createPbkdf2ArgTypeError2("iterations", iterations);
802
+ }
803
+ if (!Number.isInteger(iterations)) {
804
+ throw createCryptoRangeError2(
805
+ "iterations",
806
+ 'The value of "iterations" is out of range. It must be an integer. Received ' + iterations
807
+ );
808
+ }
809
+ if (iterations < 1 || iterations > 2147483647) {
810
+ throw createCryptoRangeError2(
811
+ "iterations",
812
+ 'The value of "iterations" is out of range. It must be >= 1 && <= 2147483647. Received ' + iterations
813
+ );
814
+ }
815
+ if (typeof keylen !== "number") {
816
+ throw createPbkdf2ArgTypeError2("keylen", keylen);
817
+ }
818
+ if (!Number.isInteger(keylen)) {
819
+ throw createCryptoRangeError2(
820
+ "keylen",
821
+ 'The value of "keylen" is out of range. It must be an integer. Received ' + keylen
822
+ );
823
+ }
824
+ if (keylen < 0 || keylen > 2147483647) {
825
+ throw createCryptoRangeError2(
826
+ "keylen",
827
+ 'The value of "keylen" is out of range. It must be >= 0 && <= 2147483647. Received ' + keylen
828
+ );
829
+ }
830
+ if (typeof digest !== "string") {
831
+ throw createInvalidArgTypeError("digest", "of type string", digest);
832
+ }
833
+ return {
834
+ password: pwBuf,
835
+ salt: saltBuf
836
+ };
837
+ };
838
+ var createPbkdf2ArgTypeError = createPbkdf2ArgTypeError2, validatePbkdf2Args = validatePbkdf2Args2;
839
+ result2.pbkdf2Sync = function pbkdf2Sync(password, salt, iterations, keylen, digest) {
840
+ var normalized = validatePbkdf2Args2(password, salt, iterations, keylen, digest);
841
+ try {
842
+ var resultBase64 = _cryptoPbkdf2.applySync(void 0, [
843
+ normalized.password.toString("base64"),
844
+ normalized.salt.toString("base64"),
845
+ iterations,
846
+ keylen,
847
+ digest
848
+ ]);
849
+ return Buffer.from(resultBase64, "base64");
850
+ } catch (error) {
851
+ throw normalizeCryptoBridgeError(error);
852
+ }
853
+ };
854
+ result2.pbkdf2 = function pbkdf2(password, salt, iterations, keylen, digest, callback) {
855
+ if (typeof digest === "function" && callback === void 0) {
856
+ callback = digest;
857
+ digest = void 0;
858
+ }
859
+ if (typeof callback !== "function") {
860
+ throw createInvalidArgTypeError("callback", "of type function", callback);
861
+ }
862
+ try {
863
+ var derived = result2.pbkdf2Sync(password, salt, iterations, keylen, digest);
864
+ scheduleCryptoCallback(callback, [null, derived]);
865
+ } catch (e) {
866
+ throw normalizeCryptoBridgeError(e);
867
+ }
868
+ };
869
+ }
870
+ if (typeof _cryptoScrypt !== "undefined") {
871
+ result2.scryptSync = function scryptSync(password, salt, keylen, options) {
872
+ var pwBuf = typeof password === "string" ? Buffer.from(password, "utf8") : Buffer.from(password);
873
+ var saltBuf = typeof salt === "string" ? Buffer.from(salt, "utf8") : Buffer.from(salt);
874
+ var opts = {};
875
+ if (options) {
876
+ if (options.N !== void 0) opts.N = options.N;
877
+ if (options.r !== void 0) opts.r = options.r;
878
+ if (options.p !== void 0) opts.p = options.p;
879
+ if (options.maxmem !== void 0) opts.maxmem = options.maxmem;
880
+ if (options.cost !== void 0) opts.N = options.cost;
881
+ if (options.blockSize !== void 0) opts.r = options.blockSize;
882
+ if (options.parallelization !== void 0) opts.p = options.parallelization;
883
+ }
884
+ var resultBase64 = _cryptoScrypt.applySync(void 0, [
885
+ pwBuf.toString("base64"),
886
+ saltBuf.toString("base64"),
887
+ keylen,
888
+ JSON.stringify(opts)
889
+ ]);
890
+ return Buffer.from(resultBase64, "base64");
891
+ };
892
+ result2.scrypt = function scrypt(password, salt, keylen, optionsOrCb, callback) {
893
+ var opts = optionsOrCb;
894
+ var cb = callback;
895
+ if (typeof optionsOrCb === "function") {
896
+ opts = void 0;
897
+ cb = optionsOrCb;
898
+ }
899
+ try {
900
+ var derived = result2.scryptSync(password, salt, keylen, opts);
901
+ cb(null, derived);
902
+ } catch (e) {
903
+ cb(e);
904
+ }
905
+ };
906
+ }
907
+ if (typeof _cryptoCipheriv !== "undefined") {
908
+ let SandboxCipher2 = function(algorithm, key, iv, options) {
909
+ if (!(this instanceof SandboxCipher2)) {
910
+ return new SandboxCipher2(algorithm, key, iv, options);
911
+ }
912
+ if (typeof algorithm !== "string") {
913
+ throw createInvalidArgTypeError("cipher", "of type string", algorithm);
914
+ }
915
+ _Transform.call(this);
916
+ this._algorithm = algorithm;
917
+ this._key = normalizeByteSource2(key, "key");
918
+ this._iv = normalizeByteSource2(iv, "iv", { allowNull: true });
919
+ this._options = options || void 0;
920
+ this._authTag = null;
921
+ this._finalized = false;
922
+ this._sessionCreated = false;
923
+ this._sessionId = void 0;
924
+ this._aad = null;
925
+ this._aadOptions = void 0;
926
+ this._autoPadding = void 0;
927
+ this._chunks = [];
928
+ this._bufferedMode = !_useSessionCipher || !!options;
929
+ if (!this._bufferedMode) {
930
+ this._ensureSession();
931
+ } else if (!options) {
932
+ _cryptoCipheriv.applySync(void 0, [
933
+ this._algorithm,
934
+ this._key.toString("base64"),
935
+ this._iv === null ? null : this._iv.toString("base64"),
936
+ "",
937
+ serializeCipherBridgeOptions2({ validateOnly: true })
938
+ ]);
939
+ }
940
+ };
941
+ var SandboxCipher = SandboxCipher2;
942
+ var _useSessionCipher = typeof _cryptoCipherivCreate !== "undefined";
943
+ _inherits(SandboxCipher2, _Transform);
944
+ SandboxCipher2.prototype._ensureSession = function _ensureSession() {
945
+ if (this._bufferedMode || this._sessionCreated) {
946
+ return;
947
+ }
948
+ this._sessionCreated = true;
949
+ this._sessionId = _cryptoCipherivCreate.applySync(void 0, [
950
+ "cipher",
951
+ this._algorithm,
952
+ this._key.toString("base64"),
953
+ this._iv === null ? null : this._iv.toString("base64"),
954
+ serializeCipherBridgeOptions2(this._getBridgeOptions())
955
+ ]);
956
+ };
957
+ SandboxCipher2.prototype._getBridgeOptions = function _getBridgeOptions() {
958
+ var options = {};
959
+ if (this._options && this._options.authTagLength !== void 0) {
960
+ options.authTagLength = this._options.authTagLength;
961
+ }
962
+ if (this._aad) {
963
+ options.aad = this._aad;
964
+ }
965
+ if (this._aadOptions !== void 0) {
966
+ options.aadOptions = this._aadOptions;
967
+ }
968
+ if (this._autoPadding !== void 0) {
969
+ options.autoPadding = this._autoPadding;
970
+ }
971
+ return Object.keys(options).length === 0 ? null : options;
972
+ };
973
+ SandboxCipher2.prototype.update = function update(data, inputEncoding, outputEncoding) {
974
+ if (this._finalized) {
975
+ throw new Error("Attempting to call update() after final()");
976
+ }
977
+ var buf;
978
+ if (typeof data === "string") {
979
+ buf = Buffer.from(data, inputEncoding || "utf8");
980
+ } else {
981
+ buf = normalizeByteSource2(data, "data");
982
+ }
983
+ if (!this._bufferedMode) {
984
+ this._ensureSession();
985
+ var resultBase64 = _cryptoCipherivUpdate.applySync(void 0, [this._sessionId, buf.toString("base64")]);
986
+ var resultBuffer = Buffer.from(resultBase64, "base64");
987
+ return encodeCryptoResult2(resultBuffer, outputEncoding);
988
+ }
989
+ this._chunks.push(buf);
990
+ return encodeCryptoResult2(Buffer.alloc(0), outputEncoding);
991
+ };
992
+ SandboxCipher2.prototype.final = function final(outputEncoding) {
993
+ if (this._finalized) throw new Error("Attempting to call final() after already finalized");
994
+ this._finalized = true;
995
+ var parsed;
996
+ if (!this._bufferedMode) {
997
+ this._ensureSession();
998
+ var resultJson = _cryptoCipherivFinal.applySync(void 0, [this._sessionId]);
999
+ parsed = JSON.parse(resultJson);
1000
+ } else {
1001
+ var combined = Buffer.concat(this._chunks);
1002
+ var resultJson2 = _cryptoCipheriv.applySync(void 0, [
1003
+ this._algorithm,
1004
+ this._key.toString("base64"),
1005
+ this._iv === null ? null : this._iv.toString("base64"),
1006
+ combined.toString("base64"),
1007
+ serializeCipherBridgeOptions2(this._getBridgeOptions())
1008
+ ]);
1009
+ parsed = JSON.parse(resultJson2);
1010
+ }
1011
+ if (parsed.authTag) {
1012
+ this._authTag = Buffer.from(parsed.authTag, "base64");
1013
+ }
1014
+ var resultBuffer = Buffer.from(parsed.data, "base64");
1015
+ return encodeCryptoResult2(resultBuffer, outputEncoding);
1016
+ };
1017
+ SandboxCipher2.prototype.getAuthTag = function getAuthTag() {
1018
+ if (!this._finalized) throw new Error("Cannot call getAuthTag before final()");
1019
+ if (!this._authTag) throw new Error("Auth tag is not available");
1020
+ return this._authTag;
1021
+ };
1022
+ SandboxCipher2.prototype.setAAD = function setAAD(aad, options) {
1023
+ this._bufferedMode = true;
1024
+ this._aad = normalizeByteSource2(aad, "buffer");
1025
+ this._aadOptions = options;
1026
+ return this;
1027
+ };
1028
+ SandboxCipher2.prototype.setAutoPadding = function setAutoPadding(autoPadding) {
1029
+ this._bufferedMode = true;
1030
+ this._autoPadding = autoPadding !== false;
1031
+ return this;
1032
+ };
1033
+ SandboxCipher2.prototype._transform = function _transform(chunk, encoding, callback) {
1034
+ try {
1035
+ var output = this.update(chunk, encoding === "buffer" ? void 0 : encoding);
1036
+ if (output.length) {
1037
+ this.push(output);
1038
+ }
1039
+ callback();
1040
+ } catch (error) {
1041
+ callback(normalizeCryptoBridgeError(error));
1042
+ }
1043
+ };
1044
+ SandboxCipher2.prototype._flush = function _flush(callback) {
1045
+ try {
1046
+ var output = this.final();
1047
+ if (output.length) {
1048
+ this.push(output);
1049
+ }
1050
+ callback();
1051
+ } catch (error) {
1052
+ callback(normalizeCryptoBridgeError(error));
1053
+ }
1054
+ };
1055
+ result2.createCipheriv = function createCipheriv(algorithm, key, iv, options) {
1056
+ return new SandboxCipher2(algorithm, key, iv, options);
1057
+ };
1058
+ result2.Cipheriv = SandboxCipher2;
1059
+ }
1060
+ if (typeof _cryptoDecipheriv !== "undefined") {
1061
+ let SandboxDecipher2 = function(algorithm, key, iv, options) {
1062
+ if (!(this instanceof SandboxDecipher2)) {
1063
+ return new SandboxDecipher2(algorithm, key, iv, options);
1064
+ }
1065
+ if (typeof algorithm !== "string") {
1066
+ throw createInvalidArgTypeError("cipher", "of type string", algorithm);
1067
+ }
1068
+ _Transform.call(this);
1069
+ this._algorithm = algorithm;
1070
+ this._key = normalizeByteSource2(key, "key");
1071
+ this._iv = normalizeByteSource2(iv, "iv", { allowNull: true });
1072
+ this._options = options || void 0;
1073
+ this._authTag = null;
1074
+ this._finalized = false;
1075
+ this._sessionCreated = false;
1076
+ this._aad = null;
1077
+ this._aadOptions = void 0;
1078
+ this._autoPadding = void 0;
1079
+ this._chunks = [];
1080
+ this._bufferedMode = !_useSessionCipher || !!options;
1081
+ if (!this._bufferedMode) {
1082
+ this._ensureSession();
1083
+ } else if (!options) {
1084
+ _cryptoDecipheriv.applySync(void 0, [
1085
+ this._algorithm,
1086
+ this._key.toString("base64"),
1087
+ this._iv === null ? null : this._iv.toString("base64"),
1088
+ "",
1089
+ serializeCipherBridgeOptions2({ validateOnly: true })
1090
+ ]);
1091
+ }
1092
+ };
1093
+ var SandboxDecipher = SandboxDecipher2;
1094
+ _inherits(SandboxDecipher2, _Transform);
1095
+ SandboxDecipher2.prototype._ensureSession = function _ensureSession() {
1096
+ if (!this._bufferedMode && !this._sessionCreated) {
1097
+ this._sessionCreated = true;
1098
+ this._sessionId = _cryptoCipherivCreate.applySync(void 0, [
1099
+ "decipher",
1100
+ this._algorithm,
1101
+ this._key.toString("base64"),
1102
+ this._iv === null ? null : this._iv.toString("base64"),
1103
+ serializeCipherBridgeOptions2(this._getBridgeOptions())
1104
+ ]);
1105
+ }
1106
+ };
1107
+ SandboxDecipher2.prototype._getBridgeOptions = function _getBridgeOptions() {
1108
+ var options = {};
1109
+ if (this._options && this._options.authTagLength !== void 0) {
1110
+ options.authTagLength = this._options.authTagLength;
1111
+ }
1112
+ if (this._authTag) {
1113
+ options.authTag = this._authTag;
1114
+ }
1115
+ if (this._aad) {
1116
+ options.aad = this._aad;
1117
+ }
1118
+ if (this._aadOptions !== void 0) {
1119
+ options.aadOptions = this._aadOptions;
1120
+ }
1121
+ if (this._autoPadding !== void 0) {
1122
+ options.autoPadding = this._autoPadding;
1123
+ }
1124
+ return Object.keys(options).length === 0 ? null : options;
1125
+ };
1126
+ SandboxDecipher2.prototype.update = function update(data, inputEncoding, outputEncoding) {
1127
+ if (this._finalized) {
1128
+ throw new Error("Attempting to call update() after final()");
1129
+ }
1130
+ var buf;
1131
+ if (typeof data === "string") {
1132
+ buf = Buffer.from(data, inputEncoding || "utf8");
1133
+ } else {
1134
+ buf = normalizeByteSource2(data, "data");
1135
+ }
1136
+ if (!this._bufferedMode) {
1137
+ this._ensureSession();
1138
+ var resultBase64 = _cryptoCipherivUpdate.applySync(void 0, [this._sessionId, buf.toString("base64")]);
1139
+ var resultBuffer = Buffer.from(resultBase64, "base64");
1140
+ return encodeCryptoResult2(resultBuffer, outputEncoding);
1141
+ }
1142
+ this._chunks.push(buf);
1143
+ return encodeCryptoResult2(Buffer.alloc(0), outputEncoding);
1144
+ };
1145
+ SandboxDecipher2.prototype.final = function final(outputEncoding) {
1146
+ if (this._finalized) throw new Error("Attempting to call final() after already finalized");
1147
+ this._finalized = true;
1148
+ var resultBuffer;
1149
+ if (!this._bufferedMode) {
1150
+ this._ensureSession();
1151
+ var resultJson = _cryptoCipherivFinal.applySync(void 0, [this._sessionId]);
1152
+ var parsed = JSON.parse(resultJson);
1153
+ resultBuffer = Buffer.from(parsed.data, "base64");
1154
+ } else {
1155
+ var combined = Buffer.concat(this._chunks);
1156
+ var options = {};
1157
+ var resultBase64 = _cryptoDecipheriv.applySync(void 0, [
1158
+ this._algorithm,
1159
+ this._key.toString("base64"),
1160
+ this._iv === null ? null : this._iv.toString("base64"),
1161
+ combined.toString("base64"),
1162
+ serializeCipherBridgeOptions2(this._getBridgeOptions())
1163
+ ]);
1164
+ resultBuffer = Buffer.from(resultBase64, "base64");
1165
+ }
1166
+ return encodeCryptoResult2(resultBuffer, outputEncoding);
1167
+ };
1168
+ SandboxDecipher2.prototype.setAuthTag = function setAuthTag(tag) {
1169
+ this._bufferedMode = true;
1170
+ this._authTag = typeof tag === "string" ? Buffer.from(tag, "base64") : normalizeByteSource2(tag, "buffer");
1171
+ return this;
1172
+ };
1173
+ SandboxDecipher2.prototype.setAAD = function setAAD(aad, options) {
1174
+ this._bufferedMode = true;
1175
+ this._aad = normalizeByteSource2(aad, "buffer");
1176
+ this._aadOptions = options;
1177
+ return this;
1178
+ };
1179
+ SandboxDecipher2.prototype.setAutoPadding = function setAutoPadding(autoPadding) {
1180
+ this._bufferedMode = true;
1181
+ this._autoPadding = autoPadding !== false;
1182
+ return this;
1183
+ };
1184
+ SandboxDecipher2.prototype._transform = function _transform(chunk, encoding, callback) {
1185
+ try {
1186
+ var output = this.update(chunk, encoding === "buffer" ? void 0 : encoding);
1187
+ if (output.length) {
1188
+ this.push(output);
1189
+ }
1190
+ callback();
1191
+ } catch (error) {
1192
+ callback(normalizeCryptoBridgeError(error));
1193
+ }
1194
+ };
1195
+ SandboxDecipher2.prototype._flush = function _flush(callback) {
1196
+ try {
1197
+ var output = this.final();
1198
+ if (output.length) {
1199
+ this.push(output);
1200
+ }
1201
+ callback();
1202
+ } catch (error) {
1203
+ callback(normalizeCryptoBridgeError(error));
1204
+ }
1205
+ };
1206
+ result2.createDecipheriv = function createDecipheriv(algorithm, key, iv, options) {
1207
+ return new SandboxDecipher2(algorithm, key, iv, options);
1208
+ };
1209
+ result2.Decipheriv = SandboxDecipher2;
1210
+ }
1211
+ if (typeof _cryptoSign !== "undefined") {
1212
+ result2.sign = function sign(algorithm, data, key) {
1213
+ var dataBuf = typeof data === "string" ? Buffer.from(data, "utf8") : Buffer.from(data);
1214
+ var sigBase64;
1215
+ try {
1216
+ sigBase64 = _cryptoSign.applySync(void 0, [
1217
+ algorithm === void 0 ? null : algorithm,
1218
+ dataBuf.toString("base64"),
1219
+ JSON.stringify(serializeBridgeValue(key))
1220
+ ]);
1221
+ } catch (error) {
1222
+ throw normalizeCryptoBridgeError(error);
1223
+ }
1224
+ return Buffer.from(sigBase64, "base64");
1225
+ };
1226
+ }
1227
+ if (typeof _cryptoVerify !== "undefined") {
1228
+ result2.verify = function verify(algorithm, data, key, signature) {
1229
+ var dataBuf = typeof data === "string" ? Buffer.from(data, "utf8") : Buffer.from(data);
1230
+ var sigBuf = typeof signature === "string" ? Buffer.from(signature, "base64") : Buffer.from(signature);
1231
+ try {
1232
+ return _cryptoVerify.applySync(void 0, [
1233
+ algorithm === void 0 ? null : algorithm,
1234
+ dataBuf.toString("base64"),
1235
+ JSON.stringify(serializeBridgeValue(key)),
1236
+ sigBuf.toString("base64")
1237
+ ]);
1238
+ } catch (error) {
1239
+ throw normalizeCryptoBridgeError(error);
1240
+ }
1241
+ };
1242
+ }
1243
+ if (typeof _cryptoAsymmetricOp !== "undefined") {
1244
+ let asymmetricBridgeCall2 = function(operation, key, data) {
1245
+ var dataBuf = toRawBuffer(data);
1246
+ var resultBase64;
1247
+ try {
1248
+ resultBase64 = _cryptoAsymmetricOp.applySync(void 0, [
1249
+ operation,
1250
+ JSON.stringify(serializeBridgeValue(key)),
1251
+ dataBuf.toString("base64")
1252
+ ]);
1253
+ } catch (error) {
1254
+ throw normalizeCryptoBridgeError(error);
1255
+ }
1256
+ return Buffer.from(resultBase64, "base64");
1257
+ };
1258
+ var asymmetricBridgeCall = asymmetricBridgeCall2;
1259
+ result2.publicEncrypt = function publicEncrypt(key, data) {
1260
+ return asymmetricBridgeCall2("publicEncrypt", key, data);
1261
+ };
1262
+ result2.privateDecrypt = function privateDecrypt(key, data) {
1263
+ return asymmetricBridgeCall2("privateDecrypt", key, data);
1264
+ };
1265
+ result2.privateEncrypt = function privateEncrypt(key, data) {
1266
+ return asymmetricBridgeCall2("privateEncrypt", key, data);
1267
+ };
1268
+ result2.publicDecrypt = function publicDecrypt(key, data) {
1269
+ return asymmetricBridgeCall2("publicDecrypt", key, data);
1270
+ };
1271
+ }
1272
+ if (typeof _cryptoDiffieHellmanSessionCreate !== "undefined" && typeof _cryptoDiffieHellmanSessionCall !== "undefined") {
1273
+ let serializeDhKeyObject2 = function(value) {
1274
+ if (value.type === "secret") {
1275
+ return {
1276
+ type: "secret",
1277
+ raw: Buffer.from(value.export()).toString("base64")
1278
+ };
1279
+ }
1280
+ return {
1281
+ type: value.type,
1282
+ pem: value._pem || value.export({
1283
+ type: value.type === "private" ? "pkcs8" : "spki",
1284
+ format: "pem"
1285
+ })
1286
+ };
1287
+ }, serializeDhValue2 = function(value) {
1288
+ if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
1289
+ return value;
1290
+ }
1291
+ if (Buffer.isBuffer(value)) {
1292
+ return {
1293
+ __type: "buffer",
1294
+ value: Buffer.from(value).toString("base64")
1295
+ };
1296
+ }
1297
+ if (value instanceof ArrayBuffer) {
1298
+ return {
1299
+ __type: "buffer",
1300
+ value: Buffer.from(new Uint8Array(value)).toString("base64")
1301
+ };
1302
+ }
1303
+ if (ArrayBuffer.isView(value)) {
1304
+ return {
1305
+ __type: "buffer",
1306
+ value: Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString("base64")
1307
+ };
1308
+ }
1309
+ if (typeof value === "bigint") {
1310
+ return {
1311
+ __type: "bigint",
1312
+ value: value.toString()
1313
+ };
1314
+ }
1315
+ if (value && typeof value === "object" && (value.type === "public" || value.type === "private" || value.type === "secret") && typeof value.export === "function") {
1316
+ return {
1317
+ __type: "keyObject",
1318
+ value: serializeDhKeyObject2(value)
1319
+ };
1320
+ }
1321
+ if (Array.isArray(value)) {
1322
+ return value.map(serializeDhValue2);
1323
+ }
1324
+ if (value && typeof value === "object") {
1325
+ var output = {};
1326
+ var keys = Object.keys(value);
1327
+ for (var i = 0; i < keys.length; i++) {
1328
+ if (value[keys[i]] !== void 0) {
1329
+ output[keys[i]] = serializeDhValue2(value[keys[i]]);
1330
+ }
1331
+ }
1332
+ return output;
1333
+ }
1334
+ return String(value);
1335
+ }, restoreDhValue2 = function(value) {
1336
+ if (!value || typeof value !== "object") {
1337
+ return value;
1338
+ }
1339
+ if (value.__type === "buffer") {
1340
+ return Buffer.from(value.value, "base64");
1341
+ }
1342
+ if (value.__type === "bigint") {
1343
+ return BigInt(value.value);
1344
+ }
1345
+ if (Array.isArray(value)) {
1346
+ return value.map(restoreDhValue2);
1347
+ }
1348
+ var output = {};
1349
+ var keys = Object.keys(value);
1350
+ for (var i = 0; i < keys.length; i++) {
1351
+ output[keys[i]] = restoreDhValue2(value[keys[i]]);
1352
+ }
1353
+ return output;
1354
+ }, createDhSession2 = function(type, name3, argsLike) {
1355
+ var args = [];
1356
+ for (var i = 0; i < argsLike.length; i++) {
1357
+ args.push(serializeDhValue2(argsLike[i]));
1358
+ }
1359
+ return _cryptoDiffieHellmanSessionCreate.applySync(void 0, [
1360
+ JSON.stringify({
1361
+ type,
1362
+ name: name3,
1363
+ args
1364
+ })
1365
+ ]);
1366
+ }, callDhSession2 = function(sessionId, method, argsLike) {
1367
+ var args = [];
1368
+ for (var i = 0; i < argsLike.length; i++) {
1369
+ args.push(serializeDhValue2(argsLike[i]));
1370
+ }
1371
+ var response = JSON.parse(_cryptoDiffieHellmanSessionCall.applySync(void 0, [
1372
+ sessionId,
1373
+ JSON.stringify({
1374
+ method,
1375
+ args
1376
+ })
1377
+ ]));
1378
+ if (response && response.hasResult === false) {
1379
+ return void 0;
1380
+ }
1381
+ return restoreDhValue2(response && response.result);
1382
+ }, SandboxDiffieHellman2 = function(sessionId) {
1383
+ this._sessionId = sessionId;
1384
+ }, SandboxECDH2 = function(sessionId) {
1385
+ SandboxDiffieHellman2.call(this, sessionId);
1386
+ };
1387
+ var serializeDhKeyObject = serializeDhKeyObject2, serializeDhValue = serializeDhValue2, restoreDhValue = restoreDhValue2, createDhSession = createDhSession2, callDhSession = callDhSession2, SandboxDiffieHellman = SandboxDiffieHellman2, SandboxECDH = SandboxECDH2;
1388
+ Object.defineProperty(SandboxDiffieHellman2.prototype, "verifyError", {
1389
+ get: function getVerifyError() {
1390
+ return callDhSession2(this._sessionId, "verifyError", []);
1391
+ }
1392
+ });
1393
+ SandboxDiffieHellman2.prototype.generateKeys = function generateKeys(encoding) {
1394
+ if (arguments.length === 0) return callDhSession2(this._sessionId, "generateKeys", []);
1395
+ return callDhSession2(this._sessionId, "generateKeys", [encoding]);
1396
+ };
1397
+ SandboxDiffieHellman2.prototype.computeSecret = function computeSecret(key, inputEncoding, outputEncoding) {
1398
+ return callDhSession2(this._sessionId, "computeSecret", Array.prototype.slice.call(arguments));
1399
+ };
1400
+ SandboxDiffieHellman2.prototype.getPrime = function getPrime(encoding) {
1401
+ if (arguments.length === 0) return callDhSession2(this._sessionId, "getPrime", []);
1402
+ return callDhSession2(this._sessionId, "getPrime", [encoding]);
1403
+ };
1404
+ SandboxDiffieHellman2.prototype.getGenerator = function getGenerator(encoding) {
1405
+ if (arguments.length === 0) return callDhSession2(this._sessionId, "getGenerator", []);
1406
+ return callDhSession2(this._sessionId, "getGenerator", [encoding]);
1407
+ };
1408
+ SandboxDiffieHellman2.prototype.getPublicKey = function getPublicKey(encoding) {
1409
+ if (arguments.length === 0) return callDhSession2(this._sessionId, "getPublicKey", []);
1410
+ return callDhSession2(this._sessionId, "getPublicKey", [encoding]);
1411
+ };
1412
+ SandboxDiffieHellman2.prototype.getPrivateKey = function getPrivateKey(encoding) {
1413
+ if (arguments.length === 0) return callDhSession2(this._sessionId, "getPrivateKey", []);
1414
+ return callDhSession2(this._sessionId, "getPrivateKey", [encoding]);
1415
+ };
1416
+ SandboxDiffieHellman2.prototype.setPublicKey = function setPublicKey(key, encoding) {
1417
+ return callDhSession2(this._sessionId, "setPublicKey", Array.prototype.slice.call(arguments));
1418
+ };
1419
+ SandboxDiffieHellman2.prototype.setPrivateKey = function setPrivateKey(key, encoding) {
1420
+ return callDhSession2(this._sessionId, "setPrivateKey", Array.prototype.slice.call(arguments));
1421
+ };
1422
+ SandboxECDH2.prototype = Object.create(SandboxDiffieHellman2.prototype);
1423
+ SandboxECDH2.prototype.constructor = SandboxECDH2;
1424
+ SandboxECDH2.prototype.getPublicKey = function getPublicKey(encoding, format) {
1425
+ return callDhSession2(this._sessionId, "getPublicKey", Array.prototype.slice.call(arguments));
1426
+ };
1427
+ result2.createDiffieHellman = function createDiffieHellman() {
1428
+ return new SandboxDiffieHellman2(createDhSession2("dh", void 0, arguments));
1429
+ };
1430
+ result2.getDiffieHellman = function getDiffieHellman(name3) {
1431
+ return new SandboxDiffieHellman2(createDhSession2("group", name3, []));
1432
+ };
1433
+ result2.createDiffieHellmanGroup = result2.getDiffieHellman;
1434
+ result2.createECDH = function createECDH(curve) {
1435
+ return new SandboxECDH2(createDhSession2("ecdh", curve, []));
1436
+ };
1437
+ if (typeof _cryptoDiffieHellman !== "undefined") {
1438
+ result2.diffieHellman = function diffieHellman(options) {
1439
+ var resultJson = _cryptoDiffieHellman.applySync(void 0, [
1440
+ JSON.stringify(serializeDhValue2(options))
1441
+ ]);
1442
+ return restoreDhValue2(JSON.parse(resultJson));
1443
+ };
1444
+ }
1445
+ result2.DiffieHellman = SandboxDiffieHellman2;
1446
+ result2.DiffieHellmanGroup = SandboxDiffieHellman2;
1447
+ result2.ECDH = SandboxECDH2;
1448
+ }
1449
+ if (typeof _cryptoGenerateKeyPairSync !== "undefined") {
1450
+ let restoreBridgeValue2 = function(value) {
1451
+ if (!value || typeof value !== "object") {
1452
+ return value;
1453
+ }
1454
+ if (value.__type === "buffer") {
1455
+ return Buffer.from(value.value, "base64");
1456
+ }
1457
+ if (value.__type === "bigint") {
1458
+ return BigInt(value.value);
1459
+ }
1460
+ if (Array.isArray(value)) {
1461
+ return value.map(restoreBridgeValue2);
1462
+ }
1463
+ var output = {};
1464
+ var keys = Object.keys(value);
1465
+ for (var i = 0; i < keys.length; i++) {
1466
+ output[keys[i]] = restoreBridgeValue2(value[keys[i]]);
1467
+ }
1468
+ return output;
1469
+ }, cloneObject2 = function(value) {
1470
+ if (!value || typeof value !== "object") {
1471
+ return value;
1472
+ }
1473
+ if (Array.isArray(value)) {
1474
+ return value.map(cloneObject2);
1475
+ }
1476
+ var output = {};
1477
+ var keys = Object.keys(value);
1478
+ for (var i = 0; i < keys.length; i++) {
1479
+ output[keys[i]] = cloneObject2(value[keys[i]]);
1480
+ }
1481
+ return output;
1482
+ }, createDomException2 = function(message, name3) {
1483
+ if (typeof DOMException === "function") {
1484
+ return new DOMException(message, name3);
1485
+ }
1486
+ var error = new Error(message);
1487
+ error.name = name3;
1488
+ return error;
1489
+ }, toRawBuffer2 = function(data, encoding) {
1490
+ if (Buffer.isBuffer(data)) {
1491
+ return Buffer.from(data);
1492
+ }
1493
+ if (data instanceof ArrayBuffer) {
1494
+ return Buffer.from(new Uint8Array(data));
1495
+ }
1496
+ if (ArrayBuffer.isView(data)) {
1497
+ return Buffer.from(data.buffer, data.byteOffset, data.byteLength);
1498
+ }
1499
+ if (typeof data === "string") {
1500
+ return Buffer.from(data, encoding || "utf8");
1501
+ }
1502
+ return Buffer.from(data);
1503
+ }, serializeBridgeValue2 = function(value) {
1504
+ if (value === null) {
1505
+ return null;
1506
+ }
1507
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
1508
+ return value;
1509
+ }
1510
+ if (typeof value === "bigint") {
1511
+ return {
1512
+ __type: "bigint",
1513
+ value: value.toString()
1514
+ };
1515
+ }
1516
+ if (Buffer.isBuffer(value)) {
1517
+ return {
1518
+ __type: "buffer",
1519
+ value: Buffer.from(value).toString("base64")
1520
+ };
1521
+ }
1522
+ if (value instanceof ArrayBuffer) {
1523
+ return {
1524
+ __type: "buffer",
1525
+ value: Buffer.from(new Uint8Array(value)).toString("base64")
1526
+ };
1527
+ }
1528
+ if (ArrayBuffer.isView(value)) {
1529
+ return {
1530
+ __type: "buffer",
1531
+ value: Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString("base64")
1532
+ };
1533
+ }
1534
+ if (Array.isArray(value)) {
1535
+ return value.map(serializeBridgeValue2);
1536
+ }
1537
+ if (value && typeof value === "object" && (value.type === "public" || value.type === "private" || value.type === "secret") && typeof value.export === "function") {
1538
+ if (value.type === "secret") {
1539
+ return {
1540
+ __type: "keyObject",
1541
+ value: {
1542
+ type: "secret",
1543
+ raw: Buffer.from(value.export()).toString("base64")
1544
+ }
1545
+ };
1546
+ }
1547
+ return {
1548
+ __type: "keyObject",
1549
+ value: {
1550
+ type: value.type,
1551
+ pem: value._pem
1552
+ }
1553
+ };
1554
+ }
1555
+ if (value && typeof value === "object") {
1556
+ var output = {};
1557
+ var keys = Object.keys(value);
1558
+ for (var i = 0; i < keys.length; i++) {
1559
+ var entry = value[keys[i]];
1560
+ if (entry !== void 0) {
1561
+ output[keys[i]] = serializeBridgeValue2(entry);
1562
+ }
1563
+ }
1564
+ return output;
1565
+ }
1566
+ return String(value);
1567
+ }, normalizeCryptoBridgeError2 = function(error) {
1568
+ if (!error || typeof error !== "object") {
1569
+ return error;
1570
+ }
1571
+ if (error.code === void 0 && error.message === "error:07880109:common libcrypto routines::interrupted or cancelled") {
1572
+ error.code = "ERR_OSSL_CRYPTO_INTERRUPTED_OR_CANCELLED";
1573
+ }
1574
+ return error;
1575
+ }, deserializeGeneratedKeyValue2 = function(value) {
1576
+ if (!value || typeof value !== "object") {
1577
+ return value;
1578
+ }
1579
+ if (value.kind === "string") {
1580
+ return value.value;
1581
+ }
1582
+ if (value.kind === "buffer") {
1583
+ return Buffer.from(value.value, "base64");
1584
+ }
1585
+ if (value.kind === "keyObject") {
1586
+ return createGeneratedKeyObject2(value.value);
1587
+ }
1588
+ if (value.kind === "object") {
1589
+ return value.value;
1590
+ }
1591
+ return value;
1592
+ }, serializeBridgeOptions2 = function(options) {
1593
+ return JSON.stringify({
1594
+ hasOptions: options !== void 0,
1595
+ options: options === void 0 ? null : serializeBridgeValue2(options)
1596
+ });
1597
+ }, createInvalidArgTypeError2 = function(name3, expected, value) {
1598
+ var received;
1599
+ if (value == null) {
1600
+ received = " Received " + value;
1601
+ } else if (typeof value === "function") {
1602
+ received = " Received function " + (value.name || "anonymous");
1603
+ } else if (typeof value === "object") {
1604
+ if (value.constructor && value.constructor.name) {
1605
+ received = " Received an instance of " + value.constructor.name;
1606
+ } else {
1607
+ received = " Received [object Object]";
1608
+ }
1609
+ } else {
1610
+ var inspected = typeof value === "string" ? "'" + value + "'" : String(value);
1611
+ if (inspected.length > 28) {
1612
+ inspected = inspected.slice(0, 25) + "...";
1613
+ }
1614
+ received = " Received type " + typeof value + " (" + inspected + ")";
1615
+ }
1616
+ var error = new TypeError('The "' + name3 + '" argument must be ' + expected + "." + received);
1617
+ error.code = "ERR_INVALID_ARG_TYPE";
1618
+ return error;
1619
+ }, scheduleCryptoCallback2 = function(callback, args) {
1620
+ setTimeout(function() {
1621
+ callback.apply(void 0, args);
1622
+ }, 0);
1623
+ }, shouldThrowCryptoValidationError2 = function(error) {
1624
+ if (!error || typeof error !== "object") {
1625
+ return false;
1626
+ }
1627
+ if (error.name === "TypeError" || error.name === "RangeError") {
1628
+ return true;
1629
+ }
1630
+ var code = error.code;
1631
+ return code === "ERR_MISSING_OPTION" || code === "ERR_CRYPTO_UNKNOWN_DH_GROUP" || code === "ERR_OUT_OF_RANGE" || typeof code === "string" && code.indexOf("ERR_INVALID_ARG_") === 0;
1632
+ }, ensureCryptoCallback2 = function(callback, syncValidator) {
1633
+ if (typeof callback === "function") {
1634
+ return callback;
1635
+ }
1636
+ if (typeof syncValidator === "function") {
1637
+ syncValidator();
1638
+ }
1639
+ throw createInvalidArgTypeError2("callback", "of type function", callback);
1640
+ }, SandboxKeyObject2 = function(type, handle) {
1641
+ this.type = type;
1642
+ this._pem = handle && handle.pem !== void 0 ? handle.pem : void 0;
1643
+ this._raw = handle && handle.raw !== void 0 ? handle.raw : void 0;
1644
+ this._jwk = handle && handle.jwk !== void 0 ? cloneObject2(handle.jwk) : void 0;
1645
+ this.asymmetricKeyType = handle && handle.asymmetricKeyType !== void 0 ? handle.asymmetricKeyType : void 0;
1646
+ this.asymmetricKeyDetails = handle && handle.asymmetricKeyDetails !== void 0 ? restoreBridgeValue2(handle.asymmetricKeyDetails) : void 0;
1647
+ this.symmetricKeySize = type === "secret" && handle && handle.raw !== void 0 ? Buffer.from(handle.raw, "base64").byteLength : void 0;
1648
+ }, normalizeNamedCurve2 = function(namedCurve) {
1649
+ if (!namedCurve) {
1650
+ return namedCurve;
1651
+ }
1652
+ var upper = String(namedCurve).toUpperCase();
1653
+ if (upper === "PRIME256V1" || upper === "SECP256R1") return "P-256";
1654
+ if (upper === "SECP384R1") return "P-384";
1655
+ if (upper === "SECP521R1") return "P-521";
1656
+ return namedCurve;
1657
+ }, normalizeAlgorithmInput2 = function(algorithm) {
1658
+ if (typeof algorithm === "string") {
1659
+ return { name: algorithm };
1660
+ }
1661
+ return Object.assign({}, algorithm);
1662
+ }, createCompatibleCryptoKey2 = function(keyData) {
1663
+ var key;
1664
+ if (globalThis.CryptoKey && globalThis.CryptoKey.prototype && globalThis.CryptoKey.prototype !== SandboxCryptoKey.prototype) {
1665
+ key = Object.create(globalThis.CryptoKey.prototype);
1666
+ key.type = keyData.type;
1667
+ key.extractable = keyData.extractable;
1668
+ key.algorithm = keyData.algorithm;
1669
+ key.usages = keyData.usages;
1670
+ key._keyData = keyData;
1671
+ key._pem = keyData._pem;
1672
+ key._jwk = keyData._jwk;
1673
+ key._raw = keyData._raw;
1674
+ key._sourceKeyObjectData = keyData._sourceKeyObjectData;
1675
+ return key;
1676
+ }
1677
+ return new SandboxCryptoKey(keyData);
1678
+ }, buildCryptoKeyFromKeyObject2 = function(keyObject, algorithm, extractable, usages) {
1679
+ var algo = normalizeAlgorithmInput2(algorithm);
1680
+ var name3 = algo.name;
1681
+ if (keyObject.type === "secret") {
1682
+ var secretBytes = Buffer.from(keyObject._raw || "", "base64");
1683
+ if (name3 === "PBKDF2") {
1684
+ if (extractable) {
1685
+ throw new SyntaxError("PBKDF2 keys are not extractable");
1686
+ }
1687
+ if (usages.some(function(usage) {
1688
+ return usage !== "deriveBits" && usage !== "deriveKey";
1689
+ })) {
1690
+ throw new SyntaxError("Unsupported key usage for a PBKDF2 key");
1691
+ }
1692
+ return createCompatibleCryptoKey2({
1693
+ type: "secret",
1694
+ extractable,
1695
+ algorithm: { name: name3 },
1696
+ usages: Array.from(usages),
1697
+ _raw: keyObject._raw,
1698
+ _sourceKeyObjectData: {
1699
+ type: "secret",
1700
+ raw: keyObject._raw
1701
+ }
1702
+ });
1703
+ }
1704
+ if (name3 === "HMAC") {
1705
+ if (!secretBytes.byteLength || algo.length === 0) {
1706
+ throw createDomException2("Zero-length key is not supported", "DataError");
1707
+ }
1708
+ if (!usages.length) {
1709
+ throw new SyntaxError("Usages cannot be empty when importing a secret key.");
1710
+ }
1711
+ return createCompatibleCryptoKey2({
1712
+ type: "secret",
1713
+ extractable,
1714
+ algorithm: {
1715
+ name: name3,
1716
+ hash: typeof algo.hash === "string" ? { name: algo.hash } : cloneObject2(algo.hash),
1717
+ length: secretBytes.byteLength * 8
1718
+ },
1719
+ usages: Array.from(usages),
1720
+ _raw: keyObject._raw,
1721
+ _sourceKeyObjectData: {
1722
+ type: "secret",
1723
+ raw: keyObject._raw
1724
+ }
1725
+ });
1726
+ }
1727
+ return createCompatibleCryptoKey2({
1728
+ type: "secret",
1729
+ extractable,
1730
+ algorithm: {
1731
+ name: name3,
1732
+ length: secretBytes.byteLength * 8
1733
+ },
1734
+ usages: Array.from(usages),
1735
+ _raw: keyObject._raw,
1736
+ _sourceKeyObjectData: {
1737
+ type: "secret",
1738
+ raw: keyObject._raw
1739
+ }
1740
+ });
1741
+ }
1742
+ var keyType = String(keyObject.asymmetricKeyType || "").toLowerCase();
1743
+ var algorithmName = String(name3 || "");
1744
+ if ((keyType === "ed25519" || keyType === "ed448" || keyType === "x25519" || keyType === "x448") && keyType !== algorithmName.toLowerCase()) {
1745
+ throw createDomException2("Invalid key type", "DataError");
1746
+ }
1747
+ if (algorithmName === "ECDH") {
1748
+ if (keyObject.type === "private" && !usages.length) {
1749
+ throw new SyntaxError("Usages cannot be empty when importing a private key.");
1750
+ }
1751
+ var actualCurve = normalizeNamedCurve2(
1752
+ keyObject.asymmetricKeyDetails && keyObject.asymmetricKeyDetails.namedCurve
1753
+ );
1754
+ if (algo.namedCurve && actualCurve && normalizeNamedCurve2(algo.namedCurve) !== actualCurve) {
1755
+ throw createDomException2("Named curve mismatch", "DataError");
1756
+ }
1757
+ }
1758
+ var normalizedAlgo = cloneObject2(algo);
1759
+ if (typeof normalizedAlgo.hash === "string") {
1760
+ normalizedAlgo.hash = { name: normalizedAlgo.hash };
1761
+ }
1762
+ return createCompatibleCryptoKey2({
1763
+ type: keyObject.type,
1764
+ extractable,
1765
+ algorithm: normalizedAlgo,
1766
+ usages: Array.from(usages),
1767
+ _pem: keyObject._pem,
1768
+ _jwk: cloneObject2(keyObject._jwk),
1769
+ _sourceKeyObjectData: {
1770
+ type: keyObject.type,
1771
+ pem: keyObject._pem,
1772
+ jwk: cloneObject2(keyObject._jwk),
1773
+ asymmetricKeyType: keyObject.asymmetricKeyType,
1774
+ asymmetricKeyDetails: cloneObject2(keyObject.asymmetricKeyDetails)
1775
+ }
1776
+ });
1777
+ }, createAsymmetricKeyObject2 = function(type, key) {
1778
+ if (typeof key === "string") {
1779
+ if (key.indexOf("-----BEGIN") === -1) {
1780
+ throw new TypeError("error:0900006e:PEM routines:OPENSSL_internal:NO_START_LINE");
1781
+ }
1782
+ return new SandboxKeyObject2(type, { pem: key });
1783
+ }
1784
+ if (key && typeof key === "object" && key._pem) {
1785
+ return new SandboxKeyObject2(type, {
1786
+ pem: key._pem,
1787
+ jwk: key._jwk,
1788
+ asymmetricKeyType: key.asymmetricKeyType,
1789
+ asymmetricKeyDetails: key.asymmetricKeyDetails
1790
+ });
1791
+ }
1792
+ if (key && typeof key === "object" && key.key) {
1793
+ var keyData = typeof key.key === "string" ? key.key : key.key.toString("utf8");
1794
+ return new SandboxKeyObject2(type, { pem: keyData });
1795
+ }
1796
+ if (Buffer.isBuffer(key)) {
1797
+ var keyStr = key.toString("utf8");
1798
+ if (keyStr.indexOf("-----BEGIN") === -1) {
1799
+ throw new TypeError("error:0900006e:PEM routines:OPENSSL_internal:NO_START_LINE");
1800
+ }
1801
+ return new SandboxKeyObject2(type, { pem: keyStr });
1802
+ }
1803
+ return new SandboxKeyObject2(type, { pem: String(key) });
1804
+ }, createGeneratedKeyObject2 = function(value) {
1805
+ return new SandboxKeyObject2(value.type, {
1806
+ pem: value.pem,
1807
+ raw: value.raw,
1808
+ jwk: value.jwk,
1809
+ asymmetricKeyType: value.asymmetricKeyType,
1810
+ asymmetricKeyDetails: value.asymmetricKeyDetails
1811
+ });
1812
+ };
1813
+ var restoreBridgeValue = restoreBridgeValue2, cloneObject = cloneObject2, createDomException = createDomException2, toRawBuffer = toRawBuffer2, serializeBridgeValue = serializeBridgeValue2, normalizeCryptoBridgeError = normalizeCryptoBridgeError2, deserializeGeneratedKeyValue = deserializeGeneratedKeyValue2, serializeBridgeOptions = serializeBridgeOptions2, createInvalidArgTypeError = createInvalidArgTypeError2, scheduleCryptoCallback = scheduleCryptoCallback2, shouldThrowCryptoValidationError = shouldThrowCryptoValidationError2, ensureCryptoCallback = ensureCryptoCallback2, SandboxKeyObject = SandboxKeyObject2, normalizeNamedCurve = normalizeNamedCurve2, normalizeAlgorithmInput = normalizeAlgorithmInput2, createCompatibleCryptoKey = createCompatibleCryptoKey2, buildCryptoKeyFromKeyObject = buildCryptoKeyFromKeyObject2, createAsymmetricKeyObject = createAsymmetricKeyObject2, createGeneratedKeyObject = createGeneratedKeyObject2;
1814
+ Object.defineProperty(SandboxKeyObject2.prototype, Symbol.toStringTag, {
1815
+ value: "KeyObject",
1816
+ configurable: true
1817
+ });
1818
+ SandboxKeyObject2.prototype.export = function exportKey(options) {
1819
+ if (this.type === "secret") {
1820
+ return Buffer.from(this._raw || "", "base64");
1821
+ }
1822
+ if (!options || typeof options !== "object") {
1823
+ throw new TypeError('The "options" argument must be of type object.');
1824
+ }
1825
+ if (options.format === "jwk") {
1826
+ return cloneObject2(this._jwk);
1827
+ }
1828
+ if (options.format === "der") {
1829
+ var lines = String(this._pem || "").split("\n").filter(function(l) {
1830
+ return l && l.indexOf("-----") !== 0;
1831
+ });
1832
+ return Buffer.from(lines.join(""), "base64");
1833
+ }
1834
+ return this._pem;
1835
+ };
1836
+ SandboxKeyObject2.prototype.toString = function() {
1837
+ return "[object KeyObject]";
1838
+ };
1839
+ SandboxKeyObject2.prototype.equals = function equals(other) {
1840
+ if (!(other instanceof SandboxKeyObject2)) {
1841
+ return false;
1842
+ }
1843
+ if (this.type !== other.type) {
1844
+ return false;
1845
+ }
1846
+ if (this.type === "secret") {
1847
+ return (this._raw || "") === (other._raw || "");
1848
+ }
1849
+ return (this._pem || "") === (other._pem || "") && this.asymmetricKeyType === other.asymmetricKeyType;
1850
+ };
1851
+ SandboxKeyObject2.prototype.toCryptoKey = function toCryptoKey(algorithm, extractable, usages) {
1852
+ return buildCryptoKeyFromKeyObject2(this, algorithm, extractable, Array.from(usages || []));
1853
+ };
1854
+ result2.generateKeyPairSync = function generateKeyPairSync(type, options) {
1855
+ var resultJson = _cryptoGenerateKeyPairSync.applySync(void 0, [
1856
+ type,
1857
+ serializeBridgeOptions2(options)
1858
+ ]);
1859
+ var parsed = JSON.parse(resultJson);
1860
+ if (parsed.publicKey && parsed.publicKey.kind) {
1861
+ return {
1862
+ publicKey: deserializeGeneratedKeyValue2(parsed.publicKey),
1863
+ privateKey: deserializeGeneratedKeyValue2(parsed.privateKey)
1864
+ };
1865
+ }
1866
+ return {
1867
+ publicKey: createGeneratedKeyObject2(parsed.publicKey),
1868
+ privateKey: createGeneratedKeyObject2(parsed.privateKey)
1869
+ };
1870
+ };
1871
+ result2.generateKeyPair = function generateKeyPair(type, options, callback) {
1872
+ if (typeof options === "function") {
1873
+ callback = options;
1874
+ options = void 0;
1875
+ }
1876
+ callback = ensureCryptoCallback2(callback, function() {
1877
+ result2.generateKeyPairSync(type, options);
1878
+ });
1879
+ try {
1880
+ var pair = result2.generateKeyPairSync(type, options);
1881
+ scheduleCryptoCallback2(callback, [null, pair.publicKey, pair.privateKey]);
1882
+ } catch (e) {
1883
+ if (shouldThrowCryptoValidationError2(e)) {
1884
+ throw e;
1885
+ }
1886
+ scheduleCryptoCallback2(callback, [e]);
1887
+ }
1888
+ };
1889
+ if (typeof _cryptoGenerateKeySync !== "undefined") {
1890
+ result2.generateKeySync = function generateKeySync(type, options) {
1891
+ var resultJson;
1892
+ try {
1893
+ resultJson = _cryptoGenerateKeySync.applySync(void 0, [
1894
+ type,
1895
+ serializeBridgeOptions2(options)
1896
+ ]);
1897
+ } catch (error) {
1898
+ throw normalizeCryptoBridgeError2(error);
1899
+ }
1900
+ return createGeneratedKeyObject2(JSON.parse(resultJson));
1901
+ };
1902
+ result2.generateKey = function generateKey(type, options, callback) {
1903
+ callback = ensureCryptoCallback2(callback, function() {
1904
+ result2.generateKeySync(type, options);
1905
+ });
1906
+ try {
1907
+ var key = result2.generateKeySync(type, options);
1908
+ scheduleCryptoCallback2(callback, [null, key]);
1909
+ } catch (e) {
1910
+ if (shouldThrowCryptoValidationError2(e)) {
1911
+ throw e;
1912
+ }
1913
+ scheduleCryptoCallback2(callback, [e]);
1914
+ }
1915
+ };
1916
+ }
1917
+ if (typeof _cryptoGeneratePrimeSync !== "undefined") {
1918
+ result2.generatePrimeSync = function generatePrimeSync(size, options) {
1919
+ var resultJson;
1920
+ try {
1921
+ resultJson = _cryptoGeneratePrimeSync.applySync(void 0, [
1922
+ size,
1923
+ serializeBridgeOptions2(options)
1924
+ ]);
1925
+ } catch (error) {
1926
+ throw normalizeCryptoBridgeError2(error);
1927
+ }
1928
+ return restoreBridgeValue2(JSON.parse(resultJson));
1929
+ };
1930
+ result2.generatePrime = function generatePrime(size, options, callback) {
1931
+ if (typeof options === "function") {
1932
+ callback = options;
1933
+ options = void 0;
1934
+ }
1935
+ callback = ensureCryptoCallback2(callback, function() {
1936
+ result2.generatePrimeSync(size, options);
1937
+ });
1938
+ try {
1939
+ var prime = result2.generatePrimeSync(size, options);
1940
+ scheduleCryptoCallback2(callback, [null, prime]);
1941
+ } catch (e) {
1942
+ if (shouldThrowCryptoValidationError2(e)) {
1943
+ throw e;
1944
+ }
1945
+ scheduleCryptoCallback2(callback, [e]);
1946
+ }
1947
+ };
1948
+ }
1949
+ result2.createPublicKey = function createPublicKey(key) {
1950
+ if (typeof _cryptoCreateKeyObject !== "undefined") {
1951
+ var resultJson;
1952
+ try {
1953
+ resultJson = _cryptoCreateKeyObject.applySync(void 0, [
1954
+ "createPublicKey",
1955
+ JSON.stringify(serializeBridgeValue2(key))
1956
+ ]);
1957
+ } catch (error) {
1958
+ throw normalizeCryptoBridgeError2(error);
1959
+ }
1960
+ return createGeneratedKeyObject2(JSON.parse(resultJson));
1961
+ }
1962
+ return createAsymmetricKeyObject2("public", key);
1963
+ };
1964
+ result2.createPrivateKey = function createPrivateKey(key) {
1965
+ if (typeof _cryptoCreateKeyObject !== "undefined") {
1966
+ var resultJson;
1967
+ try {
1968
+ resultJson = _cryptoCreateKeyObject.applySync(void 0, [
1969
+ "createPrivateKey",
1970
+ JSON.stringify(serializeBridgeValue2(key))
1971
+ ]);
1972
+ } catch (error) {
1973
+ throw normalizeCryptoBridgeError2(error);
1974
+ }
1975
+ return createGeneratedKeyObject2(JSON.parse(resultJson));
1976
+ }
1977
+ return createAsymmetricKeyObject2("private", key);
1978
+ };
1979
+ result2.createSecretKey = function createSecretKey(key, encoding) {
1980
+ return new SandboxKeyObject2("secret", {
1981
+ raw: toRawBuffer2(key, encoding).toString("base64")
1982
+ });
1983
+ };
1984
+ SandboxKeyObject2.from = function from(key) {
1985
+ if (!key || typeof key !== "object" || key[Symbol.toStringTag] !== "CryptoKey") {
1986
+ throw new TypeError('The "key" argument must be an instance of CryptoKey.');
1987
+ }
1988
+ if (key._sourceKeyObjectData && key._sourceKeyObjectData.type === "secret") {
1989
+ return new SandboxKeyObject2("secret", {
1990
+ raw: key._sourceKeyObjectData.raw
1991
+ });
1992
+ }
1993
+ return new SandboxKeyObject2(key.type, {
1994
+ pem: key._pem,
1995
+ jwk: key._jwk,
1996
+ asymmetricKeyType: key._sourceKeyObjectData && key._sourceKeyObjectData.asymmetricKeyType,
1997
+ asymmetricKeyDetails: key._sourceKeyObjectData && key._sourceKeyObjectData.asymmetricKeyDetails
1998
+ });
1999
+ };
2000
+ result2.KeyObject = SandboxKeyObject2;
2001
+ }
2002
+ if (typeof _cryptoSubtle !== "undefined") {
2003
+ let SandboxCryptoKey2 = function(keyData) {
2004
+ this.type = keyData.type;
2005
+ this.extractable = keyData.extractable;
2006
+ this.algorithm = keyData.algorithm;
2007
+ this.usages = keyData.usages;
2008
+ this._keyData = keyData;
2009
+ this._pem = keyData._pem;
2010
+ this._jwk = keyData._jwk;
2011
+ this._raw = keyData._raw;
2012
+ this._sourceKeyObjectData = keyData._sourceKeyObjectData;
2013
+ }, toBase642 = function(data) {
2014
+ if (typeof data === "string") return Buffer.from(data).toString("base64");
2015
+ if (data instanceof ArrayBuffer) return Buffer.from(new Uint8Array(data)).toString("base64");
2016
+ if (ArrayBuffer.isView(data)) return Buffer.from(new Uint8Array(data.buffer, data.byteOffset, data.byteLength)).toString("base64");
2017
+ return Buffer.from(data).toString("base64");
2018
+ }, subtleCall2 = function(reqObj) {
2019
+ return _cryptoSubtle.applySync(void 0, [JSON.stringify(reqObj)]);
2020
+ }, normalizeAlgo2 = function(algorithm) {
2021
+ if (typeof algorithm === "string") return { name: algorithm };
2022
+ return algorithm;
2023
+ };
2024
+ var SandboxCryptoKey = SandboxCryptoKey2, toBase64 = toBase642, subtleCall = subtleCall2, normalizeAlgo = normalizeAlgo2;
2025
+ Object.defineProperty(SandboxCryptoKey2.prototype, Symbol.toStringTag, {
2026
+ value: "CryptoKey",
2027
+ configurable: true
2028
+ });
2029
+ Object.defineProperty(SandboxCryptoKey2, Symbol.hasInstance, {
2030
+ value: function(candidate) {
2031
+ return !!(candidate && typeof candidate === "object" && (candidate._keyData || candidate[Symbol.toStringTag] === "CryptoKey"));
2032
+ },
2033
+ configurable: true
2034
+ });
2035
+ if (globalThis.CryptoKey && globalThis.CryptoKey.prototype && globalThis.CryptoKey.prototype !== SandboxCryptoKey2.prototype) {
2036
+ Object.setPrototypeOf(SandboxCryptoKey2.prototype, globalThis.CryptoKey.prototype);
2037
+ }
2038
+ if (typeof globalThis.CryptoKey === "undefined") {
2039
+ __requireExposeCustomGlobal("CryptoKey", SandboxCryptoKey2);
2040
+ } else if (globalThis.CryptoKey !== SandboxCryptoKey2) {
2041
+ globalThis.CryptoKey = SandboxCryptoKey2;
2042
+ }
2043
+ var SandboxSubtle = {};
2044
+ SandboxSubtle.digest = function digest(algorithm, data) {
2045
+ return Promise.resolve().then(function() {
2046
+ var algo = normalizeAlgo2(algorithm);
2047
+ var result22 = JSON.parse(subtleCall2({
2048
+ op: "digest",
2049
+ algorithm: algo.name,
2050
+ data: toBase642(data)
2051
+ }));
2052
+ var buf = Buffer.from(result22.data, "base64");
2053
+ return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
2054
+ });
2055
+ };
2056
+ SandboxSubtle.generateKey = function generateKey(algorithm, extractable, keyUsages) {
2057
+ return Promise.resolve().then(function() {
2058
+ var algo = normalizeAlgo2(algorithm);
2059
+ var reqAlgo = Object.assign({}, algo);
2060
+ if (reqAlgo.hash) reqAlgo.hash = normalizeAlgo2(reqAlgo.hash);
2061
+ if (reqAlgo.publicExponent) {
2062
+ reqAlgo.publicExponent = Buffer.from(new Uint8Array(reqAlgo.publicExponent.buffer || reqAlgo.publicExponent)).toString("base64");
2063
+ }
2064
+ var result22 = JSON.parse(subtleCall2({
2065
+ op: "generateKey",
2066
+ algorithm: reqAlgo,
2067
+ extractable,
2068
+ usages: Array.from(keyUsages)
2069
+ }));
2070
+ if (result22.publicKey && result22.privateKey) {
2071
+ return {
2072
+ publicKey: new SandboxCryptoKey2(result22.publicKey),
2073
+ privateKey: new SandboxCryptoKey2(result22.privateKey)
2074
+ };
2075
+ }
2076
+ return new SandboxCryptoKey2(result22.key);
2077
+ });
2078
+ };
2079
+ SandboxSubtle.importKey = function importKey(format, keyData, algorithm, extractable, keyUsages) {
2080
+ return Promise.resolve().then(function() {
2081
+ var algo = normalizeAlgo2(algorithm);
2082
+ var reqAlgo = Object.assign({}, algo);
2083
+ if (reqAlgo.hash) reqAlgo.hash = normalizeAlgo2(reqAlgo.hash);
2084
+ var serializedKeyData;
2085
+ if (format === "jwk") {
2086
+ serializedKeyData = keyData;
2087
+ } else if (format === "raw") {
2088
+ serializedKeyData = toBase642(keyData);
2089
+ } else {
2090
+ serializedKeyData = toBase642(keyData);
2091
+ }
2092
+ var result22 = JSON.parse(subtleCall2({
2093
+ op: "importKey",
2094
+ format,
2095
+ keyData: serializedKeyData,
2096
+ algorithm: reqAlgo,
2097
+ extractable,
2098
+ usages: Array.from(keyUsages)
2099
+ }));
2100
+ return new SandboxCryptoKey2(result22.key);
2101
+ });
2102
+ };
2103
+ SandboxSubtle.exportKey = function exportKey(format, key) {
2104
+ return Promise.resolve().then(function() {
2105
+ var result22 = JSON.parse(subtleCall2({
2106
+ op: "exportKey",
2107
+ format,
2108
+ key: key._keyData
2109
+ }));
2110
+ if (format === "jwk") return result22.jwk;
2111
+ var buf = Buffer.from(result22.data, "base64");
2112
+ return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
2113
+ });
2114
+ };
2115
+ SandboxSubtle.encrypt = function encrypt(algorithm, key, data) {
2116
+ return Promise.resolve().then(function() {
2117
+ var algo = normalizeAlgo2(algorithm);
2118
+ var reqAlgo = Object.assign({}, algo);
2119
+ if (reqAlgo.iv) reqAlgo.iv = toBase642(reqAlgo.iv);
2120
+ if (reqAlgo.additionalData) reqAlgo.additionalData = toBase642(reqAlgo.additionalData);
2121
+ var result22 = JSON.parse(subtleCall2({
2122
+ op: "encrypt",
2123
+ algorithm: reqAlgo,
2124
+ key: key._keyData,
2125
+ data: toBase642(data)
2126
+ }));
2127
+ var buf = Buffer.from(result22.data, "base64");
2128
+ return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
2129
+ });
2130
+ };
2131
+ SandboxSubtle.decrypt = function decrypt(algorithm, key, data) {
2132
+ return Promise.resolve().then(function() {
2133
+ var algo = normalizeAlgo2(algorithm);
2134
+ var reqAlgo = Object.assign({}, algo);
2135
+ if (reqAlgo.iv) reqAlgo.iv = toBase642(reqAlgo.iv);
2136
+ if (reqAlgo.additionalData) reqAlgo.additionalData = toBase642(reqAlgo.additionalData);
2137
+ var result22 = JSON.parse(subtleCall2({
2138
+ op: "decrypt",
2139
+ algorithm: reqAlgo,
2140
+ key: key._keyData,
2141
+ data: toBase642(data)
2142
+ }));
2143
+ var buf = Buffer.from(result22.data, "base64");
2144
+ return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
2145
+ });
2146
+ };
2147
+ SandboxSubtle.sign = function sign(algorithm, key, data) {
2148
+ return Promise.resolve().then(function() {
2149
+ var result22 = JSON.parse(subtleCall2({
2150
+ op: "sign",
2151
+ algorithm: normalizeAlgo2(algorithm),
2152
+ key: key._keyData,
2153
+ data: toBase642(data)
2154
+ }));
2155
+ var buf = Buffer.from(result22.data, "base64");
2156
+ return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
2157
+ });
2158
+ };
2159
+ SandboxSubtle.verify = function verify(algorithm, key, signature, data) {
2160
+ return Promise.resolve().then(function() {
2161
+ var result22 = JSON.parse(subtleCall2({
2162
+ op: "verify",
2163
+ algorithm: normalizeAlgo2(algorithm),
2164
+ key: key._keyData,
2165
+ signature: toBase642(signature),
2166
+ data: toBase642(data)
2167
+ }));
2168
+ return result22.result;
2169
+ });
2170
+ };
2171
+ SandboxSubtle.deriveBits = function deriveBits(algorithm, baseKey, length) {
2172
+ return Promise.resolve().then(function() {
2173
+ var algo = normalizeAlgo2(algorithm);
2174
+ var reqAlgo = Object.assign({}, algo);
2175
+ if (reqAlgo.salt) reqAlgo.salt = toBase642(reqAlgo.salt);
2176
+ if (reqAlgo.info) reqAlgo.info = toBase642(reqAlgo.info);
2177
+ var result22 = JSON.parse(subtleCall2({
2178
+ op: "deriveBits",
2179
+ algorithm: reqAlgo,
2180
+ baseKey: baseKey._keyData,
2181
+ length
2182
+ }));
2183
+ return Buffer.from(result22.data, "base64").buffer;
2184
+ });
2185
+ };
2186
+ SandboxSubtle.deriveKey = function deriveKey(algorithm, baseKey, derivedKeyAlgorithm, extractable, keyUsages) {
2187
+ return Promise.resolve().then(function() {
2188
+ var algo = normalizeAlgo2(algorithm);
2189
+ var reqAlgo = Object.assign({}, algo);
2190
+ if (reqAlgo.salt) reqAlgo.salt = toBase642(reqAlgo.salt);
2191
+ if (reqAlgo.info) reqAlgo.info = toBase642(reqAlgo.info);
2192
+ var result22 = JSON.parse(subtleCall2({
2193
+ op: "deriveKey",
2194
+ algorithm: reqAlgo,
2195
+ baseKey: baseKey._keyData,
2196
+ derivedKeyAlgorithm: normalizeAlgo2(derivedKeyAlgorithm),
2197
+ extractable,
2198
+ usages: keyUsages
2199
+ }));
2200
+ return new SandboxCryptoKey2(result22.key);
2201
+ });
2202
+ };
2203
+ if (globalThis.crypto && globalThis.crypto.subtle && typeof globalThis.crypto.subtle.importKey === "function") {
2204
+ result2.subtle = globalThis.crypto.subtle;
2205
+ result2.webcrypto = globalThis.crypto;
2206
+ } else {
2207
+ result2.subtle = SandboxSubtle;
2208
+ result2.webcrypto = { subtle: SandboxSubtle, getRandomValues: result2.randomFillSync };
2209
+ }
2210
+ }
2211
+ if (typeof result2.getCurves !== "function") {
2212
+ result2.getCurves = function getCurves() {
2213
+ return [
2214
+ "prime256v1",
2215
+ "secp256r1",
2216
+ "secp384r1",
2217
+ "secp521r1",
2218
+ "secp256k1",
2219
+ "secp224r1",
2220
+ "secp192k1"
2221
+ ];
2222
+ };
2223
+ }
2224
+ if (typeof result2.getCiphers !== "function") {
2225
+ result2.getCiphers = function getCiphers() {
2226
+ return [
2227
+ "aes-128-cbc",
2228
+ "aes-128-gcm",
2229
+ "aes-192-cbc",
2230
+ "aes-192-gcm",
2231
+ "aes-256-cbc",
2232
+ "aes-256-gcm",
2233
+ "aes-128-ctr",
2234
+ "aes-192-ctr",
2235
+ "aes-256-ctr"
2236
+ ];
2237
+ };
2238
+ }
2239
+ if (typeof result2.getHashes !== "function") {
2240
+ result2.getHashes = function getHashes() {
2241
+ return ["md5", "sha1", "sha256", "sha384", "sha512"];
2242
+ };
2243
+ }
2244
+ if (typeof result2.timingSafeEqual !== "function") {
2245
+ result2.timingSafeEqual = function timingSafeEqual(a, b) {
2246
+ if (a.length !== b.length) {
2247
+ throw new RangeError("Input buffers must have the same byte length");
2248
+ }
2249
+ var out = 0;
2250
+ for (var i = 0; i < a.length; i++) {
2251
+ out |= a[i] ^ b[i];
2252
+ }
2253
+ return out === 0;
2254
+ };
2255
+ }
2256
+ if (typeof result2.getFips !== "function") {
2257
+ result2.getFips = function getFips() {
2258
+ return 0;
2259
+ };
2260
+ }
2261
+ if (typeof result2.setFips !== "function") {
2262
+ result2.setFips = function setFips() {
2263
+ throw new Error("FIPS mode is not supported in sandbox");
2264
+ };
2265
+ }
2266
+ return result2;
2267
+ }
2268
+ if (name2 === "stream") {
2269
+ if (typeof result2 === "function" && result2.prototype && typeof result2.Readable === "function") {
2270
+ var readableProto = result2.Readable.prototype;
2271
+ var streamProto = result2.prototype;
2272
+ if (readableProto && streamProto && !(readableProto instanceof result2)) {
2273
+ var currentParent = Object.getPrototypeOf(readableProto);
2274
+ Object.setPrototypeOf(streamProto, currentParent);
2275
+ Object.setPrototypeOf(readableProto, streamProto);
2276
+ }
2277
+ }
2278
+ return result2;
2279
+ }
188
2280
  if (name2 === "path") {
189
2281
  if (result2.win32 === null || result2.win32 === void 0) {
190
2282
  result2.win32 = result2.posix || result2;
@@ -230,8 +2322,6 @@
230
2322
  return result2;
231
2323
  }
232
2324
  var _deferredCoreModules = /* @__PURE__ */ new Set([
233
- "net",
234
- "tls",
235
2325
  "readline",
236
2326
  "perf_hooks",
237
2327
  "async_hooks",
@@ -239,7 +2329,6 @@
239
2329
  "diagnostics_channel"
240
2330
  ]);
241
2331
  var _unsupportedCoreModules = /* @__PURE__ */ new Set([
242
- "dgram",
243
2332
  "cluster",
244
2333
  "wasi",
245
2334
  "inspector",
@@ -276,7 +2365,13 @@
276
2365
  };
277
2366
  __requireExposeCustomGlobal("require", __require);
278
2367
  function _resolveFrom(moduleName2, fromDir2) {
279
- const resolved2 = _resolveModule(moduleName2, fromDir2);
2368
+ var resolved2;
2369
+ if (typeof _resolveModuleSync !== "undefined") {
2370
+ resolved2 = _resolveModuleSync.applySync(void 0, [moduleName2, fromDir2]);
2371
+ }
2372
+ if (resolved2 === null || resolved2 === void 0) {
2373
+ resolved2 = _resolveModule.applySyncPromise(void 0, [moduleName2, fromDir2, "require"]);
2374
+ }
280
2375
  if (resolved2 === null) {
281
2376
  const err = new Error("Cannot find module '" + moduleName2 + "'");
282
2377
  err.code = "MODULE_NOT_FOUND";
@@ -375,18 +2470,99 @@
375
2470
  _debugRequire("loaded", name, "stream-promises-special");
376
2471
  return promisesModule;
377
2472
  }
2473
+ if (name === "stream/consumers") {
2474
+ if (__internalModuleCache["stream/consumers"]) return __internalModuleCache["stream/consumers"];
2475
+ const consumersModule = {};
2476
+ consumersModule.buffer = async function buffer(stream) {
2477
+ const chunks = [];
2478
+ const pushChunk = function(chunk) {
2479
+ if (typeof chunk === "string") {
2480
+ chunks.push(Buffer.from(chunk));
2481
+ } else if (Buffer.isBuffer(chunk)) {
2482
+ chunks.push(chunk);
2483
+ } else if (ArrayBuffer.isView(chunk)) {
2484
+ chunks.push(Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength));
2485
+ } else if (chunk instanceof ArrayBuffer) {
2486
+ chunks.push(Buffer.from(new Uint8Array(chunk)));
2487
+ } else {
2488
+ chunks.push(Buffer.from(String(chunk)));
2489
+ }
2490
+ };
2491
+ if (stream && typeof stream[Symbol.asyncIterator] === "function") {
2492
+ for await (const chunk of stream) {
2493
+ pushChunk(chunk);
2494
+ }
2495
+ return Buffer.concat(chunks);
2496
+ }
2497
+ return new Promise(function(resolve2, reject) {
2498
+ stream.on("data", pushChunk);
2499
+ stream.on("end", function() {
2500
+ resolve2(Buffer.concat(chunks));
2501
+ });
2502
+ stream.on("error", reject);
2503
+ });
2504
+ };
2505
+ consumersModule.text = async function text(stream) {
2506
+ return (await consumersModule.buffer(stream)).toString("utf8");
2507
+ };
2508
+ consumersModule.json = async function json(stream) {
2509
+ return JSON.parse(await consumersModule.text(stream));
2510
+ };
2511
+ consumersModule.arrayBuffer = async function arrayBuffer(stream) {
2512
+ const buffer = await consumersModule.buffer(stream);
2513
+ return buffer.buffer.slice(
2514
+ buffer.byteOffset,
2515
+ buffer.byteOffset + buffer.byteLength
2516
+ );
2517
+ };
2518
+ __internalModuleCache["stream/consumers"] = consumersModule;
2519
+ _debugRequire("loaded", name, "stream-consumers-special");
2520
+ return consumersModule;
2521
+ }
378
2522
  if (name === "child_process") {
379
2523
  if (__internalModuleCache["child_process"]) return __internalModuleCache["child_process"];
380
2524
  __internalModuleCache["child_process"] = _childProcessModule;
381
2525
  _debugRequire("loaded", name, "child-process-special");
382
2526
  return _childProcessModule;
383
2527
  }
2528
+ if (name === "net") {
2529
+ if (__internalModuleCache["net"]) return __internalModuleCache["net"];
2530
+ __internalModuleCache["net"] = _netModule;
2531
+ _debugRequire("loaded", name, "net-special");
2532
+ return _netModule;
2533
+ }
2534
+ if (name === "tls") {
2535
+ if (__internalModuleCache["tls"]) return __internalModuleCache["tls"];
2536
+ __internalModuleCache["tls"] = _tlsModule;
2537
+ _debugRequire("loaded", name, "tls-special");
2538
+ return _tlsModule;
2539
+ }
384
2540
  if (name === "http") {
385
2541
  if (__internalModuleCache["http"]) return __internalModuleCache["http"];
386
2542
  __internalModuleCache["http"] = _httpModule;
387
2543
  _debugRequire("loaded", name, "http-special");
388
2544
  return _httpModule;
389
2545
  }
2546
+ if (name === "_http_agent") {
2547
+ if (__internalModuleCache["_http_agent"]) return __internalModuleCache["_http_agent"];
2548
+ const httpAgentModule = {
2549
+ Agent: _httpModule.Agent,
2550
+ globalAgent: _httpModule.globalAgent
2551
+ };
2552
+ __internalModuleCache["_http_agent"] = httpAgentModule;
2553
+ _debugRequire("loaded", name, "http-agent-special");
2554
+ return httpAgentModule;
2555
+ }
2556
+ if (name === "_http_common") {
2557
+ if (__internalModuleCache["_http_common"]) return __internalModuleCache["_http_common"];
2558
+ const httpCommonModule = {
2559
+ _checkIsHttpToken: _httpModule._checkIsHttpToken,
2560
+ _checkInvalidHeaderChar: _httpModule._checkInvalidHeaderChar
2561
+ };
2562
+ __internalModuleCache["_http_common"] = httpCommonModule;
2563
+ _debugRequire("loaded", name, "http-common-special");
2564
+ return httpCommonModule;
2565
+ }
390
2566
  if (name === "https") {
391
2567
  if (__internalModuleCache["https"]) return __internalModuleCache["https"];
392
2568
  __internalModuleCache["https"] = _httpsModule;
@@ -399,12 +2575,35 @@
399
2575
  _debugRequire("loaded", name, "http2-special");
400
2576
  return _http2Module;
401
2577
  }
2578
+ if (name === "internal/http2/util") {
2579
+ if (__internalModuleCache[name]) return __internalModuleCache[name];
2580
+ class NghttpError extends Error {
2581
+ constructor(message) {
2582
+ super(message);
2583
+ this.name = "Error";
2584
+ this.code = "ERR_HTTP2_ERROR";
2585
+ }
2586
+ }
2587
+ const utilModule = {
2588
+ kSocket: /* @__PURE__ */ Symbol.for("secure-exec.http2.kSocket"),
2589
+ NghttpError
2590
+ };
2591
+ __internalModuleCache[name] = utilModule;
2592
+ _debugRequire("loaded", name, "http2-util-special");
2593
+ return utilModule;
2594
+ }
402
2595
  if (name === "dns") {
403
2596
  if (__internalModuleCache["dns"]) return __internalModuleCache["dns"];
404
2597
  __internalModuleCache["dns"] = _dnsModule;
405
2598
  _debugRequire("loaded", name, "dns-special");
406
2599
  return _dnsModule;
407
2600
  }
2601
+ if (name === "dgram") {
2602
+ if (__internalModuleCache["dgram"]) return __internalModuleCache["dgram"];
2603
+ __internalModuleCache["dgram"] = _dgramModule;
2604
+ _debugRequire("loaded", name, "dgram-special");
2605
+ return _dgramModule;
2606
+ }
408
2607
  if (name === "os") {
409
2608
  if (__internalModuleCache["os"]) return __internalModuleCache["os"];
410
2609
  __internalModuleCache["os"] = _osModule;
@@ -522,7 +2721,19 @@
522
2721
  end: _createChannel2(),
523
2722
  asyncStart: _createChannel2(),
524
2723
  asyncEnd: _createChannel2(),
525
- error: _createChannel2()
2724
+ error: _createChannel2(),
2725
+ traceSync: function(fn, context, thisArg) {
2726
+ var args = Array.prototype.slice.call(arguments, 3);
2727
+ return fn.apply(thisArg, args);
2728
+ },
2729
+ tracePromise: function(fn, context, thisArg) {
2730
+ var args = Array.prototype.slice.call(arguments, 3);
2731
+ return fn.apply(thisArg, args);
2732
+ },
2733
+ traceCallback: function(fn, context, thisArg) {
2734
+ var args = Array.prototype.slice.call(arguments, 3);
2735
+ return fn.apply(thisArg, args);
2736
+ }
526
2737
  };
527
2738
  },
528
2739
  Channel: function Channel(name2) {
@@ -549,7 +2760,7 @@
549
2760
  if (_unsupportedCoreModules.has(name)) {
550
2761
  throw new Error(name + " is not supported in sandbox");
551
2762
  }
552
- const polyfillCode = _loadPolyfill(name);
2763
+ const polyfillCode = _loadPolyfill.applySyncPromise(void 0, [name]);
553
2764
  if (polyfillCode !== null) {
554
2765
  if (__internalModuleCache[name]) return __internalModuleCache[name];
555
2766
  const moduleObj = { exports: {} };
@@ -576,7 +2787,13 @@
576
2787
  _debugRequire("pending-hit", name, cacheKey);
577
2788
  return _pendingModules[cacheKey].exports;
578
2789
  }
579
- const source = _loadFile(resolved);
2790
+ var source;
2791
+ if (typeof _loadFileSync !== "undefined") {
2792
+ source = _loadFileSync.applySync(void 0, [resolved]);
2793
+ }
2794
+ if (source === null || source === void 0) {
2795
+ source = _loadFile.applySyncPromise(void 0, [resolved, "require"]);
2796
+ }
580
2797
  if (source === null) {
581
2798
  const err = new Error("Cannot find module '" + resolved + "'");
582
2799
  err.code = "MODULE_NOT_FOUND";