@metamask/snaps-controllers 9.13.0 → 9.14.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.
- package/CHANGELOG.md +9 -1
- package/dist/snaps/SnapController.cjs +14 -4
- package/dist/snaps/SnapController.cjs.map +1 -1
- package/dist/snaps/SnapController.d.cts +7 -2
- package/dist/snaps/SnapController.d.cts.map +1 -1
- package/dist/snaps/SnapController.d.mts +7 -2
- package/dist/snaps/SnapController.d.mts.map +1 -1
- package/dist/snaps/SnapController.mjs +14 -4
- package/dist/snaps/SnapController.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [9.14.0]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Emit `snapInstalled` and `snapUpdated` events for preinstalled Snaps ([#2900](https://github.com/MetaMask/snaps/pull/2900))
|
|
15
|
+
- This indirectly makes preinstalled Snaps trigger cronjobs and lifecycle hooks more reliably.
|
|
16
|
+
|
|
10
17
|
## [9.13.0]
|
|
11
18
|
|
|
12
19
|
### Added
|
|
@@ -567,7 +574,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
567
574
|
- The version of the package no longer needs to match the version of all other
|
|
568
575
|
MetaMask Snaps packages.
|
|
569
576
|
|
|
570
|
-
[Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-controllers@9.
|
|
577
|
+
[Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-controllers@9.14.0...HEAD
|
|
578
|
+
[9.14.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-controllers@9.13.0...@metamask/snaps-controllers@9.14.0
|
|
571
579
|
[9.13.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-controllers@9.12.0...@metamask/snaps-controllers@9.13.0
|
|
572
580
|
[9.12.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-controllers@9.11.1...@metamask/snaps-controllers@9.12.0
|
|
573
581
|
[9.11.1]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-controllers@9.11.0...@metamask/snaps-controllers@9.11.1
|
|
@@ -673,8 +673,8 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
673
673
|
result[snapId] = await this.processRequestedSnap(origin, snapId, location, version);
|
|
674
674
|
}
|
|
675
675
|
// Once we finish all installs / updates, emit events.
|
|
676
|
-
pendingInstalls.forEach((snapId) => this.messagingSystem.publish(`SnapController:snapInstalled`, this.getTruncatedExpect(snapId), origin));
|
|
677
|
-
pendingUpdates.forEach(({ snapId, oldVersion }) => this.messagingSystem.publish(`SnapController:snapUpdated`, this.getTruncatedExpect(snapId), oldVersion, origin));
|
|
676
|
+
pendingInstalls.forEach((snapId) => this.messagingSystem.publish(`SnapController:snapInstalled`, this.getTruncatedExpect(snapId), origin, false));
|
|
677
|
+
pendingUpdates.forEach(({ snapId, oldVersion }) => this.messagingSystem.publish(`SnapController:snapUpdated`, this.getTruncatedExpect(snapId), oldVersion, origin, false));
|
|
678
678
|
snapIds.forEach((snapId) => __classPrivateFieldGet(this, _SnapController_rollbackSnapshots, "f").delete(snapId));
|
|
679
679
|
}
|
|
680
680
|
catch (error) {
|
|
@@ -787,6 +787,10 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
787
787
|
async updateSnap(origin, snapId, location, newVersionRange = snaps_utils_1.DEFAULT_REQUESTED_SNAP_VERSION, emitEvent = true) {
|
|
788
788
|
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_assertCanInstallSnaps).call(this);
|
|
789
789
|
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_assertCanUsePlatform).call(this);
|
|
790
|
+
const snap = this.getExpect(snapId);
|
|
791
|
+
if (snap.preinstalled) {
|
|
792
|
+
throw new Error('Preinstalled Snaps cannot be manually updated.');
|
|
793
|
+
}
|
|
790
794
|
if (!(0, utils_1.isValidSemVerRange)(newVersionRange)) {
|
|
791
795
|
throw new Error(`Received invalid snap version range: "${newVersionRange}".`);
|
|
792
796
|
}
|
|
@@ -797,7 +801,6 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
797
801
|
});
|
|
798
802
|
try {
|
|
799
803
|
this.messagingSystem.publish('SnapController:snapInstallStarted', snapId, origin, true);
|
|
800
|
-
const snap = this.getExpect(snapId);
|
|
801
804
|
const oldManifest = snap.manifest;
|
|
802
805
|
const newSnap = await (0, utils_2.fetchSnap)(snapId, location);
|
|
803
806
|
const { sourceCode: sourceCodeFile, manifest: manifestFile } = newSnap;
|
|
@@ -871,7 +874,7 @@ class SnapController extends base_controller_1.BaseController {
|
|
|
871
874
|
}
|
|
872
875
|
const truncatedSnap = this.getTruncatedExpect(snapId);
|
|
873
876
|
if (emitEvent) {
|
|
874
|
-
this.messagingSystem.publish('SnapController:snapUpdated', truncatedSnap, snap.version, origin);
|
|
877
|
+
this.messagingSystem.publish('SnapController:snapUpdated', truncatedSnap, snap.version, origin, false);
|
|
875
878
|
}
|
|
876
879
|
__classPrivateFieldGet(this, _SnapController_instances, "m", _SnapController_updateApproval).call(this, pendingApproval.id, {
|
|
877
880
|
loading: false,
|
|
@@ -1132,6 +1135,13 @@ _SnapController_closeAllConnections = new WeakMap(), _SnapController_dynamicPerm
|
|
|
1132
1135
|
this.update((state) => {
|
|
1133
1136
|
state.snaps[snapId].status = snaps_utils_1.SnapStatus.Stopped;
|
|
1134
1137
|
});
|
|
1138
|
+
// Emit events
|
|
1139
|
+
if (isUpdate) {
|
|
1140
|
+
this.messagingSystem.publish('SnapController:snapUpdated', this.getTruncatedExpect(snapId), existingSnap.version, 'metamask', true);
|
|
1141
|
+
}
|
|
1142
|
+
else {
|
|
1143
|
+
this.messagingSystem.publish('SnapController:snapInstalled', this.getTruncatedExpect(snapId), 'metamask', true);
|
|
1144
|
+
}
|
|
1135
1145
|
}
|
|
1136
1146
|
}, _SnapController_pollForLastRequestStatus = function _SnapController_pollForLastRequestStatus() {
|
|
1137
1147
|
__classPrivateFieldSet(this, _SnapController_timeoutForLastRequestStatus, setTimeout(() => {
|