@metamask/snaps-execution-environments 6.4.0 → 6.5.0

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 (78) hide show
  1. package/CHANGELOG.md +10 -1
  2. package/dist/browserify/iframe/bundle.js +4 -4
  3. package/dist/browserify/node-process/bundle.js +3 -3
  4. package/dist/browserify/node-thread/bundle.js +3 -3
  5. package/dist/browserify/webview/bundle.js +4 -4
  6. package/dist/browserify/worker-executor/bundle.js +4 -4
  7. package/dist/browserify/worker-pool/bundle.js +4 -4
  8. package/dist/{chunk-7XGKFXJC.js → chunk-4COIRXF5.js} +5 -5
  9. package/dist/{chunk-FYUZMMIG.mjs → chunk-4I4X5VQI.mjs} +2 -2
  10. package/dist/{chunk-BN6UP4DL.mjs → chunk-7YME4TI6.mjs} +2 -2
  11. package/dist/{chunk-EAUN7JNP.mjs → chunk-BVRVUIJB.mjs} +2 -2
  12. package/dist/{chunk-VZ5ZAQW5.js → chunk-DKDTGAFK.js} +3 -3
  13. package/dist/{chunk-VYRQYWDI.js → chunk-JJOIN7DT.js} +3 -3
  14. package/dist/{chunk-B3JZNNZD.js → chunk-JOT5JH42.js} +10 -6
  15. package/dist/chunk-JOT5JH42.js.map +1 -0
  16. package/dist/{chunk-HKHW6TTX.js → chunk-KEAB7ZVV.js} +4 -3
  17. package/dist/chunk-KEAB7ZVV.js.map +1 -0
  18. package/dist/{chunk-23TVSI3V.js → chunk-LK3HLWIY.js} +3 -3
  19. package/dist/{chunk-A2OHIW6W.mjs → chunk-ODICKSGZ.mjs} +3 -3
  20. package/dist/{chunk-Y2CD2FN5.mjs → chunk-OWO7XS4C.mjs} +2 -2
  21. package/dist/{chunk-HNHJAW2F.mjs → chunk-Q6KWWQ7U.mjs} +2 -2
  22. package/dist/{chunk-ACK2JBSO.mjs → chunk-S5NWI5Z7.mjs} +4 -3
  23. package/dist/chunk-S5NWI5Z7.mjs.map +1 -0
  24. package/dist/{chunk-P5J67PTU.js → chunk-WHBMFB7M.js} +3 -3
  25. package/dist/{chunk-CWCVTRNZ.mjs → chunk-Y7AK2VVC.mjs} +10 -6
  26. package/dist/chunk-Y7AK2VVC.mjs.map +1 -0
  27. package/dist/{chunk-UGSNZLEB.mjs → chunk-YORBE35Y.mjs} +2 -2
  28. package/dist/{chunk-EKVGROGW.js → chunk-YRBXNYUV.js} +3 -3
  29. package/dist/{chunk-ZTZHMJRA.js → chunk-Z5VEHM7C.js} +3 -3
  30. package/dist/common/BaseSnapExecutor.js +6 -6
  31. package/dist/common/BaseSnapExecutor.mjs +5 -5
  32. package/dist/common/endowments/commonEndowmentFactory.js +4 -4
  33. package/dist/common/endowments/commonEndowmentFactory.mjs +3 -3
  34. package/dist/common/endowments/index.js +5 -5
  35. package/dist/common/endowments/index.mjs +4 -4
  36. package/dist/common/endowments/interval.js +2 -2
  37. package/dist/common/endowments/interval.mjs +1 -1
  38. package/dist/common/endowments/timeout.js +2 -2
  39. package/dist/common/endowments/timeout.mjs +1 -1
  40. package/dist/iframe/IFrameSnapExecutor.js +7 -7
  41. package/dist/iframe/IFrameSnapExecutor.mjs +6 -6
  42. package/dist/iframe/index.js +7 -7
  43. package/dist/iframe/index.mjs +6 -6
  44. package/dist/node-process/ChildProcessSnapExecutor.js +7 -7
  45. package/dist/node-process/ChildProcessSnapExecutor.mjs +6 -6
  46. package/dist/node-process/index.js +7 -7
  47. package/dist/node-process/index.mjs +6 -6
  48. package/dist/node-thread/ThreadSnapExecutor.js +7 -7
  49. package/dist/node-thread/ThreadSnapExecutor.mjs +6 -6
  50. package/dist/node-thread/index.js +7 -7
  51. package/dist/node-thread/index.mjs +6 -6
  52. package/dist/tsconfig.build.tsbuildinfo +1 -1
  53. package/dist/types/common/endowments/interval.d.ts +1 -1
  54. package/dist/types/common/endowments/timeout.d.ts +1 -1
  55. package/dist/types/common/validation.d.ts +32 -4
  56. package/dist/webworker/executor/WebWorkerSnapExecutor.js +7 -7
  57. package/dist/webworker/executor/WebWorkerSnapExecutor.mjs +6 -6
  58. package/dist/webworker/executor/index.js +7 -7
  59. package/dist/webworker/executor/index.mjs +6 -6
  60. package/package.json +3 -3
  61. package/dist/chunk-ACK2JBSO.mjs.map +0 -1
  62. package/dist/chunk-B3JZNNZD.js.map +0 -1
  63. package/dist/chunk-CWCVTRNZ.mjs.map +0 -1
  64. package/dist/chunk-HKHW6TTX.js.map +0 -1
  65. /package/dist/{chunk-7XGKFXJC.js.map → chunk-4COIRXF5.js.map} +0 -0
  66. /package/dist/{chunk-FYUZMMIG.mjs.map → chunk-4I4X5VQI.mjs.map} +0 -0
  67. /package/dist/{chunk-BN6UP4DL.mjs.map → chunk-7YME4TI6.mjs.map} +0 -0
  68. /package/dist/{chunk-EAUN7JNP.mjs.map → chunk-BVRVUIJB.mjs.map} +0 -0
  69. /package/dist/{chunk-VZ5ZAQW5.js.map → chunk-DKDTGAFK.js.map} +0 -0
  70. /package/dist/{chunk-VYRQYWDI.js.map → chunk-JJOIN7DT.js.map} +0 -0
  71. /package/dist/{chunk-23TVSI3V.js.map → chunk-LK3HLWIY.js.map} +0 -0
  72. /package/dist/{chunk-A2OHIW6W.mjs.map → chunk-ODICKSGZ.mjs.map} +0 -0
  73. /package/dist/{chunk-Y2CD2FN5.mjs.map → chunk-OWO7XS4C.mjs.map} +0 -0
  74. /package/dist/{chunk-HNHJAW2F.mjs.map → chunk-Q6KWWQ7U.mjs.map} +0 -0
  75. /package/dist/{chunk-P5J67PTU.js.map → chunk-WHBMFB7M.js.map} +0 -0
  76. /package/dist/{chunk-UGSNZLEB.mjs.map → chunk-YORBE35Y.mjs.map} +0 -0
  77. /package/dist/{chunk-EKVGROGW.js.map → chunk-YRBXNYUV.js.map} +0 -0
  78. /package/dist/{chunk-ZTZHMJRA.js.map → chunk-Z5VEHM7C.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  declare const endowmentModule: {
2
2
  names: readonly ["setInterval", "clearInterval"];
3
3
  factory: () => {
4
- readonly setInterval: (handler: TimerHandler, timeout?: number) => unknown;
4
+ readonly setInterval: (handler: TimerHandler, timeout?: number, ...args: any[]) => unknown;
5
5
  readonly clearInterval: (handle: unknown) => void;
6
6
  readonly teardownFunction: () => void;
7
7
  };
@@ -1,7 +1,7 @@
1
1
  declare const endowmentModule: {
2
2
  names: readonly ["setTimeout", "clearTimeout"];
3
3
  factory: () => {
4
- readonly setTimeout: (handler: TimerHandler, timeout?: number) => unknown;
4
+ readonly setTimeout: (handler: TimerHandler, timeout?: number, ...args: any[]) => unknown;
5
5
  readonly clearTimeout: (handle: unknown) => void;
6
6
  readonly teardownFunction: () => void;
7
7
  };
@@ -109,13 +109,27 @@ export declare const OnUserInputArgumentsStruct: import("superstruct").Struct<{
109
109
  type: import("@metamask/snaps-sdk").UserInputEventType.ButtonClickEvent;
110
110
  name?: string | undefined;
111
111
  } | {
112
- value: Record<string, string | null>;
112
+ value: Record<string, string | boolean | {
113
+ name: string;
114
+ size: number;
115
+ contentType: string;
116
+ contents: string;
117
+ } | null>;
113
118
  type: import("@metamask/snaps-sdk").UserInputEventType.FormSubmitEvent;
114
119
  name: string;
115
120
  } | {
116
- value: string;
121
+ value: string | boolean;
117
122
  type: import("@metamask/snaps-sdk").UserInputEventType.InputChangeEvent;
118
123
  name: string;
124
+ } | {
125
+ type: import("@metamask/snaps-sdk").UserInputEventType.FileUploadEvent;
126
+ name: string;
127
+ file: {
128
+ name: string;
129
+ size: number;
130
+ contentType: string;
131
+ contents: string;
132
+ } | null;
119
133
  };
120
134
  context?: Record<string, Json> | null | undefined;
121
135
  }, {
@@ -124,13 +138,27 @@ export declare const OnUserInputArgumentsStruct: import("superstruct").Struct<{
124
138
  type: import("@metamask/snaps-sdk").UserInputEventType.ButtonClickEvent;
125
139
  name?: string | undefined;
126
140
  } | {
127
- value: Record<string, string | null>;
141
+ value: Record<string, string | boolean | {
142
+ name: string;
143
+ size: number;
144
+ contentType: string;
145
+ contents: string;
146
+ } | null>;
128
147
  type: import("@metamask/snaps-sdk").UserInputEventType.FormSubmitEvent;
129
148
  name: string;
130
149
  } | {
131
- value: string;
150
+ value: string | boolean;
132
151
  type: import("@metamask/snaps-sdk").UserInputEventType.InputChangeEvent;
133
152
  name: string;
153
+ } | {
154
+ type: import("@metamask/snaps-sdk").UserInputEventType.FileUploadEvent;
155
+ name: string;
156
+ file: {
157
+ name: string;
158
+ size: number;
159
+ contentType: string;
160
+ contents: string;
161
+ } | null;
134
162
  }, null>;
135
163
  context: import("superstruct").Struct<Record<string, Json> | null | undefined, null>;
136
164
  }>;
@@ -1,15 +1,15 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkZTZHMJRAjs = require('../../chunk-ZTZHMJRA.js');
4
- require('../../chunk-P5J67PTU.js');
5
- require('../../chunk-VZ5ZAQW5.js');
6
- require('../../chunk-7XGKFXJC.js');
7
- require('../../chunk-HKHW6TTX.js');
3
+ var _chunkZ5VEHM7Cjs = require('../../chunk-Z5VEHM7C.js');
4
+ require('../../chunk-WHBMFB7M.js');
5
+ require('../../chunk-DKDTGAFK.js');
6
+ require('../../chunk-4COIRXF5.js');
7
+ require('../../chunk-KEAB7ZVV.js');
8
8
  require('../../chunk-MS2LQQYH.js');
9
9
  require('../../chunk-HXKBUIYS.js');
10
10
  require('../../chunk-FOEAIF5U.js');
11
11
  require('../../chunk-LO5ORVRC.js');
12
- require('../../chunk-B3JZNNZD.js');
12
+ require('../../chunk-JOT5JH42.js');
13
13
  require('../../chunk-OBT45IWW.js');
14
14
  require('../../chunk-HGLRZZ56.js');
15
15
  require('../../chunk-QZC2X6NG.js');
@@ -23,5 +23,5 @@ require('../../chunk-CV5LC4PP.js');
23
23
  require('../../chunk-EXN2TFDJ.js');
24
24
 
25
25
 
26
- exports.WebWorkerSnapExecutor = _chunkZTZHMJRAjs.WebWorkerSnapExecutor;
26
+ exports.WebWorkerSnapExecutor = _chunkZ5VEHM7Cjs.WebWorkerSnapExecutor;
27
27
  //# sourceMappingURL=WebWorkerSnapExecutor.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  WebWorkerSnapExecutor
3
- } from "../../chunk-FYUZMMIG.mjs";
4
- import "../../chunk-Y2CD2FN5.mjs";
5
- import "../../chunk-EAUN7JNP.mjs";
6
- import "../../chunk-A2OHIW6W.mjs";
7
- import "../../chunk-ACK2JBSO.mjs";
3
+ } from "../../chunk-4I4X5VQI.mjs";
4
+ import "../../chunk-OWO7XS4C.mjs";
5
+ import "../../chunk-BVRVUIJB.mjs";
6
+ import "../../chunk-ODICKSGZ.mjs";
7
+ import "../../chunk-S5NWI5Z7.mjs";
8
8
  import "../../chunk-BCBKEUCG.mjs";
