@metamask/snaps-controllers 18.0.4 → 19.0.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 (288) hide show
  1. package/CHANGELOG.md +96 -1
  2. package/dist/cronjob/CronjobController-method-action-types.cjs +7 -0
  3. package/dist/cronjob/CronjobController-method-action-types.cjs.map +1 -0
  4. package/dist/cronjob/CronjobController-method-action-types.d.cts +51 -0
  5. package/dist/cronjob/CronjobController-method-action-types.d.cts.map +1 -0
  6. package/dist/cronjob/CronjobController-method-action-types.d.mts +51 -0
  7. package/dist/cronjob/CronjobController-method-action-types.d.mts.map +1 -0
  8. package/dist/cronjob/CronjobController-method-action-types.mjs +6 -0
  9. package/dist/cronjob/CronjobController-method-action-types.mjs.map +1 -0
  10. package/dist/cronjob/CronjobController.cjs +7 -4
  11. package/dist/cronjob/CronjobController.cjs.map +1 -1
  12. package/dist/cronjob/CronjobController.d.cts +7 -24
  13. package/dist/cronjob/CronjobController.d.cts.map +1 -1
  14. package/dist/cronjob/CronjobController.d.mts +7 -24
  15. package/dist/cronjob/CronjobController.d.mts.map +1 -1
  16. package/dist/cronjob/CronjobController.mjs +7 -4
  17. package/dist/cronjob/CronjobController.mjs.map +1 -1
  18. package/dist/cronjob/index.cjs +3 -15
  19. package/dist/cronjob/index.cjs.map +1 -1
  20. package/dist/cronjob/index.d.cts +3 -1
  21. package/dist/cronjob/index.d.cts.map +1 -1
  22. package/dist/cronjob/index.d.mts +3 -1
  23. package/dist/cronjob/index.d.mts.map +1 -1
  24. package/dist/cronjob/index.mjs +1 -1
  25. package/dist/cronjob/index.mjs.map +1 -1
  26. package/dist/insights/SnapInsightsController.cjs +1 -3
  27. package/dist/insights/SnapInsightsController.cjs.map +1 -1
  28. package/dist/insights/SnapInsightsController.d.cts +8 -8
  29. package/dist/insights/SnapInsightsController.d.cts.map +1 -1
  30. package/dist/insights/SnapInsightsController.d.mts +8 -8
  31. package/dist/insights/SnapInsightsController.d.mts.map +1 -1
  32. package/dist/insights/SnapInsightsController.mjs +1 -3
  33. package/dist/insights/SnapInsightsController.mjs.map +1 -1
  34. package/dist/insights/index.cjs +3 -15
  35. package/dist/insights/index.cjs.map +1 -1
  36. package/dist/insights/index.d.cts +2 -1
  37. package/dist/insights/index.d.cts.map +1 -1
  38. package/dist/insights/index.d.mts +2 -1
  39. package/dist/insights/index.d.mts.map +1 -1
  40. package/dist/insights/index.mjs +1 -1
  41. package/dist/insights/index.mjs.map +1 -1
  42. package/dist/interface/SnapInterfaceController-method-action-types.cjs +7 -0
  43. package/dist/interface/SnapInterfaceController-method-action-types.cjs.map +1 -0
  44. package/dist/interface/SnapInterfaceController-method-action-types.d.cts +99 -0
  45. package/dist/interface/SnapInterfaceController-method-action-types.d.cts.map +1 -0
  46. package/dist/interface/SnapInterfaceController-method-action-types.d.mts +99 -0
  47. package/dist/interface/SnapInterfaceController-method-action-types.d.mts.map +1 -0
  48. package/dist/interface/SnapInterfaceController-method-action-types.mjs +6 -0
  49. package/dist/interface/SnapInterfaceController-method-action-types.mjs.map +1 -0
  50. package/dist/interface/SnapInterfaceController.cjs +12 -16
  51. package/dist/interface/SnapInterfaceController.cjs.map +1 -1
  52. package/dist/interface/SnapInterfaceController.d.cts +9 -39
  53. package/dist/interface/SnapInterfaceController.d.cts.map +1 -1
  54. package/dist/interface/SnapInterfaceController.d.mts +9 -39
  55. package/dist/interface/SnapInterfaceController.d.mts.map +1 -1
  56. package/dist/interface/SnapInterfaceController.mjs +12 -16
  57. package/dist/interface/SnapInterfaceController.mjs.map +1 -1
  58. package/dist/interface/index.cjs +3 -15
  59. package/dist/interface/index.cjs.map +1 -1
  60. package/dist/interface/index.d.cts +3 -1
  61. package/dist/interface/index.d.cts.map +1 -1
  62. package/dist/interface/index.d.mts +3 -1
  63. package/dist/interface/index.d.mts.map +1 -1
  64. package/dist/interface/index.mjs +1 -1
  65. package/dist/interface/index.mjs.map +1 -1
  66. package/dist/multichain/MultichainRoutingService-method-action-types.cjs +7 -0
  67. package/dist/multichain/MultichainRoutingService-method-action-types.cjs.map +1 -0
  68. package/dist/multichain/MultichainRoutingService-method-action-types.d.cts +61 -0
  69. package/dist/multichain/MultichainRoutingService-method-action-types.d.cts.map +1 -0
  70. package/dist/multichain/MultichainRoutingService-method-action-types.d.mts +61 -0
  71. package/dist/multichain/MultichainRoutingService-method-action-types.d.mts.map +1 -0
  72. package/dist/multichain/MultichainRoutingService-method-action-types.mjs +6 -0
  73. package/dist/multichain/MultichainRoutingService-method-action-types.mjs.map +1 -0
  74. package/dist/multichain/{MultichainRouter.cjs → MultichainRoutingService.cjs} +14 -13
  75. package/dist/multichain/MultichainRoutingService.cjs.map +1 -0
  76. package/dist/multichain/{MultichainRouter.d.mts → MultichainRoutingService.d.cts} +13 -28
  77. package/dist/multichain/MultichainRoutingService.d.cts.map +1 -0
  78. package/dist/multichain/{MultichainRouter.d.cts → MultichainRoutingService.d.mts} +13 -28
  79. package/dist/multichain/MultichainRoutingService.d.mts.map +1 -0
  80. package/dist/multichain/{MultichainRouter.mjs → MultichainRoutingService.mjs} +12 -11
  81. package/dist/multichain/MultichainRoutingService.mjs.map +1 -0
  82. package/dist/multichain/index.cjs +3 -15
  83. package/dist/multichain/index.cjs.map +1 -1
  84. package/dist/multichain/index.d.cts +3 -1
  85. package/dist/multichain/index.d.cts.map +1 -1
  86. package/dist/multichain/index.d.mts +3 -1
  87. package/dist/multichain/index.d.mts.map +1 -1
  88. package/dist/multichain/index.mjs +1 -1
  89. package/dist/multichain/index.mjs.map +1 -1
  90. package/dist/services/ExecutionService-method-action-types.cjs +7 -0
  91. package/dist/services/ExecutionService-method-action-types.cjs.map +1 -0
  92. package/dist/services/ExecutionService-method-action-types.d.cts +50 -0
  93. package/dist/services/ExecutionService-method-action-types.d.cts.map +1 -0
  94. package/dist/services/ExecutionService-method-action-types.d.mts +50 -0
  95. package/dist/services/ExecutionService-method-action-types.d.mts.map +1 -0
  96. package/dist/services/ExecutionService-method-action-types.mjs +6 -0
  97. package/dist/services/ExecutionService-method-action-types.mjs.map +1 -0
  98. package/dist/services/ExecutionService.cjs +287 -0
  99. package/dist/services/ExecutionService.cjs.map +1 -1
  100. package/dist/services/ExecutionService.d.cts +100 -46
  101. package/dist/services/ExecutionService.d.cts.map +1 -1
  102. package/dist/services/ExecutionService.d.mts +100 -46
  103. package/dist/services/ExecutionService.d.mts.map +1 -1
  104. package/dist/services/ExecutionService.mjs +285 -1
  105. package/dist/services/ExecutionService.mjs.map +1 -1
  106. package/dist/services/browser.cjs +5 -2
  107. package/dist/services/browser.cjs.map +1 -1
  108. package/dist/services/browser.d.cts +4 -2
  109. package/dist/services/browser.d.cts.map +1 -1
  110. package/dist/services/browser.d.mts +4 -2
  111. package/dist/services/browser.d.mts.map +1 -1
  112. package/dist/services/browser.mjs +2 -2
  113. package/dist/services/browser.mjs.map +1 -1
  114. package/dist/services/iframe/IframeExecutionService.cjs +2 -2
  115. package/dist/services/iframe/IframeExecutionService.cjs.map +1 -1
  116. package/dist/services/iframe/IframeExecutionService.d.cts +3 -3
  117. package/dist/services/iframe/IframeExecutionService.d.cts.map +1 -1
  118. package/dist/services/iframe/IframeExecutionService.d.mts +3 -3
  119. package/dist/services/iframe/IframeExecutionService.d.mts.map +1 -1
  120. package/dist/services/iframe/IframeExecutionService.mjs +2 -2
  121. package/dist/services/iframe/IframeExecutionService.mjs.map +1 -1
  122. package/dist/services/index.cjs +5 -1
  123. package/dist/services/index.cjs.map +1 -1
  124. package/dist/services/index.d.cts +4 -2
  125. package/dist/services/index.d.cts.map +1 -1
  126. package/dist/services/index.d.mts +4 -2
  127. package/dist/services/index.d.mts.map +1 -1
  128. package/dist/services/index.mjs +2 -1
  129. package/dist/services/index.mjs.map +1 -1
  130. package/dist/services/multiplex.cjs +27 -0
  131. package/dist/services/multiplex.cjs.map +1 -0
  132. package/dist/services/multiplex.d.cts +11 -0
  133. package/dist/services/multiplex.d.cts.map +1 -0
  134. package/dist/services/multiplex.d.mts +11 -0
  135. package/dist/services/multiplex.d.mts.map +1 -0
  136. package/dist/services/multiplex.mjs +27 -0
  137. package/dist/services/multiplex.mjs.map +1 -0
  138. package/dist/services/node-js/NodeProcessExecutionService.cjs +2 -2
  139. package/dist/services/node-js/NodeProcessExecutionService.cjs.map +1 -1
  140. package/dist/services/node-js/NodeProcessExecutionService.d.cts +3 -3
  141. package/dist/services/node-js/NodeProcessExecutionService.d.cts.map +1 -1
  142. package/dist/services/node-js/NodeProcessExecutionService.d.mts +3 -3
  143. package/dist/services/node-js/NodeProcessExecutionService.d.mts.map +1 -1
  144. package/dist/services/node-js/NodeProcessExecutionService.mjs +2 -2
  145. package/dist/services/node-js/NodeProcessExecutionService.mjs.map +1 -1
  146. package/dist/services/node-js/NodeThreadExecutionService.cjs +2 -5
  147. package/dist/services/node-js/NodeThreadExecutionService.cjs.map +1 -1
  148. package/dist/services/node-js/NodeThreadExecutionService.d.cts +3 -3
  149. package/dist/services/node-js/NodeThreadExecutionService.d.cts.map +1 -1
  150. package/dist/services/node-js/NodeThreadExecutionService.d.mts +3 -3
  151. package/dist/services/node-js/NodeThreadExecutionService.d.mts.map +1 -1
  152. package/dist/services/node-js/NodeThreadExecutionService.mjs +2 -5
  153. package/dist/services/node-js/NodeThreadExecutionService.mjs.map +1 -1
  154. package/dist/services/offscreen/OffscreenExecutionService.cjs.map +1 -1
  155. package/dist/services/offscreen/OffscreenExecutionService.d.cts +1 -1
  156. package/dist/services/offscreen/OffscreenExecutionService.d.cts.map +1 -1
  157. package/dist/services/offscreen/OffscreenExecutionService.d.mts +1 -1
  158. package/dist/services/offscreen/OffscreenExecutionService.d.mts.map +1 -1
  159. package/dist/services/offscreen/OffscreenExecutionService.mjs.map +1 -1
  160. package/dist/services/proxy/ProxyExecutionService.cjs +2 -5
  161. package/dist/services/proxy/ProxyExecutionService.cjs.map +1 -1
  162. package/dist/services/proxy/ProxyExecutionService.d.cts +3 -3
  163. package/dist/services/proxy/ProxyExecutionService.d.cts.map +1 -1
  164. package/dist/services/proxy/ProxyExecutionService.d.mts +3 -3
  165. package/dist/services/proxy/ProxyExecutionService.d.mts.map +1 -1
  166. package/dist/services/proxy/ProxyExecutionService.mjs +2 -5
  167. package/dist/services/proxy/ProxyExecutionService.mjs.map +1 -1
  168. package/dist/services/webview/WebViewExecutionService.cjs +2 -2
  169. package/dist/services/webview/WebViewExecutionService.cjs.map +1 -1
  170. package/dist/services/webview/WebViewExecutionService.d.cts +3 -3
  171. package/dist/services/webview/WebViewExecutionService.d.cts.map +1 -1
  172. package/dist/services/webview/WebViewExecutionService.d.mts +3 -3
  173. package/dist/services/webview/WebViewExecutionService.d.mts.map +1 -1
  174. package/dist/services/webview/WebViewExecutionService.mjs +2 -2
  175. package/dist/services/webview/WebViewExecutionService.mjs.map +1 -1
  176. package/dist/snaps/SnapController-method-action-types.cjs +7 -0
  177. package/dist/snaps/SnapController-method-action-types.cjs.map +1 -0
  178. package/dist/snaps/SnapController-method-action-types.d.cts +284 -0
  179. package/dist/snaps/SnapController-method-action-types.d.cts.map +1 -0
  180. package/dist/snaps/SnapController-method-action-types.d.mts +284 -0
  181. package/dist/snaps/SnapController-method-action-types.d.mts.map +1 -0
  182. package/dist/snaps/SnapController-method-action-types.mjs +6 -0
  183. package/dist/snaps/SnapController-method-action-types.mjs.map +1 -0
  184. package/dist/snaps/SnapController.cjs +118 -113
  185. package/dist/snaps/SnapController.cjs.map +1 -1
  186. package/dist/snaps/SnapController.d.cts +32 -189
  187. package/dist/snaps/SnapController.d.cts.map +1 -1
  188. package/dist/snaps/SnapController.d.mts +32 -189
  189. package/dist/snaps/SnapController.d.mts.map +1 -1
  190. package/dist/snaps/SnapController.mjs +119 -114
  191. package/dist/snaps/SnapController.mjs.map +1 -1
  192. package/dist/snaps/index.cjs +3 -1
  193. package/dist/snaps/index.cjs.map +1 -1
  194. package/dist/snaps/index.d.cts +3 -1
  195. package/dist/snaps/index.d.cts.map +1 -1
  196. package/dist/snaps/index.d.mts +3 -1
  197. package/dist/snaps/index.d.mts.map +1 -1
  198. package/dist/snaps/index.mjs +1 -1
  199. package/dist/snaps/index.mjs.map +1 -1
  200. package/dist/snaps/registry/SnapRegistryController-method-action-types.cjs +7 -0
  201. package/dist/snaps/registry/SnapRegistryController-method-action-types.cjs.map +1 -0
  202. package/dist/snaps/registry/SnapRegistryController-method-action-types.d.cts +46 -0
  203. package/dist/snaps/registry/SnapRegistryController-method-action-types.d.cts.map +1 -0
  204. package/dist/snaps/registry/SnapRegistryController-method-action-types.d.mts +46 -0
  205. package/dist/snaps/registry/SnapRegistryController-method-action-types.d.mts.map +1 -0
  206. package/dist/snaps/registry/SnapRegistryController-method-action-types.mjs +6 -0
  207. package/dist/snaps/registry/SnapRegistryController-method-action-types.mjs.map +1 -0
  208. package/dist/snaps/registry/{json.cjs → SnapRegistryController.cjs} +27 -24
  209. package/dist/snaps/registry/SnapRegistryController.cjs.map +1 -0
  210. package/dist/snaps/registry/SnapRegistryController.d.cts +67 -0
  211. package/dist/snaps/registry/SnapRegistryController.d.cts.map +1 -0
  212. package/dist/snaps/registry/SnapRegistryController.d.mts +67 -0
  213. package/dist/snaps/registry/SnapRegistryController.d.mts.map +1 -0
  214. package/dist/snaps/registry/{json.mjs → SnapRegistryController.mjs} +25 -22
  215. package/dist/snaps/registry/SnapRegistryController.mjs.map +1 -0
  216. package/dist/snaps/registry/index.cjs +5 -16
  217. package/dist/snaps/registry/index.cjs.map +1 -1
  218. package/dist/snaps/registry/index.d.cts +5 -2
  219. package/dist/snaps/registry/index.d.cts.map +1 -1
  220. package/dist/snaps/registry/index.d.mts +5 -2
  221. package/dist/snaps/registry/index.d.mts.map +1 -1
  222. package/dist/snaps/registry/index.mjs +2 -2
  223. package/dist/snaps/registry/index.mjs.map +1 -1
  224. package/dist/snaps/registry/types.cjs +11 -0
  225. package/dist/snaps/registry/types.cjs.map +1 -0
  226. package/dist/snaps/registry/types.d.cts +20 -0
  227. package/dist/snaps/registry/types.d.cts.map +1 -0
  228. package/dist/snaps/registry/types.d.mts +20 -0
  229. package/dist/snaps/registry/types.d.mts.map +1 -0
  230. package/dist/snaps/registry/types.mjs +8 -0
  231. package/dist/snaps/registry/types.mjs.map +1 -0
  232. package/dist/types/controllers.cjs.map +1 -1
  233. package/dist/types/controllers.d.cts +1 -1
  234. package/dist/types/controllers.d.cts.map +1 -1
  235. package/dist/types/controllers.d.mts +1 -1
  236. package/dist/types/controllers.d.mts.map +1 -1
  237. package/dist/types/controllers.mjs.map +1 -1
  238. package/dist/websocket/WebSocketService-method-action-types.cjs +7 -0
  239. package/dist/websocket/WebSocketService-method-action-types.cjs.map +1 -0
  240. package/dist/websocket/WebSocketService-method-action-types.d.cts +54 -0
  241. package/dist/websocket/WebSocketService-method-action-types.d.cts.map +1 -0
  242. package/dist/websocket/WebSocketService-method-action-types.d.mts +54 -0
  243. package/dist/websocket/WebSocketService-method-action-types.d.mts.map +1 -0
  244. package/dist/websocket/WebSocketService-method-action-types.mjs +6 -0
  245. package/dist/websocket/WebSocketService-method-action-types.mjs.map +1 -0
  246. package/dist/websocket/WebSocketService.cjs +14 -11
  247. package/dist/websocket/WebSocketService.cjs.map +1 -1
  248. package/dist/websocket/WebSocketService.d.cts +43 -22
  249. package/dist/websocket/WebSocketService.d.cts.map +1 -1
  250. package/dist/websocket/WebSocketService.d.mts +43 -22
  251. package/dist/websocket/WebSocketService.d.mts.map +1 -1
  252. package/dist/websocket/WebSocketService.mjs +14 -11
  253. package/dist/websocket/WebSocketService.mjs.map +1 -1
  254. package/dist/websocket/index.cjs +3 -15
  255. package/dist/websocket/index.cjs.map +1 -1
  256. package/dist/websocket/index.d.cts +3 -1
  257. package/dist/websocket/index.d.cts.map +1 -1
  258. package/dist/websocket/index.d.mts +3 -1
  259. package/dist/websocket/index.d.mts.map +1 -1
  260. package/dist/websocket/index.mjs +1 -1
  261. package/dist/websocket/index.mjs.map +1 -1
  262. package/package.json +8 -7
  263. package/dist/multichain/MultichainRouter.cjs.map +0 -1
  264. package/dist/multichain/MultichainRouter.d.cts.map +0 -1
  265. package/dist/multichain/MultichainRouter.d.mts.map +0 -1
  266. package/dist/multichain/MultichainRouter.mjs.map +0 -1
  267. package/dist/services/AbstractExecutionService.cjs +0 -314
  268. package/dist/services/AbstractExecutionService.cjs.map +0 -1
  269. package/dist/services/AbstractExecutionService.d.cts +0 -107
  270. package/dist/services/AbstractExecutionService.d.cts.map +0 -1
  271. package/dist/services/AbstractExecutionService.d.mts +0 -107
  272. package/dist/services/AbstractExecutionService.d.mts.map +0 -1
  273. package/dist/services/AbstractExecutionService.mjs +0 -313
  274. package/dist/services/AbstractExecutionService.mjs.map +0 -1
  275. package/dist/snaps/registry/json.cjs.map +0 -1
  276. package/dist/snaps/registry/json.d.cts +0 -58
  277. package/dist/snaps/registry/json.d.cts.map +0 -1
  278. package/dist/snaps/registry/json.d.mts +0 -58
  279. package/dist/snaps/registry/json.d.mts.map +0 -1
  280. package/dist/snaps/registry/json.mjs.map +0 -1
  281. package/dist/snaps/registry/registry.cjs +0 -11
  282. package/dist/snaps/registry/registry.cjs.map +0 -1
  283. package/dist/snaps/registry/registry.d.cts +0 -41
  284. package/dist/snaps/registry/registry.d.cts.map +0 -1
  285. package/dist/snaps/registry/registry.d.mts +0 -41
  286. package/dist/snaps/registry/registry.d.mts.map +0 -1
  287. package/dist/snaps/registry/registry.mjs +0 -8
  288. package/dist/snaps/registry/registry.mjs.map +0 -1
