@metamask-previews/notification-services-controller 0.21.0-preview-de5d7291 → 0.21.0-preview-5575cd05
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/dist/NotificationServicesController/NotificationServicesController.cjs +62 -74
- package/dist/NotificationServicesController/NotificationServicesController.cjs.map +1 -1
- package/dist/NotificationServicesController/NotificationServicesController.d.cts +10 -34
- package/dist/NotificationServicesController/NotificationServicesController.d.cts.map +1 -1
- package/dist/NotificationServicesController/NotificationServicesController.d.mts +10 -34
- package/dist/NotificationServicesController/NotificationServicesController.d.mts.map +1 -1
- package/dist/NotificationServicesController/NotificationServicesController.mjs +62 -74
- package/dist/NotificationServicesController/NotificationServicesController.mjs.map +1 -1
- package/dist/NotificationServicesController/index.cjs +1 -0
- package/dist/NotificationServicesController/index.cjs.map +1 -1
- package/dist/NotificationServicesController/index.d.cts +1 -0
- package/dist/NotificationServicesController/index.d.cts.map +1 -1
- package/dist/NotificationServicesController/index.d.mts +1 -0
- package/dist/NotificationServicesController/index.d.mts.map +1 -1
- package/dist/NotificationServicesController/index.mjs +1 -0
- package/dist/NotificationServicesController/index.mjs.map +1 -1
- package/dist/NotificationServicesPushController/NotificationServicesPushController.cjs +54 -45
- package/dist/NotificationServicesPushController/NotificationServicesPushController.cjs.map +1 -1
- package/dist/NotificationServicesPushController/NotificationServicesPushController.d.cts +16 -17
- package/dist/NotificationServicesPushController/NotificationServicesPushController.d.cts.map +1 -1
- package/dist/NotificationServicesPushController/NotificationServicesPushController.d.mts +16 -17
- package/dist/NotificationServicesPushController/NotificationServicesPushController.d.mts.map +1 -1
- package/dist/NotificationServicesPushController/NotificationServicesPushController.mjs +55 -46
- package/dist/NotificationServicesPushController/NotificationServicesPushController.mjs.map +1 -1
- package/dist/NotificationServicesPushController/__fixtures__/mockMessenger.cjs +14 -0
- package/dist/NotificationServicesPushController/__fixtures__/mockMessenger.cjs.map +1 -0
- package/dist/NotificationServicesPushController/__fixtures__/mockMessenger.d.cts +3 -0
- package/dist/NotificationServicesPushController/__fixtures__/mockMessenger.d.cts.map +1 -0
- package/dist/NotificationServicesPushController/__fixtures__/mockMessenger.d.mts +3 -0
- package/dist/NotificationServicesPushController/__fixtures__/mockMessenger.d.mts.map +1 -0
- package/dist/NotificationServicesPushController/__fixtures__/mockMessenger.mjs +10 -0
- package/dist/NotificationServicesPushController/__fixtures__/mockMessenger.mjs.map +1 -0
- package/dist/NotificationServicesPushController/services/services.cjs +3 -26
- package/dist/NotificationServicesPushController/services/services.cjs.map +1 -1
- package/dist/NotificationServicesPushController/services/services.d.cts +1 -15
- package/dist/NotificationServicesPushController/services/services.d.cts.map +1 -1
- package/dist/NotificationServicesPushController/services/services.d.mts +1 -15
- package/dist/NotificationServicesPushController/services/services.d.mts.map +1 -1
- package/dist/NotificationServicesPushController/services/services.mjs +2 -24
- package/dist/NotificationServicesPushController/services/services.mjs.map +1 -1
- package/dist/NotificationServicesPushController/types/index.cjs.map +1 -1
- package/dist/NotificationServicesPushController/types/index.d.cts +1 -0
- package/dist/NotificationServicesPushController/types/index.d.cts.map +1 -1
- package/dist/NotificationServicesPushController/types/index.d.mts +1 -0
- package/dist/NotificationServicesPushController/types/index.d.mts.map +1 -1
- package/dist/NotificationServicesPushController/types/index.mjs.map +1 -1
- package/dist/NotificationServicesPushController/{services/push/index.cjs → types/push-service-interface.cjs} +1 -1
- package/dist/NotificationServicesPushController/types/push-service-interface.cjs.map +1 -0
- package/dist/NotificationServicesPushController/types/push-service-interface.d.cts +30 -0
- package/dist/NotificationServicesPushController/types/push-service-interface.d.cts.map +1 -0
- package/dist/NotificationServicesPushController/types/push-service-interface.d.mts +30 -0
- package/dist/NotificationServicesPushController/types/push-service-interface.d.mts.map +1 -0
- package/dist/NotificationServicesPushController/types/push-service-interface.mjs +2 -0
- package/dist/NotificationServicesPushController/types/push-service-interface.mjs.map +1 -0
- package/dist/NotificationServicesPushController/utils/get-notification-message.cjs +1 -19
- package/dist/NotificationServicesPushController/utils/get-notification-message.cjs.map +1 -1
- package/dist/NotificationServicesPushController/utils/get-notification-message.d.cts +0 -7
- package/dist/NotificationServicesPushController/utils/get-notification-message.d.cts.map +1 -1
- package/dist/NotificationServicesPushController/utils/get-notification-message.d.mts +0 -7
- package/dist/NotificationServicesPushController/utils/get-notification-message.d.mts.map +1 -1
- package/dist/NotificationServicesPushController/utils/get-notification-message.mjs +0 -17
- package/dist/NotificationServicesPushController/utils/get-notification-message.mjs.map +1 -1
- package/dist/NotificationServicesPushController/web/index.cjs +8 -0
- package/dist/NotificationServicesPushController/web/index.cjs.map +1 -0
- package/dist/NotificationServicesPushController/web/index.d.cts +2 -0
- package/dist/NotificationServicesPushController/web/index.d.cts.map +1 -0
- package/dist/NotificationServicesPushController/web/index.d.mts +2 -0
- package/dist/NotificationServicesPushController/web/index.d.mts.map +1 -0
- package/dist/NotificationServicesPushController/web/index.mjs +2 -0
- package/dist/NotificationServicesPushController/web/index.mjs.map +1 -0
- package/dist/NotificationServicesPushController/web/push-utils.cjs +170 -0
- package/dist/NotificationServicesPushController/web/push-utils.cjs.map +1 -0
- package/dist/NotificationServicesPushController/web/push-utils.d.cts +37 -0
- package/dist/NotificationServicesPushController/web/push-utils.d.cts.map +1 -0
- package/dist/NotificationServicesPushController/web/push-utils.d.mts +37 -0
- package/dist/NotificationServicesPushController/web/push-utils.d.mts.map +1 -0
- package/dist/NotificationServicesPushController/web/push-utils.mjs +168 -0
- package/dist/NotificationServicesPushController/web/push-utils.mjs.map +1 -0
- package/dist/shared/index.cjs +19 -0
- package/dist/shared/index.cjs.map +1 -0
- package/dist/shared/index.d.cts +3 -0
- package/dist/shared/index.d.cts.map +1 -0
- package/dist/shared/index.d.mts +3 -0
- package/dist/shared/index.d.mts.map +1 -0
- package/dist/shared/index.mjs +3 -0
- package/dist/shared/index.mjs.map +1 -0
- package/dist/shared/is-onchain-notification.cjs +22 -0
- package/dist/shared/is-onchain-notification.cjs.map +1 -0
- package/dist/shared/is-onchain-notification.d.cts +9 -0
- package/dist/shared/is-onchain-notification.d.cts.map +1 -0
- package/dist/shared/is-onchain-notification.d.mts +9 -0
- package/dist/shared/is-onchain-notification.d.mts.map +1 -0
- package/dist/shared/is-onchain-notification.mjs +18 -0
- package/dist/shared/is-onchain-notification.mjs.map +1 -0
- package/package.json +11 -1
- package/push-services/web/package.json +150 -0
- package/dist/NotificationServicesPushController/constants.cjs +0 -14
- package/dist/NotificationServicesPushController/constants.cjs.map +0 -1
- package/dist/NotificationServicesPushController/constants.d.cts +0 -11
- package/dist/NotificationServicesPushController/constants.d.cts.map +0 -1
- package/dist/NotificationServicesPushController/constants.d.mts +0 -11
- package/dist/NotificationServicesPushController/constants.d.mts.map +0 -1
- package/dist/NotificationServicesPushController/constants.mjs +0 -11
- package/dist/NotificationServicesPushController/constants.mjs.map +0 -1
- package/dist/NotificationServicesPushController/services/push/index.cjs.map +0 -1
- package/dist/NotificationServicesPushController/services/push/index.d.cts +0 -6
- package/dist/NotificationServicesPushController/services/push/index.d.cts.map +0 -1
- package/dist/NotificationServicesPushController/services/push/index.d.mts +0 -6
- package/dist/NotificationServicesPushController/services/push/index.d.mts.map +0 -1
- package/dist/NotificationServicesPushController/services/push/index.mjs +0 -2
- package/dist/NotificationServicesPushController/services/push/index.mjs.map +0 -1
|
@@ -5,26 +5,7 @@ import type { AuthenticationController, UserStorageController } from "@metamask/
|
|
|
5
5
|
import { TRIGGER_TYPES } from "./constants/notification-schema.cjs";
|
|
6
6
|
import type { INotification, MarkAsReadNotificationsParam } from "./types/notification/notification.cjs";
|
|
7
7
|
import type { UserStorage } from "./types/user-storage/user-storage.cjs";
|
|
8
|
-
|
|
9
|
-
type: `NotificationServicesPushController:enablePushNotifications`;
|
|
10
|
-
handler: (UUIDs: string[]) => Promise<void>;
|
|
11
|
-
};
|
|
12
|
-
export type NotificationServicesPushControllerDisablePushNotifications = {
|
|
13
|
-
type: `NotificationServicesPushController:disablePushNotifications`;
|
|
14
|
-
handler: (UUIDs: string[]) => Promise<void>;
|
|
15
|
-
};
|
|
16
|
-
export type NotificationServicesPushControllerUpdateTriggerPushNotifications = {
|
|
17
|
-
type: `NotificationServicesPushController:updateTriggerPushNotifications`;
|
|
18
|
-
handler: (UUIDs: string[]) => Promise<void>;
|
|
19
|
-
};
|
|
20
|
-
export type NotificationServicesPushControllerSubscribeToNotifications = {
|
|
21
|
-
type: `NotificationServicesPushController:subscribeToPushNotifications`;
|
|
22
|
-
handler: () => Promise<void>;
|
|
23
|
-
};
|
|
24
|
-
export type NotificationServicesPushControllerOnNewNotification = {
|
|
25
|
-
type: `NotificationServicesPushController:onNewNotifications`;
|
|
26
|
-
payload: [INotification];
|
|
27
|
-
};
|
|
8
|
+
import type { NotificationServicesPushControllerEnablePushNotificationsAction, NotificationServicesPushControllerDisablePushNotificationsAction, NotificationServicesPushControllerUpdateTriggerPushNotificationsAction, NotificationServicesPushControllerSubscribeToNotificationsAction, NotificationServicesPushControllerStateChangeEvent, NotificationServicesPushControllerOnNewNotificationEvent } from "../NotificationServicesPushController/index.cjs";
|
|
28
9
|
declare const controllerName = "NotificationServicesController";
|
|
29
10
|
/**
|
|
30
11
|
* State shape for NotificationServicesController
|
|
@@ -84,10 +65,6 @@ export type NotificationServicesControllerDisableNotificationServices = {
|
|
|
84
65
|
type: `${typeof controllerName}:disableNotificationServices`;
|
|
85
66
|
handler: NotificationServicesController['disableNotificationServices'];
|
|
86
67
|
};
|
|
87
|
-
export type NotificationServicesControllerSelectIsNotificationServicesEnabled = {
|
|
88
|
-
type: `${typeof controllerName}:selectIsNotificationServicesEnabled`;
|
|
89
|
-
handler: NotificationServicesController['selectIsNotificationServicesEnabled'];
|
|
90
|
-
};
|
|
91
68
|
export type NotificationServicesControllerGetNotificationsByType = {
|
|
92
69
|
type: `${typeof controllerName}:getNotificationsByType`;
|
|
93
70
|
handler: NotificationServicesController['getNotificationsByType'];
|
|
@@ -96,8 +73,8 @@ export type NotificationServicesControllerDeleteNotificationsById = {
|
|
|
96
73
|
type: `${typeof controllerName}:deleteNotificationsById`;
|
|
97
74
|
handler: NotificationServicesController['deleteNotificationsById'];
|
|
98
75
|
};
|
|
99
|
-
export type Actions = NotificationServicesControllerGetStateAction | NotificationServicesControllerUpdateMetamaskNotificationsList | NotificationServicesControllerDisableNotificationServices |
|
|
100
|
-
export type AllowedActions = KeyringControllerGetAccountsAction | KeyringControllerGetStateAction | AuthenticationController.AuthenticationControllerGetBearerToken | AuthenticationController.AuthenticationControllerIsSignedIn | AuthenticationController.AuthenticationControllerPerformSignIn | UserStorageController.UserStorageControllerGetStorageKey | UserStorageController.UserStorageControllerPerformGetStorage | UserStorageController.UserStorageControllerPerformSetStorage |
|
|
76
|
+
export type Actions = NotificationServicesControllerGetStateAction | NotificationServicesControllerUpdateMetamaskNotificationsList | NotificationServicesControllerDisableNotificationServices | NotificationServicesControllerGetNotificationsByType | NotificationServicesControllerDeleteNotificationsById;
|
|
77
|
+
export type AllowedActions = KeyringControllerGetAccountsAction | KeyringControllerGetStateAction | AuthenticationController.AuthenticationControllerGetBearerToken | AuthenticationController.AuthenticationControllerIsSignedIn | AuthenticationController.AuthenticationControllerPerformSignIn | UserStorageController.UserStorageControllerGetStorageKey | UserStorageController.UserStorageControllerPerformGetStorage | UserStorageController.UserStorageControllerPerformSetStorage | NotificationServicesPushControllerEnablePushNotificationsAction | NotificationServicesPushControllerDisablePushNotificationsAction | NotificationServicesPushControllerUpdateTriggerPushNotificationsAction | NotificationServicesPushControllerSubscribeToNotificationsAction;
|
|
101
78
|
export type NotificationServicesControllerStateChangeEvent = ControllerStateChangeEvent<typeof controllerName, NotificationServicesControllerState>;
|
|
102
79
|
export type NotificationListUpdatedEvent = {
|
|
103
80
|
type: `${typeof controllerName}:notificationsListUpdated`;
|
|
@@ -108,7 +85,7 @@ export type MarkNotificationsAsReadEvent = {
|
|
|
108
85
|
payload: [INotification[]];
|
|
109
86
|
};
|
|
110
87
|
export type Events = NotificationServicesControllerStateChangeEvent | NotificationListUpdatedEvent | MarkNotificationsAsReadEvent;
|
|
111
|
-
export type AllowedEvents = KeyringControllerStateChangeEvent | KeyringControllerLockEvent | KeyringControllerUnlockEvent |
|
|
88
|
+
export type AllowedEvents = KeyringControllerStateChangeEvent | KeyringControllerLockEvent | KeyringControllerUnlockEvent | NotificationServicesPushControllerOnNewNotificationEvent | NotificationServicesPushControllerStateChangeEvent;
|
|
112
89
|
export type NotificationServicesControllerMessenger = RestrictedMessenger<typeof controllerName, Actions | AllowedActions, Events | AllowedEvents, AllowedActions['type'], AllowedEvents['type']>;
|
|
113
90
|
type FeatureAnnouncementEnv = {
|
|
114
91
|
spaceId: string;
|
|
@@ -139,14 +116,13 @@ export default class NotificationServicesController extends BaseController<typeo
|
|
|
139
116
|
};
|
|
140
117
|
});
|
|
141
118
|
/**
|
|
142
|
-
*
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
*
|
|
147
|
-
* @returns The enabled state of MetaMask notifications.
|
|
119
|
+
* Public method to expose enabling push notifications
|
|
120
|
+
*/
|
|
121
|
+
enablePushNotifications(): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Public method to expose disabling push notifications
|
|
148
124
|
*/
|
|
149
|
-
|
|
125
|
+
disablePushNotifications(): Promise<void>;
|
|
150
126
|
checkAccountsPresence(accounts: string[]): Promise<Record<string, boolean>>;
|
|
151
127
|
/**
|
|
152
128
|
* Sets the enabled state of feature announcements.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationServicesController.d.cts","sourceRoot":"","sources":["../../src/NotificationServicesController/NotificationServicesController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAE3B,kCAAkC;AACnC,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAK3D,OAAO,KAAK,EACV,kCAAkC,EAClC,iCAAiC,EACjC,+BAA+B,EAC/B,0BAA0B,EAC1B,4BAA4B,EAC7B,qCAAqC;AACtC,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACtB,0CAA0C;AAK3C,OAAO,EAAE,aAAa,EAAE,4CAAwC;AAIhE,OAAO,KAAK,EACV,aAAa,EACb,4BAA4B,EAE7B,8CAA0C;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,8CAA0C;
|
|
1
|
+
{"version":3,"file":"NotificationServicesController.d.cts","sourceRoot":"","sources":["../../src/NotificationServicesController/NotificationServicesController.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,26 +5,7 @@ import type { AuthenticationController, UserStorageController } from "@metamask/
|
|
|
5
5
|
import { TRIGGER_TYPES } from "./constants/notification-schema.mjs";
|
|
6
6
|
import type { INotification, MarkAsReadNotificationsParam } from "./types/notification/notification.mjs";
|
|
7
7
|
import type { UserStorage } from "./types/user-storage/user-storage.mjs";
|
|
8
|
-
|
|
9
|
-
type: `NotificationServicesPushController:enablePushNotifications`;
|
|
10
|
-
handler: (UUIDs: string[]) => Promise<void>;
|
|
11
|
-
};
|
|
12
|
-
export type NotificationServicesPushControllerDisablePushNotifications = {
|
|
13
|
-
type: `NotificationServicesPushController:disablePushNotifications`;
|
|
14
|
-
handler: (UUIDs: string[]) => Promise<void>;
|
|
15
|
-
};
|
|
16
|
-
export type NotificationServicesPushControllerUpdateTriggerPushNotifications = {
|
|
17
|
-
type: `NotificationServicesPushController:updateTriggerPushNotifications`;
|
|
18
|
-
handler: (UUIDs: string[]) => Promise<void>;
|
|
19
|
-
};
|
|
20
|
-
export type NotificationServicesPushControllerSubscribeToNotifications = {
|
|
21
|
-
type: `NotificationServicesPushController:subscribeToPushNotifications`;
|
|
22
|
-
handler: () => Promise<void>;
|
|
23
|
-
};
|
|
24
|
-
export type NotificationServicesPushControllerOnNewNotification = {
|
|
25
|
-
type: `NotificationServicesPushController:onNewNotifications`;
|
|
26
|
-
payload: [INotification];
|
|
27
|
-
};
|
|
8
|
+
import type { NotificationServicesPushControllerEnablePushNotificationsAction, NotificationServicesPushControllerDisablePushNotificationsAction, NotificationServicesPushControllerUpdateTriggerPushNotificationsAction, NotificationServicesPushControllerSubscribeToNotificationsAction, NotificationServicesPushControllerStateChangeEvent, NotificationServicesPushControllerOnNewNotificationEvent } from "../NotificationServicesPushController/index.mjs";
|
|
28
9
|
declare const controllerName = "NotificationServicesController";
|
|
29
10
|
/**
|
|
30
11
|
* State shape for NotificationServicesController
|
|
@@ -84,10 +65,6 @@ export type NotificationServicesControllerDisableNotificationServices = {
|
|
|
84
65
|
type: `${typeof controllerName}:disableNotificationServices`;
|
|
85
66
|
handler: NotificationServicesController['disableNotificationServices'];
|
|
86
67
|
};
|
|
87
|
-
export type NotificationServicesControllerSelectIsNotificationServicesEnabled = {
|
|
88
|
-
type: `${typeof controllerName}:selectIsNotificationServicesEnabled`;
|
|
89
|
-
handler: NotificationServicesController['selectIsNotificationServicesEnabled'];
|
|
90
|
-
};
|
|
91
68
|
export type NotificationServicesControllerGetNotificationsByType = {
|
|
92
69
|
type: `${typeof controllerName}:getNotificationsByType`;
|
|
93
70
|
handler: NotificationServicesController['getNotificationsByType'];
|
|
@@ -96,8 +73,8 @@ export type NotificationServicesControllerDeleteNotificationsById = {
|
|
|
96
73
|
type: `${typeof controllerName}:deleteNotificationsById`;
|
|
97
74
|
handler: NotificationServicesController['deleteNotificationsById'];
|
|
98
75
|
};
|
|
99
|
-
export type Actions = NotificationServicesControllerGetStateAction | NotificationServicesControllerUpdateMetamaskNotificationsList | NotificationServicesControllerDisableNotificationServices |
|
|
100
|
-
export type AllowedActions = KeyringControllerGetAccountsAction | KeyringControllerGetStateAction | AuthenticationController.AuthenticationControllerGetBearerToken | AuthenticationController.AuthenticationControllerIsSignedIn | AuthenticationController.AuthenticationControllerPerformSignIn | UserStorageController.UserStorageControllerGetStorageKey | UserStorageController.UserStorageControllerPerformGetStorage | UserStorageController.UserStorageControllerPerformSetStorage |
|
|
76
|
+
export type Actions = NotificationServicesControllerGetStateAction | NotificationServicesControllerUpdateMetamaskNotificationsList | NotificationServicesControllerDisableNotificationServices | NotificationServicesControllerGetNotificationsByType | NotificationServicesControllerDeleteNotificationsById;
|
|
77
|
+
export type AllowedActions = KeyringControllerGetAccountsAction | KeyringControllerGetStateAction | AuthenticationController.AuthenticationControllerGetBearerToken | AuthenticationController.AuthenticationControllerIsSignedIn | AuthenticationController.AuthenticationControllerPerformSignIn | UserStorageController.UserStorageControllerGetStorageKey | UserStorageController.UserStorageControllerPerformGetStorage | UserStorageController.UserStorageControllerPerformSetStorage | NotificationServicesPushControllerEnablePushNotificationsAction | NotificationServicesPushControllerDisablePushNotificationsAction | NotificationServicesPushControllerUpdateTriggerPushNotificationsAction | NotificationServicesPushControllerSubscribeToNotificationsAction;
|
|
101
78
|
export type NotificationServicesControllerStateChangeEvent = ControllerStateChangeEvent<typeof controllerName, NotificationServicesControllerState>;
|
|
102
79
|
export type NotificationListUpdatedEvent = {
|
|
103
80
|
type: `${typeof controllerName}:notificationsListUpdated`;
|
|
@@ -108,7 +85,7 @@ export type MarkNotificationsAsReadEvent = {
|
|
|
108
85
|
payload: [INotification[]];
|
|
109
86
|
};
|
|
110
87
|
export type Events = NotificationServicesControllerStateChangeEvent | NotificationListUpdatedEvent | MarkNotificationsAsReadEvent;
|
|
111
|
-
export type AllowedEvents = KeyringControllerStateChangeEvent | KeyringControllerLockEvent | KeyringControllerUnlockEvent |
|
|
88
|
+
export type AllowedEvents = KeyringControllerStateChangeEvent | KeyringControllerLockEvent | KeyringControllerUnlockEvent | NotificationServicesPushControllerOnNewNotificationEvent | NotificationServicesPushControllerStateChangeEvent;
|
|
112
89
|
export type NotificationServicesControllerMessenger = RestrictedMessenger<typeof controllerName, Actions | AllowedActions, Events | AllowedEvents, AllowedActions['type'], AllowedEvents['type']>;
|
|
113
90
|
type FeatureAnnouncementEnv = {
|
|
114
91
|
spaceId: string;
|
|
@@ -139,14 +116,13 @@ export default class NotificationServicesController extends BaseController<typeo
|
|
|
139
116
|
};
|
|
140
117
|
});
|
|
141
118
|
/**
|
|
142
|
-
*
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
*
|
|
147
|
-
* @returns The enabled state of MetaMask notifications.
|
|
119
|
+
* Public method to expose enabling push notifications
|
|
120
|
+
*/
|
|
121
|
+
enablePushNotifications(): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Public method to expose disabling push notifications
|
|
148
124
|
*/
|
|
149
|
-
|
|
125
|
+
disablePushNotifications(): Promise<void>;
|
|
150
126
|
checkAccountsPresence(accounts: string[]): Promise<Record<string, boolean>>;
|
|
151
127
|
/**
|
|
152
128
|
* Sets the enabled state of feature announcements.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationServicesController.d.mts","sourceRoot":"","sources":["../../src/NotificationServicesController/NotificationServicesController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAE3B,kCAAkC;AACnC,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAK3D,OAAO,KAAK,EACV,kCAAkC,EAClC,iCAAiC,EACjC,+BAA+B,EAC/B,0BAA0B,EAC1B,4BAA4B,EAC7B,qCAAqC;AACtC,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACtB,0CAA0C;AAK3C,OAAO,EAAE,aAAa,EAAE,4CAAwC;AAIhE,OAAO,KAAK,EACV,aAAa,EACb,4BAA4B,EAE7B,8CAA0C;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,8CAA0C;
|
|
1
|
+
{"version":3,"file":"NotificationServicesController.d.mts","sourceRoot":"","sources":["../../src/NotificationServicesController/NotificationServicesController.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _NotificationServicesController_instances,
|
|
12
|
+
var _NotificationServicesController_instances, _NotificationServicesController_keyringController, _NotificationServicesController_auth, _NotificationServicesController_storage, _NotificationServicesController_pushNotifications, _NotificationServicesController_accounts, _NotificationServicesController_featureAnnouncementEnv, _NotificationServicesController_registerMessageHandlers, _NotificationServicesController_clearLoadingStates, _NotificationServicesController_assertAuthEnabled, _NotificationServicesController_getValidStorageKeyAndBearerToken, _NotificationServicesController_assertUserStorage, _NotificationServicesController_getUserStorage, _NotificationServicesController_setIsUpdatingMetamaskNotifications, _NotificationServicesController_setIsFetchingMetamaskNotifications, _NotificationServicesController_setIsCheckingAccountsPresence, _NotificationServicesController_updateUpdatingAccountsState, _NotificationServicesController_clearUpdatingAccountsState;
|
|
13
13
|
function $importDefault(module) {
|
|
14
14
|
if (module?.__esModule) {
|
|
15
15
|
return module.default;
|
|
@@ -108,26 +108,20 @@ class NotificationServicesController extends BaseController {
|
|
|
108
108
|
state: { ...defaultState, ...state },
|
|
109
109
|
});
|
|
110
110
|
_NotificationServicesController_instances.add(this);
|
|
111
|
-
// Temporary boolean as push notifications are not yet enabled on mobile
|
|
112
|
-
_NotificationServicesController_isPushIntegrated.set(this, true);
|
|
113
|
-
// Flag to check is notifications have been setup when the browser/extension is initialized.
|
|
114
|
-
// We want to re-initialize push notifications when the browser/extension is refreshed
|
|
115
|
-
// To ensure we subscribe to the most up-to-date notifications
|
|
116
|
-
_NotificationServicesController_isPushNotificationsSetup.set(this, false);
|
|
117
|
-
_NotificationServicesController_isUnlocked.set(this, false);
|
|
118
111
|
_NotificationServicesController_keyringController.set(this, {
|
|
112
|
+
isUnlocked: false,
|
|
119
113
|
setupLockedStateSubscriptions: (onUnlock) => {
|
|
120
114
|
const { isUnlocked } = this.messagingSystem.call('KeyringController:getState');
|
|
121
|
-
|
|
115
|
+
__classPrivateFieldGet(this, _NotificationServicesController_keyringController, "f").isUnlocked = isUnlocked;
|
|
122
116
|
this.messagingSystem.subscribe('KeyringController:unlock', () => {
|
|
123
|
-
|
|
117
|
+
__classPrivateFieldGet(this, _NotificationServicesController_keyringController, "f").isUnlocked = true;
|
|
124
118
|
// messaging system cannot await promises
|
|
125
119
|
// we don't need to wait for a result on this.
|
|
126
120
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
127
121
|
onUnlock();
|
|
128
122
|
});
|
|
129
123
|
this.messagingSystem.subscribe('KeyringController:lock', () => {
|
|
130
|
-
|
|
124
|
+
__classPrivateFieldGet(this, _NotificationServicesController_keyringController, "f").isUnlocked = false;
|
|
131
125
|
});
|
|
132
126
|
},
|
|
133
127
|
});
|
|
@@ -154,13 +148,14 @@ class NotificationServicesController extends BaseController {
|
|
|
154
148
|
},
|
|
155
149
|
});
|
|
156
150
|
_NotificationServicesController_pushNotifications.set(this, {
|
|
151
|
+
// Flag to check is notifications have been setup when the browser/extension is initialized.
|
|
152
|
+
// We want to re-initialize push notifications when the browser/extension is refreshed
|
|
153
|
+
// To ensure we subscribe to the most up-to-date notifications
|
|
154
|
+
isSetup: false,
|
|
157
155
|
subscribeToPushNotifications: async () => {
|
|
158
156
|
await this.messagingSystem.call('NotificationServicesPushController:subscribeToPushNotifications');
|
|
159
157
|
},
|
|
160
158
|
enablePushNotifications: async (UUIDs) => {
|
|
161
|
-
if (!__classPrivateFieldGet(this, _NotificationServicesController_isPushIntegrated, "f")) {
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
159
|
try {
|
|
165
160
|
await this.messagingSystem.call('NotificationServicesPushController:enablePushNotifications', UUIDs);
|
|
166
161
|
}
|
|
@@ -168,21 +163,15 @@ class NotificationServicesController extends BaseController {
|
|
|
168
163
|
log.error('Silently failed to enable push notifications', e);
|
|
169
164
|
}
|
|
170
165
|
},
|
|
171
|
-
disablePushNotifications: async (
|
|
172
|
-
if (!__classPrivateFieldGet(this, _NotificationServicesController_isPushIntegrated, "f")) {
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
166
|
+
disablePushNotifications: async () => {
|
|
175
167
|
try {
|
|
176
|
-
await this.messagingSystem.call('NotificationServicesPushController:disablePushNotifications'
|
|
168
|
+
await this.messagingSystem.call('NotificationServicesPushController:disablePushNotifications');
|
|
177
169
|
}
|
|
178
170
|
catch (e) {
|
|
179
171
|
log.error('Silently failed to disable push notifications', e);
|
|
180
172
|
}
|
|
181
173
|
},
|
|
182
174
|
updatePushNotifications: async (UUIDs) => {
|
|
183
|
-
if (!__classPrivateFieldGet(this, _NotificationServicesController_isPushIntegrated, "f")) {
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
175
|
try {
|
|
187
176
|
await this.messagingSystem.call('NotificationServicesPushController:updateTriggerPushNotifications', UUIDs);
|
|
188
177
|
}
|
|
@@ -191,37 +180,33 @@ class NotificationServicesController extends BaseController {
|
|
|
191
180
|
}
|
|
192
181
|
},
|
|
193
182
|
subscribe: () => {
|
|
194
|
-
if (!__classPrivateFieldGet(this, _NotificationServicesController_isPushIntegrated, "f")) {
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
183
|
this.messagingSystem.subscribe('NotificationServicesPushController:onNewNotifications', (notification) => {
|
|
198
184
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
199
185
|
this.updateMetamaskNotificationsList(notification);
|
|
200
186
|
});
|
|
201
187
|
},
|
|
202
188
|
initializePushNotifications: async () => {
|
|
203
|
-
if (!__classPrivateFieldGet(this, _NotificationServicesController_isPushIntegrated, "f")) {
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
189
|
if (!this.state.isNotificationServicesEnabled) {
|
|
207
190
|
return;
|
|
208
191
|
}
|
|
209
|
-
if (__classPrivateFieldGet(this,
|
|
192
|
+
if (__classPrivateFieldGet(this, _NotificationServicesController_pushNotifications, "f").isSetup) {
|
|
210
193
|
return;
|
|
211
194
|
}
|
|
212
195
|
// If wallet is unlocked, we can create a fresh push subscription
|
|
213
196
|
// Otherwise we can subscribe to original subscription
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
return;
|
|
197
|
+
try {
|
|
198
|
+
if (!__classPrivateFieldGet(this, _NotificationServicesController_keyringController, "f").isUnlocked) {
|
|
199
|
+
throw new Error('Keyring is locked');
|
|
218
200
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
__classPrivateFieldSet(this, _NotificationServicesController_isPushNotificationsSetup, true, "f");
|
|
201
|
+
await this.enablePushNotifications();
|
|
202
|
+
__classPrivateFieldGet(this, _NotificationServicesController_pushNotifications, "f").isSetup = true;
|
|
222
203
|
}
|
|
223
|
-
|
|
224
|
-
await __classPrivateFieldGet(this, _NotificationServicesController_pushNotifications, "f")
|
|
204
|
+
catch {
|
|
205
|
+
await __classPrivateFieldGet(this, _NotificationServicesController_pushNotifications, "f")
|
|
206
|
+
.subscribeToPushNotifications()
|
|
207
|
+
.catch(() => {
|
|
208
|
+
// do nothing
|
|
209
|
+
});
|
|
225
210
|
}
|
|
226
211
|
},
|
|
227
212
|
});
|
|
@@ -269,7 +254,8 @@ class NotificationServicesController extends BaseController {
|
|
|
269
254
|
* @returns result from list accounts
|
|
270
255
|
*/
|
|
271
256
|
initialize: async () => {
|
|
272
|
-
if (__classPrivateFieldGet(this,
|
|
257
|
+
if (__classPrivateFieldGet(this, _NotificationServicesController_keyringController, "f").isUnlocked &&
|
|
258
|
+
!__classPrivateFieldGet(this, _NotificationServicesController_accounts, "f").isNotificationAccountsSetup) {
|
|
273
259
|
await __classPrivateFieldGet(this, _NotificationServicesController_accounts, "f").listAccounts();
|
|
274
260
|
__classPrivateFieldGet(this, _NotificationServicesController_accounts, "f").isNotificationAccountsSetup = true;
|
|
275
261
|
}
|
|
@@ -280,7 +266,9 @@ class NotificationServicesController extends BaseController {
|
|
|
280
266
|
* And call effects to subscribe/unsubscribe to notifications.
|
|
281
267
|
*/
|
|
282
268
|
subscribe: () => {
|
|
283
|
-
this.messagingSystem.subscribe('KeyringController:stateChange',
|
|
269
|
+
this.messagingSystem.subscribe('KeyringController:stateChange',
|
|
270
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
271
|
+
async () => {
|
|
284
272
|
if (!this.state.isNotificationServicesEnabled) {
|
|
285
273
|
return;
|
|
286
274
|
}
|
|
@@ -297,7 +285,6 @@ class NotificationServicesController extends BaseController {
|
|
|
297
285
|
},
|
|
298
286
|
});
|
|
299
287
|
_NotificationServicesController_featureAnnouncementEnv.set(this, void 0);
|
|
300
|
-
__classPrivateFieldSet(this, _NotificationServicesController_isPushIntegrated, env.isPushIntegrated ?? true, "f");
|
|
301
288
|
__classPrivateFieldSet(this, _NotificationServicesController_featureAnnouncementEnv, env.featureAnnouncements, "f");
|
|
302
289
|
__classPrivateFieldGet(this, _NotificationServicesController_instances, "m", _NotificationServicesController_registerMessageHandlers).call(this);
|
|
303
290
|
__classPrivateFieldGet(this, _NotificationServicesController_instances, "m", _NotificationServicesController_clearLoadingStates).call(this);
|
|
@@ -313,15 +300,21 @@ class NotificationServicesController extends BaseController {
|
|
|
313
300
|
__classPrivateFieldGet(this, _NotificationServicesController_pushNotifications, "f").subscribe();
|
|
314
301
|
}
|
|
315
302
|
/**
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
* This method directly returns the boolean value of `isMetamaskNotificationsEnabled`
|
|
319
|
-
* from the controller's state, indicating whether MetaMask notifications are currently enabled.
|
|
320
|
-
*
|
|
321
|
-
* @returns The enabled state of MetaMask notifications.
|
|
303
|
+
* Public method to expose enabling push notifications
|
|
322
304
|
*/
|
|
323
|
-
|
|
324
|
-
|
|
305
|
+
async enablePushNotifications() {
|
|
306
|
+
const storage = await __classPrivateFieldGet(this, _NotificationServicesController_instances, "m", _NotificationServicesController_getUserStorage).call(this);
|
|
307
|
+
if (!storage) {
|
|
308
|
+
throw new Error('Unable to get triggers');
|
|
309
|
+
}
|
|
310
|
+
const uuids = Utils.getAllUUIDs(storage);
|
|
311
|
+
await __classPrivateFieldGet(this, _NotificationServicesController_pushNotifications, "f").enablePushNotifications(uuids);
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Public method to expose disabling push notifications
|
|
315
|
+
*/
|
|
316
|
+
async disablePushNotifications() {
|
|
317
|
+
await __classPrivateFieldGet(this, _NotificationServicesController_pushNotifications, "f").disablePushNotifications();
|
|
325
318
|
}
|
|
326
319
|
async checkAccountsPresence(accounts) {
|
|
327
320
|
try {
|
|
@@ -450,30 +443,25 @@ class NotificationServicesController extends BaseController {
|
|
|
450
443
|
* @throws {Error} If the user is not authenticated or if there is an error during the process.
|
|
451
444
|
*/
|
|
452
445
|
async disableNotificationServices() {
|
|
446
|
+
__classPrivateFieldGet(this, _NotificationServicesController_instances, "m", _NotificationServicesController_setIsUpdatingMetamaskNotifications).call(this, true);
|
|
447
|
+
// Attempt Disable Push Notifications
|
|
453
448
|
try {
|
|
454
|
-
__classPrivateFieldGet(this,
|
|
455
|
-
// Disable Push Notifications
|
|
456
|
-
const userStorage = await __classPrivateFieldGet(this, _NotificationServicesController_instances, "m", _NotificationServicesController_getUserStorage).call(this);
|
|
457
|
-
__classPrivateFieldGet(this, _NotificationServicesController_instances, "m", _NotificationServicesController_assertUserStorage).call(this, userStorage);
|
|
458
|
-
const UUIDs = Utils.getAllUUIDs(userStorage);
|
|
459
|
-
await __classPrivateFieldGet(this, _NotificationServicesController_pushNotifications, "f").disablePushNotifications(UUIDs);
|
|
460
|
-
const snapNotifications = this.state.metamaskNotificationsList.filter((notification) => notification.type === TRIGGER_TYPES.SNAP);
|
|
461
|
-
// Clear Notification States (toggles and list)
|
|
462
|
-
this.update((state) => {
|
|
463
|
-
state.isNotificationServicesEnabled = false;
|
|
464
|
-
state.isFeatureAnnouncementsEnabled = false;
|
|
465
|
-
// reassigning the notifications list with just snaps
|
|
466
|
-
// since the disable shouldn't affect snaps notifications
|
|
467
|
-
state.metamaskNotificationsList = snapNotifications;
|
|
468
|
-
});
|
|
469
|
-
}
|
|
470
|
-
catch (e) {
|
|
471
|
-
log.error('Unable to disable notifications', e);
|
|
472
|
-
throw new Error('Unable to disable notifications');
|
|
449
|
+
await __classPrivateFieldGet(this, _NotificationServicesController_pushNotifications, "f").disablePushNotifications();
|
|
473
450
|
}
|
|
474
|
-
|
|
475
|
-
|
|
451
|
+
catch {
|
|
452
|
+
// Do nothing
|
|
476
453
|
}
|
|
454
|
+
// Update State: remove non-permitted notifications & disable flags
|
|
455
|
+
const snapNotifications = this.state.metamaskNotificationsList.filter((notification) => notification.type === TRIGGER_TYPES.SNAP);
|
|
456
|
+
this.update((state) => {
|
|
457
|
+
state.isNotificationServicesEnabled = false;
|
|
458
|
+
state.isFeatureAnnouncementsEnabled = false;
|
|
459
|
+
// reassigning the notifications list with just snaps
|
|
460
|
+
// since the disable shouldn't affect snaps notifications
|
|
461
|
+
state.metamaskNotificationsList = snapNotifications;
|
|
462
|
+
});
|
|
463
|
+
// Finish Updating State
|
|
464
|
+
__classPrivateFieldGet(this, _NotificationServicesController_instances, "m", _NotificationServicesController_setIsUpdatingMetamaskNotifications).call(this, false);
|
|
477
465
|
}
|
|
478
466
|
/**
|
|
479
467
|
* Deletes on-chain triggers associated with a specific account.
|
|
@@ -506,8 +494,9 @@ class NotificationServicesController extends BaseController {
|
|
|
506
494
|
}
|
|
507
495
|
// Delete these UUIDs (Mutates User Storage)
|
|
508
496
|
await OnChainNotifications.deleteOnChainTriggers(userStorage, storageKey, bearerToken, UUIDs);
|
|
509
|
-
//
|
|
510
|
-
|
|
497
|
+
// Update Push Notifications with new list of IDs
|
|
498
|
+
const remainingTriggerIds = Utils.getAllUUIDs(userStorage);
|
|
499
|
+
await __classPrivateFieldGet(this, _NotificationServicesController_pushNotifications, "f").updatePushNotifications(remainingTriggerIds);
|
|
511
500
|
// Update User Storage
|
|
512
501
|
await __classPrivateFieldGet(this, _NotificationServicesController_storage, "f").setNotificationStorage(JSON.stringify(userStorage));
|
|
513
502
|
return userStorage;
|
|
@@ -798,10 +787,9 @@ class NotificationServicesController extends BaseController {
|
|
|
798
787
|
}
|
|
799
788
|
}
|
|
800
789
|
}
|
|
801
|
-
|
|
790
|
+
_NotificationServicesController_keyringController = new WeakMap(), _NotificationServicesController_auth = new WeakMap(), _NotificationServicesController_storage = new WeakMap(), _NotificationServicesController_pushNotifications = new WeakMap(), _NotificationServicesController_accounts = new WeakMap(), _NotificationServicesController_featureAnnouncementEnv = new WeakMap(), _NotificationServicesController_instances = new WeakSet(), _NotificationServicesController_registerMessageHandlers = function _NotificationServicesController_registerMessageHandlers() {
|
|
802
791
|
this.messagingSystem.registerActionHandler(`${controllerName}:updateMetamaskNotificationsList`, this.updateMetamaskNotificationsList.bind(this));
|
|
803
792
|
this.messagingSystem.registerActionHandler(`${controllerName}:disableNotificationServices`, this.disableNotificationServices.bind(this));
|
|
804
|
-
this.messagingSystem.registerActionHandler(`${controllerName}:selectIsNotificationServicesEnabled`, this.selectIsNotificationServicesEnabled.bind(this));
|
|
805
793
|
this.messagingSystem.registerActionHandler(`${controllerName}:getNotificationsByType`, this.getNotificationsByType.bind(this));
|
|
806
794
|
this.messagingSystem.registerActionHandler(`${controllerName}:deleteNotificationsById`, this.deleteNotificationsById.bind(this));
|
|
807
795
|
}, _NotificationServicesController_clearLoadingStates = function _NotificationServicesController_clearLoadingStates() {
|