9
9
  import "../../chunk-XPCW7TKM.mjs";
10
10
  import "../../chunk-53ZULHPK.mjs";
11
11
  import "../../chunk-HWS4QSOC.mjs";
12
- import "../../chunk-CWCVTRNZ.mjs";
12
+ import "../../chunk-Y7AK2VVC.mjs";
13
13
  import "../../chunk-W7EDURT5.mjs";
14
14
  import "../../chunk-Q42NNJFY.mjs";
15
15
  import "../../chunk-UOPIRTJX.mjs";
@@ -1,21 +1,21 @@
1
1
  "use strict";
2
2
 
3
- var _chunkZTZHMJRAjs = require('../../chunk-ZTZHMJRA.js');
3
+ var _chunkZ5VEHM7Cjs = require('../../chunk-Z5VEHM7C.js');
4
4
 
5
5
 
6
6
  var _chunk4XRZLEKUjs = require('../../chunk-4XRZLEKU.js');
7
7
 
8
8
 
9
9
  var _chunkOCNPLHS2js = require('../../chunk-OCNPLHS2.js');
10
- require('../../chunk-P5J67PTU.js');
11
- require('../../chunk-VZ5ZAQW5.js');
12
- require('../../chunk-7XGKFXJC.js');
13
- require('../../chunk-HKHW6TTX.js');
10
+ require('../../chunk-WHBMFB7M.js');
11
+ require('../../chunk-DKDTGAFK.js');
12
+ require('../../chunk-4COIRXF5.js');
13
+ require('../../chunk-KEAB7ZVV.js');
14
14
  require('../../chunk-MS2LQQYH.js');
