@metamask/snaps-controllers 8.1.1 → 8.3.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 +19 -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-WMT2TIOI.mjs → chunk-JCQR3I2Q.mjs} +64 -24
  16. package/dist/chunk-JCQR3I2Q.mjs.map +1 -0
  17. package/dist/{chunk-FCRPOA4I.js → chunk-KH72WRHR.js} +3 -3
  18. package/dist/{chunk-QLEQIXCE.mjs → chunk-LRVK45HN.mjs} +2 -2
  19. package/dist/{chunk-A6RUJL4K.js → chunk-NRZEYYBQ.js} +72 -32
  20. package/dist/chunk-NRZEYYBQ.js.map +1 -0
  21. package/dist/{chunk-2UAU42DO.js → chunk-PIQFC66N.js} +12 -8
  22. package/dist/chunk-PIQFC66N.js.map +1 -0
  23. package/dist/{chunk-PXKCSAT6.mjs → chunk-PMZXFAQI.mjs} +2 -2
  24. package/dist/{chunk-FCCGRGQS.mjs → chunk-QLFH3MC6.mjs} +2 -2
  25. package/dist/{chunk-QP5LV734.mjs → chunk-QLWR3M4Q.mjs} +9 -5
  26. package/dist/chunk-QLWR3M4Q.mjs.map +1 -0
  27. package/dist/{chunk-G4S6UXQ2.js → chunk-RW7AYHRG.js} +3 -3
  28. package/dist/{chunk-SIW7ZXQF.js → chunk-S775IABY.js} +10 -10
  29. package/dist/{chunk-P5MRZOGW.mjs → chunk-SAAURQ5A.mjs} +2 -2
  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 +10 -1
  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-A6RUJL4K.js.map +0 -1
  99. package/dist/chunk-GTDDODNP.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-WMT2TIOI.mjs.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
@@ -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, _preinstalledSnaps, _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,
@@ -134,7 +135,8 @@ var SnapController = class extends _basecontroller.BaseController {
134
135
  detectSnapLocation: detectSnapLocationFunction = _chunkPT22IXNSjs.detectSnapLocation,
135
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
@@ -427,6 +433,7 @@ var SnapController = class extends _basecontroller.BaseController {
427
433
  * `endowment:lifecycle-hooks` permission. If the snap does not have the
428
434
  * permission, nothing happens.
429
435
  *
436
+ * @param origin - The origin.
430
437
  * @param snapId - The snap ID.
431
438
  * @param handler - The lifecycle hook to call. This should be one of the
432
439
  * supported lifecycle hooks.
@@ -443,6 +450,7 @@ var SnapController = class extends _basecontroller.BaseController {
443
450
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _maxIdleTime, void 0);
444
451
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _encryptor, void 0);
445
452
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _getMnemonic, void 0);
453
+ _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _getFeatureFlags, void 0);
446
454
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _detectSnapLocation, void 0);
447
455
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _snapsRuntimeData, void 0);
448
456
  _chunkEXN2TFDJjs.__privateAdd.call(void 0, this, _rollbackSnapshots, void 0);
@@ -461,6 +469,7 @@ var SnapController = class extends _basecontroller.BaseController {
461
469
  _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _detectSnapLocation, detectSnapLocationFunction);
462
470
  _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _encryptor, encryptor);
463
471
  _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _getMnemonic, getMnemonic);
472
+ _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _getFeatureFlags, getFeatureFlags);
464
473
  _chunkEXN2TFDJjs.__privateSet.call(void 0, this, _preinstalledSnaps, preinstalledSnaps);
465
474
  this._onUnhandledSnapError = this._onUnhandledSnapError.bind(this);
466
475
  this._onOutboundRequest = this._onOutboundRequest.bind(this);
@@ -480,24 +489,34 @@ var SnapController = class extends _basecontroller.BaseController {
480
489
  "ExecutionService:outboundResponse",
481
490
  this._onOutboundResponse
482
491
  );
