@metamask/snaps-controllers 13.0.0 → 13.1.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 (50) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/dist/index.cjs +1 -0
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +1 -0
  5. package/dist/index.d.cts.map +1 -1
  6. package/dist/index.d.mts +1 -0
  7. package/dist/index.d.mts.map +1 -1
  8. package/dist/index.mjs +1 -0
  9. package/dist/index.mjs.map +1 -1
  10. package/dist/snaps/SnapController.cjs +19 -0
  11. package/dist/snaps/SnapController.cjs.map +1 -1
  12. package/dist/snaps/SnapController.d.cts +16 -1
  13. package/dist/snaps/SnapController.d.cts.map +1 -1
  14. package/dist/snaps/SnapController.d.mts +16 -1
  15. package/dist/snaps/SnapController.d.mts.map +1 -1
  16. package/dist/snaps/SnapController.mjs +19 -0
  17. package/dist/snaps/SnapController.mjs.map +1 -1
  18. package/dist/snaps/constants.cjs +1 -0
  19. package/dist/snaps/constants.cjs.map +1 -1
  20. package/dist/snaps/constants.d.cts.map +1 -1
  21. package/dist/snaps/constants.d.mts.map +1 -1
  22. package/dist/snaps/constants.mjs +1 -0
  23. package/dist/snaps/constants.mjs.map +1 -1
  24. package/dist/snaps/index.cjs +1 -0
  25. package/dist/snaps/index.cjs.map +1 -1
  26. package/dist/snaps/index.d.cts +1 -0
  27. package/dist/snaps/index.d.cts.map +1 -1
  28. package/dist/snaps/index.d.mts +1 -0
  29. package/dist/snaps/index.d.mts.map +1 -1
  30. package/dist/snaps/index.mjs +1 -0
  31. package/dist/snaps/index.mjs.map +1 -1
  32. package/dist/utils.d.cts +1 -1
  33. package/dist/utils.d.mts +1 -1
  34. package/dist/websocket/WebSocketService.cjs +194 -0
  35. package/dist/websocket/WebSocketService.cjs.map +1 -0
  36. package/dist/websocket/WebSocketService.d.cts +33 -0
  37. package/dist/websocket/WebSocketService.d.cts.map +1 -0
  38. package/dist/websocket/WebSocketService.d.mts +33 -0
  39. package/dist/websocket/WebSocketService.d.mts.map +1 -0
  40. package/dist/websocket/WebSocketService.mjs +190 -0
  41. package/dist/websocket/WebSocketService.mjs.map +1 -0
  42. package/dist/websocket/index.cjs +18 -0
  43. package/dist/websocket/index.cjs.map +1 -0
  44. package/dist/websocket/index.d.cts +2 -0
  45. package/dist/websocket/index.d.cts.map +1 -0
  46. package/dist/websocket/index.d.mts +2 -0
  47. package/dist/websocket/index.d.mts.map +1 -0
  48. package/dist/websocket/index.mjs +2 -0
  49. package/dist/websocket/index.mjs.map +1 -0
  50. package/package.json +6 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebSocketService.mjs","sourceRoot":"","sources":["../../src/websocket/WebSocketService.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RestrictedMessenger } from '@metamask/base-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n GetWebSocketsResult,\n SnapId,\n WebSocketEvent,\n} from '@metamask/snaps-sdk';\nimport { HandlerType, isEqual, logError } from '@metamask/snaps-utils';\nimport { assert, createDeferredPromise } from '@metamask/utils';\nimport { nanoid } from 'nanoid';\n\nimport type {\n HandleSnapRequest,\n SnapInstalled,\n SnapUninstalled,\n SnapUpdated,\n} from '../snaps';\nimport { METAMASK_ORIGIN } from '../snaps';\n\nconst serviceName = 'WebSocketService';\n\nexport type WebSocketServiceOpenAction = {\n type: `${typeof serviceName}:open`;\n handler: (\n snapId: SnapId,\n url: string,\n protocols?: string[],\n ) => Promise<string>;\n};\n\nexport type WebSocketServiceCloseAction = {\n type: `${typeof serviceName}:close`;\n handler: (snapId: SnapId, id: string) => void;\n};\n\nexport type WebSocketServiceSendMessageAction = {\n type: `${typeof serviceName}:sendMessage`;\n handler: (\n snapId: SnapId,\n id: string,\n data: string | number[],\n ) => Promise<void>;\n};\n\nexport type WebSocketServiceGetAllAction = {\n type: `${typeof serviceName}:getAll`;\n handler: (snapId: SnapId) => GetWebSocketsResult;\n};\n\nexport type WebSocketServiceActions =\n | WebSocketServiceOpenAction\n | WebSocketServiceCloseAction\n | WebSocketServiceSendMessageAction\n | WebSocketServiceGetAllAction;\n\nexport type WebSocketServiceAllowedActions = HandleSnapRequest;\n\nexport type WebSocketServiceEvents =\n | SnapUninstalled\n | SnapUpdated\n | SnapInstalled;\n\nexport type WebSocketServiceMessenger = RestrictedMessenger<\n 'WebSocketService',\n WebSocketServiceActions | WebSocketServiceAllowedActions,\n WebSocketServiceEvents,\n WebSocketServiceAllowedActions['type'],\n WebSocketServiceEvents['type']\n>;\n\ntype WebSocketServiceArgs = {\n messenger: WebSocketServiceMessenger;\n};\n\ntype InternalSocket = {\n id: string;\n snapId: SnapId;\n url: string;\n protocols: string[];\n openPromise: Promise<void>;\n // eslint-disable-next-line no-restricted-globals\n socket: WebSocket;\n};\n\nexport class WebSocketService {\n readonly #messenger: WebSocketServiceMessenger;\n\n readonly #sockets: Map<string, InternalSocket>;\n\n constructor({ messenger }: WebSocketServiceArgs) {\n this.#messenger = messenger;\n this.#sockets = new Map();\n\n this.#messenger.registerActionHandler(\n `${serviceName}:open`,\n async (...args) => this.#open(...args),\n );\n\n this.#messenger.registerActionHandler(`${serviceName}:close`, (...args) =>\n this.#close(...args),\n );\n\n this.#messenger.registerActionHandler(\n `${serviceName}:sendMessage`,\n async (...args) => this.#sendMessage(...args),\n );\n\n this.#messenger.registerActionHandler(`${serviceName}:getAll`, (...args) =>\n this.#getAll(...args),\n );\n\n this.#messenger.subscribe('SnapController:snapUpdated', (snap) => {\n this.#closeAll(snap.id);\n });\n\n this.#messenger.subscribe('SnapController:snapUninstalled', (snap) => {\n this.#closeAll(snap.id);\n });\n\n // Due to local Snaps not currently emitting snapUninstalled we also have to\n // listen to snapInstalled.\n this.#messenger.subscribe('SnapController:snapInstalled', (snap) => {\n this.#closeAll(snap.id);\n });\n }\n\n /**\n * Get information about a given WebSocket connection with an ID.\n *\n * @param snapId - The Snap ID.\n * @param id - The identifier for the WebSocket connection.\n * @returns Information abou the WebSocket connection.\n * @throws If the WebSocket connection cannot be found.\n */\n #get(snapId: SnapId, id: string) {\n const socket = this.#sockets.get(id);\n\n assert(\n socket && socket.snapId === snapId,\n `Socket with ID \"${id}\" not found.`,\n );\n\n return socket;\n }\n\n /**\n * Check whether a given Snap ID already has an open connection for a URL and protocol.\n *\n * @param snapId - The Snap ID.\n * @param url - The URL.\n * @param protocols - A protocols parameter.\n * @returns True if a matching connection already exists, otherwise false.\n */\n #exists(snapId: SnapId, url: string, protocols: string[]) {\n return this.#getAll(snapId).some(\n (socket) => socket.url === url && isEqual(socket.protocols, protocols),\n );\n }\n\n /**\n * Handle sending a specific WebSocketEvent to a Snap.\n *\n * @param snapId - The Snap ID.\n * @param event - The WebSocketEvent.\n */\n #handleEvent(snapId: SnapId, event: WebSocketEvent) {\n this.#messenger\n .call('SnapController:handleRequest', {\n origin: METAMASK_ORIGIN,\n snapId,\n handler: HandlerType.OnWebSocketEvent,\n request: { method: '', params: { event } },\n })\n .catch((error) => {\n logError(\n `An error occurred while handling a WebSocket message for Snap \"${snapId}\":`,\n error,\n );\n });\n }\n\n /**\n * Open a WebSocket connection.\n *\n * @param snapId - The Snap ID.\n * @param url - The URL for the WebSocket connection.\n * @param protocols - An optional parameter for protocols.\n * @returns The identifier for the opened connection.\n * @throws If the connection fails.\n */\n async #open(snapId: SnapId, url: string, protocols: string[] = []) {\n assert(\n !this.#exists(snapId, url, protocols),\n `An open WebSocket connection to ${url} already exists.`,\n );\n\n const parsedUrl = new URL(url);\n const { origin } = parsedUrl;\n\n const id = nanoid();\n\n // eslint-disable-next-line no-restricted-globals\n const socket = new WebSocket(url, protocols);\n socket.binaryType = 'arraybuffer';\n\n const { promise, resolve, reject } = createDeferredPromise();\n\n socket.addEventListener('open', () => {\n resolve();\n this.#handleEvent(snapId, {\n type: 'open',\n id,\n origin,\n });\n });\n\n socket.addEventListener('close', (event) => {\n this.#handleEvent(snapId, {\n type: 'close',\n id,\n origin,\n code: event.code,\n reason: event.reason,\n // wasClean is not available on mobile.\n wasClean: event.wasClean ?? null,\n });\n });\n\n const errorListener = () => {\n reject(\n rpcErrors.resourceUnavailable(\n 'An error occurred while opening the WebSocket.',\n ),\n );\n };\n\n socket.addEventListener('error', errorListener);\n\n socket.addEventListener('message', (event) => {\n const isText = typeof event.data === 'string';\n const data = isText\n ? { type: 'text' as const, message: event.data }\n : {\n type: 'binary' as const,\n // We request that the WebSocket gives us an array buffer.\n message: Array.from(new Uint8Array(event.data)),\n };\n\n this.#handleEvent(snapId, {\n type: 'message',\n id,\n origin,\n data,\n });\n });\n\n this.#sockets.set(id, {\n id,\n snapId,\n url,\n protocols,\n socket,\n openPromise: promise,\n });\n\n await promise;\n\n socket.removeEventListener('error', errorListener);\n\n return id;\n }\n\n /**\n * Close a given WebSocket connection.\n *\n * @param snapId - The Snap ID.\n * @param id - The identifier for the WebSocket connection.\n */\n #close(snapId: SnapId, id: string) {\n const { socket } = this.#get(snapId, id);\n\n socket.close();\n\n this.#sockets.delete(id);\n }\n\n /**\n * Close all open connections for a given Snap ID.\n *\n * @param snapId - The Snap ID.\n */\n #closeAll(snapId: SnapId) {\n for (const socket of this.#getAll(snapId)) {\n this.#close(snapId, socket.id);\n }\n }\n\n /**\n * Send a message from a given Snap ID to a WebSocket connection.\n *\n * @param snapId - The Snap ID.\n * @param id - The identifier for the WebSocket connection.\n * @param data - The message to send.\n */\n async #sendMessage(snapId: SnapId, id: string, data: string | number[]) {\n const { socket, openPromise } = this.#get(snapId, id);\n\n await openPromise;\n\n const wrappedData = Array.isArray(data) ? new Uint8Array(data) : data;\n\n socket.send(wrappedData);\n }\n\n /**\n * Get a list of all open WebSocket connections for a Snap ID.\n *\n * @param snapId - The Snap ID.\n * @returns A list of WebSocket connections.\n */\n #getAll(snapId: SnapId) {\n return [...this.#sockets.values()]\n .filter((socket) => socket.snapId === snapId)\n .map((socket) => ({\n id: socket.id,\n url: socket.url,\n protocols: socket.protocols,\n }));\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./WebSocketService.cjs"), exports);
