@metamask/snaps-execution-environments 3.3.0 → 3.4.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 (51) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/dist/browserify/iframe/bundle.js +6 -11
  3. package/dist/browserify/node-process/bundle.js +5 -10
  4. package/dist/browserify/node-thread/bundle.js +5 -10
  5. package/dist/browserify/offscreen/bundle.js +6 -4
  6. package/dist/browserify/worker-executor/bundle.js +6 -11
  7. package/dist/browserify/worker-pool/bundle.js +6 -4
  8. package/dist/cjs/common/BaseSnapExecutor.js +35 -9
  9. package/dist/cjs/common/BaseSnapExecutor.js.map +1 -1
  10. package/dist/cjs/common/endowments/commonEndowmentFactory.js.map +1 -1
  11. package/dist/cjs/common/endowments/index.js +3 -2
  12. package/dist/cjs/common/endowments/index.js.map +1 -1
  13. package/dist/cjs/common/endowments/network.js +130 -43
  14. package/dist/cjs/common/endowments/network.js.map +1 -1
  15. package/dist/cjs/common/utils.js +1 -0
  16. package/dist/cjs/common/utils.js.map +1 -1
  17. package/dist/cjs/common/validation.js +11 -8
  18. package/dist/cjs/common/validation.js.map +1 -1
  19. package/dist/cjs/iframe/IFrameSnapExecutor.js +2 -2
  20. package/dist/cjs/iframe/IFrameSnapExecutor.js.map +1 -1
  21. package/dist/cjs/node-process/ChildProcessSnapExecutor.js +2 -2
  22. package/dist/cjs/node-process/ChildProcessSnapExecutor.js.map +1 -1
  23. package/dist/cjs/node-thread/ThreadSnapExecutor.js +2 -2
  24. package/dist/cjs/node-thread/ThreadSnapExecutor.js.map +1 -1
  25. package/dist/cjs/webworker/executor/WebWorkerSnapExecutor.js +2 -2
  26. package/dist/cjs/webworker/executor/WebWorkerSnapExecutor.js.map +1 -1
  27. package/dist/esm/common/BaseSnapExecutor.js +38 -12
  28. package/dist/esm/common/BaseSnapExecutor.js.map +1 -1
  29. package/dist/esm/common/endowments/commonEndowmentFactory.js.map +1 -1
  30. package/dist/esm/common/endowments/index.js +9 -6
  31. package/dist/esm/common/endowments/index.js.map +1 -1
  32. package/dist/esm/common/endowments/network.js +129 -42
  33. package/dist/esm/common/endowments/network.js.map +1 -1
  34. package/dist/esm/common/utils.js +1 -0
  35. package/dist/esm/common/utils.js.map +1 -1
  36. package/dist/esm/common/validation.js +13 -10
  37. package/dist/esm/common/validation.js.map +1 -1
  38. package/dist/esm/iframe/IFrameSnapExecutor.js +1 -1
  39. package/dist/esm/iframe/IFrameSnapExecutor.js.map +1 -1
  40. package/dist/esm/node-process/ChildProcessSnapExecutor.js +1 -1
  41. package/dist/esm/node-process/ChildProcessSnapExecutor.js.map +1 -1
  42. package/dist/esm/node-thread/ThreadSnapExecutor.js +1 -1
  43. package/dist/esm/node-thread/ThreadSnapExecutor.js.map +1 -1
  44. package/dist/esm/webworker/executor/WebWorkerSnapExecutor.js +1 -1
  45. package/dist/esm/webworker/executor/WebWorkerSnapExecutor.js.map +1 -1
  46. package/dist/types/common/BaseSnapExecutor.d.ts +4 -3
  47. package/dist/types/common/endowments/commonEndowmentFactory.d.ts +2 -0
  48. package/dist/types/common/endowments/index.d.ts +14 -5
  49. package/dist/types/common/endowments/network.d.ts +2 -1
  50. package/dist/types/common/validation.d.ts +10 -14
  51. package/package.json +8 -7
@@ -1,5 +1,6 @@
1
1
  import type { StreamProvider } from '@metamask/providers';