@@ -14,9 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.SnapController = void 0;
17
18
  __exportStar(require("./constants.cjs"), exports);
18
19
  __exportStar(require("./location/index.cjs"), exports);
19
- __exportStar(require("./SnapController.cjs"), exports);
20
+ var SnapController_1 = require("./SnapController.cjs");
21
+ Object.defineProperty(exports, "SnapController", { enumerable: true, get: function () { return SnapController_1.SnapController; } });
20
22
  __exportStar(require("./selectors.cjs"), exports);
21
23
  __exportStar(require("./registry/index.cjs"), exports);
22
24
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/snaps/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,uDAA2B;AAC3B,uDAAiC;AACjC,kDAA4B;AAC5B,uDAA2B","sourcesContent":["export * from './constants';\nexport * from './location';\nexport * from './SnapController';\nexport * from './selectors';\nexport * from './registry';\n"]}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/snaps/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,uDAA2B;AAwB3B,uDAAkD;AAAzC,gHAAA,cAAc,OAAA;AA4BvB,kDAA4B;AAC5B,uDAA2B","sourcesContent":["export * from './constants';\nexport * from './location';\nexport type {\n SnapControllerActions,\n SnapControllerArgs,\n SnapControllerEvents,\n SnapControllerGetStateAction,\n SnapControllerMessenger,\n SnapControllerSnapBlockedEvent,\n SnapControllerSnapDisabledEvent,\n SnapControllerSnapEnabledEvent,\n SnapControllerSnapInstalledEvent,\n SnapControllerSnapInstallFailedEvent,\n SnapControllerSnapInstallStartedEvent,\n SnapControllerSnapRolledbackEvent,\n SnapControllerSnapTerminatedEvent,\n SnapControllerSnapUnblockedEvent,\n SnapControllerSnapUninstalledEvent,\n SnapControllerSnapUpdatedEvent,\n SnapControllerState,\n SnapControllerStateChangeEvent,\n PreinstalledSnapFile,\n PreinstalledSnap,\n PersistedSnapControllerState,\n} from './SnapController';\nexport { SnapController } from './SnapController';\nexport type {\n SnapControllerInitAction,\n SnapControllerUpdateRegistryAction,\n SnapControllerEnableSnapAction,\n SnapControllerDisableSnapAction,\n SnapControllerStopSnapAction,\n SnapControllerStopAllSnapsAction,\n SnapControllerIsSnapRunningAction,\n SnapControllerHasSnapAction,\n SnapControllerGetSnapAction,\n SnapControllerUpdateSnapStateAction,\n SnapControllerClearSnapStateAction,\n SnapControllerGetSnapStateAction,\n SnapControllerGetSnapFileAction,\n SnapControllerIsMinimumPlatformVersionAction,\n SnapControllerClearStateAction,\n SnapControllerRemoveSnapAction,\n SnapControllerRemoveSnapsAction,\n SnapControllerDisconnectOriginAction,\n SnapControllerRevokeDynamicSnapPermissionsAction,\n SnapControllerGetAllSnapsAction,\n SnapControllerGetRunnableSnapsAction,\n SnapControllerGetPermittedSnapsAction,\n SnapControllerInstallSnapsAction,\n SnapControllerHandleRequestAction,\n SnapControllerSetClientActiveAction,\n} from './SnapController-method-action-types';\nexport * from './selectors';\nexport * from './registry';\n"]}
@@ -1,6 +1,8 @@
1
1
  export * from "./constants.cjs";