15
15
  require('../../chunk-HXKBUIYS.js');
16
16
  require('../../chunk-FOEAIF5U.js');
17
17
  require('../../chunk-LO5ORVRC.js');
18
- require('../../chunk-B3JZNNZD.js');
18
+ require('../../chunk-JOT5JH42.js');
19
19
  require('../../chunk-OBT45IWW.js');
20
20
  require('../../chunk-HGLRZZ56.js');
21
21
  require('../../chunk-QZC2X6NG.js');
@@ -31,5 +31,5 @@ require('../../chunk-EXN2TFDJ.js');
31
31
  // src/webworker/executor/index.ts
32
32
  _chunkOCNPLHS2js.executeLockdownMore.call(void 0, );
33
33
  _chunk4XRZLEKUjs.executeLockdownEvents.call(void 0, );
34
- _chunkZTZHMJRAjs.WebWorkerSnapExecutor.initialize();
34
+ _chunkZ5VEHM7Cjs.WebWorkerSnapExecutor.initialize();
35
35
  //# sourceMappingURL=index.js.map
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  WebWorkerSnapExecutor
3
- } from "../../chunk-FYUZMMIG.mjs";
3
+ } from "../../chunk-4I4X5VQI.mjs";
4
4
  import {
5
5
  executeLockdownEvents
6
6
  } from "../../chunk-S7257EN3.mjs";