483
- this.messagingSystem.subscribe("SnapController:snapInstalled", ({ id }) => {
484
- _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _callLifecycleHook, callLifecycleHook_fn).call(this, id, _snapsutils.HandlerType.OnInstall).catch((error) => {
485
- _snapsutils.logError.call(void 0,
486
- `Error when calling \`onInstall\` lifecycle hook for snap "${id}": ${_snapssdk.getErrorMessage.call(void 0,
487
- error
488
- )}`
492
+ this.messagingSystem.subscribe(
493
+ "SnapController:snapInstalled",
494
+ ({ id }, origin) => {
495
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _callLifecycleHook, callLifecycleHook_fn).call(this, origin, id, _snapsutils.HandlerType.OnInstall).catch(
496
+ (error) => {
497
+ _snapsutils.logError.call(void 0,
498
+ `Error when calling \`onInstall\` lifecycle hook for snap "${id}": ${_snapssdk.getErrorMessage.call(void 0,
499
+ error
500
+ )}`
501
+ );
502
+ }
489
503
  );
490
- });
491
- });
492
- this.messagingSystem.subscribe("SnapController:snapUpdated", ({ id }) => {
493
- _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _callLifecycleHook, callLifecycleHook_fn).call(this, id, _snapsutils.HandlerType.OnUpdate).catch((error) => {
494
- _snapsutils.logError.call(void 0,
495
- `Error when calling \`onUpdate\` lifecycle hook for snap "${id}": ${_snapssdk.getErrorMessage.call(void 0,
496
- error
497
- )}`
504
+ }
505
+ );
506
+ this.messagingSystem.subscribe(
507
+ "SnapController:snapUpdated",
508
+ ({ id }, _oldVersion, origin) => {
509
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _callLifecycleHook, callLifecycleHook_fn).call(this, origin, id, _snapsutils.HandlerType.OnUpdate).catch(
510
+ (error) => {
511
+ _snapsutils.logError.call(void 0,
512
+ `Error when calling \`onUpdate\` lifecycle hook for snap "${id}": ${_snapssdk.getErrorMessage.call(void 0,
513
+ error
514
+ )}`
515
+ );
516
+ }
498
517
  );
499
- });
500
- });
518
+ }
519
+ );
501
520
  _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _initializeStateMachine, initializeStateMachine_fn).call(this);
502
521
  _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _registerMessageHandlers, registerMessageHandlers_fn).call(this);
