@metamask/snaps-controllers 1.0.2 → 2.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 (322) hide show
  1. package/CHANGELOG.md +31 -562
  2. package/dist/cjs/cronjob/CronjobController.js +294 -0
  3. package/dist/cjs/cronjob/CronjobController.js.map +1 -0
  4. package/dist/cjs/cronjob/index.js +20 -0
  5. package/dist/cjs/cronjob/index.js.map +1 -0
  6. package/dist/cjs/fsm.js +69 -0
  7. package/dist/cjs/fsm.js.map +1 -0
  8. package/dist/cjs/index.js +23 -0
  9. package/dist/cjs/index.js.map +1 -0
  10. package/dist/cjs/logging.js +15 -0
  11. package/dist/cjs/logging.js.map +1 -0
  12. package/dist/cjs/services/AbstractExecutionService.js +390 -0
  13. package/dist/cjs/services/AbstractExecutionService.js.map +1 -0
  14. package/dist/cjs/services/ExecutionService.js +7 -0
  15. package/dist/cjs/services/ExecutionService.js.map +1 -0
  16. package/dist/cjs/services/ProxyPostMessageStream.js +116 -0
  17. package/dist/cjs/services/ProxyPostMessageStream.js.map +1 -0
  18. package/dist/cjs/services/browser.js +32 -0
  19. package/dist/cjs/services/browser.js.map +1 -0
  20. package/dist/cjs/services/iframe/IframeExecutionService.js +54 -0
  21. package/dist/cjs/services/iframe/IframeExecutionService.js.map +1 -0
  22. package/dist/cjs/services/iframe/index.js +20 -0
  23. package/dist/cjs/services/iframe/index.js.map +1 -0
  24. package/dist/cjs/services/index.js +32 -0
  25. package/dist/cjs/services/index.js.map +1 -0
  26. package/dist/cjs/services/node/NodeProcessExecutionService.js +30 -0
  27. package/dist/cjs/services/node/NodeProcessExecutionService.js.map +1 -0
  28. package/dist/cjs/services/node/NodeThreadExecutionService.js +30 -0
  29. package/dist/cjs/services/node/NodeThreadExecutionService.js.map +1 -0
  30. package/dist/cjs/services/node/index.js +21 -0
  31. package/dist/cjs/services/node/index.js.map +1 -0
  32. package/dist/cjs/services/offscreen/OffscreenExecutionService.js +159 -0
  33. package/dist/cjs/services/offscreen/OffscreenExecutionService.js.map +1 -0
  34. package/dist/cjs/services/offscreen/index.js +20 -0
  35. package/dist/cjs/services/offscreen/index.js.map +1 -0
  36. package/dist/cjs/services/webworker/WebWorkerExecutionService.js +148 -0
  37. package/dist/cjs/services/webworker/WebWorkerExecutionService.js.map +1 -0
  38. package/dist/cjs/services/webworker/index.js +20 -0
  39. package/dist/cjs/services/webworker/index.js.map +1 -0
  40. package/dist/cjs/snaps/RequestQueue.js +63 -0
  41. package/dist/cjs/snaps/RequestQueue.js.map +1 -0
  42. package/dist/cjs/snaps/SnapController.js +1736 -0
  43. package/dist/cjs/snaps/SnapController.js.map +1 -0
  44. package/dist/cjs/snaps/Timer.js +117 -0
  45. package/dist/cjs/snaps/Timer.js.map +1 -0
  46. package/dist/cjs/snaps/endowments/cronjob.js +100 -0
  47. package/dist/cjs/snaps/endowments/cronjob.js.map +1 -0
  48. package/dist/cjs/snaps/endowments/enum.js +24 -0
  49. package/dist/cjs/snaps/endowments/enum.js.map +1 -0
  50. package/dist/cjs/snaps/endowments/ethereum-provider.js +43 -0
  51. package/dist/cjs/snaps/endowments/ethereum-provider.js.map +1 -0
  52. package/dist/cjs/snaps/endowments/index.js +90 -0
  53. package/dist/cjs/snaps/endowments/index.js.map +1 -0
  54. package/dist/cjs/snaps/endowments/lifecycle-hooks.js +37 -0
  55. package/dist/cjs/snaps/endowments/lifecycle-hooks.js.map +1 -0
  56. package/dist/cjs/snaps/endowments/long-running.js +38 -0
  57. package/dist/cjs/snaps/endowments/long-running.js.map +1 -0
  58. package/dist/cjs/snaps/endowments/name-lookup.js +106 -0
  59. package/dist/cjs/snaps/endowments/name-lookup.js.map +1 -0
  60. package/dist/cjs/snaps/endowments/network-access.js +44 -0
  61. package/dist/cjs/snaps/endowments/network-access.js.map +1 -0
  62. package/dist/cjs/snaps/endowments/rpc.js +99 -0
  63. package/dist/cjs/snaps/endowments/rpc.js.map +1 -0
  64. package/dist/cjs/snaps/endowments/transaction-insight.js +106 -0
  65. package/dist/cjs/snaps/endowments/transaction-insight.js.map +1 -0
  66. package/dist/cjs/snaps/endowments/web-assembly.js +42 -0
  67. package/dist/cjs/snaps/endowments/web-assembly.js.map +1 -0
  68. package/dist/cjs/snaps/index.js +25 -0
  69. package/dist/cjs/snaps/index.js.map +1 -0
  70. package/dist/cjs/snaps/location/http.js +106 -0
  71. package/dist/cjs/snaps/location/http.js.map +1 -0
  72. package/dist/cjs/snaps/location/index.js +23 -0
  73. package/dist/cjs/snaps/location/index.js.map +1 -0
  74. package/dist/cjs/snaps/location/local.js +93 -0
  75. package/dist/cjs/snaps/location/local.js.map +1 -0
  76. package/dist/cjs/snaps/location/location.js +34 -0
  77. package/dist/cjs/snaps/location/location.js.map +1 -0
  78. package/dist/cjs/snaps/location/npm.js +293 -0
  79. package/dist/cjs/snaps/location/npm.js.map +1 -0
  80. package/dist/cjs/snaps/permissions.js +61 -0
  81. package/dist/cjs/snaps/permissions.js.map +1 -0
  82. package/dist/cjs/snaps/registry/index.js +21 -0
  83. package/dist/cjs/snaps/registry/index.js.map +1 -0
  84. package/dist/cjs/snaps/registry/json.js +277 -0
  85. package/dist/cjs/snaps/registry/json.js.map +1 -0
  86. package/dist/cjs/snaps/registry/registry.js +18 -0
  87. package/dist/cjs/snaps/registry/registry.js.map +1 -0
  88. package/dist/cjs/snaps/selectors.js +13 -0
  89. package/dist/cjs/snaps/selectors.js.map +1 -0
  90. package/dist/cjs/utils.js +70 -0
  91. package/dist/cjs/utils.js.map +1 -0
  92. package/dist/esm/cronjob/CronjobController.js +279 -0
  93. package/dist/esm/cronjob/CronjobController.js.map +1 -0
  94. package/dist/esm/cronjob/index.js +3 -0
  95. package/dist/esm/cronjob/index.js.map +1 -0
  96. package/dist/esm/fsm.js +70 -0
  97. package/dist/esm/fsm.js.map +1 -0
  98. package/dist/esm/index.js +6 -0
  99. package/dist/esm/index.js.map +1 -0
  100. package/dist/esm/logging.js +10 -0
  101. package/dist/esm/logging.js.map +1 -0
  102. package/dist/esm/services/AbstractExecutionService.js +373 -0
  103. package/dist/esm/services/AbstractExecutionService.js.map +1 -0
  104. package/dist/esm/services/ExecutionService.js +4 -0
  105. package/dist/esm/services/ExecutionService.js.map +1 -0
  106. package/dist/esm/services/ProxyPostMessageStream.js +109 -0
  107. package/dist/esm/services/ProxyPostMessageStream.js.map +1 -0
  108. package/dist/esm/services/browser.js +9 -0
  109. package/dist/esm/services/browser.js.map +1 -0
  110. package/dist/esm/services/iframe/IframeExecutionService.js +44 -0
  111. package/dist/esm/services/iframe/IframeExecutionService.js.map +1 -0
  112. package/dist/esm/services/iframe/index.js +3 -0
  113. package/dist/esm/services/iframe/index.js.map +1 -0
  114. package/dist/esm/services/index.js +9 -0
  115. package/dist/esm/services/index.js.map +1 -0
  116. package/dist/esm/services/node/NodeProcessExecutionService.js +20 -0
  117. package/dist/esm/services/node/NodeProcessExecutionService.js.map +1 -0
  118. package/dist/esm/services/node/NodeThreadExecutionService.js +21 -0
  119. package/dist/esm/services/node/NodeThreadExecutionService.js.map +1 -0
  120. package/dist/esm/services/node/index.js +4 -0
  121. package/dist/esm/services/node/index.js.map +1 -0
  122. package/dist/esm/services/offscreen/OffscreenExecutionService.js +149 -0
  123. package/dist/esm/services/offscreen/OffscreenExecutionService.js.map +1 -0
  124. package/dist/esm/services/offscreen/index.js +3 -0
  125. package/dist/esm/services/offscreen/index.js.map +1 -0
  126. package/dist/esm/services/webworker/WebWorkerExecutionService.js +130 -0
  127. package/dist/esm/services/webworker/WebWorkerExecutionService.js.map +1 -0
  128. package/dist/esm/services/webworker/index.js +3 -0
  129. package/dist/esm/services/webworker/index.js.map +1 -0
  130. package/dist/esm/snaps/RequestQueue.js +53 -0
  131. package/dist/esm/snaps/RequestQueue.js.map +1 -0
  132. package/dist/esm/snaps/SnapController.js +1715 -0
  133. package/dist/esm/snaps/SnapController.js.map +1 -0
  134. package/dist/esm/snaps/Timer.js +107 -0
  135. package/dist/esm/snaps/Timer.js.map +1 -0
  136. package/dist/esm/snaps/endowments/cronjob.js +99 -0
  137. package/dist/esm/snaps/endowments/cronjob.js.map +1 -0
  138. package/dist/esm/snaps/endowments/enum.js +14 -0
  139. package/dist/esm/snaps/endowments/enum.js.map +1 -0
  140. package/dist/esm/snaps/endowments/ethereum-provider.js +33 -0
  141. package/dist/esm/snaps/endowments/ethereum-provider.js.map +1 -0
  142. package/dist/esm/snaps/endowments/index.js +47 -0
  143. package/dist/esm/snaps/endowments/index.js.map +1 -0
  144. package/dist/esm/snaps/endowments/lifecycle-hooks.js +27 -0
  145. package/dist/esm/snaps/endowments/lifecycle-hooks.js.map +1 -0
  146. package/dist/esm/snaps/endowments/long-running.js +28 -0
  147. package/dist/esm/snaps/endowments/long-running.js.map +1 -0
  148. package/dist/esm/snaps/endowments/name-lookup.js +98 -0
  149. package/dist/esm/snaps/endowments/name-lookup.js.map +1 -0
  150. package/dist/esm/snaps/endowments/network-access.js +34 -0
  151. package/dist/esm/snaps/endowments/network-access.js.map +1 -0
  152. package/dist/esm/snaps/endowments/rpc.js +88 -0
  153. package/dist/esm/snaps/endowments/rpc.js.map +1 -0
  154. package/dist/esm/snaps/endowments/transaction-insight.js +99 -0
  155. package/dist/esm/snaps/endowments/transaction-insight.js.map +1 -0
  156. package/dist/esm/snaps/endowments/web-assembly.js +32 -0
  157. package/dist/esm/snaps/endowments/web-assembly.js.map +1 -0
  158. package/dist/esm/snaps/index.js +8 -0
  159. package/dist/esm/snaps/index.js.map +1 -0
  160. package/dist/{snaps → esm/snaps}/location/http.js +52 -31
  161. package/dist/esm/snaps/location/http.js.map +1 -0
  162. package/dist/esm/snaps/location/index.js +6 -0
  163. package/dist/esm/snaps/location/index.js.map +1 -0
  164. package/dist/esm/snaps/location/local.js +83 -0
  165. package/dist/esm/snaps/location/local.js.map +1 -0
  166. package/dist/esm/snaps/location/location.js +30 -0
  167. package/dist/esm/snaps/location/location.js.map +1 -0
  168. package/dist/{snaps → esm/snaps}/location/npm.js +143 -117
  169. package/dist/esm/snaps/location/npm.js.map +1 -0
  170. package/dist/esm/snaps/permissions.js +50 -0
  171. package/dist/esm/snaps/permissions.js.map +1 -0
  172. package/dist/esm/snaps/registry/index.js +4 -0
  173. package/dist/esm/snaps/registry/index.js.map +1 -0
  174. package/dist/esm/snaps/registry/json.js +267 -0
  175. package/dist/esm/snaps/registry/json.js.map +1 -0
  176. package/dist/esm/snaps/registry/registry.js +8 -0
  177. package/dist/esm/snaps/registry/registry.js.map +1 -0
  178. package/dist/esm/snaps/selectors.js +3 -0
  179. package/dist/esm/snaps/selectors.js.map +1 -0
  180. package/dist/{utils.js → esm/utils.js} +21 -30
  181. package/dist/esm/utils.js.map +1 -0
  182. package/dist/{cronjob → types/cronjob}/CronjobController.d.ts +12 -11
  183. package/dist/{fsm.d.ts → types/fsm.d.ts} +1 -1
  184. package/dist/{index.d.ts → types/index.d.ts} +0 -1
  185. package/dist/{services → types/services}/AbstractExecutionService.d.ts +4 -4
  186. package/dist/{services → types/services}/ExecutionService.d.ts +3 -3
  187. package/dist/{services/offscreen/OffscreenPostMessageStream.d.ts → types/services/ProxyPostMessageStream.d.ts} +10 -10
  188. package/dist/{services → types/services}/browser.d.ts +2 -0
  189. package/dist/{services → types/services}/iframe/IframeExecutionService.d.ts +3 -2
  190. package/dist/{services → types/services}/index.d.ts +2 -0
  191. package/dist/{services → types/services}/node/NodeProcessExecutionService.d.ts +4 -3
  192. package/dist/{services → types/services}/node/NodeThreadExecutionService.d.ts +3 -2
  193. package/dist/{services → types/services}/offscreen/OffscreenExecutionService.d.ts +4 -3
  194. package/dist/types/services/offscreen/index.d.ts +1 -0
  195. package/dist/types/services/webworker/WebWorkerExecutionService.d.ts +45 -0
  196. package/dist/types/services/webworker/index.d.ts +1 -0
  197. package/dist/{snaps → types/snaps}/SnapController.d.ts +78 -39
  198. package/dist/{snaps → types/snaps}/endowments/cronjob.d.ts +5 -3
  199. package/dist/{snaps → types/snaps}/endowments/enum.d.ts +3 -2
  200. package/dist/{snaps → types/snaps}/endowments/ethereum-provider.d.ts +2 -1
  201. package/dist/{snaps → types/snaps}/endowments/index.d.ts +23 -14
  202. package/dist/types/snaps/endowments/lifecycle-hooks.d.ts +15 -0
  203. package/dist/{snaps → types/snaps}/endowments/long-running.d.ts +2 -1
  204. package/dist/types/snaps/endowments/name-lookup.d.ts +38 -0
  205. package/dist/{snaps → types/snaps}/endowments/network-access.d.ts +2 -1
  206. package/dist/{snaps → types/snaps}/endowments/rpc.d.ts +5 -3
  207. package/dist/{snaps → types/snaps}/endowments/transaction-insight.d.ts +3 -2
  208. package/dist/{snaps → types/snaps}/endowments/web-assembly.d.ts +2 -1
  209. package/dist/{snaps → types/snaps}/index.d.ts +2 -0
  210. package/dist/{snaps → types/snaps}/location/http.d.ts +3 -2
  211. package/dist/{snaps → types/snaps}/location/local.d.ts +3 -3
  212. package/dist/{snaps → types/snaps}/location/location.d.ts +2 -2
  213. package/dist/types/snaps/location/npm.d.ts +49 -0
  214. package/dist/types/snaps/permissions.d.ts +16 -0
  215. package/dist/{snaps → types/snaps}/registry/json.d.ts +5 -4
  216. package/dist/{snaps → types/snaps}/registry/registry.d.ts +5 -5
  217. package/dist/types/snaps/selectors.d.ts +2 -0
  218. package/dist/{utils.d.ts → types/utils.d.ts} +14 -14
  219. package/package.json +55 -45
  220. package/dist/cronjob/CronjobController.js +0 -248
  221. package/dist/cronjob/CronjobController.js.map +0 -1
  222. package/dist/cronjob/index.js +0 -18
  223. package/dist/cronjob/index.js.map +0 -1
  224. package/dist/fsm.js +0 -75
  225. package/dist/fsm.js.map +0 -1
  226. package/dist/index.js +0 -22
  227. package/dist/index.js.map +0 -1
  228. package/dist/logging.js +0 -13
  229. package/dist/logging.js.map +0 -1
  230. package/dist/multichain/MultiChainController.d.ts +0 -137
  231. package/dist/multichain/MultiChainController.js +0 -339
  232. package/dist/multichain/MultiChainController.js.map +0 -1
  233. package/dist/multichain/index.d.ts +0 -3
  234. package/dist/multichain/index.js +0 -20
  235. package/dist/multichain/index.js.map +0 -1
  236. package/dist/multichain/matching.d.ts +0 -9
  237. package/dist/multichain/matching.js +0 -57
  238. package/dist/multichain/matching.js.map +0 -1
  239. package/dist/multichain/middleware.d.ts +0 -14
  240. package/dist/multichain/middleware.js +0 -42
  241. package/dist/multichain/middleware.js.map +0 -1
  242. package/dist/services/AbstractExecutionService.js +0 -318
  243. package/dist/services/AbstractExecutionService.js.map +0 -1
  244. package/dist/services/ExecutionService.js +0 -4
  245. package/dist/services/ExecutionService.js.map +0 -1
  246. package/dist/services/browser.js +0 -22
  247. package/dist/services/browser.js.map +0 -1
  248. package/dist/services/iframe/IframeExecutionService.js +0 -30
  249. package/dist/services/iframe/IframeExecutionService.js.map +0 -1
  250. package/dist/services/iframe/index.js +0 -18
  251. package/dist/services/iframe/index.js.map +0 -1
  252. package/dist/services/index.js +0 -22
  253. package/dist/services/index.js.map +0 -1
  254. package/dist/services/node/NodeProcessExecutionService.js +0 -18
  255. package/dist/services/node/NodeProcessExecutionService.js.map +0 -1
  256. package/dist/services/node/NodeThreadExecutionService.js +0 -19
  257. package/dist/services/node/NodeThreadExecutionService.js.map +0 -1
  258. package/dist/services/node/index.js +0 -19
  259. package/dist/services/node/index.js.map +0 -1
  260. package/dist/services/offscreen/OffscreenExecutionService.js +0 -100
  261. package/dist/services/offscreen/OffscreenExecutionService.js.map +0 -1
  262. package/dist/services/offscreen/OffscreenPostMessageStream.js +0 -66
  263. package/dist/services/offscreen/OffscreenPostMessageStream.js.map +0 -1
  264. package/dist/services/offscreen/index.d.ts +0 -2
  265. package/dist/services/offscreen/index.js +0 -19
  266. package/dist/services/offscreen/index.js.map +0 -1
  267. package/dist/snaps/RequestQueue.js +0 -44
  268. package/dist/snaps/RequestQueue.js.map +0 -1
  269. package/dist/snaps/SnapController.js +0 -1478
  270. package/dist/snaps/SnapController.js.map +0 -1
  271. package/dist/snaps/Timer.js +0 -86
  272. package/dist/snaps/Timer.js.map +0 -1
  273. package/dist/snaps/endowments/cronjob.js +0 -105
  274. package/dist/snaps/endowments/cronjob.js.map +0 -1
  275. package/dist/snaps/endowments/enum.js +0 -15
  276. package/dist/snaps/endowments/enum.js.map +0 -1
  277. package/dist/snaps/endowments/ethereum-provider.js +0 -32
  278. package/dist/snaps/endowments/ethereum-provider.js.map +0 -1
  279. package/dist/snaps/endowments/index.js +0 -60
  280. package/dist/snaps/endowments/index.js.map +0 -1
  281. package/dist/snaps/endowments/keyring.d.ts +0 -40
  282. package/dist/snaps/endowments/keyring.js +0 -103
  283. package/dist/snaps/endowments/keyring.js.map +0 -1
  284. package/dist/snaps/endowments/long-running.js +0 -29
  285. package/dist/snaps/endowments/long-running.js.map +0 -1
  286. package/dist/snaps/endowments/network-access.js +0 -30
  287. package/dist/snaps/endowments/network-access.js.map +0 -1
  288. package/dist/snaps/endowments/rpc.js +0 -92
  289. package/dist/snaps/endowments/rpc.js.map +0 -1
  290. package/dist/snaps/endowments/transaction-insight.js +0 -106
  291. package/dist/snaps/endowments/transaction-insight.js.map +0 -1
  292. package/dist/snaps/endowments/web-assembly.js +0 -31
  293. package/dist/snaps/endowments/web-assembly.js.map +0 -1
  294. package/dist/snaps/index.js +0 -21
  295. package/dist/snaps/index.js.map +0 -1
  296. package/dist/snaps/location/http.js.map +0 -1
  297. package/dist/snaps/location/index.js +0 -21
  298. package/dist/snaps/location/index.js.map +0 -1
  299. package/dist/snaps/location/local.js +0 -51
  300. package/dist/snaps/location/local.js.map +0 -1
  301. package/dist/snaps/location/location.js +0 -34
  302. package/dist/snaps/location/location.js.map +0 -1
  303. package/dist/snaps/location/npm.d.ts +0 -28
  304. package/dist/snaps/location/npm.js.map +0 -1
  305. package/dist/snaps/registry/index.js +0 -19
  306. package/dist/snaps/registry/index.js.map +0 -1
  307. package/dist/snaps/registry/json.js +0 -197
  308. package/dist/snaps/registry/json.js.map +0 -1
  309. package/dist/snaps/registry/registry.js +0 -11
  310. package/dist/snaps/registry/registry.js.map +0 -1
  311. package/dist/snaps/selectors.d.ts +0 -2
  312. package/dist/snaps/selectors.js +0 -6
  313. package/dist/snaps/selectors.js.map +0 -1
  314. package/dist/utils.js.map +0 -1
  315. /package/dist/{cronjob → types/cronjob}/index.d.ts +0 -0
  316. /package/dist/{logging.d.ts → types/logging.d.ts} +0 -0
  317. /package/dist/{services → types/services}/iframe/index.d.ts +0 -0
  318. /package/dist/{services → types/services}/node/index.d.ts +0 -0
  319. /package/dist/{snaps → types/snaps}/RequestQueue.d.ts +0 -0
  320. /package/dist/{snaps → types/snaps}/Timer.d.ts +0 -0
  321. /package/dist/{snaps → types/snaps}/location/index.d.ts +0 -0
  322. /package/dist/{snaps → types/snaps}/registry/index.d.ts +0 -0
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "RequestQueue", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return RequestQueue;
9
+ }
10
+ });
11
+ function _define_property(obj, key, value) {
12
+ if (key in obj) {
13
+ Object.defineProperty(obj, key, {
14
+ value: value,
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true
18
+ });
19
+ } else {
20
+ obj[key] = value;
21
+ }
22
+ return obj;
23
+ }
24
+ class RequestQueue {
25
+ /**
26
+ * Increments the queue count for a particular origin.
27
+ *
28
+ * @param origin - A string identifying the origin.
29
+ */ increment(origin) {
30
+ const currentCount = this.queueSizes.get(origin) ?? 0;
31
+ if (currentCount >= this.maxQueueSize) {
32
+ throw new Error('Maximum number of requests reached. Try again later.');
33
+ }
34
+ this.queueSizes.set(origin, currentCount + 1);
35
+ }
36
+ /**
37
+ * Decrements the queue count for a particular origin.
38
+ *
39
+ * @param origin - A string identifying the origin.
40
+ */ decrement(origin) {
41
+ const currentCount = this.queueSizes.get(origin) ?? 0;
42
+ if (currentCount === 0) {
43
+ throw new Error(`Cannot decrement, ${origin} does not have any outstanding requests.`);
44
+ }
45
+ this.queueSizes.set(origin, currentCount - 1);
46
+ }
47
+ /**
48
+ * Gets the queue count for a particular origin.
49
+ *
50
+ * @param origin - A string identifying the origin.
51
+ * @returns The queue count for the origin.
52
+ */ get(origin) {
53
+ return this.queueSizes.get(origin) ?? 0;
54
+ }
55
+ constructor(maxQueueSize){
56
+ _define_property(this, "maxQueueSize", void 0);
57
+ _define_property(this, "queueSizes", void 0);
58
+ this.maxQueueSize = maxQueueSize;
59
+ this.queueSizes = new Map();
60
+ }
61
+ }
62
+
63
+ //# sourceMappingURL=RequestQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/snaps/RequestQueue.ts"],"sourcesContent":["export class RequestQueue {\n public readonly maxQueueSize: number;\n\n private readonly queueSizes: Map<string, number>;\n\n constructor(maxQueueSize: number) {\n this.maxQueueSize = maxQueueSize;\n this.queueSizes = new Map<string, number>();\n }\n\n /**\n * Increments the queue count for a particular origin.\n *\n * @param origin - A string identifying the origin.\n */\n public increment(origin: string) {\n const currentCount = this.queueSizes.get(origin) ?? 0;\n if (currentCount >= this.maxQueueSize) {\n throw new Error('Maximum number of requests reached. Try again later.');\n }\n this.queueSizes.set(origin, currentCount + 1);\n }\n\n /**\n * Decrements the queue count for a particular origin.\n *\n * @param origin - A string identifying the origin.\n */\n public decrement(origin: string) {\n const currentCount = this.queueSizes.get(origin) ?? 0;\n if (currentCount === 0) {\n throw new Error(\n `Cannot decrement, ${origin} does not have any outstanding requests.`,\n );\n }\n this.queueSizes.set(origin, currentCount - 1);\n }\n\n /**\n * Gets the queue count for a particular origin.\n *\n * @param origin - A string identifying the origin.\n * @returns The queue count for the origin.\n */\n public get(origin: string): number {\n return this.queueSizes.get(origin) ?? 0;\n }\n}\n"],"names":["RequestQueue","increment","origin","currentCount","queueSizes","get","maxQueueSize","Error","set","decrement","constructor","Map"],"mappings":";;;;+BAAaA;;;eAAAA;;;;;;;;;;;;;;;;AAAN,MAAMA;IAUX;;;;GAIC,GACD,AAAOC,UAAUC,MAAc,EAAE;QAC/B,MAAMC,eAAe,IAAI,CAACC,UAAU,CAACC,GAAG,CAACH,WAAW;QACpD,IAAIC,gBAAgB,IAAI,CAACG,YAAY,EAAE;YACrC,MAAM,IAAIC,MAAM;QAClB;QACA,IAAI,CAACH,UAAU,CAACI,GAAG,CAACN,QAAQC,eAAe;IAC7C;IAEA;;;;GAIC,GACD,AAAOM,UAAUP,MAAc,EAAE;QAC/B,MAAMC,eAAe,IAAI,CAACC,UAAU,CAACC,GAAG,CAACH,WAAW;QACpD,IAAIC,iBAAiB,GAAG;YACtB,MAAM,IAAII,MACR,CAAC,kBAAkB,EAAEL,OAAO,wCAAwC,CAAC;QAEzE;QACA,IAAI,CAACE,UAAU,CAACI,GAAG,CAACN,QAAQC,eAAe;IAC7C;IAEA;;;;;GAKC,GACD,AAAOE,IAAIH,MAAc,EAAU;QACjC,OAAO,IAAI,CAACE,UAAU,CAACC,GAAG,CAACH,WAAW;IACxC;IAzCAQ,YAAYJ,YAAoB,CAAE;QAJlC,uBAAgBA,gBAAhB,KAAA;QAEA,uBAAiBF,cAAjB,KAAA;QAGE,IAAI,CAACE,YAAY,GAAGA;QACpB,IAAI,CAACF,UAAU,GAAG,IAAIO;IACxB;AAuCF"}