7
7
  import {
8
8
  executeLockdownMore
9
9
  } from "../../chunk-MXNMMTJW.mjs";
10
- import "../../chunk-Y2CD2FN5.mjs";
11
- import "../../chunk-EAUN7JNP.mjs";
12
- import "../../chunk-A2OHIW6W.mjs";
13
- import "../../chunk-ACK2JBSO.mjs";
10
+ import "../../chunk-OWO7XS4C.mjs";
11
+ import "../../chunk-BVRVUIJB.mjs";
12
+ import "../../chunk-ODICKSGZ.mjs";
13
+ import "../../chunk-S5NWI5Z7.mjs";
14
14
  import "../../chunk-BCBKEUCG.mjs";
15
15
  import "../../chunk-XPCW7TKM.mjs";
16
16
  import "../../chunk-53ZULHPK.mjs";
17
17
  import "../../chunk-HWS4QSOC.mjs";
18
- import "../../chunk-CWCVTRNZ.mjs";
18
+ import "../../chunk-Y7AK2VVC.mjs";
19
19
  import "../../chunk-W7EDURT5.mjs";
20
20
  import "../../chunk-Q42NNJFY.mjs";
21
21
  import "../../chunk-UOPIRTJX.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/snaps-execution-environments",
3
- "version": "6.4.0",
3
+ "version": "6.5.0",
4
4
  "description": "Snap sandbox environments for executing SES javascript",