503
522
  if (_chunkEXN2TFDJjs.__privateGet.call(void 0, this, _preinstalledSnaps)) {
@@ -513,6 +532,7 @@ var SnapController = class extends _basecontroller.BaseController {
513
532
  * for more information.
514
533
  */
515
534
  async updateBlockedSnaps() {
535
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
516
536
  await this.messagingSystem.call("SnapsRegistry:update");
517
537
  const blockedSnaps = await this.messagingSystem.call(
518
538
  "SnapsRegistry:get",
@@ -562,6 +582,7 @@ var SnapController = class extends _basecontroller.BaseController {
562
582
  * @param snapId - The id of the Snap to start.
563
583
  */
564
584
  async startSnap(snapId) {
585
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
565
586
  const snap = this.state.snaps[snapId];
566
587
  if (snap.enabled === false) {
567
588
  throw new Error(`Snap "${snapId}" is disabled.`);
@@ -980,6 +1001,7 @@ var SnapController = class extends _basecontroller.BaseController {
980
1001
  * snap couldn't be installed.
981
1002
  */
982
1003
  async installSnaps(origin, requestedSnaps) {
1004
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
983
1005
  const result = {};
984
1006
  const snapIds = Object.keys(requestedSnaps);
985
1007
  const pendingUpdates = [];
@@ -1155,6 +1177,7 @@ var SnapController = class extends _basecontroller.BaseController {
1155
1177
  * @returns The snap metadata if updated, `null` otherwise.
1156
1178
  */
1157
1179
  async updateSnap(origin, snapId, location, newVersionRange = _snapsutils.DEFAULT_REQUESTED_SNAP_VERSION, emitEvent = true) {
1180
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
1158
1181
  if (!_utils.isValidSemVerRange.call(void 0, newVersionRange)) {
1159
1182
  throw new Error(
1160
1183
  `Received invalid snap version range: "${newVersionRange}".`
@@ -1174,7 +1197,7 @@ var SnapController = class extends _basecontroller.BaseController {
1174
1197
  );
1175
1198
  const snap = this.getExpect(snapId);
1176
1199
  const oldManifest = snap.manifest;
1177
- const newSnap = await _chunk4DPX4O3Tjs.fetchSnap.call(void 0, snapId, location);
1200
+ const newSnap = await _chunkCDTGUNSAjs.fetchSnap.call(void 0, snapId, location);
1178
1201
  const { sourceCode: sourceCodeFile, manifest: manifestFile } = newSnap;
1179
1202
  const manifest = manifestFile.result;
1180
1203
  const newVersion = manifest.version;
@@ -1198,13 +1221,19 @@ var SnapController = class extends _basecontroller.BaseController {
1198
1221
  );
1199
1222
  _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _validateSnapPermissions, validateSnapPermissions_fn).call(this, processedPermissions);
1200
1223
  const { newPermissions, unusedPermissions, approvedPermissions } = _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _calculatePermissionsChange, calculatePermissionsChange_fn).call(this, snapId, processedPermissions);
1224
+ const { newConnections, unusedConnections, approvedConnections } = _chunkCDTGUNSAjs.calculateConnectionsChange.call(void 0,
1225
+ oldManifest.initialConnections ?? {},
1226
+ manifest.initialConnections ?? {}
1227
+ );
1201
1228
  _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _updateApproval, updateApproval_fn).call(this, pendingApproval.id, {
1202
- connections: manifest.initialConnections ?? {},
1203
1229
  permissions: newPermissions,
1204
1230
  newVersion: manifest.version,
1205
1231
  newPermissions,
1206
1232
  approvedPermissions,
1207
1233
  unusedPermissions,
1234
+ newConnections,
1235
+ unusedConnections,
1236
+ approvedConnections,
1208
1237
  loading: false
1209
1238
  });
1210
1239
  const { permissions: approvedNewPermissions, ...requestData } = await pendingApproval.promise;
@@ -1288,6 +1317,7 @@ var SnapController = class extends _basecontroller.BaseController {
1288
1317
  * verified.
1289
1318
  */
1290
1319
  async getRegistryMetadata(snapId) {
1320
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
1291
1321
  return await this.messagingSystem.call("SnapsRegistry:getMetadata", snapId);
1292
1322
  }
1293
1323
  /**
@@ -1365,6 +1395,7 @@ var SnapController = class extends _basecontroller.BaseController {
1365
1395
  handler: handlerType,
1366
1396
  request: rawRequest
1367
1397
  }) {
1398
+ _chunkEXN2TFDJjs.__privateMethod.call(void 0, this, _assertCanUsePlatform, assertCanUsePlatform_fn).call(this);
1368
1399
  const request = {
1369
1400
  jsonrpc: "2.0",
1370
1401
  id: _nanoid.nanoid.call(void 0, ),
@@ -1424,6 +1455,7 @@ _idleTimeCheckInterval = new WeakMap();
1424
1455
  _maxIdleTime = new WeakMap();
1425
1456
  _encryptor = new WeakMap();
1426
1457
  _getMnemonic = new WeakMap();
1458
+ _getFeatureFlags = new WeakMap();
1427
1459
  _detectSnapLocation = new WeakMap();
1428
1460
  _snapsRuntimeData = new WeakMap();
1429
1461
  _rollbackSnapshots = new WeakMap();
@@ -1690,6 +1722,14 @@ assertIsInstallAllowed_fn = async function(snapId, snapInfo) {
1690
1722
  );
1691
1723
  }
1692
1724
  };
1725
+ _assertCanUsePlatform = new WeakSet();
1726
+ assertCanUsePlatform_fn = function() {
1727
+ const flags = _chunkEXN2TFDJjs.__privateGet.call(void 0, this, _getFeatureFlags).call(this);
1728
+ _utils.assert.call(void 0,
1729
+ flags.disableSnaps !== true,
1730
+ "The Snaps platform requires basic functionality to be used. Enable basic functionality in the settings to use the Snaps platform."
1731
+ );
1732
+ };
1693
1733
  _stopSnapsLastRequestPastMax = new WeakSet();
1694
1734
  stopSnapsLastRequestPastMax_fn = async function() {
1695
1735
  const entries = [..._chunkEXN2TFDJjs.__privateGet.call(void 0, this, _snapsRuntimeData).entries()];
@@ -1783,7 +1823,7 @@ encryptSnapState_fn = async function(snapId, state) {
1783
1823
  _handleInitialConnections = new WeakSet();
1784
1824
  handleInitialConnections_fn = function(snapId, previousInitialConnections, initialConnections) {
1785
1825
  if (previousInitialConnections) {
1786
- const revokedInitialConnections = _chunk4DPX4O3Tjs.setDiff.call(void 0,
1826
+ const revokedInitialConnections = _chunkCDTGUNSAjs.setDiff.call(void 0,
1787
1827
  previousInitialConnections,
1788
1828
  initialConnections
1789
1829
  );
@@ -1814,7 +1854,7 @@ addSnapToSubject_fn = function(origin, snapId) {
1814
1854
  origin,
1815
1855
  _snapsrpcmethods.WALLET_SNAP_PERMISSION_KEY,
1816
1856
  _snapsutils.SnapCaveatType.SnapIds,
1817
- { ...existingCaveat, [snapId]: {} }
1857
+ { ...existingCaveat.value, [snapId]: {} }
1818
1858
  );
1819
1859
  return;
1820
1860
  }
@@ -1905,7 +1945,7 @@ add_fn = async function(args) {
1905
1945
  if (!runtime.installPromise) {
1906
1946
  _chunkNXZVKBSVjs.log.call(void 0, `Adding snap: ${snapId}`);
1907
1947
  runtime.installPromise = (async () => {
1908
- const fetchedSnap = await _chunk4DPX4O3Tjs.fetchSnap.call(void 0, snapId, location);
1948
+ const fetchedSnap = await _chunkCDTGUNSAjs.fetchSnap.call(void 0, snapId, location);
1909
1949
  const manifest = fetchedSnap.manifest.result;
1910
1950
  if (!_utils.satisfiesVersionRange.call(void 0, manifest.version, versionRange)) {
1911
1951
  throw new Error(
@@ -2158,8 +2198,8 @@ getRpcRequestHandler_fn = function(snapId) {
2158
2198
  { origin, handler: handlerType, request }
2159
2199
  );
2160
2200
  try {
2161
- const result = await _chunk4DPX4O3Tjs.withTimeout.call(void 0, handleRpcRequestPromise, timer);
2162
- if (result === _chunk4DPX4O3Tjs.hasTimedOut) {
2201
+ const result = await _chunkCDTGUNSAjs.withTimeout.call(void 0, handleRpcRequestPromise, timer);
2202
+ if (result === _chunkCDTGUNSAjs.hasTimedOut) {
2163
2203
  throw new Error(
2164
2204
  `${snapId} failed to respond to the request in time.`
2165
2205
  );
@@ -2368,15 +2408,15 @@ calculatePermissionsChange_fn = function(snapId, desiredPermissionsSet) {
2368
2408
  "PermissionController:getPermissions",
2369
2409
  snapId
2370
2410
  ) ?? {};
2371
- const newPermissions = _chunk4DPX4O3Tjs.permissionsDiff.call(void 0,
2411
+ const newPermissions = _chunkCDTGUNSAjs.permissionsDiff.call(void 0,
2372
2412
  desiredPermissionsSet,
2373
2413
  oldPermissions
2374
2414
  );
2375
- const unusedPermissions = _chunk4DPX4O3Tjs.permissionsDiff.call(void 0,
2415
+ const unusedPermissions = _chunkCDTGUNSAjs.permissionsDiff.call(void 0,
2376
2416
  oldPermissions,
2377
2417
  desiredPermissionsSet
2378
2418
  );
2379
- const approvedPermissions = _chunk4DPX4O3Tjs.permissionsDiff.call(void 0,
2419
+ const approvedPermissions = _chunkCDTGUNSAjs.permissionsDiff.call(void 0,
2380
2420
  oldPermissions,
2381
2421
  unusedPermissions
2382
2422
  );
@@ -2415,7 +2455,7 @@ isValidUpdate_fn = function(snapId, newVersionRange) {
2415
2455
  return true;
2416
2456
  };
2417
2457
  _callLifecycleHook = new WeakSet();
2418
- callLifecycleHook_fn = async function(snapId, handler) {
2458
+ callLifecycleHook_fn = async function(origin, snapId, handler) {
2419
2459
  const permissionName = _snapsrpcmethods.handlerEndowments[handler];
2420
2460
  _utils.assert.call(void 0, permissionName, "Lifecycle hook must have an endowment.");
2421
2461
  const hasPermission = this.messagingSystem.call(
@@ -2429,7 +2469,7 @@ callLifecycleHook_fn = async function(snapId, handler) {
2429
2469
  await this.handleRequest({
2430
2470
  snapId,
2431
2471
  handler,
2432
- origin: "",
2472
+ origin,
2433
2473
  request: {
2434
2474
  jsonrpc: "2.0",
2435
2475
  method: handler
@@ -2444,4 +2484,4 @@ callLifecycleHook_fn = async function(snapId, handler) {
2444
2484
 
2445
2485
 
2446
2486
  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;
2447
- //# sourceMappingURL=chunk-A6RUJL4K.js.map
2487
+ //# sourceMappingURL=chunk-NRZEYYBQ.js.map