2
2
  export * from "./location/index.cjs";
3
- export * from "./SnapController.cjs";
3
+ export type { SnapControllerActions, SnapControllerArgs, SnapControllerEvents, SnapControllerGetStateAction, SnapControllerMessenger, SnapControllerSnapBlockedEvent, SnapControllerSnapDisabledEvent, SnapControllerSnapEnabledEvent, SnapControllerSnapInstalledEvent, SnapControllerSnapInstallFailedEvent, SnapControllerSnapInstallStartedEvent, SnapControllerSnapRolledbackEvent, SnapControllerSnapTerminatedEvent, SnapControllerSnapUnblockedEvent, SnapControllerSnapUninstalledEvent, SnapControllerSnapUpdatedEvent, SnapControllerState, SnapControllerStateChangeEvent, PreinstalledSnapFile, PreinstalledSnap, PersistedSnapControllerState, } from "./SnapController.cjs";
4
+ export { SnapController } from "./SnapController.cjs";
5
+ export type { SnapControllerInitAction, SnapControllerUpdateRegistryAction, SnapControllerEnableSnapAction, SnapControllerDisableSnapAction, SnapControllerStopSnapAction, SnapControllerStopAllSnapsAction, SnapControllerIsSnapRunningAction, SnapControllerHasSnapAction, SnapControllerGetSnapAction, SnapControllerUpdateSnapStateAction, SnapControllerClearSnapStateAction, SnapControllerGetSnapStateAction, SnapControllerGetSnapFileAction, SnapControllerIsMinimumPlatformVersionAction, SnapControllerClearStateAction, SnapControllerRemoveSnapAction, SnapControllerRemoveSnapsAction, SnapControllerDisconnectOriginAction, SnapControllerRevokeDynamicSnapPermissionsAction, SnapControllerGetAllSnapsAction, SnapControllerGetRunnableSnapsAction, SnapControllerGetPermittedSnapsAction, SnapControllerInstallSnapsAction, SnapControllerHandleRequestAction, SnapControllerSetClientActiveAction, } from "./SnapController-method-action-types.cjs";
4
6
  export * from "./selectors.cjs";
5
7
  export * from "./registry/index.cjs";
6
8
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/snaps/index.ts"],"names":[],"mappings":"AAAA,gCAA4B;AAC5B,qCAA2B;AAC3B,qCAAiC;AACjC,gCAA4B;AAC5B,qCAA2B"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/snaps/index.ts"],"names":[],"mappings":"AAAA,gCAA4B;AAC5B,qCAA2B;AAC3B,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,EAC9B,gCAAgC,EAChC,oCAAoC,EACpC,qCAAqC,EACrC,iCAAiC,EACjC,iCAAiC,EACjC,gCAAgC,EAChC,kCAAkC,EAClC,8BAA8B,EAC9B,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,gBAAgB,EAChB,4BAA4B,GAC7B,6BAAyB;AAC1B,OAAO,EAAE,cAAc,EAAE,6BAAyB;AAClD,YAAY,EACV,wBAAwB,EACxB,kCAAkC,EAClC,8BAA8B,EAC9B,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,iCAAiC,EACjC,2BAA2B,EAC3B,2BAA2B,EAC3B,mCAAmC,EACnC,kCAAkC,EAClC,gCAAgC,EAChC,+BAA+B,EAC/B,4CAA4C,EAC5C,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,oCAAoC,EACpC,gDAAgD,EAChD,+BAA+B,EAC/B,oCAAoC,EACpC,qCAAqC,EACrC,gCAAgC,EAChC,iCAAiC,EACjC,mCAAmC,GACpC,iDAA6C;AAC9C,gCAA4B;AAC5B,qCAA2B"}
@@ -1,6 +1,8 @@
1
1
  export * from "./constants.mjs";
2
2
  export * from "./location/index.mjs";
