@metamask/snaps-controllers 8.1.0 → 8.2.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 (119) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/dist/{chunk-TO6ZEBIA.mjs → chunk-3A72M4GC.mjs} +2 -2
  3. package/dist/{chunk-ZVGZG25U.js → chunk-3AANDIXT.js} +3 -3
  4. package/dist/{chunk-X5MFC3VX.mjs → chunk-3OJFF5CK.mjs} +2 -2
  5. package/dist/{chunk-GTDDODNP.mjs → chunk-567BFPSL.mjs} +9 -2
  6. package/dist/chunk-567BFPSL.mjs.map +1 -0
  7. package/dist/{chunk-RS3WN6D3.mjs → chunk-7IJQGFT5.mjs} +2 -2
  8. package/dist/{chunk-U4DZUKNN.js → chunk-7TYZZFHZ.js} +16 -3
  9. package/dist/chunk-7TYZZFHZ.js.map +1 -0
  10. package/dist/{chunk-4DPX4O3T.js → chunk-CDTGUNSA.js} +9 -2
  11. package/dist/chunk-CDTGUNSA.js.map +1 -0
  12. package/dist/{chunk-74GN6MIJ.js → chunk-FPGAQ6MT.js} +3 -3
  13. package/dist/{chunk-Y7ZOSPEN.js → chunk-HK4OAMJT.js} +3 -3
  14. package/dist/{chunk-E5RRFMGF.js → chunk-HQ6HMINL.js} +3 -3
  15. package/dist/{chunk-FCRPOA4I.js → chunk-KH72WRHR.js} +3 -3
  16. package/dist/{chunk-QLEQIXCE.mjs → chunk-LRVK45HN.mjs} +2 -2
  17. package/dist/{chunk-2UAU42DO.js → chunk-PIQFC66N.js} +12 -8
  18. package/dist/chunk-PIQFC66N.js.map +1 -0
  19. package/dist/{chunk-PXKCSAT6.mjs → chunk-PMZXFAQI.mjs} +2 -2
  20. package/dist/{chunk-FCCGRGQS.mjs → chunk-QLFH3MC6.mjs} +2 -2
  21. package/dist/{chunk-QP5LV734.mjs → chunk-QLWR3M4Q.mjs} +9 -5
  22. package/dist/chunk-QLWR3M4Q.mjs.map +1 -0
  23. package/dist/{chunk-G4S6UXQ2.js → chunk-RW7AYHRG.js} +3 -3
  24. package/dist/{chunk-IPYO7FKR.mjs → chunk-RXZGXJOS.mjs} +48 -9
  25. package/dist/chunk-RXZGXJOS.mjs.map +1 -0
  26. package/dist/{chunk-SIW7ZXQF.js → chunk-S775IABY.js} +10 -10
  27. package/dist/{chunk-P5MRZOGW.mjs → chunk-SAAURQ5A.mjs} +2 -2
  28. package/dist/{chunk-YP37KUG5.js → chunk-TEBNQ3AE.js} +56 -17
  29. package/dist/chunk-TEBNQ3AE.js.map +1 -0
  30. package/dist/{chunk-ZQNBP53T.mjs → chunk-UJJCRV7W.mjs} +16 -3
  31. package/dist/chunk-UJJCRV7W.mjs.map +1 -0
  32. package/dist/{chunk-3Y4IJKZY.mjs → chunk-YUWYMNIX.mjs} +2 -2
  33. package/dist/{chunk-PAFO2KIN.js → chunk-ZRC46TUF.js} +3 -3
  34. package/dist/cronjob/CronjobController.js +9 -9
  35. package/dist/cronjob/CronjobController.mjs +9 -9
  36. package/dist/cronjob/index.js +9 -9
  37. package/dist/cronjob/index.mjs +9 -9
  38. package/dist/index.js +12 -10
  39. package/dist/index.mjs +11 -9
  40. package/dist/interface/SnapInterfaceController.js +3 -3
  41. package/dist/interface/SnapInterfaceController.mjs +2 -2
  42. package/dist/interface/index.js +3 -3
  43. package/dist/interface/index.mjs +2 -2
  44. package/dist/interface/utils.js +4 -2
  45. package/dist/interface/utils.mjs +5 -3
  46. package/dist/node.js +14 -12
  47. package/dist/node.mjs +13 -11
  48. package/dist/react-native.js +13 -11
  49. package/dist/react-native.mjs +12 -10
  50. package/dist/services/AbstractExecutionService.js +3 -3
  51. package/dist/services/AbstractExecutionService.mjs +2 -2
  52. package/dist/services/browser.js +8 -8
  53. package/dist/services/browser.mjs +7 -7
  54. package/dist/services/iframe/IframeExecutionService.js +4 -4
  55. package/dist/services/iframe/IframeExecutionService.mjs +3 -3
  56. package/dist/services/iframe/index.js +4 -4
  57. package/dist/services/iframe/index.mjs +3 -3
  58. package/dist/services/index.js +7 -7
  59. package/dist/services/index.mjs +6 -6
  60. package/dist/services/node-js/NodeProcessExecutionService.js +8 -8
  61. package/dist/services/node-js/NodeProcessExecutionService.mjs +7 -7
  62. package/dist/services/node-js/NodeThreadExecutionService.js +8 -8
  63. package/dist/services/node-js/NodeThreadExecutionService.mjs +7 -7
  64. package/dist/services/node-js/index.js +9 -9
  65. package/dist/services/node-js/index.mjs +8 -8
  66. package/dist/services/node.js +9 -9
  67. package/dist/services/node.mjs +8 -8
  68. package/dist/services/offscreen/OffscreenExecutionService.js +5 -5
  69. package/dist/services/offscreen/OffscreenExecutionService.mjs +4 -4
  70. package/dist/services/offscreen/index.js +5 -5
  71. package/dist/services/offscreen/index.mjs +4 -4
  72. package/dist/services/proxy/ProxyExecutionService.js +4 -4
  73. package/dist/services/proxy/ProxyExecutionService.mjs +3 -3
  74. package/dist/services/react-native.js +8 -8
  75. package/dist/services/react-native.mjs +7 -7
  76. package/dist/services/webview/WebViewExecutionService.js +5 -5
  77. package/dist/services/webview/WebViewExecutionService.mjs +4 -4
  78. package/dist/services/webview/index.js +5 -5
  79. package/dist/services/webview/index.mjs +4 -4
  80. package/dist/services/webworker/WebWorkerExecutionService.js +4 -4
  81. package/dist/services/webworker/WebWorkerExecutionService.mjs +3 -3
  82. package/dist/services/webworker/index.js +4 -4
  83. package/dist/services/webworker/index.mjs +3 -3
  84. package/dist/snaps/SnapController.js +3 -3
  85. package/dist/snaps/SnapController.mjs +2 -2
  86. package/dist/snaps/index.js +3 -3
  87. package/dist/snaps/index.mjs +2 -2
  88. package/dist/tsconfig.build.tsbuildinfo +1 -1
  89. package/dist/types/interface/SnapInterfaceController.d.ts +4 -2
  90. package/dist/types/interface/utils.d.ts +8 -1
  91. package/dist/types/snaps/SnapController.d.ts +11 -2
  92. package/dist/types/utils.d.ts +13 -0
  93. package/dist/utils.js +4 -2
  94. package/dist/utils.mjs +3 -1
  95. package/package.json +7 -7
  96. package/dist/chunk-2UAU42DO.js.map +0 -1
  97. package/dist/chunk-4DPX4O3T.js.map +0 -1
  98. package/dist/chunk-GTDDODNP.mjs.map +0 -1
  99. package/dist/chunk-IPYO7FKR.mjs.map +0 -1
  100. package/dist/chunk-QP5LV734.mjs.map +0 -1
  101. package/dist/chunk-U4DZUKNN.js.map +0 -1
  102. package/dist/chunk-YP37KUG5.js.map +0 -1
  103. package/dist/chunk-ZQNBP53T.mjs.map +0 -1
  104. /package/dist/{chunk-TO6ZEBIA.mjs.map → chunk-3A72M4GC.mjs.map} +0 -0
  105. /package/dist/{chunk-ZVGZG25U.js.map → chunk-3AANDIXT.js.map} +0 -0
  106. /package/dist/{chunk-X5MFC3VX.mjs.map → chunk-3OJFF5CK.mjs.map} +0 -0
  107. /package/dist/{chunk-RS3WN6D3.mjs.map → chunk-7IJQGFT5.mjs.map} +0 -0
  108. /package/dist/{chunk-74GN6MIJ.js.map → chunk-FPGAQ6MT.js.map} +0 -0
  109. /package/dist/{chunk-Y7ZOSPEN.js.map → chunk-HK4OAMJT.js.map} +0 -0
  110. /package/dist/{chunk-E5RRFMGF.js.map → chunk-HQ6HMINL.js.map} +0 -0
  111. /package/dist/{chunk-FCRPOA4I.js.map → chunk-KH72WRHR.js.map} +0 -0
  112. /package/dist/{chunk-QLEQIXCE.mjs.map → chunk-LRVK45HN.mjs.map} +0 -0
  113. /package/dist/{chunk-PXKCSAT6.mjs.map → chunk-PMZXFAQI.mjs.map} +0 -0
  114. /package/dist/{chunk-FCCGRGQS.mjs.map → chunk-QLFH3MC6.mjs.map} +0 -0
  115. /package/dist/{chunk-G4S6UXQ2.js.map → chunk-RW7AYHRG.js.map} +0 -0
  116. /package/dist/{chunk-SIW7ZXQF.js.map → chunk-S775IABY.js.map} +0 -0
  117. /package/dist/{chunk-P5MRZOGW.mjs.map → chunk-SAAURQ5A.mjs.map} +0 -0
  118. /package/dist/{chunk-3Y4IJKZY.mjs.map → chunk-YUWYMNIX.mjs.map} +0 -0
  119. /package/dist/{chunk-PAFO2KIN.js.map → chunk-ZRC46TUF.js.map} +0 -0
