@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.
Files changed (110) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/LICENSE +201 -0
  3. package/lib/.tsbuildinfo +3 -0
  4. package/lib/InAppMessaging/InAppMessaging.d.ts +55 -0
  5. package/lib/InAppMessaging/InAppMessaging.js +342 -0
  6. package/lib/InAppMessaging/InAppMessaging.js.map +1 -0
  7. package/lib/InAppMessaging/Providers/AWSPinpointProvider/index.d.ts +50 -0
  8. package/lib/InAppMessaging/Providers/AWSPinpointProvider/index.js +482 -0
  9. package/lib/InAppMessaging/Providers/AWSPinpointProvider/index.js.map +1 -0
  10. package/lib/InAppMessaging/Providers/AWSPinpointProvider/types.d.ts +25 -0
  11. package/lib/InAppMessaging/Providers/AWSPinpointProvider/types.js +11 -0
  12. package/lib/InAppMessaging/Providers/AWSPinpointProvider/types.js.map +1 -0
  13. package/lib/InAppMessaging/Providers/AWSPinpointProvider/utils.d.ts +18 -0
  14. package/lib/InAppMessaging/Providers/AWSPinpointProvider/utils.js +254 -0
  15. package/lib/InAppMessaging/Providers/AWSPinpointProvider/utils.js.map +1 -0
  16. package/lib/InAppMessaging/Providers/index.d.ts +1 -0
  17. package/lib/InAppMessaging/Providers/index.js +7 -0
  18. package/lib/InAppMessaging/Providers/index.js.map +1 -0
  19. package/lib/InAppMessaging/SessionTracker/SessionTracker.d.ts +9 -0
  20. package/lib/InAppMessaging/SessionTracker/SessionTracker.js +68 -0
  21. package/lib/InAppMessaging/SessionTracker/SessionTracker.js.map +1 -0
  22. package/lib/InAppMessaging/SessionTracker/SessionTracker.native.d.ts +10 -0
  23. package/lib/InAppMessaging/SessionTracker/SessionTracker.native.js +53 -0
  24. package/lib/InAppMessaging/SessionTracker/SessionTracker.native.js.map +1 -0
  25. package/lib/InAppMessaging/SessionTracker/index.d.ts +3 -0
  26. package/lib/InAppMessaging/SessionTracker/index.js +8 -0
  27. package/lib/InAppMessaging/SessionTracker/index.js.map +1 -0
  28. package/lib/InAppMessaging/SessionTracker/types.d.ts +6 -0
  29. package/lib/InAppMessaging/SessionTracker/types.js +5 -0
  30. package/lib/InAppMessaging/SessionTracker/types.js.map +1 -0
  31. package/lib/InAppMessaging/eventListeners.d.ts +3 -0
  32. package/lib/InAppMessaging/eventListeners.js +28 -0
  33. package/lib/InAppMessaging/eventListeners.js.map +1 -0
  34. package/lib/InAppMessaging/index.d.ts +4 -0
  35. package/lib/InAppMessaging/index.js +11 -0
  36. package/lib/InAppMessaging/index.js.map +1 -0
  37. package/lib/InAppMessaging/types.d.ts +99 -0
  38. package/lib/InAppMessaging/types.js +10 -0
  39. package/lib/InAppMessaging/types.js.map +1 -0
  40. package/lib/Notifications.d.ts +20 -0
  41. package/lib/Notifications.js +46 -0
  42. package/lib/Notifications.js.map +1 -0
  43. package/lib/index.d.ts +3 -0
  44. package/lib/index.js +9 -0
  45. package/lib/index.js.map +1 -0
  46. package/lib/types.d.ts +7 -0
  47. package/lib/types.js +3 -0
  48. package/lib/types.js.map +1 -0
  49. package/lib-esm/.tsbuildinfo +3 -0
  50. package/lib-esm/InAppMessaging/InAppMessaging.d.ts +55 -0
  51. package/lib-esm/InAppMessaging/InAppMessaging.js +340 -0
  52. package/lib-esm/InAppMessaging/InAppMessaging.js.map +1 -0
  53. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/index.d.ts +50 -0
  54. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/index.js +480 -0
  55. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/index.js.map +1 -0
  56. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/types.d.ts +25 -0
  57. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/types.js +9 -0
  58. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/types.js.map +1 -0
  59. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/utils.d.ts +18 -0
  60. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/utils.js +252 -0
  61. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/utils.js.map +1 -0
  62. package/lib-esm/InAppMessaging/Providers/index.d.ts +1 -0
  63. package/lib-esm/InAppMessaging/Providers/index.js +4 -0
  64. package/lib-esm/InAppMessaging/Providers/index.js.map +1 -0
  65. package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.d.ts +9 -0
  66. package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.js +65 -0
  67. package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.js.map +1 -0
  68. package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.native.d.ts +10 -0
  69. package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.native.js +50 -0
  70. package/lib-esm/InAppMessaging/SessionTracker/SessionTracker.native.js.map +1 -0
  71. package/lib-esm/InAppMessaging/SessionTracker/index.d.ts +3 -0
  72. package/lib-esm/InAppMessaging/SessionTracker/index.js +5 -0
  73. package/lib-esm/InAppMessaging/SessionTracker/index.js.map +1 -0
  74. package/lib-esm/InAppMessaging/SessionTracker/types.d.ts +6 -0
  75. package/lib-esm/InAppMessaging/SessionTracker/types.js +3 -0
  76. package/lib-esm/InAppMessaging/SessionTracker/types.js.map +1 -0
  77. package/lib-esm/InAppMessaging/eventListeners.d.ts +3 -0
  78. package/lib-esm/InAppMessaging/eventListeners.js +26 -0
  79. package/lib-esm/InAppMessaging/eventListeners.js.map +1 -0
  80. package/lib-esm/InAppMessaging/index.d.ts +4 -0
  81. package/lib-esm/InAppMessaging/index.js +6 -0
  82. package/lib-esm/InAppMessaging/index.js.map +1 -0
  83. package/lib-esm/InAppMessaging/types.d.ts +99 -0
  84. package/lib-esm/InAppMessaging/types.js +8 -0
  85. package/lib-esm/InAppMessaging/types.js.map +1 -0
  86. package/lib-esm/Notifications.d.ts +20 -0
  87. package/lib-esm/Notifications.js +44 -0
  88. package/lib-esm/Notifications.js.map +1 -0
  89. package/lib-esm/index.d.ts +3 -0
  90. package/lib-esm/index.js +5 -0
  91. package/lib-esm/index.js.map +1 -0
  92. package/lib-esm/types.d.ts +7 -0
  93. package/lib-esm/types.js +1 -0
  94. package/lib-esm/types.js.map +1 -0
  95. package/package.json +99 -0
  96. package/src/InAppMessaging/InAppMessaging.ts +330 -0
  97. package/src/InAppMessaging/Providers/AWSPinpointProvider/index.ts +522 -0
  98. package/src/InAppMessaging/Providers/AWSPinpointProvider/types.ts +38 -0
  99. package/src/InAppMessaging/Providers/AWSPinpointProvider/utils.ts +329 -0
  100. package/src/InAppMessaging/Providers/index.ts +4 -0
  101. package/src/InAppMessaging/SessionTracker/SessionTracker.native.ts +60 -0
  102. package/src/InAppMessaging/SessionTracker/SessionTracker.ts +78 -0
  103. package/src/InAppMessaging/SessionTracker/index.ts +6 -0
  104. package/src/InAppMessaging/SessionTracker/types.ts +11 -0
  105. package/src/InAppMessaging/eventListeners.ts +42 -0
  106. package/src/InAppMessaging/index.ts +20 -0
  107. package/src/InAppMessaging/types.ts +146 -0
  108. package/src/Notifications.ts +49 -0
  109. package/src/index.ts +20 -0
  110. 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
@@ -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
@@ -0,0 +1,7 @@
1
+ import { InAppMessagingConfig } from './InAppMessaging';
2
+ export declare type NotificationsCategory = 'Notifications';
3
+ export interface NotificationsConfig extends Record<any, any> {
4
+ Notifications?: {
5
+ InAppMessaging?: InAppMessagingConfig;
6
+ };
7
+ }
package/lib/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ {
2
+ "version": "3.8.3"
3
+ }
@@ -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
+ }