5
5
  "repository": {
6
6
  "type": "git",
@@ -56,8 +56,8 @@
56
56
  "@metamask/post-message-stream": "^8.1.0",
57
57
  "@metamask/providers": "^17.0.0",
58
58
  "@metamask/rpc-errors": "^6.2.1",
59
- "@metamask/snaps-sdk": "^5.0.0",
60
- "@metamask/snaps-utils": "^7.6.0",
59
+ "@metamask/snaps-sdk": "^6.0.0",
60
+ "@metamask/snaps-utils": "^7.7.0",
61
61
  "@metamask/utils": "^8.3.0",
62
62
  "nanoid": "^3.1.31",
63
63
  "readable-stream": "^3.6.2",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common/endowments/interval.ts"],"sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\n\nconst MINIMUM_INTERVAL = 10;\n\n/**\n * Creates a pair of `setInterval` and `clearInterval` functions attenuated such\n * that:\n * - `setInterval` throws if its \"handler\" parameter is not a function.\n * - `clearInterval` only clears timeouts created by its sibling `setInterval`,\n * or else no-ops.\n *\n * @returns An object with the attenuated `setInterval` and `clearInterval`\n * functions.\n */\nconst createInterval = () => {\n const registeredHandles = new Map<unknown, unknown>();\n\n const _setInterval = (handler: TimerHandler, timeout?: number): unknown => {\n if (typeof handler !== 'function') {\n throw rpcErrors.invalidInput(\n `The interval handler must be a function. Received: ${typeof handler}.`,\n );\n }\n harden(handler);\n const handle = Object.freeze(Object.create(null));\n const platformHandle = setInterval(\n handler,\n Math.max(MINIMUM_INTERVAL, timeout ?? 0),\n );\n registeredHandles.set(handle, platformHandle);\n return handle;\n };\n\n const _clearInterval = (handle: unknown): void => {\n harden(handle);\n const platformHandle = registeredHandles.get(handle);\n if (platformHandle !== undefined) {\n clearInterval(platformHandle as any);\n registeredHandles.delete(handle);\n }\n };\n\n const teardownFunction = (): void => {\n for (const handle of registeredHandles.keys()) {\n _clearInterval(handle);\n }\n };\n\n return {\n setInterval: harden(_setInterval),\n clearInterval: harden(_clearInterval),\n teardownFunction,\n } as const;\n};\n\nconst endowmentModule = {\n names: ['setInterval', 'clearInterval'] as const,\n factory: createInterval,\n};\nexport default endowmentModule;\n"],"mappings":";AAAA,SAAS,iBAAiB;AAE1B,IAAM,mBAAmB;AAYzB,IAAM,iBAAiB,MAAM;AAC3B,QAAM,oBAAoB,oBAAI,IAAsB;AAEpD,QAAM,eAAe,CAAC,SAAuB,YAA8B;AACzE,QAAI,OAAO,YAAY,YAAY;AACjC,YAAM,UAAU;AAAA,QACd,sDAAsD,OAAO,OAAO;AAAA,MACtE;AAAA,IACF;AACA,WAAO,OAAO;AACd,UAAM,SAAS,OAAO,OAAO,uBAAO,OAAO,IAAI,CAAC;AAChD,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA,KAAK,IAAI,kBAAkB,WAAW,CAAC;AAAA,IACzC;AACA,sBAAkB,IAAI,QAAQ,cAAc;AAC5C,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB,CAAC,WAA0B;AAChD,WAAO,MAAM;AACb,UAAM,iBAAiB,kBAAkB,IAAI,MAAM;AACnD,QAAI,mBAAmB,QAAW;AAChC,oBAAc,cAAqB;AACnC,wBAAkB,OAAO,MAAM;AAAA,IACjC;AAAA,EACF;AAEA,QAAM,mBAAmB,MAAY;AACnC,eAAW,UAAU,kBAAkB,KAAK,GAAG;AAC7C,qBAAe,MAAM;AAAA,IACvB;AAAA,EACF;AAEA,SAAO;AAAA,IACL,aAAa,OAAO,YAAY;AAAA,IAChC,eAAe,OAAO,cAAc;AAAA,IACpC;AAAA,EACF;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,eAAe,eAAe;AAAA,EACtC,SAAS;AACX;AACA,IAAO,mBAAQ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common/endowments/timeout.ts"],"names":[],"mappings":";AAAA,SAAS,iBAAiB;AAE1B,IAAM,kBAAkB;AAYxB,IAAM,gBAAgB,MAAM;AAC1B,QAAM,oBAAoB,oBAAI,IAAsB;AACpD,QAAM,cAAc,CAAC,SAAuB,YAA8B;AACxE,QAAI,OAAO,YAAY,YAAY;AACjC,YAAM,UAAU;AAAA,QACd,qDAAqD,OAAO,OAAO;AAAA,MACrE;AAAA,IACF;AACA,WAAO,OAAO;AACd,UAAM,SAAS,OAAO,OAAO,uBAAO,OAAO,IAAI,CAAC;AAChD,UAAM,iBAAiB,WAAW,MAAM;AACtC,wBAAkB,OAAO,MAAM;AAC/B,cAAQ;AAAA,IACV,GAAG,KAAK,IAAI,iBAAiB,WAAW,CAAC,CAAC;AAE1C,sBAAkB,IAAI,QAAQ,cAAc;AAC5C,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,CAAC,WAA0B;AAC/C,UAAM,iBAAiB,kBAAkB,IAAI,MAAM;AACnD,QAAI,mBAAmB,QAAW;AAChC,mBAAa,cAAqB;AAClC,wBAAkB,OAAO,MAAM;AAAA,IACjC;AAAA,EACF;AAEA,QAAM,mBAAmB,MAAY;AACnC,eAAW,UAAU,kBAAkB,KAAK,GAAG;AAC7C,oBAAc,MAAM;AAAA,IACtB;AAAA,EACF;AAEA,SAAO;AAAA,IACL,YAAY,OAAO,WAAW;AAAA,IAC9B,cAAc,OAAO,aAAa;AAAA,IAClC;AAAA,EACF;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,cAAc,cAAc;AAAA,EACpC,SAAS;AACX;AACA,IAAO,kBAAQ","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\n\nconst MINIMUM_TIMEOUT = 10;\n\n/**\n * Creates a pair of `setTimeout` and `clearTimeout` functions attenuated such\n * that:\n * - `setTimeout` throws if its \"handler\" parameter is not a function.\n * - `clearTimeout` only clears timeouts created by its sibling `setTimeout`,\n * or else no-ops.\n *\n * @returns An object with the attenuated `setTimeout` and `clearTimeout`\n * functions.\n */\nconst createTimeout = () => {\n const registeredHandles = new Map<unknown, unknown>();\n const _setTimeout = (handler: TimerHandler, timeout?: number): unknown => {\n if (typeof handler !== 'function') {\n throw rpcErrors.internal(\n `The timeout handler must be a function. Received: ${typeof handler}.`,\n );\n }\n harden(handler);\n const handle = Object.freeze(Object.create(null));\n const platformHandle = setTimeout(() => {\n registeredHandles.delete(handle);\n handler();\n }, Math.max(MINIMUM_TIMEOUT, timeout ?? 0));\n\n registeredHandles.set(handle, platformHandle);\n return handle;\n };\n\n const _clearTimeout = (handle: unknown): void => {\n const platformHandle = registeredHandles.get(handle);\n if (platformHandle !== undefined) {\n clearTimeout(platformHandle as any);\n registeredHandles.delete(handle);\n }\n };\n\n const teardownFunction = (): void => {\n for (const handle of registeredHandles.keys()) {\n _clearTimeout(handle);\n }\n };\n\n return {\n setTimeout: harden(_setTimeout),\n clearTimeout: harden(_clearTimeout),\n teardownFunction,\n } as const;\n};\n\nconst endowmentModule = {\n names: ['setTimeout', 'clearTimeout'] as const,\n factory: createTimeout,\n};\nexport default endowmentModule;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common/endowments/timeout.ts"],"sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\n\nconst MINIMUM_TIMEOUT = 10;\n\n/**\n * Creates a pair of `setTimeout` and `clearTimeout` functions attenuated such\n * that:\n * - `setTimeout` throws if its \"handler\" parameter is not a function.\n * - `clearTimeout` only clears timeouts created by its sibling `setTimeout`,\n * or else no-ops.\n *\n * @returns An object with the attenuated `setTimeout` and `clearTimeout`\n * functions.\n */\nconst createTimeout = () => {\n const registeredHandles = new Map<unknown, unknown>();\n const _setTimeout = (handler: TimerHandler, timeout?: number): unknown => {\n if (typeof handler !== 'function') {\n throw rpcErrors.internal(\n `The timeout handler must be a function. Received: ${typeof handler}.`,\n );\n }\n harden(handler);\n const handle = Object.freeze(Object.create(null));\n const platformHandle = setTimeout(() => {\n registeredHandles.delete(handle);\n handler();\n }, Math.max(MINIMUM_TIMEOUT, timeout ?? 0));\n\n registeredHandles.set(handle, platformHandle);\n return handle;\n };\n\n const _clearTimeout = (handle: unknown): void => {\n const platformHandle = registeredHandles.get(handle);\n if (platformHandle !== undefined) {\n clearTimeout(platformHandle as any);\n registeredHandles.delete(handle);\n }\n };\n\n const teardownFunction = (): void => {\n for (const handle of registeredHandles.keys()) {\n _clearTimeout(handle);\n }\n };\n\n return {\n setTimeout: harden(_setTimeout),\n clearTimeout: harden(_clearTimeout),\n teardownFunction,\n } as const;\n};\n\nconst endowmentModule = {\n names: ['setTimeout', 'clearTimeout'] as const,\n factory: createTimeout,\n};\nexport default endowmentModule;\n"],"mappings":";AAAA,SAAS,iBAAiB;AAE1B,IAAM,kBAAkB;AAYxB,IAAM,gBAAgB,MAAM;AAC1B,QAAM,oBAAoB,oBAAI,IAAsB;AACpD,QAAM,cAAc,CAAC,SAAuB,YAA8B;AACxE,QAAI,OAAO,YAAY,YAAY;AACjC,YAAM,UAAU;AAAA,QACd,qDAAqD,OAAO,OAAO;AAAA,MACrE;AAAA,IACF;AACA,WAAO,OAAO;AACd,UAAM,SAAS,OAAO,OAAO,uBAAO,OAAO,IAAI,CAAC;AAChD,UAAM,iBAAiB,WAAW,MAAM;AACtC,wBAAkB,OAAO,MAAM;AAC/B,cAAQ;AAAA,IACV,GAAG,KAAK,IAAI,iBAAiB,WAAW,CAAC,CAAC;AAE1C,sBAAkB,IAAI,QAAQ,cAAc;AAC5C,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,CAAC,WAA0B;AAC/C,UAAM,iBAAiB,kBAAkB,IAAI,MAAM;AACnD,QAAI,mBAAmB,QAAW;AAChC,mBAAa,cAAqB;AAClC,wBAAkB,OAAO,MAAM;AAAA,IACjC;AAAA,EACF;AAEA,QAAM,mBAAmB,MAAY;AACnC,eAAW,UAAU,kBAAkB,KAAK,GAAG;AAC7C,oBAAc,MAAM;AAAA,IACtB;AAAA,EACF;AAEA,SAAO;AAAA,IACL,YAAY,OAAO,WAAW;AAAA,IAC9B,cAAc,OAAO,aAAa;AAAA,IAClC;AAAA,EACF;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,cAAc,cAAc;AAAA,EACpC,SAAS;AACX;AACA,IAAO,kBAAQ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common/endowments/interval.ts"],"names":[],"mappings":";AAAA,SAAS,iBAAiB;AAE1B,IAAM,mBAAmB;AAYzB,IAAM,iBAAiB,MAAM;AAC3B,QAAM,oBAAoB,oBAAI,IAAsB;AAEpD,QAAM,eAAe,CAAC,SAAuB,YAA8B;AACzE,QAAI,OAAO,YAAY,YAAY;AACjC,YAAM,UAAU;AAAA,QACd,sDAAsD,OAAO,OAAO;AAAA,MACtE;AAAA,IACF;AACA,WAAO,OAAO;AACd,UAAM,SAAS,OAAO,OAAO,uBAAO,OAAO,IAAI,CAAC;AAChD,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA,KAAK,IAAI,kBAAkB,WAAW,CAAC;AAAA,IACzC;AACA,sBAAkB,IAAI,QAAQ,cAAc;AAC5C,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB,CAAC,WAA0B;AAChD,WAAO,MAAM;AACb,UAAM,iBAAiB,kBAAkB,IAAI,MAAM;AACnD,QAAI,mBAAmB,QAAW;AAChC,oBAAc,cAAqB;AACnC,wBAAkB,OAAO,MAAM;AAAA,IACjC;AAAA,EACF;AAEA,QAAM,mBAAmB,MAAY;AACnC,eAAW,UAAU,kBAAkB,KAAK,GAAG;AAC7C,qBAAe,MAAM;AAAA,IACvB;AAAA,EACF;AAEA,SAAO;AAAA,IACL,aAAa,OAAO,YAAY;AAAA,IAChC,eAAe,OAAO,cAAc;AAAA,IACpC;AAAA,EACF;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,eAAe,eAAe;AAAA,EACtC,SAAS;AACX;AACA,IAAO,mBAAQ","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\n\nconst MINIMUM_INTERVAL = 10;\n\n/**\n * Creates a pair of `setInterval` and `clearInterval` functions attenuated such\n * that:\n * - `setInterval` throws if its \"handler\" parameter is not a function.\n * - `clearInterval` only clears timeouts created by its sibling `setInterval`,\n * or else no-ops.\n *\n * @returns An object with the attenuated `setInterval` and `clearInterval`\n * functions.\n */\nconst createInterval = () => {\n const registeredHandles = new Map<unknown, unknown>();\n\n const _setInterval = (handler: TimerHandler, timeout?: number): unknown => {\n if (typeof handler !== 'function') {\n throw rpcErrors.invalidInput(\n `The interval handler must be a function. Received: ${typeof handler}.`,\n );\n }\n harden(handler);\n const handle = Object.freeze(Object.create(null));\n const platformHandle = setInterval(\n handler,\n Math.max(MINIMUM_INTERVAL, timeout ?? 0),\n );\n registeredHandles.set(handle, platformHandle);\n return handle;\n };\n\n const _clearInterval = (handle: unknown): void => {\n harden(handle);\n const platformHandle = registeredHandles.get(handle);\n if (platformHandle !== undefined) {\n clearInterval(platformHandle as any);\n registeredHandles.delete(handle);\n }\n };\n\n const teardownFunction = (): void => {\n for (const handle of registeredHandles.keys()) {\n _clearInterval(handle);\n }\n };\n\n return {\n setInterval: harden(_setInterval),\n clearInterval: harden(_clearInterval),\n teardownFunction,\n } as const;\n};\n\nconst endowmentModule = {\n names: ['setInterval', 'clearInterval'] as const,\n factory: createInterval,\n};\nexport default endowmentModule;\n"]}