@@ -4,7 +4,7 @@ var _chunkNXZVKBSVjs = require('./chunk-NXZVKBSV.js');
4
4
 
5
5
 
6
6
 
7
- var _chunk4DPX4O3Tjs = require('./chunk-4DPX4O3T.js');
7
+ var _chunkCDTGUNSAjs = require('./chunk-CDTGUNSA.js');
8
8
 
9
9
 
10
10
  var _chunkBOFPNIRXjs = require('./chunk-BOFPNIRX.js');
@@ -101,7 +101,7 @@ var AbstractExecutionService = class {
101
101
  throw new Error(`Job with id "${jobId}" not found.`);
102
102
  }
103
103
  try {
104
- const result = await _chunk4DPX4O3Tjs.withTimeout.call(void 0,
104
+ const result = await _chunkCDTGUNSAjs.withTimeout.call(void 0,
105
105
  this.command(jobId, {
106
106
  jsonrpc: "2.0",
107
107
  method: "terminate",
@@ -110,7 +110,7 @@ var AbstractExecutionService = class {
110
110
  }),
111
111
  _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _terminationTimeout)
112
112
  );
113
- if (result === _chunk4DPX4O3Tjs.hasTimedOut || result !== "OK") {
113
+ if (result === _chunkCDTGUNSAjs.hasTimedOut || result !== "OK") {
114
114
  _snapsutils.logError.call(void 0, `Job "${jobId}" failed to terminate gracefully.`, result);
115
115
  }
116
116
  } catch {
@@ -169,8 +169,8 @@ var AbstractExecutionService = class {
169
169
  * @throws If the execution service returns an error or execution times out.
170
170
  */
171
171
  async initStreams(jobId, timer) {
172
- const result = await _chunk4DPX4O3Tjs.withTimeout.call(void 0, this.initEnvStream(jobId), timer);
173
- if (result === _chunk4DPX4O3Tjs.hasTimedOut) {
172
+ const result = await _chunkCDTGUNSAjs.withTimeout.call(void 0, this.initEnvStream(jobId), timer);
173
+ if (result === _chunkCDTGUNSAjs.hasTimedOut) {
174
174
  this.terminateJob({ id: jobId });
175
175
  throw new Error("The Snaps execution environment failed to start.");
176
176
  }
@@ -272,7 +272,7 @@ var AbstractExecutionService = class {
272
272
  const job = await this.initJob(jobId, timer);
273
273
  _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _mapSnapAndJob, mapSnapAndJob_fn).call(this, snapId, job.id);
274
274
  if (_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _usePing)) {
275
- const pingResult = await _chunk4DPX4O3Tjs.withTimeout.call(void 0,
275
+ const pingResult = await _chunkCDTGUNSAjs.withTimeout.call(void 0,
276
276
  this.command(job.id, {
277
277
  jsonrpc: "2.0",
278
278
  method: "ping",
@@ -280,14 +280,14 @@ var AbstractExecutionService = class {
280
280
  }),
281
281
  _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _pingTimeout)
282
282
  );
283
- if (pingResult === _chunk4DPX4O3Tjs.hasTimedOut) {
283
+ if (pingResult === _chunkCDTGUNSAjs.hasTimedOut) {
284
284
  throw new Error("The Snaps execution environment failed to start.");
285
285
  }
286
286
  }
287
287
  const rpcStream = job.streams.rpc;
288
288
  this.setupSnapProvider(snapId, rpcStream);
289
289
  const remainingTime = timer.remaining;
290
- const result = await _chunk4DPX4O3Tjs.withTimeout.call(void 0,
290
+ const result = await _chunkCDTGUNSAjs.withTimeout.call(void 0,
291
291
  this.command(job.id, {
292
292
  jsonrpc: "2.0",
293
293
  method: "executeSnap",
@@ -296,7 +296,7 @@ var AbstractExecutionService = class {
296
296
  }),
297
297
  remainingTime
298
298
  );
299
- if (result === _chunk4DPX4O3Tjs.hasTimedOut) {
299
+ if (result === _chunkCDTGUNSAjs.hasTimedOut) {
300
300
  throw new Error(`${snapId} failed to start.`);
301
301
  }
302
302
  _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _createSnapHooks, createSnapHooks_fn).call(this, snapId, job.id);
@@ -397,4 +397,4 @@ function setupMultiplex(connectionStream, streamName) {
397
397
 
398
398
 
399
399
  exports.AbstractExecutionService = AbstractExecutionService; exports.setupMultiplex = setupMultiplex;
400
- //# sourceMappingURL=chunk-SIW7ZXQF.js.map
400
+ //# sourceMappingURL=chunk-S775IABY.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-IGC4E7PI.mjs";
4
4
  import {
5
5
  ProxyExecutionService
6
- } from "./chunk-TO6ZEBIA.mjs";
6
+ } from "./chunk-3A72M4GC.mjs";
7
7
  import {
8
8
  __privateAdd,
9
9
  __privateGet,
@@ -55,4 +55,4 @@ ensureWebViewLoaded_fn = async function() {
55
55
  export {
56
56
  WebViewExecutionService
57
57
  };
58
- //# sourceMappingURL=chunk-P5MRZOGW.mjs.map
58
+ //# sourceMappingURL=chunk-SAAURQ5A.mjs.map
@@ -20,7 +20,8 @@ var _chunkNXZVKBSVjs = require('./chunk-NXZVKBSV.js');
20
20
 
21
21
 
22
22
 
23
- var _chunk4DPX4O3Tjs = require('./chunk-4DPX4O3T.js');
23
+
24
+ var _chunkCDTGUNSAjs = require('./chunk-CDTGUNSA.js');
24
25
 
25
26
 
26
27
  var _chunkBOFPNIRXjs = require('./chunk-BOFPNIRX.js');
@@ -117,7 +118,7 @@ function truncateSnap(snap) {
117
118
  return truncatedSnap;
118
119
  }
119
120
  var name = "SnapController";
120
- var _closeAllConnections, _dynamicPermissions, _environmentEndowmentPermissions, _excludedPermissions, _featureFlags, _fetchFunction, _idleTimeCheckInterval, _maxIdleTime, _encryptor, _getMnemonic, _detectSnapLocation, _snapsRuntimeData, _rollbackSnapshots, _timeoutForLastRequestStatus, _statusMachine, _initializeStateMachine, initializeStateMachine_fn, _registerMessageHandlers, registerMessageHandlers_fn, _handlePreinstalledSnaps, handlePreinstalledSnaps_fn, _pollForLastRequestStatus, pollForLastRequestStatus_fn, _blockSnap, blockSnap_fn, _unblockSnap, unblockSnap_fn, _assertIsInstallAllowed, assertIsInstallAllowed_fn, _stopSnapsLastRequestPastMax, stopSnapsLastRequestPastMax_fn, _transition, transition_fn, _terminateSnap, terminateSnap_fn, _getSnapEncryptionKey, getSnapEncryptionKey_fn, _decryptSnapState, decryptSnapState_fn, _encryptSnapState, encryptSnapState_fn, _handleInitialConnections, handleInitialConnections_fn, _addSnapToSubject, addSnapToSubject_fn, _removeSnapFromSubjects, removeSnapFromSubjects_fn, _revokeAllSnapPermissions, revokeAllSnapPermissions_fn, _createApproval, createApproval_fn, _updateApproval, updateApproval_fn, _resolveAllowlistVersion, resolveAllowlistVersion_fn, _add, add_fn, _startSnap, startSnap_fn, _getEndowments, getEndowments_fn, _set, set_fn, _validateSnapPermissions, validateSnapPermissions_fn, _getExecutionTimeout, getExecutionTimeout_fn, _getRpcRequestHandler, getRpcRequestHandler_fn, _createInterface, createInterface_fn, _assertInterfaceExists, assertInterfaceExists_fn, _transformSnapRpcRequestResult, transformSnapRpcRequestResult_fn, _assertSnapRpcRequestResult, assertSnapRpcRequestResult_fn, _recordSnapRpcRequestStart, recordSnapRpcRequestStart_fn, _recordSnapRpcRequestFinish, recordSnapRpcRequestFinish_fn, _getRollbackSnapshot, getRollbackSnapshot_fn, _createRollbackSnapshot, createRollbackSnapshot_fn, _rollbackSnap, rollbackSnap_fn, _rollbackSnaps, rollbackSnaps_fn, _getRuntime, getRuntime_fn, _getRuntimeExpect, getRuntimeExpect_fn, _setupRuntime, setupRuntime_fn, _calculatePermissionsChange, calculatePermissionsChange_fn, _updatePermissions, updatePermissions_fn, _isValidUpdate, isValidUpdate_fn, _callLifecycleHook, callLifecycleHook_fn;
121
+ var _closeAllConnections, _dynamicPermissions, _environmentEndowmentPermissions, _excludedPermissions, _featureFlags, _fetchFunction, _idleTimeCheckInterval, _maxIdleTime, _encryptor, _getMnemonic, _getFeatureFlags, _detectSnapLocation, _snapsRuntimeData, _rollbackSnapshots, _timeoutForLastRequestStatus, _statusMachine, _preinstalledSnaps, _initializeStateMachine, initializeStateMachine_fn, _registerMessageHandlers, registerMessageHandlers_fn, _handlePreinstalledSnaps, handlePreinstalledSnaps_fn, _pollForLastRequestStatus, pollForLastRequestStatus_fn, _blockSnap, blockSnap_fn, _unblockSnap, unblockSnap_fn, _assertIsInstallAllowed, assertIsInstallAllowed_fn, _assertCanUsePlatform, assertCanUsePlatform_fn, _stopSnapsLastRequestPastMax, stopSnapsLastRequestPastMax_fn, _transition, transition_fn, _terminateSnap, terminateSnap_fn, _getSnapEncryptionKey, getSnapEncryptionKey_fn, _decryptSnapState, decryptSnapState_fn, _encryptSnapState, encryptSnapState_fn, _handleInitialConnections, handleInitialConnections_fn, _addSnapToSubject, addSnapToSubject_fn, _removeSnapFromSubjects, removeSnapFromSubjects_fn, _revokeAllSnapPermissions, revokeAllSnapPermissions_fn, _createApproval, createApproval_fn, _updateApproval, updateApproval_fn, _resolveAllowlistVersion, resolveAllowlistVersion_fn, _add, add_fn, _startSnap, startSnap_fn, _getEndowments, getEndowments_fn, _set, set_fn, _validateSnapPermissions, validateSnapPermissions_fn, _getExecutionTimeout, getExecutionTimeout_fn, _getRpcRequestHandler, getRpcRequestHandler_fn, _createInterface, createInterface_fn, _assertInterfaceExists, assertInterfaceExists_fn, _transformSnapRpcRequestResult, transformSnapRpcRequestResult_fn, _assertSnapRpcRequestResult, assertSnapRpcRequestResult_fn, _recordSnapRpcRequestStart, recordSnapRpcRequestStart_fn, _recordSnapRpcRequestFinish, recordSnapRpcRequestFinish_fn, _getRollbackSnapshot, getRollbackSnapshot_fn, _createRollbackSnapshot, createRollbackSnapshot_fn, _rollbackSnap, rollbackSnap_fn, _rollbackSnaps, rollbackSnaps_fn, _getRuntime, getRuntime_fn, _getRuntimeExpect, getRuntimeExpect_fn, _setupRuntime, setupRuntime_fn, _calculatePermissionsChange, calculatePermissionsChange_fn, _updatePermissions, updatePermissions_fn, _isValidUpdate, isValidUpdate_fn, _callLifecycleHook, callLifecycleHook_fn;
121
122
  var SnapController = class extends _basecontroller.BaseController {
122
123
  constructor({
123
124
  closeAllConnections,
@@ -132,9 +133,10 @@ var SnapController = class extends _basecontroller.BaseController {
132
133
  fetchFunction = globalThis.fetch.bind(globalThis),
133
134
  featureFlags = {},
134
135
  detectSnapLocation: detectSnapLocationFunction = _chunkPT22IXNSjs.detectSnapLocation,
135
- preinstalledSnaps,
136
+ preinstalledSnaps = null,
136
137
  encryptor,
137
- getMnemonic
138
+ getMnemonic,
139
+ getFeatureFlags = () => ({})
138
140
  }) {
139
141
  super({
140
142
  messenger,
@@ -203,6 +205,10 @@ var SnapController = class extends _basecontroller.BaseController {
203
205
  */
204
206
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _unblockSnap);
205
207
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _assertIsInstallAllowed);
208
+ /**
209
+ * Asserts whether the Snaps platform is allowed to run.
210
+ */
211
+ _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _assertCanUsePlatform);
206
212
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _stopSnapsLastRequestPastMax);
207
213
  /**
208
214
  * Transitions between states using `snapStatusStateMachineConfig` as the template to figure out
@@ -443,11 +449,13 @@ var SnapController = class extends _basecontroller.BaseController {
443
449
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _maxIdleTime, void 0);
444
450
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _encryptor, void 0);
445
451
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _getMnemonic, void 0);
452
+ _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _getFeatureFlags, void 0);
446
453
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _detectSnapLocation, void 0);
447
454
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _snapsRuntimeData, void 0);
448
455
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _rollbackSnapshots, void 0);
449
456
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _timeoutForLastRequestStatus, void 0);
450
457
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _statusMachine, void 0);
458
+ _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _preinstalledSnaps, void 0);
451
459
  _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _closeAllConnections, closeAllConnections);
452
460
  _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _dynamicPermissions, dynamicPermissions);
453
461
  _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _environmentEndowmentPermissions, environmentEndowmentPermissions);
@@ -460,6 +468,8 @@ var SnapController = class extends _basecontroller.BaseController {
460
468
  _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _detectSnapLocation, detectSnapLocationFunction);
461
469
  _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _encryptor, encryptor);
462
470
  _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _getMnemonic, getMnemonic);
471
+ _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _getFeatureFlags, getFeatureFlags);
472
+ _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _preinstalledSnaps, preinstalledSnaps);
463
473
  this._onUnhandledSnapError = this._onUnhandledSnapError.bind(this);
464
474
  this._onOutboundRequest = this._onOutboundRequest.bind(this);
465
475
  this._onOutboundResponse = this._onOutboundResponse.bind(this);
@@ -498,8 +508,8 @@ var SnapController = class extends _basecontroller.BaseController {
498
508
  });
499
509
  _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _initializeStateMachine, initializeStateMachine_fn).call(this);
500
510
  _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _registerMessageHandlers, registerMessageHandlers_fn).call(this);
501
- if (preinstalledSnaps) {
502
- _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handlePreinstalledSnaps, handlePreinstalledSnaps_fn).call(this, preinstalledSnaps);
511
+ if (_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _preinstalledSnaps)) {
512
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handlePreinstalledSnaps, handlePreinstalledSnaps_fn).call(this, _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _preinstalledSnaps));
503
513
  }
504
514
  Object.values(this.state?.snaps ?? {}).forEach(
505
515
  (snap) => _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _setupRuntime, setupRuntime_fn).call(this, snap.id)
@@ -511,6 +521,7 @@ var SnapController = class extends _basecontroller.BaseController {
511
521
  * for more information.
512
522
  */
513
523
  async updateBlockedSnaps() {
524
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
514
525
  await this.messagingSystem.call("SnapsRegistry:update");
515
526
  const blockedSnaps = await this.messagingSystem.call(
516
527
  "SnapsRegistry:get",
@@ -560,6 +571,7 @@ var SnapController = class extends _basecontroller.BaseController {
560
571
  * @param snapId - The id of the Snap to start.
561
572
  */
562
573
  async startSnap(snapId) {
574
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
563
575
  const snap = this.state.snaps[snapId];
564
576
  if (snap.enabled === false) {
565
577
  throw new Error(`Snap "${snapId}" is disabled.`);
@@ -801,6 +813,13 @@ var SnapController = class extends _basecontroller.BaseController {
801
813
  state.snaps = {};
802
814
  state.snapStates = {};
803
815
  });
816
+ _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _snapsRuntimeData).clear();
817
+ if (_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _preinstalledSnaps)) {
818
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _handlePreinstalledSnaps, handlePreinstalledSnaps_fn).call(this, _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _preinstalledSnaps));
819
+ Object.values(this.state?.snaps).forEach(
820
+ (snap) => _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _setupRuntime, setupRuntime_fn).call(this, snap.id)
821
+ );
822
+ }
804
823
  }
805
824
  /**
806
825
  * Removes the given snap from state, and clears all associated handlers
@@ -971,6 +990,7 @@ var SnapController = class extends _basecontroller.BaseController {
971
990
  * snap couldn't be installed.
972
991
  */
973
992
  async installSnaps(origin, requestedSnaps) {
993
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
974
994
  const result = {};
975
995
  const snapIds = Object.keys(requestedSnaps);
976
996
  const pendingUpdates = [];
@@ -1146,6 +1166,7 @@ var SnapController = class extends _basecontroller.BaseController {
1146
1166
  * @returns The snap metadata if updated, `null` otherwise.
1147
1167
  */
1148
1168
  async updateSnap(origin, snapId, location, newVersionRange = _snapsutils.DEFAULT_REQUESTED_SNAP_VERSION, emitEvent = true) {
1169
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
1149
1170
  if (!_utils.isValidSemVerRange.call(void 0, newVersionRange)) {
1150
1171
  throw new Error(
1151
1172
  `Received invalid snap version range: "${newVersionRange}".`
@@ -1165,7 +1186,7 @@ var SnapController = class extends _basecontroller.BaseController {
1165
1186
  );
1166
1187
  const snap = this.getExpect(snapId);
1167
1188
  const oldManifest = snap.manifest;
1168
- const newSnap = await _chunk4DPX4O3Tjs.fetchSnap.call(void 0, snapId, location);
1189
+ const newSnap = await _chunkCDTGUNSAjs.fetchSnap.call(void 0, snapId, location);
1169
1190
  const { sourceCode: sourceCodeFile, manifest: manifestFile } = newSnap;
1170
1191
  const manifest = manifestFile.result;
1171
1192
  const newVersion = manifest.version;
@@ -1189,13 +1210,19 @@ var SnapController = class extends _basecontroller.BaseController {
1189
1210
  );
1190
1211
  _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _validateSnapPermissions, validateSnapPermissions_fn).call(this, processedPermissions);
1191
1212
  const { newPermissions, unusedPermissions, approvedPermissions } = _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _calculatePermissionsChange, calculatePermissionsChange_fn).call(this, snapId, processedPermissions);
1213
+ const { newConnections, unusedConnections, approvedConnections } = _chunkCDTGUNSAjs.calculateConnectionsChange.call(void 0,
1214
+ oldManifest.initialConnections ?? {},
1215
+ manifest.initialConnections ?? {}
1216
+ );
1192
1217
  _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _updateApproval, updateApproval_fn).call(this, pendingApproval.id, {
1193
- connections: manifest.initialConnections ?? {},
1194
1218
  permissions: newPermissions,
1195
1219
  newVersion: manifest.version,
1196
1220
  newPermissions,
1197
1221
  approvedPermissions,
1198
1222
  unusedPermissions,
1223
+ newConnections,
1224
+ unusedConnections,
1225
+ approvedConnections,
1199
1226
  loading: false
1200
1227
  });
1201
1228
  const { permissions: approvedNewPermissions, ...requestData } = await pendingApproval.promise;
@@ -1279,6 +1306,7 @@ var SnapController = class extends _basecontroller.BaseController {
1279
1306
  * verified.
1280
1307
  */
1281
1308
  async getRegistryMetadata(snapId) {
1309
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
1282
1310
  return await this.messagingSystem.call("SnapsRegistry:getMetadata", snapId);
1283
1311
  }
1284
1312
  /**
@@ -1356,6 +1384,7 @@ var SnapController = class extends _basecontroller.BaseController {
1356
1384
  handler: handlerType,
1357
1385
  request: rawRequest
1358
1386
  }) {
1387
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
1359
1388
  const request = {
1360
1389
  jsonrpc: "2.0",
1361
1390
  id: _nanoid.nanoid.call(void 0, ),
@@ -1415,11 +1444,13 @@ _idleTimeCheckInterval = new WeakMap();
1415
1444
  _maxIdleTime = new WeakMap();
1416
1445
  _encryptor = new WeakMap();
1417
1446
  _getMnemonic = new WeakMap();
1447
+ _getFeatureFlags = new WeakMap();
1418
1448
  _detectSnapLocation = new WeakMap();
1419
1449
  _snapsRuntimeData = new WeakMap();
1420
1450
  _rollbackSnapshots = new WeakMap();
1421
1451
  _timeoutForLastRequestStatus = new WeakMap();
1422
1452
  _statusMachine = new WeakMap();
1453
+ _preinstalledSnaps = new WeakMap();
1423
1454
  _initializeStateMachine = new WeakSet();
1424
1455
  initializeStateMachine_fn = function() {
1425
1456
  const disableGuard = ({ snapId }) => {
@@ -1680,6 +1711,14 @@ assertIsInstallAllowed_fn = async function(snapId, snapInfo) {
1680
1711
  );
1681
1712
  }
1682
1713
  };
1714
+ _assertCanUsePlatform = new WeakSet();
1715
+ assertCanUsePlatform_fn = function() {
1716
+ const flags = _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _getFeatureFlags).call(this);
1717
+ _utils.assert.call(void 0,
1718
+ flags.disableSnaps !== true,
1719
+ "The Snaps platform requires basic functionality to be used. Enable basic functionality in the settings to use the Snaps platform."
1720
+ );
1721
+ };
1683
1722
  _stopSnapsLastRequestPastMax = new WeakSet();
1684
1723
  stopSnapsLastRequestPastMax_fn = async function() {
1685
1724
  const entries = [..._chunkEXN2TFDJjs.__privateGet.call(void 0, this, _snapsRuntimeData).entries()];
@@ -1773,7 +1812,7 @@ encryptSnapState_fn = async function(snapId, state) {
1773
1812
  _handleInitialConnections = new WeakSet();
1774
1813
  handleInitialConnections_fn = function(snapId, previousInitialConnections, initialConnections) {
1775
1814
  if (previousInitialConnections) {
1776
- const revokedInitialConnections = _chunk4DPX4O3Tjs.setDiff.call(void 0,
1815
+ const revokedInitialConnections = _chunkCDTGUNSAjs.setDiff.call(void 0,
1777
1816
  previousInitialConnections,
1778
1817
  initialConnections
1779
1818
  );
@@ -1804,7 +1843,7 @@ addSnapToSubject_fn = function(origin, snapId) {
1804
1843
  origin,
1805
1844
  _snapsrpcmethods.WALLET_SNAP_PERMISSION_KEY,
1806
1845
  _snapsutils.SnapCaveatType.SnapIds,
1807
- { ...existingCaveat, [snapId]: {} }
1846
+ { ...existingCaveat.value, [snapId]: {} }
1808
1847
  );
1809
1848
  return;
1810
1849
  }
@@ -1895,7 +1934,7 @@ add_fn = async function(args) {
1895
1934
  if (!runtime.installPromise) {
1896
1935
  _chunkNXZVKBSVjs.log.call(void 0, `Adding snap: ${snapId}`);
1897
1936
  runtime.installPromise = (async () => {
1898
- const fetchedSnap = await _chunk4DPX4O3Tjs.fetchSnap.call(void 0, snapId, location);
1937
+ const fetchedSnap = await _chunkCDTGUNSAjs.fetchSnap.call(void 0, snapId, location);
1899
1938
  const manifest = fetchedSnap.manifest.result;
1900
1939
  if (!_utils.satisfiesVersionRange.call(void 0, manifest.version, versionRange)) {
1901
1940
  throw new Error(
@@ -2148,8 +2187,8 @@ getRpcRequestHandler_fn = function(snapId) {
2148
2187
  { origin, handler: handlerType, request }
2149
2188
  );
2150
2189
  try {
2151
- const result = await _chunk4DPX4O3Tjs.withTimeout.call(void 0, handleRpcRequestPromise, timer);
2152
- if (result === _chunk4DPX4O3Tjs.hasTimedOut) {
2190
+ const result = await _chunkCDTGUNSAjs.withTimeout.call(void 0, handleRpcRequestPromise, timer);
2191
+ if (result === _chunkCDTGUNSAjs.hasTimedOut) {
2153
2192
  throw new Error(
2154
2193
  `${snapId} failed to respond to the request in time.`
2155
2194
  );
@@ -2358,15 +2397,15 @@ calculatePermissionsChange_fn = function(snapId, desiredPermissionsSet) {
2358
2397
  "PermissionController:getPermissions",
2359
2398
  snapId
2360
2399
  ) ?? {};
2361
- const newPermissions = _chunk4DPX4O3Tjs.permissionsDiff.call(void 0,
2400
+ const newPermissions = _chunkCDTGUNSAjs.permissionsDiff.call(void 0,
2362
2401
  desiredPermissionsSet,
2363
2402
  oldPermissions
2364
2403
  );
2365
- const unusedPermissions = _chunk4DPX4O3Tjs.permissionsDiff.call(void 0,
2404
+ const unusedPermissions = _chunkCDTGUNSAjs.permissionsDiff.call(void 0,
2366
2405
  oldPermissions,
2367
2406
  desiredPermissionsSet
2368
2407
  );
2369
- const approvedPermissions = _chunk4DPX4O3Tjs.permissionsDiff.call(void 0,
2408
+ const approvedPermissions = _chunkCDTGUNSAjs.permissionsDiff.call(void 0,
2370
2409
  oldPermissions,
2371
2410
  unusedPermissions
2372
2411
  );
@@ -2434,4 +2473,4 @@ callLifecycleHook_fn = async function(snapId, handler) {
2434
2473
 
2435
2474
 
2436
2475
  exports.controllerName = controllerName; exports.SNAP_APPROVAL_INSTALL = SNAP_APPROVAL_INSTALL; exports.SNAP_APPROVAL_UPDATE = SNAP_APPROVAL_UPDATE; exports.SNAP_APPROVAL_RESULT = SNAP_APPROVAL_RESULT; exports.SnapController = SnapController;
2437
- //# sourceMappingURL=chunk-YP37KUG5.js.map
2476
+ //# sourceMappingURL=chunk-TEBNQ3AE.js.map