3
- export * from "./SnapController.mjs";
3
+ export type { SnapControllerActions, SnapControllerArgs, SnapControllerEvents, SnapControllerGetStateAction, SnapControllerMessenger, SnapControllerSnapBlockedEvent, SnapControllerSnapDisabledEvent, SnapControllerSnapEnabledEvent, SnapControllerSnapInstalledEvent, SnapControllerSnapInstallFailedEvent, SnapControllerSnapInstallStartedEvent, SnapControllerSnapRolledbackEvent, SnapControllerSnapTerminatedEvent, SnapControllerSnapUnblockedEvent, SnapControllerSnapUninstalledEvent, SnapControllerSnapUpdatedEvent, SnapControllerState, SnapControllerStateChangeEvent, PreinstalledSnapFile, PreinstalledSnap, PersistedSnapControllerState, } from "./SnapController.mjs";
4
+ export { SnapController } from "./SnapController.mjs";
5
+ export type { SnapControllerInitAction, SnapControllerUpdateRegistryAction, SnapControllerEnableSnapAction, SnapControllerDisableSnapAction, SnapControllerStopSnapAction, SnapControllerStopAllSnapsAction, SnapControllerIsSnapRunningAction, SnapControllerHasSnapAction, SnapControllerGetSnapAction, SnapControllerUpdateSnapStateAction, SnapControllerClearSnapStateAction, SnapControllerGetSnapStateAction, SnapControllerGetSnapFileAction, SnapControllerIsMinimumPlatformVersionAction, SnapControllerClearStateAction, SnapControllerRemoveSnapAction, SnapControllerRemoveSnapsAction, SnapControllerDisconnectOriginAction, SnapControllerRevokeDynamicSnapPermissionsAction, SnapControllerGetAllSnapsAction, SnapControllerGetRunnableSnapsAction, SnapControllerGetPermittedSnapsAction, SnapControllerInstallSnapsAction, SnapControllerHandleRequestAction, SnapControllerSetClientActiveAction, } from "./SnapController-method-action-types.mjs";
4
6
  export * from "./selectors.mjs";
5
7
  export * from "./registry/index.mjs";
6
8
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/snaps/index.ts"],"names":[],"mappings":"AAAA,gCAA4B;AAC5B,qCAA2B;AAC3B,qCAAiC;AACjC,gCAA4B;AAC5B,qCAA2B"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/snaps/index.ts"],"names":[],"mappings":"AAAA,gCAA4B;AAC5B,qCAA2B;AAC3B,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,EAC9B,gCAAgC,EAChC,oCAAoC,EACpC,qCAAqC,EACrC,iCAAiC,EACjC,iCAAiC,EACjC,gCAAgC,EAChC,kCAAkC,EAClC,8BAA8B,EAC9B,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,gBAAgB,EAChB,4BAA4B,GAC7B,6BAAyB;AAC1B,OAAO,EAAE,cAAc,EAAE,6BAAyB;AAClD,YAAY,EACV,wBAAwB,EACxB,kCAAkC,EAClC,8BAA8B,EAC9B,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,iCAAiC,EACjC,2BAA2B,EAC3B,2BAA2B,EAC3B,mCAAmC,EACnC,kCAAkC,EAClC,gCAAgC,EAChC,+BAA+B,EAC/B,4CAA4C,EAC5C,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,oCAAoC,EACpC,gDAAgD,EAChD,+BAA+B,EAC/B,oCAAoC,EACpC,qCAAqC,EACrC,gCAAgC,EAChC,iCAAiC,EACjC,mCAAmC,GACpC,iDAA6C;AAC9C,gCAA4B;AAC5B,qCAA2B"}
@@ -1,6 +1,6 @@
1
1
  export * from "./constants.mjs";
2
2
  export * from "./location/index.mjs";
3
- export * from "./SnapController.mjs";
3
+ export { SnapController } from "./SnapController.mjs";
4
4
  export * from "./selectors.mjs";
5
5
  export * from "./registry/index.mjs";