2
2
  import type { SnapsProvider } from '@metamask/snaps-sdk';
3
+ import type { NotifyFunction } from '../BaseSnapExecutor';
3
4
  /**
4
5
  * Gets the endowments for a particular Snap. Some endowments, like `setTimeout`
5
6
  * and `clearTimeout`, must be attenuated so that they can only affect behavior
@@ -7,13 +8,21 @@ import type { SnapsProvider } from '@metamask/snaps-sdk';
7
8
  * such attenuated / modified endowments. Otherwise, the value that's on the
8
9
  * root realm global will be used.
9
10
  *
10
- * @param snap - The Snaps global API object.
11
- * @param ethereum - The Snap's EIP-1193 provider object.
12
- * @param snapId - The id of the snap that will use the created endowments.
13
- * @param endowments - The list of endowments to provide to the snap.
11
+ * @param options - An options bag.
12
+ * @param options.snap - The Snaps global API object.
13
+ * @param options.ethereum - The Snap's EIP-1193 provider object.
14
+ * @param options.snapId - The id of the snap that will use the created endowments.
15
+ * @param options.endowments - The list of endowments to provide to the snap.
16
+ * @param options.notify - A reference to the notify function of the snap executor.
14
17
  * @returns An object containing the Snap's endowments.
15
18
  */