18
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAmC","sourcesContent":["export * from './WebSocketService';\n"]}
@@ -0,0 +1,2 @@
1
+ export * from "./WebSocketService.cjs";
2
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":"AAAA,uCAAmC"}
@@ -0,0 +1,2 @@
1
+ export * from "./WebSocketService.mjs";
2
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":"AAAA,uCAAmC"}
@@ -0,0 +1,2 @@
1
+ export * from "./WebSocketService.mjs";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":"AAAA,uCAAmC","sourcesContent":["export * from './WebSocketService';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/snaps-controllers",
3
- "version": "13.0.0",
3
+ "version": "13.1.0",
4
4
  "description": "Controllers for MetaMask Snaps",
5
5
  "keywords": [
6
6
  "MetaMask",
@@ -87,13 +87,13 @@
87
87
  "@metamask/key-tree": "^10.1.1",
88
88
  "@metamask/object-multiplex": "^2.1.0",
89
89
  "@metamask/permission-controller": "^11.0.6",
90
- "@metamask/phishing-controller": "^12.5.0",
90
+ "@metamask/phishing-controller": "^12.6.0",
91
91
  "@metamask/post-message-stream": "^10.0.0",
92
92
  "@metamask/rpc-errors": "^7.0.2",
93
93
  "@metamask/snaps-registry": "^3.2.3",
94
- "@metamask/snaps-rpc-methods": "^13.0.0",
95
- "@metamask/snaps-sdk": "^8.0.0",
96
- "@metamask/snaps-utils": "^10.0.0",
94
+ "@metamask/snaps-rpc-methods": "^13.1.0",
95
+ "@metamask/snaps-sdk": "^8.1.0",
96
+ "@metamask/snaps-utils": "^10.1.0",
97
97
  "@metamask/utils": "^11.4.0",
98
98
  "@xstate/fsm": "^2.0.0",
99
99
  "async-mutex": "^0.5.0",
@@ -149,7 +149,7 @@
149
149
  "vitest": "^3.1.1"
150
150
  },
151
151
  "peerDependencies": {
152
- "@metamask/snaps-execution-environments": "^9.0.0"
152
+ "@metamask/snaps-execution-environments": "^9.1.0"
153
153
  },
154
154
  "peerDependenciesMeta": {
155
155
  "@metamask/snaps-execution-environments": {