6
6
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/snaps/index.ts"],"names":[],"mappings":"AAAA,gCAA4B;AAC5B,qCAA2B;AAC3B,qCAAiC;AACjC,gCAA4B;AAC5B,qCAA2B","sourcesContent":["export * from './constants';\nexport * from './location';\nexport * from './SnapController';\nexport * from './selectors';\nexport * from './registry';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/snaps/index.ts"],"names":[],"mappings":"AAAA,gCAA4B;AAC5B,qCAA2B;AAwB3B,OAAO,EAAE,cAAc,EAAE,6BAAyB;AA4BlD,gCAA4B;AAC5B,qCAA2B","sourcesContent":["export * from './constants';\nexport * from './location';\nexport type {\n SnapControllerActions,\n SnapControllerArgs,\n SnapControllerEvents,\n SnapControllerGetStateAction,\n SnapControllerMessenger,\n SnapControllerSnapBlockedEvent,\n SnapControllerSnapDisabledEvent,\n SnapControllerSnapEnabledEvent,\n SnapControllerSnapInstalledEvent,\n SnapControllerSnapInstallFailedEvent,\n SnapControllerSnapInstallStartedEvent,\n SnapControllerSnapRolledbackEvent,\n SnapControllerSnapTerminatedEvent,\n SnapControllerSnapUnblockedEvent,\n SnapControllerSnapUninstalledEvent,\n SnapControllerSnapUpdatedEvent,\n SnapControllerState,\n SnapControllerStateChangeEvent,\n PreinstalledSnapFile,\n PreinstalledSnap,\n PersistedSnapControllerState,\n} from './SnapController';\nexport { SnapController } from './SnapController';\nexport type {\n SnapControllerInitAction,\n SnapControllerUpdateRegistryAction,\n SnapControllerEnableSnapAction,\n SnapControllerDisableSnapAction,\n SnapControllerStopSnapAction,\n SnapControllerStopAllSnapsAction,\n SnapControllerIsSnapRunningAction,\n SnapControllerHasSnapAction,\n SnapControllerGetSnapAction,\n SnapControllerUpdateSnapStateAction,\n SnapControllerClearSnapStateAction,\n SnapControllerGetSnapStateAction,\n SnapControllerGetSnapFileAction,\n SnapControllerIsMinimumPlatformVersionAction,\n SnapControllerClearStateAction,\n SnapControllerRemoveSnapAction,\n SnapControllerRemoveSnapsAction,\n SnapControllerDisconnectOriginAction,\n SnapControllerRevokeDynamicSnapPermissionsAction,\n SnapControllerGetAllSnapsAction,\n SnapControllerGetRunnableSnapsAction,\n SnapControllerGetPermittedSnapsAction,\n SnapControllerInstallSnapsAction,\n SnapControllerHandleRequestAction,\n SnapControllerSetClientActiveAction,\n} from './SnapController-method-action-types';\nexport * from './selectors';\nexport * from './registry';\n"]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * This file is auto generated by `scripts/generate-method-action-types.ts`.
4
+ * Do not edit manually.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=SnapRegistryController-method-action-types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapRegistryController-method-action-types.cjs","sourceRoot":"","sources":["../../../src/snaps/registry/SnapRegistryController-method-action-types.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/**\n * This file is auto generated by `scripts/generate-method-action-types.ts`.\n * Do not edit manually.\n */\n\nimport type { SnapRegistryController } from './SnapRegistryController';\n\n/**\n * Triggers an update of the registry database.\n *\n * If an existing update is in progress this function will await that update.\n */\nexport type SnapRegistryControllerRequestUpdateAction = {\n type: `SnapRegistryController:requestUpdate`;\n handler: SnapRegistryController['requestUpdate'];\n};\n\nexport type SnapRegistryControllerGetAction = {\n type: `SnapRegistryController:get`;\n handler: SnapRegistryController['get'];\n};\n\n/**\n * Find an allowlisted version within a specified version range. Otherwise return the version range itself.\n *\n * @param snapId - The ID of the snap we are trying to resolve a version for.\n * @param versionRange - The version range.\n * @param refetch - An optional flag used to determine if we are refetching the registry.\n * @returns An allowlisted version within the specified version range if available otherwise returns the input version range.\n */\nexport type SnapRegistryControllerResolveVersionAction = {\n type: `SnapRegistryController:resolveVersion`;\n handler: SnapRegistryController['resolveVersion'];\n};\n\n/**\n * Get metadata for the given snap ID, if available, without updating registry.\n *\n * @param snapId - The ID of the snap to get metadata for.\n * @returns The metadata for the given snap ID, or `null` if the snap is not\n * verified.\n */\nexport type SnapRegistryControllerGetMetadataAction = {\n type: `SnapRegistryController:getMetadata`;\n handler: SnapRegistryController['getMetadata'];\n};\n\n/**\n * Union of all SnapRegistryController action types.\n */\nexport type SnapRegistryControllerMethodActions =\n | SnapRegistryControllerRequestUpdateAction\n | SnapRegistryControllerGetAction\n | SnapRegistryControllerResolveVersionAction\n | SnapRegistryControllerGetMetadataAction;\n"]}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * This file is auto generated by `scripts/generate-method-action-types.ts`.
3
+ * Do not edit manually.
4
+ */
5
+ import type { SnapRegistryController } from "./SnapRegistryController.cjs";
6
+ /**
7
+ * Triggers an update of the registry database.
8
+ *
9
+ * If an existing update is in progress this function will await that update.
10
+ */
11
+ export type SnapRegistryControllerRequestUpdateAction = {
12
+ type: `SnapRegistryController:requestUpdate`;
13
+ handler: SnapRegistryController['requestUpdate'];
14
+ };
15
+ export type SnapRegistryControllerGetAction = {
16
+ type: `SnapRegistryController:get`;
17
+ handler: SnapRegistryController['get'];
18
+ };
19
+ /**
20
+ * Find an allowlisted version within a specified version range. Otherwise return the version range itself.
21
+ *
22
+ * @param snapId - The ID of the snap we are trying to resolve a version for.
23
+ * @param versionRange - The version range.
24
+ * @param refetch - An optional flag used to determine if we are refetching the registry.
25
+ * @returns An allowlisted version within the specified version range if available otherwise returns the input version range.
26
+ */
27
+ export type SnapRegistryControllerResolveVersionAction = {
28
+ type: `SnapRegistryController:resolveVersion`;
29
+ handler: SnapRegistryController['resolveVersion'];
30
+ };
31
+ /**
32
+ * Get metadata for the given snap ID, if available, without updating registry.
33
+ *
34
+ * @param snapId - The ID of the snap to get metadata for.
35
+ * @returns The metadata for the given snap ID, or `null` if the snap is not
36
+ * verified.
37
+ */
38
+ export type SnapRegistryControllerGetMetadataAction = {
39
+ type: `SnapRegistryController:getMetadata`;
40
+ handler: SnapRegistryController['getMetadata'];
41
+ };
42
+ /**
43
+ * Union of all SnapRegistryController action types.
44
+ */
45
+ export type SnapRegistryControllerMethodActions = SnapRegistryControllerRequestUpdateAction | SnapRegistryControllerGetAction | SnapRegistryControllerResolveVersionAction | SnapRegistryControllerGetMetadataAction;
46
+ //# sourceMappingURL=SnapRegistryController-method-action-types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapRegistryController-method-action-types.d.cts","sourceRoot":"","sources":["../../../src/snaps/registry/SnapRegistryController-method-action-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,qCAAiC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,yCAAyC,GAAG;IACtD,IAAI,EAAE,sCAAsC,CAAC;IAC7C,OAAO,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,4BAA4B,CAAC;IACnC,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;CACxC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,0CAA0C,GAAG;IACvD,IAAI,EAAE,uCAAuC,CAAC;IAC9C,OAAO,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;CACnD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,uCAAuC,GAAG;IACpD,IAAI,EAAE,oCAAoC,CAAC;IAC3C,OAAO,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;CAChD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mCAAmC,GAC3C,yCAAyC,GACzC,+BAA+B,GAC/B,0CAA0C,GAC1C,uCAAuC,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * This file is auto generated by `scripts/generate-method-action-types.ts`.
3
+ * Do not edit manually.
4
+ */
5
+ import type { SnapRegistryController } from "./SnapRegistryController.mjs";
6
+ /**
7
+ * Triggers an update of the registry database.
8
+ *
9
+ * If an existing update is in progress this function will await that update.
10
+ */
11
+ export type SnapRegistryControllerRequestUpdateAction = {
12
+ type: `SnapRegistryController:requestUpdate`;
13
+ handler: SnapRegistryController['requestUpdate'];
14
+ };
15
+ export type SnapRegistryControllerGetAction = {
16
+ type: `SnapRegistryController:get`;
17
+ handler: SnapRegistryController['get'];
18
+ };
19
+ /**
20
+ * Find an allowlisted version within a specified version range. Otherwise return the version range itself.
21
+ *
22
+ * @param snapId - The ID of the snap we are trying to resolve a version for.
23
+ * @param versionRange - The version range.
24
+ * @param refetch - An optional flag used to determine if we are refetching the registry.
25
+ * @returns An allowlisted version within the specified version range if available otherwise returns the input version range.
26
+ */
27
+ export type SnapRegistryControllerResolveVersionAction = {
28
+ type: `SnapRegistryController:resolveVersion`;
29
+ handler: SnapRegistryController['resolveVersion'];
30
+ };
31
+ /**
32
+ * Get metadata for the given snap ID, if available, without updating registry.
33
+ *
34
+ * @param snapId - The ID of the snap to get metadata for.
35
+ * @returns The metadata for the given snap ID, or `null` if the snap is not
36
+ * verified.
37
+ */
38
+ export type SnapRegistryControllerGetMetadataAction = {
39
+ type: `SnapRegistryController:getMetadata`;
40
+ handler: SnapRegistryController['getMetadata'];
41
+ };
42
+ /**
43
+ * Union of all SnapRegistryController action types.
44
+ */
45
+ export type SnapRegistryControllerMethodActions = SnapRegistryControllerRequestUpdateAction | SnapRegistryControllerGetAction | SnapRegistryControllerResolveVersionAction | SnapRegistryControllerGetMetadataAction;
46
+ //# sourceMappingURL=SnapRegistryController-method-action-types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapRegistryController-method-action-types.d.mts","sourceRoot":"","sources":["../../../src/snaps/registry/SnapRegistryController-method-action-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,qCAAiC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,yCAAyC,GAAG;IACtD,IAAI,EAAE,sCAAsC,CAAC;IAC7C,OAAO,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,4BAA4B,CAAC;IACnC,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;CACxC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,0CAA0C,GAAG;IACvD,IAAI,EAAE,uCAAuC,CAAC;IAC9C,OAAO,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;CACnD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,uCAAuC,GAAG;IACpD,IAAI,EAAE,oCAAoC,CAAC;IAC3C,OAAO,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;CAChD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mCAAmC,GAC3C,yCAAyC,GACzC,+BAA+B,GAC/B,0CAA0C,GAC1C,uCAAuC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * This file is auto generated by `scripts/generate-method-action-types.ts`.
3
+ * Do not edit manually.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=SnapRegistryController-method-action-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapRegistryController-method-action-types.mjs","sourceRoot":"","sources":["../../../src/snaps/registry/SnapRegistryController-method-action-types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * This file is auto generated by `scripts/generate-method-action-types.ts`.\n * Do not edit manually.\n */\n\nimport type { SnapRegistryController } from './SnapRegistryController';\n\n/**\n * Triggers an update of the registry database.\n *\n * If an existing update is in progress this function will await that update.\n */\nexport type SnapRegistryControllerRequestUpdateAction = {\n type: `SnapRegistryController:requestUpdate`;\n handler: SnapRegistryController['requestUpdate'];\n};\n\nexport type SnapRegistryControllerGetAction = {\n type: `SnapRegistryController:get`;\n handler: SnapRegistryController['get'];\n};\n\n/**\n * Find an allowlisted version within a specified version range. Otherwise return the version range itself.\n *\n * @param snapId - The ID of the snap we are trying to resolve a version for.\n * @param versionRange - The version range.\n * @param refetch - An optional flag used to determine if we are refetching the registry.\n * @returns An allowlisted version within the specified version range if available otherwise returns the input version range.\n */\nexport type SnapRegistryControllerResolveVersionAction = {\n type: `SnapRegistryController:resolveVersion`;\n handler: SnapRegistryController['resolveVersion'];\n};\n\n/**\n * Get metadata for the given snap ID, if available, without updating registry.\n *\n * @param snapId - The ID of the snap to get metadata for.\n * @returns The metadata for the given snap ID, or `null` if the snap is not\n * verified.\n */\nexport type SnapRegistryControllerGetMetadataAction = {\n type: `SnapRegistryController:getMetadata`;\n handler: SnapRegistryController['getMetadata'];\n};\n\n/**\n * Union of all SnapRegistryController action types.\n */\nexport type SnapRegistryControllerMethodActions =\n | SnapRegistryControllerRequestUpdateAction\n | SnapRegistryControllerGetAction\n | SnapRegistryControllerResolveVersionAction\n | SnapRegistryControllerGetMetadataAction;\n"]}
@@ -1,22 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JsonSnapsRegistry = void 0;
3
+ exports.SnapRegistryController = void 0;
4
4
  const base_controller_1 = require("@metamask/base-controller");
5
5
  const snaps_registry_1 = require("@metamask/snaps-registry");
6
6
  const snaps_utils_1 = require("@metamask/snaps-utils");
7
7
  const utils_1 = require("@metamask/utils");
8
- const registry_1 = require("./registry.cjs");
8
+ const types_1 = require("./types.cjs");
9
9
  const SNAP_REGISTRY_URL = 'https://acl.execution.metamask.io/latest/registry.json';
10
10
  const SNAP_REGISTRY_SIGNATURE_URL = 'https://acl.execution.metamask.io/latest/signature.json';
11
11
  const DEFAULT_PUBLIC_KEY = '0x025b65308f0f0fb8bc7f7ff87bfc296e0330eee5d3c1d1ee4a048b2fd6a86fa0a6';
12
- const controllerName = 'SnapsRegistry';
12
+ const controllerName = 'SnapRegistryController';
13
+ const MESSENGER_EXPOSED_METHODS = [
14
+ 'get',
15
+ 'getMetadata',
16
+ 'resolveVersion',
17
+ 'requestUpdate',
18
+ ];
13
19
  const defaultState = {
14
20
  database: null,
15
21
  signature: null,
16
22
  lastUpdated: null,
17
23
  databaseUnavailable: false,
18
24
  };