16
- export declare function createEndowments(snap: SnapsProvider, ethereum: StreamProvider, snapId: string, endowments?: string[]): {
19
+ export declare function createEndowments({ snap, ethereum, snapId, endowments, notify, }: {
20
+ snap: SnapsProvider;
21
+ ethereum: StreamProvider;
22
+ snapId: string;
23
+ endowments: string[];
24
+ notify: NotifyFunction;
25
+ }): {
17
26
  endowments: Record<string, unknown>;
18
27
  teardown: () => Promise<void>;
19
28
  };
@@ -1,6 +1,7 @@
1
+ import type { EndowmentFactoryOptions } from './commonEndowmentFactory';
1
2
  declare const endowmentModule: {
2
3
  names: readonly ["fetch", "Request", "Headers", "Response"];
3
- factory: () => {
4
+ factory: ({ notify }?: EndowmentFactoryOptions) => {
4
5
  fetch: typeof fetch;
5
6
  Request: {
6
7
  new (input: URL | RequestInfo, init?: RequestInit | undefined): Request;
@@ -3,14 +3,14 @@ import type { Json, JsonRpcSuccess } from '@metamask/utils';
3
3
  import type { Infer } from 'superstruct';
4
4
  export declare const JsonRpcRequestWithoutIdStruct: import("superstruct").Struct<{
5
5
  method: string;
6
- jsonrpc: "2.0";
7
- params?: Record<string, Json> | Json[] | undefined;
8
6
  id?: string | number | null | undefined;
7
+ jsonrpc?: "2.0" | undefined;
8
+ params?: Record<string, Json> | Json[] | undefined;
9
9
  }, {
10
+ jsonrpc: import("superstruct").Struct<"2.0" | undefined, "2.0">;
10
11
  id: import("superstruct").Struct<string | number | null | undefined, null>;
11
- params: import("superstruct").Struct<Record<string, Json> | Json[] | undefined, null>;
12
12
  method: import("superstruct").Struct<string, null>;
13
- jsonrpc: import("superstruct").Struct<"2.0", "2.0">;
13
+ params: import("superstruct").Struct<Record<string, Json> | Json[] | undefined, null>;
14
14
  }>;
15
15
  export declare type JsonRpcRequestWithoutId = Infer<typeof JsonRpcRequestWithoutIdStruct>;
16
16
  export declare const EndowmentStruct: import("superstruct").Struct<string, null>;
@@ -31,12 +31,12 @@ export declare function isEndowment(value: unknown): value is Endowment;
31
31
  export declare function isEndowmentsArray(value: unknown): value is Endowment[];
32
32
  export declare const PingRequestArgumentsStruct: import("superstruct").Struct<unknown[] | undefined, null>;
33
33
  export declare const TerminateRequestArgumentsStruct: import("superstruct").Struct<unknown[] | undefined, null>;
34
- export declare const ExecuteSnapRequestArgumentsStruct: import("superstruct").Struct<[string, string, string[] | undefined], null>;
34
+ export declare const ExecuteSnapRequestArgumentsStruct: import("superstruct").Struct<[string, string, string[]], null>;
35
35
  export declare const SnapRpcRequestArgumentsStruct: import("superstruct").Struct<[string, HandlerType, string, {
36
36
  method: string;
37
- jsonrpc: "2.0";
38
- params?: Record<string, Json> | undefined;
39
37
  id?: string | number | null | undefined;
38
+ jsonrpc?: "2.0" | undefined;
39
+ params?: Record<string, Json> | undefined;
40
40
  }], null>;
41
41
  export declare type PingRequestArguments = Infer<typeof PingRequestArgumentsStruct>;
42
42
  export declare type TerminateRequestArguments = Infer<typeof TerminateRequestArgumentsStruct>;
@@ -87,23 +87,19 @@ export declare type PossibleLookupRequestArgs = typeof baseNameLookupArgs & {
87
87
  */
88
88
  export declare function assertIsOnNameLookupRequestArguments(value: unknown): asserts value is OnNameLookupRequestArguments;
89
89
  declare const OkResponseStruct: import("superstruct").Struct<{
90
+ result: "OK";
90
91
  id: string | number | null;
91
92
  jsonrpc: "2.0";
92
- result: "OK";
93
93
  }, {
94
- result: import("superstruct").Struct<"OK", "OK">;
95
94
  id: import("superstruct").Struct<string | number | null, null>;
96
95
  jsonrpc: import("superstruct").Struct<"2.0", "2.0">;
96
+ result: import("superstruct").Struct<"OK", "OK">;
97
97
  }>;
98
98
  declare const SnapRpcResponse: import("superstruct").Struct<{
99
99
  id: string | number | null;
100
100
  jsonrpc: "2.0";
101
101
  result: Json;
102
- }, {
103
- id: import("superstruct").Struct<string | number | null, null>;
104
- jsonrpc: import("superstruct").Struct<"2.0", "2.0">;
105
- result: import("superstruct").Struct<Json, unknown>;
106
- }>;
102
+ }, unknown>;
107
103
  export declare type OkResponse = Infer<typeof OkResponseStruct>;
108
104
  export declare type SnapRpcResponse = Infer<typeof SnapRpcResponse>;
109
105
  export declare type Response = OkResponse | SnapRpcResponse;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/snaps-execution-environments",
3
- "version": "3.3.0",
3
+ "version": "3.4.1",
4
4
  "description": "Snap sandbox environments for executing SES javascript",
5
5
  "repository": {
6
6
  "type": "git",
@@ -44,15 +44,16 @@
44
44
  "lint:dependencies": "depcheck"
45
45
  },
46
46
  "dependencies": {
47
- "@metamask/json-rpc-engine": "^7.1.1",
48
- "@metamask/object-multiplex": "^1.2.0",
47
+ "@metamask/json-rpc-engine": "^7.3.0",
48
+ "@metamask/object-multiplex": "^2.0.0",
49
49
  "@metamask/post-message-stream": "^7.0.0",
50
- "@metamask/providers": "^13.0.0",
50
+ "@metamask/providers": "^14.0.1",
51
51
  "@metamask/rpc-errors": "^6.1.0",
52
- "@metamask/snaps-sdk": "^1.0.0",
53
- "@metamask/snaps-utils": "^4.0.0",
54
- "@metamask/utils": "^8.1.0",
52
+ "@metamask/snaps-sdk": "^1.2.0",
53
+ "@metamask/snaps-utils": "^5.0.0",
54
+ "@metamask/utils": "^8.2.1",
55
55
  "nanoid": "^3.1.31",
56
+ "readable-stream": "^3.6.2",
56
57
  "superstruct": "^1.0.3"
57
58
  },
58
59
  "devDependencies": {