@aws-amplify/notifications 0.0.2-unstable.7462
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 +0 -0
- package/LICENSE +201 -0
- package/lib/.tsbuildinfo +3 -0
- package/lib/InAppMessaging/InAppMessaging.d.ts +55 -0
- package/lib/InAppMessaging/InAppMessaging.js +342 -0
- package/lib/InAppMessaging/InAppMessaging.js.map +1 -0
- package/lib/InAppMessaging/Providers/AWSPinpointProvider/index.d.ts +50 -0
- package/lib/InAppMessaging/Providers/AWSPinpointProvider/index.js +482 -0
- package/lib/InAppMessaging/Providers/AWSPinpointProvider/index.js.map +1 -0
- package/lib/InAppMessaging/Providers/AWSPinpointProvider/types.d.ts +25 -0
- package/lib/InAppMessaging/Providers/AWSPinpointProvider/types.js +11 -0
- package/lib/InAppMessaging/Providers/AWSPinpointProvider/types.js.map +1 -0
- package/lib/InAppMessaging/Providers/AWSPinpointProvider/utils.d.ts +18 -0
- package/lib/InAppMessaging/Providers/AWSPinpointProvider/utils.js +254 -0
- package/lib/InAppMessaging/Providers/AWSPinpointProvider/utils.js.map +1 -0
- package/lib/InAppMessaging/Providers/index.d.ts +1 -0
- package/lib/InAppMessaging/Providers/index.js +7 -0
- package/lib/InAppMessaging/Providers/index.js.map +1 -0
- package/lib/InAppMessaging/SessionTracker/SessionTracker.d.ts +9 -0
- package/lib/InAppMessaging/SessionTracker/SessionTracker.js +68 -0
- package/lib/InAppMessaging/SessionTracker/SessionTracker.js.map +1 -0
- package/lib/InAppMessaging/SessionTracker/SessionTracker.native.d.ts +10 -0
- package/lib/InAppMessaging/SessionTracker/SessionTracker.native.js +53 -0
- package/lib/InAppMessaging/SessionTracker/SessionTracker.native.js.map +1 -0
- package/lib/InAppMessaging/SessionTracker/index.d.ts +3 -0
- package/lib/InAppMessaging/SessionTracker/index.js +8 -0
- package/lib/InAppMessaging/SessionTracker/index.js.map +1 -0
- package/lib/InAppMessaging/SessionTracker/types.d.ts +6 -0
- package/lib/InAppMessaging/SessionTracker/types.js +5 -0
- package/lib/InAppMessaging/SessionTracker/types.js.map +1 -0
- package/lib/InAppMessaging/eventListeners.d.ts +3 -0
- package/lib/InAppMessaging/eventListeners.js +28 -0
- package/lib/InAppMessaging/eventListeners.js.map +1 -0
- package/lib/InAppMessaging/index.d.ts +4 -0
- package/lib/InAppMessaging/index.js +11 -0
- package/lib/InAppMessaging/index.js.map +1 -0
- package/lib/InAppMessaging/types.d.ts +99 -0
- package/lib/InAppMessaging/types.js +10 -0
- package/lib/InAppMessaging/types.js.map +1 -0
- package/lib/Notifications.d.ts +20 -0
- package/lib/Notifications.js +46 -0
- package/lib/Notifications.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +9 -0
- package/lib/index.js.map +1 -0
- package/lib/types.d.ts +7 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/lib-esm/.tsbuildinfo +3 -0
- package/lib-esm/InAppMessaging/InAppMessaging.d.ts +55 -0
- package/lib-esm/InAppMessaging/InAppMessaging.js +340 -0
- package/lib-esm/InAppMessaging/InAppMessaging.js.map +1 -0
- package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/index.d.ts +50 -0
- package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/index.js +480 -0
- package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/index.js.map +1 -0
- package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/types.d.ts +25 -0
- package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/types.js +9 -0
- package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/types.js.map +1 -0
- package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/utils.d.ts +18 -0
- package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/utils.js +252 -0
- package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/utils.js.map +1 -0
- package/lib-esm/InAppMessaging/Providers/index.d.ts +1 -0
- package/lib-esm/InAppMessaging/Providers/index.js +4 -0
- package/lib-esm/InAppMessaging/Providers/index.js.map +1 -0
- package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.d.ts +9 -0
- package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.js +65 -0
- package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.js.map +1 -0
- package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.native.d.ts +10 -0
- package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.native.js +50 -0
- package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.native.js.map +1 -0
- package/lib-esm/InAppMessaging/SessionTracker/index.d.ts +3 -0
- package/lib-esm/InAppMessaging/SessionTracker/index.js +5 -0
- package/lib-esm/InAppMessaging/SessionTracker/index.js.map +1 -0
- package/lib-esm/InAppMessaging/SessionTracker/types.d.ts +6 -0
- package/lib-esm/InAppMessaging/SessionTracker/types.js +3 -0
- package/lib-esm/InAppMessaging/SessionTracker/types.js.map +1 -0
- package/lib-esm/InAppMessaging/eventListeners.d.ts +3 -0
- package/lib-esm/InAppMessaging/eventListeners.js +26 -0
- package/lib-esm/InAppMessaging/eventListeners.js.map +1 -0
- package/lib-esm/InAppMessaging/index.d.ts +4 -0
- package/lib-esm/InAppMessaging/index.js +6 -0
- package/lib-esm/InAppMessaging/index.js.map +1 -0
- package/lib-esm/InAppMessaging/types.d.ts +99 -0
- package/lib-esm/InAppMessaging/types.js +8 -0
- package/lib-esm/InAppMessaging/types.js.map +1 -0
- package/lib-esm/Notifications.d.ts +20 -0
- package/lib-esm/Notifications.js +44 -0
- package/lib-esm/Notifications.js.map +1 -0
- package/lib-esm/index.d.ts +3 -0
- package/lib-esm/index.js +5 -0
- package/lib-esm/index.js.map +1 -0
- package/lib-esm/types.d.ts +7 -0
- package/lib-esm/types.js +1 -0
- package/lib-esm/types.js.map +1 -0
- package/package.json +99 -0
- package/src/InAppMessaging/InAppMessaging.ts +330 -0
- package/src/InAppMessaging/Providers/AWSPinpointProvider/index.ts +522 -0
- package/src/InAppMessaging/Providers/AWSPinpointProvider/types.ts +38 -0
- package/src/InAppMessaging/Providers/AWSPinpointProvider/utils.ts +329 -0
- package/src/InAppMessaging/Providers/index.ts +4 -0
- package/src/InAppMessaging/SessionTracker/SessionTracker.native.ts +60 -0
- package/src/InAppMessaging/SessionTracker/SessionTracker.ts +78 -0
- package/src/InAppMessaging/SessionTracker/index.ts +6 -0
- package/src/InAppMessaging/SessionTracker/types.ts +11 -0
- package/src/InAppMessaging/eventListeners.ts +42 -0
- package/src/InAppMessaging/index.ts +20 -0
- package/src/InAppMessaging/types.ts +146 -0
- package/src/Notifications.ts +49 -0
- package/src/index.ts +20 -0
- package/src/types.ts +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/InAppMessaging/types.ts"],"names":[],"mappings":";;AAwIA,IAAY,4BAKX;AALD,WAAY,4BAA4B;IACvC,2EAA2C,CAAA;IAC3C,6EAA6C,CAAA;IAC7C,6EAA6C,CAAA;IAC7C,mFAAmD,CAAA;AACpD,CAAC,EALW,4BAA4B,GAA5B,oCAA4B,KAA5B,oCAA4B,QAKvC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import InAppMessaging from './InAppMessaging';
|
|
2
|
+
import { NotificationsCategory, NotificationsConfig } from './types';
|
|
3
|
+
declare class NotificationsClass {
|
|
4
|
+
private config;
|
|
5
|
+
private inAppMessaging;
|
|
6
|
+
constructor();
|
|
7
|
+
/**
|
|
8
|
+
* Get the name of the module category
|
|
9
|
+
* @returns {string} name of the module category
|
|
10
|
+
*/
|
|
11
|
+
getModuleName(): NotificationsCategory;
|
|
12
|
+
/**
|
|
13
|
+
* Configure Notifications
|
|
14
|
+
* @param {Object} config - Notifications configuration object
|
|
15
|
+
*/
|
|
16
|
+
configure: ({ Notifications: config }?: NotificationsConfig) => Record<string, any>;
|
|
17
|
+
get InAppMessaging(): InAppMessaging;
|
|
18
|
+
}
|
|
19
|
+
declare const Notifications: NotificationsClass;
|
|
20
|
+
export default Notifications;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
var tslib_1 = require("tslib");
|
|
6
|
+
var core_1 = require("@aws-amplify/core");
|
|
7
|
+
var InAppMessaging_1 = tslib_1.__importDefault(require("./InAppMessaging"));
|
|
8
|
+
var logger = new core_1.ConsoleLogger('Notifications');
|
|
9
|
+
var NotificationsClass = /** @class */ (function () {
|
|
10
|
+
function NotificationsClass() {
|
|
11
|
+
var _this = this;
|
|
12
|
+
this.config = {};
|
|
13
|
+
/**
|
|
14
|
+
* Configure Notifications
|
|
15
|
+
* @param {Object} config - Notifications configuration object
|
|
16
|
+
*/
|
|
17
|
+
this.configure = function (_a) {
|
|
18
|
+
var config = (_a === void 0 ? {} : _a).Notifications;
|
|
19
|
+
_this.config = tslib_1.__assign(tslib_1.__assign({}, _this.config), config);
|
|
20
|
+
logger.debug('configure Notifications', config);
|
|
21
|
+
// Configure sub-categories
|
|
22
|
+
_this.inAppMessaging.configure(_this.config.InAppMessaging);
|
|
23
|
+
return _this.config;
|
|
24
|
+
};
|
|
25
|
+
this.inAppMessaging = new InAppMessaging_1.default();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get the name of the module category
|
|
29
|
+
* @returns {string} name of the module category
|
|
30
|
+
*/
|
|
31
|
+
NotificationsClass.prototype.getModuleName = function () {
|
|
32
|
+
return 'Notifications';
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(NotificationsClass.prototype, "InAppMessaging", {
|
|
35
|
+
get: function () {
|
|
36
|
+
return this.inAppMessaging;
|
|
37
|
+
},
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true
|
|
40
|
+
});
|
|
41
|
+
return NotificationsClass;
|
|
42
|
+
}());
|
|
43
|
+
var Notifications = new NotificationsClass();
|
|
44
|
+
exports.default = Notifications;
|
|
45
|
+
core_1.Amplify.register(Notifications);
|
|
46
|
+
//# sourceMappingURL=Notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Notifications.js","sourceRoot":"","sources":["../src/Notifications.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;AAEtC,0CAAqE;AACrE,4EAA8C;AAG9C,IAAM,MAAM,GAAG,IAAI,oBAAM,CAAC,eAAe,CAAC,CAAC;AAE3C;IAIC;QAAA,iBAEC;QALO,WAAM,GAAwB,EAAE,CAAC;QAezC;;;WAGG;QACH,cAAS,GAAG,UAAC,EAAmD;gBAAjD,gDAAqB;YACnC,KAAI,CAAC,MAAM,yCAAQ,KAAI,CAAC,MAAM,GAAK,MAAM,CAAE,CAAC;YAE5C,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;YAEhD,2BAA2B;YAC3B,KAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAE1D,OAAO,KAAI,CAAC,MAAM,CAAC;QACpB,CAAC,CAAC;QAxBD,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAc,EAAE,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,0CAAa,GAAb;QACC,OAAO,eAAe,CAAC;IACxB,CAAC;IAiBD,sBAAI,8CAAc;aAAlB;YACC,OAAO,IAAI,CAAC,cAAc,CAAC;QAC5B,CAAC;;;OAAA;IACF,yBAAC;AAAD,CAAC,AAlCD,IAkCC;AAED,IAAM,aAAa,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAE/C,kBAAe,aAAa,CAAC;AAC7B,cAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { default as Notifications } from './Notifications';
|
|
2
|
+
export { AWSPinpointUserInfo, InAppMessage, InAppMessageAction, InAppMessageButton, InAppMessageContent, InAppMessageImage, InAppMessageInteractionEvent, InAppMessageLayout, InAppMessageStyle, InAppMessageTextAlign, InAppMessagingConfig, InAppMessagingEvent, UserInfo, } from './InAppMessaging';
|
|
3
|
+
export { NotificationsConfig } from './types';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
var Notifications_1 = require("./Notifications");
|
|
6
|
+
exports.Notifications = Notifications_1.default;
|
|
7
|
+
var InAppMessaging_1 = require("./InAppMessaging");
|
|
8
|
+
exports.InAppMessageInteractionEvent = InAppMessaging_1.InAppMessageInteractionEvent;
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC,iDAA2D;AAAlD,wCAAA,OAAO,CAAiB;AACjC,mDAc0B;AAPzB,wDAAA,4BAA4B,CAAA"}
|
package/lib/types.d.ts
ADDED
package/lib/types.js
ADDED
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { InAppMessage, InAppMessageInteractionEvent, InAppMessagingConfig, InAppMessageConflictHandler, InAppMessagingEvent, InAppMessagingProvider, NotificationsSubcategory, OnMessageInteractionEventHandler, OnMessageInteractionEventListener, UserInfo } from './types';
|
|
2
|
+
export default class InAppMessaging {
|
|
3
|
+
private config;
|
|
4
|
+
private conflictHandler;
|
|
5
|
+
private listeningForAnalyticEvents;
|
|
6
|
+
private pluggables;
|
|
7
|
+
private storageSynced;
|
|
8
|
+
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Configure InAppMessaging
|
|
11
|
+
* @param {Object} config - InAppMessaging configuration object
|
|
12
|
+
*/
|
|
13
|
+
configure: ({ listenForAnalyticsEvents, ...config }?: InAppMessagingConfig) => InAppMessagingConfig;
|
|
14
|
+
/**
|
|
15
|
+
* Get the name of this module
|
|
16
|
+
* @returns {string} name of this module
|
|
17
|
+
*/
|
|
18
|
+
getModuleName(): NotificationsSubcategory;
|
|
19
|
+
/**
|
|
20
|
+
* Get a plugin from added plugins
|
|
21
|
+
* @param {string} providerName - the name of the plugin to get
|
|
22
|
+
*/
|
|
23
|
+
getPluggable: (providerName: string) => InAppMessagingProvider;
|
|
24
|
+
/**
|
|
25
|
+
* Add plugin into InAppMessaging
|
|
26
|
+
* @param {InAppMessagingProvider} pluggable - an instance of the plugin
|
|
27
|
+
*/
|
|
28
|
+
addPluggable: (pluggable: InAppMessagingProvider) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Remove a plugin from added plugins
|
|
31
|
+
* @param {string} providerName - the name of the plugin to remove
|
|
32
|
+
*/
|
|
33
|
+
removePluggable: (providerName: string) => void;
|
|
34
|
+
/**
|
|
35
|
+
* Get the map resources that are currently available through the provider
|
|
36
|
+
* @param {string} provider
|
|
37
|
+
* @returns - Array of available map resources
|
|
38
|
+
*/
|
|
39
|
+
syncMessages: () => Promise<void[]>;
|
|
40
|
+
clearMessages: () => Promise<void[]>;
|
|
41
|
+
dispatchEvent: (event: InAppMessagingEvent) => Promise<void>;
|
|
42
|
+
identifyUser: (userId: string, userInfo: UserInfo) => Promise<void[]>;
|
|
43
|
+
onMessageReceived: (handler: OnMessageInteractionEventHandler) => OnMessageInteractionEventListener;
|
|
44
|
+
onMessageDisplayed: (handler: OnMessageInteractionEventHandler) => OnMessageInteractionEventListener;
|
|
45
|
+
onMessageDismissed: (handler: OnMessageInteractionEventHandler) => OnMessageInteractionEventListener;
|
|
46
|
+
onMessageActionTaken: (handler: OnMessageInteractionEventHandler) => OnMessageInteractionEventListener;
|
|
47
|
+
notifyMessageInteraction: (message: InAppMessage, event: InAppMessageInteractionEvent) => void;
|
|
48
|
+
setConflictHandler: (handler: InAppMessageConflictHandler) => void;
|
|
49
|
+
private analyticsListener;
|
|
50
|
+
private syncStorage;
|
|
51
|
+
private getMessages;
|
|
52
|
+
private setMessages;
|
|
53
|
+
private removeMessages;
|
|
54
|
+
private defaultConflictHandler;
|
|
55
|
+
}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { __assign, __awaiter, __generator, __rest } from "tslib";
|
|
4
|
+
import { ConsoleLogger as Logger, Hub, StorageHelper, } from '@aws-amplify/core';
|
|
5
|
+
import flatten from 'lodash/flatten';
|
|
6
|
+
import { AWSPinpointProvider } from './Providers';
|
|
7
|
+
import { addMessageInteractionEventListener, notifyMessageInteractionEventListeners, } from './eventListeners';
|
|
8
|
+
import { InAppMessageInteractionEvent, } from './types';
|
|
9
|
+
var STORAGE_KEY_SUFFIX = '_inAppMessages';
|
|
10
|
+
var logger = new Logger('Notifications.InAppMessaging');
|
|
11
|
+
var InAppMessaging = /** @class */ (function () {
|
|
12
|
+
function InAppMessaging() {
|
|
13
|
+
var _this = this;
|
|
14
|
+
this.config = {};
|
|
15
|
+
this.listeningForAnalyticEvents = false;
|
|
16
|
+
this.pluggables = [];
|
|
17
|
+
this.storageSynced = false;
|
|
18
|
+
/**
|
|
19
|
+
* Configure InAppMessaging
|
|
20
|
+
* @param {Object} config - InAppMessaging configuration object
|
|
21
|
+
*/
|
|
22
|
+
this.configure = function (_a) {
|
|
23
|
+
if (_a === void 0) { _a = {}; }
|
|
24
|
+
var _b = _a.listenForAnalyticsEvents, listenForAnalyticsEvents = _b === void 0 ? true : _b, config = __rest(_a, ["listenForAnalyticsEvents"]);
|
|
25
|
+
_this.config = __assign(__assign({}, _this.config), config);
|
|
26
|
+
logger.debug('configure InAppMessaging', _this.config);
|
|
27
|
+
_this.pluggables.forEach(function (pluggable) {
|
|
28
|
+
pluggable.configure(_this.config[pluggable.getProviderName()]);
|
|
29
|
+
});
|
|
30
|
+
if (_this.pluggables.length === 0) {
|
|
31
|
+
_this.addPluggable(new AWSPinpointProvider());
|
|
32
|
+
}
|
|
33
|
+
if (listenForAnalyticsEvents && !_this.listeningForAnalyticEvents) {
|
|
34
|
+
Hub.listen('analytics', _this.analyticsListener);
|
|
35
|
+
_this.listeningForAnalyticEvents = true;
|
|
36
|
+
}
|
|
37
|
+
return _this.config;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Get a plugin from added plugins
|
|
41
|
+
* @param {string} providerName - the name of the plugin to get
|
|
42
|
+
*/
|
|
43
|
+
this.getPluggable = function (providerName) {
|
|
44
|
+
var _a;
|
|
45
|
+
var pluggable = (_a = _this.pluggables.find(function (pluggable) { return pluggable.getProviderName() === providerName; })) !== null && _a !== void 0 ? _a : null;
|
|
46
|
+
if (!pluggable) {
|
|
47
|
+
logger.debug("No plugin found with name " + providerName);
|
|
48
|
+
}
|
|
49
|
+
return pluggable;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Add plugin into InAppMessaging
|
|
53
|
+
* @param {InAppMessagingProvider} pluggable - an instance of the plugin
|
|
54
|
+
*/
|
|
55
|
+
this.addPluggable = function (pluggable) {
|
|
56
|
+
if (pluggable &&
|
|
57
|
+
pluggable.getCategory() === 'Notifications' &&
|
|
58
|
+
pluggable.getSubCategory() === 'InAppMessaging') {
|
|
59
|
+
if (_this.getPluggable(pluggable.getProviderName())) {
|
|
60
|
+
throw new Error("Pluggable " + pluggable.getProviderName() + " has already been added.");
|
|
61
|
+
}
|
|
62
|
+
_this.pluggables.push(pluggable);
|
|
63
|
+
pluggable.configure(_this.config[pluggable.getProviderName()]);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Remove a plugin from added plugins
|
|
68
|
+
* @param {string} providerName - the name of the plugin to remove
|
|
69
|
+
*/
|
|
70
|
+
this.removePluggable = function (providerName) {
|
|
71
|
+
var index = _this.pluggables.findIndex(function (pluggable) { return pluggable.getProviderName() === providerName; });
|
|
72
|
+
if (index === -1) {
|
|
73
|
+
logger.debug("No plugin found with name " + providerName);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
_this.pluggables.splice(index, 1);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Get the map resources that are currently available through the provider
|
|
81
|
+
* @param {string} provider
|
|
82
|
+
* @returns - Array of available map resources
|
|
83
|
+
*/
|
|
84
|
+
this.syncMessages = function () {
|
|
85
|
+
return Promise.all(_this.pluggables.map(function (pluggable) { return __awaiter(_this, void 0, void 0, function () {
|
|
86
|
+
var messages, key, err_1;
|
|
87
|
+
return __generator(this, function (_a) {
|
|
88
|
+
switch (_a.label) {
|
|
89
|
+
case 0:
|
|
90
|
+
_a.trys.push([0, 3, , 4]);
|
|
91
|
+
return [4 /*yield*/, pluggable.getInAppMessages()];
|
|
92
|
+
case 1:
|
|
93
|
+
messages = _a.sent();
|
|
94
|
+
key = "" + pluggable.getProviderName() + STORAGE_KEY_SUFFIX;
|
|
95
|
+
return [4 /*yield*/, this.setMessages(key, messages)];
|
|
96
|
+
case 2:
|
|
97
|
+
_a.sent();
|
|
98
|
+
return [3 /*break*/, 4];
|
|
99
|
+
case 3:
|
|
100
|
+
err_1 = _a.sent();
|
|
101
|
+
logger.error('Failed to sync messages', err_1);
|
|
102
|
+
throw err_1;
|
|
103
|
+
case 4: return [2 /*return*/];
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}); }));
|
|
107
|
+
};
|
|
108
|
+
this.clearMessages = function () {
|
|
109
|
+
return Promise.all(_this.pluggables.map(function (pluggable) { return __awaiter(_this, void 0, void 0, function () {
|
|
110
|
+
var key;
|
|
111
|
+
return __generator(this, function (_a) {
|
|
112
|
+
switch (_a.label) {
|
|
113
|
+
case 0:
|
|
114
|
+
key = "" + pluggable.getProviderName() + STORAGE_KEY_SUFFIX;
|
|
115
|
+
return [4 /*yield*/, this.removeMessages(key)];
|
|
116
|
+
case 1:
|
|
117
|
+
_a.sent();
|
|
118
|
+
return [2 /*return*/];
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}); }));
|
|
122
|
+
};
|
|
123
|
+
this.dispatchEvent = function (event) { return __awaiter(_this, void 0, void 0, function () {
|
|
124
|
+
var messages, flattenedMessages;
|
|
125
|
+
var _this = this;
|
|
126
|
+
return __generator(this, function (_a) {
|
|
127
|
+
switch (_a.label) {
|
|
128
|
+
case 0: return [4 /*yield*/, Promise.all(this.pluggables.map(function (pluggable) { return __awaiter(_this, void 0, void 0, function () {
|
|
129
|
+
var key, messages;
|
|
130
|
+
return __generator(this, function (_a) {
|
|
131
|
+
switch (_a.label) {
|
|
132
|
+
case 0:
|
|
133
|
+
key = "" + pluggable.getProviderName() + STORAGE_KEY_SUFFIX;
|
|
134
|
+
return [4 /*yield*/, this.getMessages(key)];
|
|
135
|
+
case 1:
|
|
136
|
+
messages = _a.sent();
|
|
137
|
+
return [2 /*return*/, pluggable.processInAppMessages(messages, event)];
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}); }))];
|
|
141
|
+
case 1:
|
|
142
|
+
messages = _a.sent();
|
|
143
|
+
flattenedMessages = flatten(messages);
|
|
144
|
+
if (flattenedMessages.length) {
|
|
145
|
+
notifyMessageInteractionEventListeners(this.conflictHandler(flattenedMessages), InAppMessageInteractionEvent.MESSAGE_RECEIVED);
|
|
146
|
+
}
|
|
147
|
+
return [2 /*return*/];
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}); };
|
|
151
|
+
this.identifyUser = function (userId, userInfo) {
|
|
152
|
+
return Promise.all(_this.pluggables.map(function (pluggable) { return __awaiter(_this, void 0, void 0, function () {
|
|
153
|
+
var err_2;
|
|
154
|
+
return __generator(this, function (_a) {
|
|
155
|
+
switch (_a.label) {
|
|
156
|
+
case 0:
|
|
157
|
+
_a.trys.push([0, 2, , 3]);
|
|
158
|
+
return [4 /*yield*/, pluggable.identifyUser(userId, userInfo)];
|
|
159
|
+
case 1:
|
|
160
|
+
_a.sent();
|
|
161
|
+
return [3 /*break*/, 3];
|
|
162
|
+
case 2:
|
|
163
|
+
err_2 = _a.sent();
|
|
164
|
+
logger.error('Failed to identify user', err_2);
|
|
165
|
+
throw err_2;
|
|
166
|
+
case 3: return [2 /*return*/];
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}); }));
|
|
170
|
+
};
|
|
171
|
+
this.onMessageReceived = function (handler) {
|
|
172
|
+
return addMessageInteractionEventListener(handler, InAppMessageInteractionEvent.MESSAGE_RECEIVED);
|
|
173
|
+
};
|
|
174
|
+
this.onMessageDisplayed = function (handler) {
|
|
175
|
+
return addMessageInteractionEventListener(handler, InAppMessageInteractionEvent.MESSAGE_DISPLAYED);
|
|
176
|
+
};
|
|
177
|
+
this.onMessageDismissed = function (handler) {
|
|
178
|
+
return addMessageInteractionEventListener(handler, InAppMessageInteractionEvent.MESSAGE_DISMISSED);
|
|
179
|
+
};
|
|
180
|
+
this.onMessageActionTaken = function (handler) {
|
|
181
|
+
return addMessageInteractionEventListener(handler, InAppMessageInteractionEvent.MESSAGE_ACTION_TAKEN);
|
|
182
|
+
};
|
|
183
|
+
this.notifyMessageInteraction = function (message, event) {
|
|
184
|
+
notifyMessageInteractionEventListeners(message, event);
|
|
185
|
+
};
|
|
186
|
+
this.setConflictHandler = function (handler) {
|
|
187
|
+
_this.conflictHandler = handler;
|
|
188
|
+
};
|
|
189
|
+
this.analyticsListener = function (_a) {
|
|
190
|
+
var payload = _a.payload;
|
|
191
|
+
var event = payload.event, data = payload.data;
|
|
192
|
+
switch (event) {
|
|
193
|
+
case 'record': {
|
|
194
|
+
_this.dispatchEvent(data);
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
default:
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
this.syncStorage = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
202
|
+
var storage, err_3;
|
|
203
|
+
return __generator(this, function (_a) {
|
|
204
|
+
switch (_a.label) {
|
|
205
|
+
case 0:
|
|
206
|
+
storage = this.config.storage;
|
|
207
|
+
_a.label = 1;
|
|
208
|
+
case 1:
|
|
209
|
+
_a.trys.push([1, 4, , 5]);
|
|
210
|
+
if (!(typeof storage.sync === 'function')) return [3 /*break*/, 3];
|
|
211
|
+
return [4 /*yield*/, storage.sync()];
|
|
212
|
+
case 2:
|
|
213
|
+
_a.sent();
|
|
214
|
+
_a.label = 3;
|
|
215
|
+
case 3:
|
|
216
|
+
this.storageSynced = true;
|
|
217
|
+
return [3 /*break*/, 5];
|
|
218
|
+
case 4:
|
|
219
|
+
err_3 = _a.sent();
|
|
220
|
+
logger.error('Failed to sync storage', err_3);
|
|
221
|
+
return [3 /*break*/, 5];
|
|
222
|
+
case 5: return [2 /*return*/];
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
}); };
|
|
226
|
+
this.getMessages = function (key) { return __awaiter(_this, void 0, void 0, function () {
|
|
227
|
+
var storage, storedMessages, err_4;
|
|
228
|
+
return __generator(this, function (_a) {
|
|
229
|
+
switch (_a.label) {
|
|
230
|
+
case 0:
|
|
231
|
+
_a.trys.push([0, 3, , 4]);
|
|
232
|
+
if (!!this.storageSynced) return [3 /*break*/, 2];
|
|
233
|
+
return [4 /*yield*/, this.syncStorage()];
|
|
234
|
+
case 1:
|
|
235
|
+
_a.sent();
|
|
236
|
+
_a.label = 2;
|
|
237
|
+
case 2:
|
|
238
|
+
storage = this.config.storage;
|
|
239
|
+
storedMessages = storage.getItem(key);
|
|
240
|
+
return [2 /*return*/, storedMessages ? JSON.parse(storedMessages) : []];
|
|
241
|
+
case 3:
|
|
242
|
+
err_4 = _a.sent();
|
|
243
|
+
logger.error('Failed to retrieve in-app messages from storage', err_4);
|
|
244
|
+
return [3 /*break*/, 4];
|
|
245
|
+
case 4: return [2 /*return*/];
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
}); };
|
|
249
|
+
this.setMessages = function (key, messages) { return __awaiter(_this, void 0, void 0, function () {
|
|
250
|
+
var storage, err_5;
|
|
251
|
+
return __generator(this, function (_a) {
|
|
252
|
+
switch (_a.label) {
|
|
253
|
+
case 0:
|
|
254
|
+
if (!messages) {
|
|
255
|
+
return [2 /*return*/];
|
|
256
|
+
}
|
|
257
|
+
_a.label = 1;
|
|
258
|
+
case 1:
|
|
259
|
+
_a.trys.push([1, 4, , 5]);
|
|
260
|
+
if (!!this.storageSynced) return [3 /*break*/, 3];
|
|
261
|
+
return [4 /*yield*/, this.syncStorage()];
|
|
262
|
+
case 2:
|
|
263
|
+
_a.sent();
|
|
264
|
+
_a.label = 3;
|
|
265
|
+
case 3:
|
|
266
|
+
storage = this.config.storage;
|
|
267
|
+
storage.setItem(key, JSON.stringify(messages));
|
|
268
|
+
return [3 /*break*/, 5];
|
|
269
|
+
case 4:
|
|
270
|
+
err_5 = _a.sent();
|
|
271
|
+
logger.error('Failed to store in-app messages', err_5);
|
|
272
|
+
return [3 /*break*/, 5];
|
|
273
|
+
case 5: return [2 /*return*/];
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
}); };
|
|
277
|
+
this.removeMessages = function (key) { return __awaiter(_this, void 0, void 0, function () {
|
|
278
|
+
var storage, err_6;
|
|
279
|
+
return __generator(this, function (_a) {
|
|
280
|
+
switch (_a.label) {
|
|
281
|
+
case 0:
|
|
282
|
+
_a.trys.push([0, 3, , 4]);
|
|
283
|
+
if (!!this.storageSynced) return [3 /*break*/, 2];
|
|
284
|
+
return [4 /*yield*/, this.syncStorage()];
|
|
285
|
+
case 1:
|
|
286
|
+
_a.sent();
|
|
287
|
+
_a.label = 2;
|
|
288
|
+
case 2:
|
|
289
|
+
storage = this.config.storage;
|
|
290
|
+
storage.removeItem(key);
|
|
291
|
+
return [3 /*break*/, 4];
|
|
292
|
+
case 3:
|
|
293
|
+
err_6 = _a.sent();
|
|
294
|
+
logger.error('Failed to remove in-app messages from storage', err_6);
|
|
295
|
+
return [3 /*break*/, 4];
|
|
296
|
+
case 4: return [2 /*return*/];
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
}); };
|
|
300
|
+
this.defaultConflictHandler = function (messages) {
|
|
301
|
+
// default behavior is to return the message closest to expiry
|
|
302
|
+
// this function assumes that messages processed by providers already filters out expired messages
|
|
303
|
+
var sorted = messages.sort(function (a, b) {
|
|
304
|
+
var _a, _b;
|
|
305
|
+
var endDateA = (_a = a.metadata) === null || _a === void 0 ? void 0 : _a.endDate;
|
|
306
|
+
var endDateB = (_b = b.metadata) === null || _b === void 0 ? void 0 : _b.endDate;
|
|
307
|
+
// if both message end dates are falsy or have the same date string, treat them as equal
|
|
308
|
+
if (endDateA === endDateB) {
|
|
309
|
+
return 0;
|
|
310
|
+
}
|
|
311
|
+
// if only message A has an end date, treat it as closer to expiry
|
|
312
|
+
if (endDateA && !endDateB) {
|
|
313
|
+
return -1;
|
|
314
|
+
}
|
|
315
|
+
// if only message B has an end date, treat it as closer to expiry
|
|
316
|
+
if (!endDateA && endDateB) {
|
|
317
|
+
return 1;
|
|
318
|
+
}
|
|
319
|
+
// otherwise, compare them
|
|
320
|
+
return new Date(endDateA) < new Date(endDateB) ? -1 : 1;
|
|
321
|
+
});
|
|
322
|
+
// always return the top sorted
|
|
323
|
+
return sorted[0];
|
|
324
|
+
};
|
|
325
|
+
this.config = {
|
|
326
|
+
storage: new StorageHelper().getStorage(),
|
|
327
|
+
};
|
|
328
|
+
this.setConflictHandler(this.defaultConflictHandler);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Get the name of this module
|
|
332
|
+
* @returns {string} name of this module
|
|
333
|
+
*/
|
|
334
|
+
InAppMessaging.prototype.getModuleName = function () {
|
|
335
|
+
return 'InAppMessaging';
|
|
336
|
+
};
|
|
337
|
+
return InAppMessaging;
|
|
338
|
+
}());
|
|
339
|
+
export default InAppMessaging;
|
|
340
|
+
//# sourceMappingURL=InAppMessaging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InAppMessaging.js","sourceRoot":"","sources":["../../src/InAppMessaging/InAppMessaging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { NotificationsCategory } from '../../../types';
|
|
2
|
+
import { InAppMessage, InAppMessagingEvent, InAppMessagingProvider, NotificationsSubcategory, UserInfo } from '../../types';
|
|
3
|
+
export default class AWSPinpointProvider implements InAppMessagingProvider {
|
|
4
|
+
static category: NotificationsCategory;
|
|
5
|
+
static subCategory: NotificationsSubcategory;
|
|
6
|
+
static providerName: string;
|
|
7
|
+
private clientInfo;
|
|
8
|
+
private config;
|
|
9
|
+
private configured;
|
|
10
|
+
private endpointInitialized;
|
|
11
|
+
private initialized;
|
|
12
|
+
private sessionMessageCountMap;
|
|
13
|
+
private sessionTracker;
|
|
14
|
+
constructor();
|
|
15
|
+
/**
|
|
16
|
+
* get the category of the plugin
|
|
17
|
+
*/
|
|
18
|
+
getCategory(): "Notifications";
|
|
19
|
+
/**
|
|
20
|
+
* get the sub-category of the plugin
|
|
21
|
+
*/
|
|
22
|
+
getSubCategory(): "InAppMessaging";
|
|
23
|
+
/**
|
|
24
|
+
* get provider name of the plugin
|
|
25
|
+
*/
|
|
26
|
+
getProviderName(): string;
|
|
27
|
+
configure: (config?: {}) => object;
|
|
28
|
+
getInAppMessages: () => Promise<any>;
|
|
29
|
+
processInAppMessages: (messages: any[], event: InAppMessagingEvent) => Promise<InAppMessage[]>;
|
|
30
|
+
identifyUser: (userId: string, userInfo: UserInfo) => Promise<void>;
|
|
31
|
+
private init;
|
|
32
|
+
private initPinpointClient;
|
|
33
|
+
private getEndpointId;
|
|
34
|
+
private updateEndpoint;
|
|
35
|
+
private getCredentials;
|
|
36
|
+
private sessionStateChangeHandler;
|
|
37
|
+
private isBelowCap;
|
|
38
|
+
private getSessionCount;
|
|
39
|
+
private getDailyCount;
|
|
40
|
+
private getTotalCountMap;
|
|
41
|
+
private getTotalCount;
|
|
42
|
+
private getMessageCounts;
|
|
43
|
+
private setSessionCount;
|
|
44
|
+
private setDailyCount;
|
|
45
|
+
private setTotalCountMap;
|
|
46
|
+
private setTotalCount;
|
|
47
|
+
private incrementCounts;
|
|
48
|
+
private normalizeMessages;
|
|
49
|
+
private recordMessageEvent;
|
|
50
|
+
}
|