19
- class JsonSnapsRegistry extends base_controller_1.BaseController {
25
+ class SnapRegistryController extends base_controller_1.BaseController {
20
26
  #url;
21
27
  #publicKey;
22
28
  #clientConfig;
@@ -69,10 +75,7 @@ class JsonSnapsRegistry extends base_controller_1.BaseController {
69
75
  this.#recentFetchThreshold = recentFetchThreshold;
70
76
  this.#refetchOnAllowlistMiss = refetchOnAllowlistMiss;
71
77
  this.#currentUpdate = null;
72
- this.messenger.registerActionHandler('SnapsRegistry:get', async (...args) => this.#get(...args));
73
- this.messenger.registerActionHandler('SnapsRegistry:getMetadata', (...args) => this.#getMetadata(...args));
74
- this.messenger.registerActionHandler('SnapsRegistry:resolveVersion', async (...args) => this.#resolveVersion(...args));
75
- this.messenger.registerActionHandler('SnapsRegistry:update', async () => this.#triggerUpdate());
78
+ this.messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
76
79
  }
77
80
  #wasRecentlyFetched() {
78
81
  return (this.state.lastUpdated &&
@@ -83,7 +86,7 @@ class JsonSnapsRegistry extends base_controller_1.BaseController {
83
86
  *
84
87
  * If an existing update is in progress this function will await that update.
85
88
  */
86
- async #triggerUpdate() {
89
+ async requestUpdate() {
87
90
  // If an update is ongoing, wait for that.
88
91
  if (this.#currentUpdate) {
89
92
  await this.#currentUpdate;
@@ -137,7 +140,7 @@ class JsonSnapsRegistry extends base_controller_1.BaseController {
137
140
  }
138
141
  async #getDatabase() {
139
142
  if (this.state.database === null) {
140
- await this.#triggerUpdate();
143
+ await this.requestUpdate();
141
144
  }
142
145
  return this.state.database;
143
146
  }
@@ -152,7 +155,7 @@ class JsonSnapsRegistry extends base_controller_1.BaseController {
152
155
  });
153
156
  if (blockedEntry) {
154
157
  return {
155
- status: registry_1.SnapsRegistryStatus.Blocked,
158
+ status: types_1.SnapRegistryStatus.Blocked,
156
159
  reason: blockedEntry.reason,
157
160
  };
158
161
  }
@@ -162,20 +165,20 @@ class JsonSnapsRegistry extends base_controller_1.BaseController {
162
165
  const isCompatible = !clientRange ||
163
166
  (0, utils_1.satisfiesVersionRange)(this.#clientConfig.version, clientRange);
164
167
  if (version && version.checksum === snapInfo.checksum && isCompatible) {
165
- return { status: registry_1.SnapsRegistryStatus.Verified };
168
+ return { status: types_1.SnapRegistryStatus.Verified };
166
169
  }
167
170
  // For now, if we have an allowlist miss, we can refetch once and try again.
168
171
  if (this.#refetchOnAllowlistMiss && !refetch) {
169
- await this.#triggerUpdate();
172
+ await this.requestUpdate();
170
173
  return this.#getSingle(snapId, snapInfo, true);
171
174
  }
172
175
  return {
173
176
  status: this.state.databaseUnavailable
174
- ? registry_1.SnapsRegistryStatus.Unavailable
175
- : registry_1.SnapsRegistryStatus.Unverified,
177
+ ? types_1.SnapRegistryStatus.Unavailable
178
+ : types_1.SnapRegistryStatus.Unverified,
176
179
  };
177
180
  }
178
- async #get(snaps) {
181
+ async get(snaps) {
179
182
  return Object.entries(snaps).reduce(async (previousPromise, [snapId, snapInfo]) => {
180
183
  const result = await this.#getSingle(snapId, snapInfo);
181
184
  const acc = await previousPromise;
@@ -191,12 +194,12 @@ class JsonSnapsRegistry extends base_controller_1.BaseController {
191
194
  * @param refetch - An optional flag used to determine if we are refetching the registry.
192
195
  * @returns An allowlisted version within the specified version range if available otherwise returns the input version range.
193
196
  */
194
- async #resolveVersion(snapId, versionRange, refetch = false) {
197
+ async resolveVersion(snapId, versionRange, refetch = false) {
195
198
  const database = await this.#getDatabase();
196
199
  const versions = database?.verifiedSnaps[snapId]?.versions ?? null;
197
200
  if (!versions && this.#refetchOnAllowlistMiss && !refetch) {
198
- await this.#triggerUpdate();
199
- return this.#resolveVersion(snapId, versionRange, true);
201
+ await this.requestUpdate();
202
+ return this.resolveVersion(snapId, versionRange, true);
200
203
  }
201
204
  // If we cannot narrow down the version range we return the unaltered version range.
202
205
  if (!versions) {
@@ -212,8 +215,8 @@ class JsonSnapsRegistry extends base_controller_1.BaseController {
212
215
  }, []);
213
216
  const targetVersion = (0, snaps_utils_1.getTargetVersion)(compatibleVersions, versionRange);
214
217
  if (!targetVersion && this.#refetchOnAllowlistMiss && !refetch) {
215
- await this.#triggerUpdate();
216
- return this.#resolveVersion(snapId, versionRange, true);
218
+ await this.requestUpdate();
219
+ return this.resolveVersion(snapId, versionRange, true);
217
220
  }
218
221
  // If we cannot narrow down the version range we return the unaltered version range.
219
222
  if (!targetVersion) {
@@ -230,7 +233,7 @@ class JsonSnapsRegistry extends base_controller_1.BaseController {
230
233
  * @returns The metadata for the given snap ID, or `null` if the snap is not
231
234
  * verified.
232
235
  */
233
- #getMetadata(snapId) {
236
+ getMetadata(snapId) {
234
237
  return this.state?.database?.verifiedSnaps[snapId]?.metadata ?? null;
235
238
  }
236
239
  /**
@@ -264,5 +267,5 @@ class JsonSnapsRegistry extends base_controller_1.BaseController {
264
267
  return await response.text();
265
268
  }
266
269
  }
267
- exports.JsonSnapsRegistry = JsonSnapsRegistry;
268
- //# sourceMappingURL=json.cjs.map
270
+ exports.SnapRegistryController = SnapRegistryController;
271
+ //# sourceMappingURL=SnapRegistryController.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapRegistryController.cjs","sourceRoot":"","sources":["../../../src/snaps/registry/SnapRegistryController.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport { BaseController } from '@metamask/base-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n SnapsRegistryDatabase,\n SignatureStruct,\n} from '@metamask/snaps-registry';\nimport { verify } from '@metamask/snaps-registry';\nimport { getTargetVersion } from '@metamask/snaps-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport type { Hex, SemVerRange, SemVerVersion } from '@metamask/utils';\nimport {\n assert,\n assertIsSemVerRange,\n Duration,\n inMilliseconds,\n satisfiesVersionRange,\n} from '@metamask/utils';\n\nimport type { SnapRegistryControllerMethodActions } from './SnapRegistryController-method-action-types';\nimport type {\n SnapRegistryInfo,\n SnapRegistryMetadata,\n SnapRegistryRequest,\n SnapRegistryResult,\n} from './types';\nimport { SnapRegistryStatus } from './types';\n\nconst SNAP_REGISTRY_URL =\n 'https://acl.execution.metamask.io/latest/registry.json';\n\nconst SNAP_REGISTRY_SIGNATURE_URL =\n 'https://acl.execution.metamask.io/latest/signature.json';\n\nconst DEFAULT_PUBLIC_KEY =\n '0x025b65308f0f0fb8bc7f7ff87bfc296e0330eee5d3c1d1ee4a048b2fd6a86fa0a6';\n\ntype JsonSnapsRegistryUrl = {\n registry: string;\n signature: string;\n};\n\nexport type ClientConfig = {\n type: 'extension' | 'mobile';\n version: SemVerVersion;\n};\n\nexport type SnapRegistryControllerArgs = {\n messenger: SnapRegistryControllerMessenger;\n state?: SnapRegistryControllerState;\n fetchFunction?: typeof fetch;\n url?: JsonSnapsRegistryUrl;\n recentFetchThreshold?: number;\n refetchOnAllowlistMiss?: boolean;\n publicKey?: Hex;\n clientConfig: ClientConfig;\n};\n\nexport type SnapRegistryControllerGetStateAction = ControllerGetStateAction<\n typeof controllerName,\n SnapRegistryControllerState\n>;\n\nexport type SnapRegistryControllerActions =\n | SnapRegistryControllerGetStateAction\n | SnapRegistryControllerMethodActions;\n\nexport type SnapRegistryControllerStateChangeEvent = ControllerStateChangeEvent<\n typeof controllerName,\n SnapRegistryControllerState\n>;\n\nexport type SnapRegistryControllerEvents =\n SnapRegistryControllerStateChangeEvent;\n\nexport type SnapRegistryControllerMessenger = Messenger<\n typeof controllerName,\n SnapRegistryControllerActions,\n SnapRegistryControllerEvents\n>;\n\nexport type SnapRegistryControllerState = {\n database: SnapsRegistryDatabase | null;\n signature: string | null;\n lastUpdated: number | null;\n databaseUnavailable: boolean;\n};\n\nconst controllerName = 'SnapRegistryController';\n\nconst MESSENGER_EXPOSED_METHODS = [\n 'get',\n 'getMetadata',\n 'resolveVersion',\n 'requestUpdate',\n] as const;\n\nconst defaultState = {\n database: null,\n signature: null,\n lastUpdated: null,\n databaseUnavailable: false,\n};\n\nexport class SnapRegistryController extends BaseController<\n typeof controllerName,\n SnapRegistryControllerState,\n SnapRegistryControllerMessenger\n> {\n readonly #url: JsonSnapsRegistryUrl;\n\n readonly #publicKey: Hex;\n\n readonly #clientConfig: ClientConfig;\n\n readonly #fetchFunction: typeof fetch;\n\n readonly #recentFetchThreshold: number;\n\n readonly #refetchOnAllowlistMiss: boolean;\n\n #currentUpdate: Promise<void> | null;\n\n constructor({\n messenger,\n state,\n url = {\n registry: SNAP_REGISTRY_URL,\n signature: SNAP_REGISTRY_SIGNATURE_URL,\n },\n publicKey = DEFAULT_PUBLIC_KEY,\n clientConfig,\n fetchFunction = globalThis.fetch.bind(undefined),\n recentFetchThreshold = inMilliseconds(5, Duration.Minute),\n refetchOnAllowlistMiss = true,\n }: SnapRegistryControllerArgs) {\n super({\n messenger,\n metadata: {\n database: {\n includeInStateLogs: true,\n persist: true,\n includeInDebugSnapshot: false,\n usedInUi: true,\n },\n signature: {\n includeInStateLogs: true,\n persist: true,\n includeInDebugSnapshot: true,\n usedInUi: false,\n },\n lastUpdated: {\n includeInStateLogs: true,\n persist: true,\n includeInDebugSnapshot: true,\n usedInUi: false,\n },\n databaseUnavailable: {\n includeInStateLogs: true,\n persist: true,\n includeInDebugSnapshot: true,\n usedInUi: false,\n },\n },\n name: controllerName,\n state: {\n ...defaultState,\n ...state,\n },\n });\n this.#url = url;\n this.#publicKey = publicKey;\n this.#clientConfig = clientConfig;\n this.#fetchFunction = fetchFunction;\n this.#recentFetchThreshold = recentFetchThreshold;\n this.#refetchOnAllowlistMiss = refetchOnAllowlistMiss;\n this.#currentUpdate = null;\n\n this.messenger.registerMethodActionHandlers(\n this,\n MESSENGER_EXPOSED_METHODS,\n );\n }\n\n #wasRecentlyFetched() {\n return (\n this.state.lastUpdated &&\n Date.now() - this.state.lastUpdated < this.#recentFetchThreshold\n );\n }\n\n /**\n * Triggers an update of the registry database.\n *\n * If an existing update is in progress this function will await that update.\n */\n async requestUpdate() {\n // If an update is ongoing, wait for that.\n if (this.#currentUpdate) {\n await this.#currentUpdate;\n return;\n }\n // If no update exists, create promise and store globally.\n if (this.#currentUpdate === null) {\n this.#currentUpdate = this.#update();\n }\n await this.#currentUpdate;\n this.#currentUpdate = null;\n }\n\n /**\n * Updates the registry database if the registry hasn't been updated recently.\n *\n * NOTE: SHOULD NOT be called directly, instead `triggerUpdate` should be used.\n */\n async #update() {\n // No-op if we recently fetched the registry.\n if (this.#wasRecentlyFetched()) {\n return;\n }\n\n try {\n const [database, signature] = await Promise.all([\n this.#safeFetch(this.#url.registry),\n this.#safeFetch(this.#url.signature),\n ]);\n\n const signatureJson = JSON.parse(signature);\n\n // If the signature matches the existing state, we can skip verification and don't need to update the database.\n if (signatureJson.signature === this.state.signature) {\n this.update((state) => {\n state.lastUpdated = Date.now();\n state.databaseUnavailable = false;\n });\n return;\n }\n\n await this.#verifySignature(database, signatureJson);\n\n this.update((state) => {\n state.database = JSON.parse(database);\n state.lastUpdated = Date.now();\n state.databaseUnavailable = false;\n state.signature = signatureJson.signature;\n });\n } catch {\n // Ignore\n this.update((state) => {\n state.databaseUnavailable = true;\n });\n }\n }\n\n async #getDatabase(): Promise<SnapsRegistryDatabase | null> {\n if (this.state.database === null) {\n await this.requestUpdate();\n }\n\n return this.state.database;\n }\n\n async #getSingle(\n snapId: string,\n snapInfo: SnapRegistryInfo,\n refetch = false,\n ): Promise<SnapRegistryResult> {\n const database = await this.#getDatabase();\n\n const blockedEntry = database?.blockedSnaps.find((blocked) => {\n if ('id' in blocked) {\n return (\n blocked.id === snapId &&\n satisfiesVersionRange(snapInfo.version, blocked.versionRange)\n );\n }\n\n return blocked.checksum === snapInfo.checksum;\n });\n\n if (blockedEntry) {\n return {\n status: SnapRegistryStatus.Blocked,\n reason: blockedEntry.reason,\n };\n }\n\n const verified = database?.verifiedSnaps[snapId];\n const version = verified?.versions?.[snapInfo.version];\n const clientRange = version?.clientVersions?.[this.#clientConfig.type];\n const isCompatible =\n !clientRange ||\n satisfiesVersionRange(this.#clientConfig.version, clientRange);\n if (version && version.checksum === snapInfo.checksum && isCompatible) {\n return { status: SnapRegistryStatus.Verified };\n }\n // For now, if we have an allowlist miss, we can refetch once and try again.\n if (this.#refetchOnAllowlistMiss && !refetch) {\n await this.requestUpdate();\n return this.#getSingle(snapId, snapInfo, true);\n }\n return {\n status: this.state.databaseUnavailable\n ? SnapRegistryStatus.Unavailable\n : SnapRegistryStatus.Unverified,\n };\n }\n\n async get(\n snaps: SnapRegistryRequest,\n ): Promise<Record<string, SnapRegistryResult>> {\n return Object.entries(snaps).reduce<\n Promise<Record<string, SnapRegistryResult>>\n >(async (previousPromise, [snapId, snapInfo]) => {\n const result = await this.#getSingle(snapId, snapInfo);\n const acc = await previousPromise;\n acc[snapId] = result;\n return acc;\n }, Promise.resolve({}));\n }\n\n /**\n * Find an allowlisted version within a specified version range. Otherwise return the version range itself.\n *\n * @param snapId - The ID of the snap we are trying to resolve a version for.\n * @param versionRange - The version range.\n * @param refetch - An optional flag used to determine if we are refetching the registry.\n * @returns An allowlisted version within the specified version range if available otherwise returns the input version range.\n */\n async resolveVersion(\n snapId: string,\n versionRange: SemVerRange,\n refetch = false,\n ): Promise<SemVerRange> {\n const database = await this.#getDatabase();\n const versions = database?.verifiedSnaps[snapId]?.versions ?? null;\n\n if (!versions && this.#refetchOnAllowlistMiss && !refetch) {\n await this.requestUpdate();\n return this.resolveVersion(snapId, versionRange, true);\n }\n\n // If we cannot narrow down the version range we return the unaltered version range.\n if (!versions) {\n return versionRange;\n }\n\n const compatibleVersions = Object.entries(versions).reduce<SemVerVersion[]>(\n (accumulator, [version, metadata]) => {\n const clientRange = metadata.clientVersions?.[this.#clientConfig.type];\n if (\n !clientRange ||\n satisfiesVersionRange(this.#clientConfig.version, clientRange)\n ) {\n accumulator.push(version as SemVerVersion);\n }\n\n return accumulator;\n },\n [],\n );\n\n const targetVersion = getTargetVersion(compatibleVersions, versionRange);\n\n if (!targetVersion && this.#refetchOnAllowlistMiss && !refetch) {\n await this.requestUpdate();\n return this.resolveVersion(snapId, versionRange, true);\n }\n\n // If we cannot narrow down the version range we return the unaltered version range.\n if (!targetVersion) {\n return versionRange;\n }\n\n // A semver version is technically also a valid semver range.\n assertIsSemVerRange(targetVersion);\n return targetVersion;\n }\n\n /**\n * Get metadata for the given snap ID, if available, without updating registry.\n *\n * @param snapId - The ID of the snap to get metadata for.\n * @returns The metadata for the given snap ID, or `null` if the snap is not\n * verified.\n */\n getMetadata(snapId: string): SnapRegistryMetadata | null {\n return this.state?.database?.verifiedSnaps[snapId]?.metadata ?? null;\n }\n\n /**\n * Verify the signature of the registry.\n *\n * @param database - The registry database.\n * @param signature - The signature of the registry.\n * @throws If the signature is invalid.\n */\n async #verifySignature(\n database: string,\n signature: Infer<typeof SignatureStruct>,\n ) {\n assert(this.#publicKey, 'No public key provided.');\n\n const valid = await verify({\n registry: database,\n signature,\n publicKey: this.#publicKey,\n });\n\n assert(valid, 'Invalid registry signature.');\n }\n\n /**\n * Fetch the given URL, throwing if the response is not OK.\n *\n * @param url - The URL to fetch.\n * @returns The response body.\n * @private\n */\n async #safeFetch(url: string) {\n const response = await this.#fetchFunction(url, { cache: 'no-cache' });\n if (!response.ok) {\n throw new Error(`Failed to fetch ${url}.`);\n }\n\n return await response.text();\n }\n}\n"]}
@@ -0,0 +1,67 @@
1
+ import type { ControllerGetStateAction, ControllerStateChangeEvent } from "@metamask/base-controller";
2
+ import { BaseController } from "@metamask/base-controller";
3
+ import type { Messenger } from "@metamask/messenger";
4
+ import type { SnapsRegistryDatabase } from "@metamask/snaps-registry";
5
+ import type { Hex, SemVerRange, SemVerVersion } from "@metamask/utils";
6
+ import type { SnapRegistryControllerMethodActions } from "./SnapRegistryController-method-action-types.cjs";
7
+ import type { SnapRegistryMetadata, SnapRegistryRequest, SnapRegistryResult } from "./types.cjs";
8
+ type JsonSnapsRegistryUrl = {
9
+ registry: string;
10
+ signature: string;
11
+ };
12
+ export type ClientConfig = {
13
+ type: 'extension' | 'mobile';
14
+ version: SemVerVersion;
15
+ };
16
+ export type SnapRegistryControllerArgs = {
17
+ messenger: SnapRegistryControllerMessenger;
18
+ state?: SnapRegistryControllerState;
19
+ fetchFunction?: typeof fetch;
20
+ url?: JsonSnapsRegistryUrl;
21
+ recentFetchThreshold?: number;
22
+ refetchOnAllowlistMiss?: boolean;
23
+ publicKey?: Hex;
24
+ clientConfig: ClientConfig;
25
+ };
26
+ export type SnapRegistryControllerGetStateAction = ControllerGetStateAction<typeof controllerName, SnapRegistryControllerState>;
27
+ export type SnapRegistryControllerActions = SnapRegistryControllerGetStateAction | SnapRegistryControllerMethodActions;
28
+ export type SnapRegistryControllerStateChangeEvent = ControllerStateChangeEvent<typeof controllerName, SnapRegistryControllerState>;
29
+ export type SnapRegistryControllerEvents = SnapRegistryControllerStateChangeEvent;
30
+ export type SnapRegistryControllerMessenger = Messenger<typeof controllerName, SnapRegistryControllerActions, SnapRegistryControllerEvents>;
31
+ export type SnapRegistryControllerState = {
32
+ database: SnapsRegistryDatabase | null;
33
+ signature: string | null;
34
+ lastUpdated: number | null;
35
+ databaseUnavailable: boolean;
36
+ };
37
+ declare const controllerName = "SnapRegistryController";
38
+ export declare class SnapRegistryController extends BaseController<typeof controllerName, SnapRegistryControllerState, SnapRegistryControllerMessenger> {
39
+ #private;
40
+ constructor({ messenger, state, url, publicKey, clientConfig, fetchFunction, recentFetchThreshold, refetchOnAllowlistMiss, }: SnapRegistryControllerArgs);
41
+ /**
42
+ * Triggers an update of the registry database.
43
+ *
44
+ * If an existing update is in progress this function will await that update.
45
+ */
46
+ requestUpdate(): Promise<void>;
47
+ get(snaps: SnapRegistryRequest): Promise<Record<string, SnapRegistryResult>>;
48
+ /**
49
+ * Find an allowlisted version within a specified version range. Otherwise return the version range itself.
50
+ *
51
+ * @param snapId - The ID of the snap we are trying to resolve a version for.
52
+ * @param versionRange - The version range.
53
+ * @param refetch - An optional flag used to determine if we are refetching the registry.
54
+ * @returns An allowlisted version within the specified version range if available otherwise returns the input version range.
55
+ */
56
+ resolveVersion(snapId: string, versionRange: SemVerRange, refetch?: boolean): Promise<SemVerRange>;
57
+ /**
58
+ * Get metadata for the given snap ID, if available, without updating registry.
59
+ *
60
+ * @param snapId - The ID of the snap to get metadata for.
61
+ * @returns The metadata for the given snap ID, or `null` if the snap is not
62
+ * verified.
63
+ */
64
+ getMetadata(snapId: string): SnapRegistryMetadata | null;
65
+ }
66
+ export {};
67
+ //# sourceMappingURL=SnapRegistryController.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapRegistryController.d.cts","sourceRoot":"","sources":["../../../src/snaps/registry/SnapRegistryController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,kCAAkC;AACnC,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EACV,qBAAqB,EAEtB,iCAAiC;AAIlC,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,wBAAwB;AASvE,OAAO,KAAK,EAAE,mCAAmC,EAAE,yDAAqD;AACxG,OAAO,KAAK,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,oBAAgB;AAYjB,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,+BAA+B,CAAC;IAC3C,KAAK,CAAC,EAAE,2BAA2B,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,KAAK,CAAC;IAC7B,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,wBAAwB,CACzE,OAAO,cAAc,EACrB,2BAA2B,CAC5B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GACrC,oCAAoC,GACpC,mCAAmC,CAAC;AAExC,MAAM,MAAM,sCAAsC,GAAG,0BAA0B,CAC7E,OAAO,cAAc,EACrB,2BAA2B,CAC5B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GACtC,sCAAsC,CAAC;AAEzC,MAAM,MAAM,+BAA+B,GAAG,SAAS,CACrD,OAAO,cAAc,EACrB,6BAA6B,EAC7B,4BAA4B,CAC7B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,QAAA,MAAM,cAAc,2BAA2B,CAAC;AAgBhD,qBAAa,sBAAuB,SAAQ,cAAc,CACxD,OAAO,cAAc,EACrB,2BAA2B,EAC3B,+BAA+B,CAChC;;gBAea,EACV,SAAS,EACT,KAAK,EACL,GAGC,EACD,SAA8B,EAC9B,YAAY,EACZ,aAAgD,EAChD,oBAAyD,EACzD,sBAA6B,GAC9B,EAAE,0BAA0B;IAwD7B;;;;OAIG;IACG,aAAa;IAgHb,GAAG,CACP,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAW9C;;;;;;;OAOG;IACG,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,WAAW,EACzB,OAAO,UAAQ,GACd,OAAO,CAAC,WAAW,CAAC;IA8CvB;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;CAyCzD"}
@@ -0,0 +1,67 @@
1
+ import type { ControllerGetStateAction, ControllerStateChangeEvent } from "@metamask/base-controller";
2
+ import { BaseController } from "@metamask/base-controller";
3
+ import type { Messenger } from "@metamask/messenger";
4
+ import type { SnapsRegistryDatabase } from "@metamask/snaps-registry";
5
+ import type { Hex, SemVerRange, SemVerVersion } from "@metamask/utils";
6
+ import type { SnapRegistryControllerMethodActions } from "./SnapRegistryController-method-action-types.mjs";
7
+ import type { SnapRegistryMetadata, SnapRegistryRequest, SnapRegistryResult } from "./types.mjs";
8
+ type JsonSnapsRegistryUrl = {
9
+ registry: string;
10
+ signature: string;
11
+ };
12
+ export type ClientConfig = {
13
+ type: 'extension' | 'mobile';
14
+ version: SemVerVersion;
15
+ };
16
+ export type SnapRegistryControllerArgs = {
17
+ messenger: SnapRegistryControllerMessenger;
18
+ state?: SnapRegistryControllerState;
19
+ fetchFunction?: typeof fetch;
20
+ url?: JsonSnapsRegistryUrl;
21
+ recentFetchThreshold?: number;
22
+ refetchOnAllowlistMiss?: boolean;
23
+ publicKey?: Hex;
24
+ clientConfig: ClientConfig;
25
+ };
26
+ export type SnapRegistryControllerGetStateAction = ControllerGetStateAction<typeof controllerName, SnapRegistryControllerState>;
27
+ export type SnapRegistryControllerActions = SnapRegistryControllerGetStateAction | SnapRegistryControllerMethodActions;
28
+ export type SnapRegistryControllerStateChangeEvent = ControllerStateChangeEvent<typeof controllerName, SnapRegistryControllerState>;
29
+ export type SnapRegistryControllerEvents = SnapRegistryControllerStateChangeEvent;
30
+ export type SnapRegistryControllerMessenger = Messenger<typeof controllerName, SnapRegistryControllerActions, SnapRegistryControllerEvents>;
31
+ export type SnapRegistryControllerState = {
32
+ database: SnapsRegistryDatabase | null;
33
+ signature: string | null;
34
+ lastUpdated: number | null;
35
+ databaseUnavailable: boolean;
36
+ };
37
+ declare const controllerName = "SnapRegistryController";
38
+ export declare class SnapRegistryController extends BaseController<typeof controllerName, SnapRegistryControllerState, SnapRegistryControllerMessenger> {
39
+ #private;
40
+ constructor({ messenger, state, url, publicKey, clientConfig, fetchFunction, recentFetchThreshold, refetchOnAllowlistMiss, }: SnapRegistryControllerArgs);
41
+ /**
42
+ * Triggers an update of the registry database.
43
+ *
44
+ * If an existing update is in progress this function will await that update.
45
+ */
46
+ requestUpdate(): Promise<void>;
47
+ get(snaps: SnapRegistryRequest): Promise<Record<string, SnapRegistryResult>>;
48
+ /**
49
+ * Find an allowlisted version within a specified version range. Otherwise return the version range itself.
50
+ *
51
+ * @param snapId - The ID of the snap we are trying to resolve a version for.
52
+ * @param versionRange - The version range.
53
+ * @param refetch - An optional flag used to determine if we are refetching the registry.
54
+ * @returns An allowlisted version within the specified version range if available otherwise returns the input version range.
55
+ */
56
+ resolveVersion(snapId: string, versionRange: SemVerRange, refetch?: boolean): Promise<SemVerRange>;
57
+ /**
58
+ * Get metadata for the given snap ID, if available, without updating registry.
59
+ *
60
+ * @param snapId - The ID of the snap to get metadata for.
61
+ * @returns The metadata for the given snap ID, or `null` if the snap is not
62
+ * verified.
63
+ */
64
+ getMetadata(snapId: string): SnapRegistryMetadata | null;
65
+ }
66
+ export {};
67
+ //# sourceMappingURL=SnapRegistryController.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapRegistryController.d.mts","sourceRoot":"","sources":["../../../src/snaps/registry/SnapRegistryController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,kCAAkC;AACnC,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EACV,qBAAqB,EAEtB,iCAAiC;AAIlC,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,wBAAwB;AASvE,OAAO,KAAK,EAAE,mCAAmC,EAAE,yDAAqD;AACxG,OAAO,KAAK,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,oBAAgB;AAYjB,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,+BAA+B,CAAC;IAC3C,KAAK,CAAC,EAAE,2BAA2B,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,KAAK,CAAC;IAC7B,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,wBAAwB,CACzE,OAAO,cAAc,EACrB,2BAA2B,CAC5B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GACrC,oCAAoC,GACpC,mCAAmC,CAAC;AAExC,MAAM,MAAM,sCAAsC,GAAG,0BAA0B,CAC7E,OAAO,cAAc,EACrB,2BAA2B,CAC5B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GACtC,sCAAsC,CAAC;AAEzC,MAAM,MAAM,+BAA+B,GAAG,SAAS,CACrD,OAAO,cAAc,EACrB,6BAA6B,EAC7B,4BAA4B,CAC7B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,QAAA,MAAM,cAAc,2BAA2B,CAAC;AAgBhD,qBAAa,sBAAuB,SAAQ,cAAc,CACxD,OAAO,cAAc,EACrB,2BAA2B,EAC3B,+BAA+B,CAChC;;gBAea,EACV,SAAS,EACT,KAAK,EACL,GAGC,EACD,SAA8B,EAC9B,YAAY,EACZ,aAAgD,EAChD,oBAAyD,EACzD,sBAA6B,GAC9B,EAAE,0BAA0B;IAwD7B;;;;OAIG;IACG,aAAa;IAgHb,GAAG,CACP,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAW9C;;;;;;;OAOG;IACG,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,WAAW,EACzB,OAAO,UAAQ,GACd,OAAO,CAAC,WAAW,CAAC;IA8CvB;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;CAyCzD"}