@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,480 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { __assign, __awaiter, __generator } from "tslib";
4
+ import { ClientDevice, Credentials, getAmplifyUserAgent, StorageHelper, transferKeyToUpperCase, } from '@aws-amplify/core';
5
+ import { Cache } from '@aws-amplify/cache';
6
+ import { ChannelType, GetInAppMessagesCommand, UpdateEndpointCommand, PinpointClient, } from '@aws-sdk/client-pinpoint';
7
+ import { v4 as uuid } from 'uuid';
8
+ import { addMessageInteractionEventListener } from '../../eventListeners';
9
+ import SessionTracker from '../../SessionTracker';
10
+ import { InAppMessageInteractionEvent, } from '../../types';
11
+ import { AWSPinpointMessageEvent, } from './types';
12
+ import { clearMemo, dispatchInAppMessagingEvent, extractContent, extractMetadata, getStartOfDay, interpretLayout, isBeforeEndDate, logger, matchesAttributes, matchesEventType, matchesMetrics, recordAnalyticsEvent, } from './utils';
13
+ var MESSAGE_DAILY_COUNT_KEY = 'pinpointProvider_inAppMessages_dailyCount';
14
+ var MESSAGE_TOTAL_COUNT_KEY = 'pinpointProvider_inAppMessages_totalCount';
15
+ var AWSPinpointProvider = /** @class */ (function () {
16
+ function AWSPinpointProvider() {
17
+ var _this = this;
18
+ var _a;
19
+ this.config = {};
20
+ this.configured = false;
21
+ this.endpointInitialized = false;
22
+ this.initialized = false;
23
+ this.configure = function (config) {
24
+ if (config === void 0) { config = {}; }
25
+ _this.config = __assign(__assign({}, _this.config), config);
26
+ logger.debug('configure AWSPinpointProvider', _this.config);
27
+ // some configuration steps should not be re-run even if provider is re-configured for some reason
28
+ if (!_this.configured) {
29
+ _this.sessionTracker = new SessionTracker(_this.sessionStateChangeHandler);
30
+ _this.sessionTracker.start();
31
+ // wire up default Pinpoint message event handling
32
+ addMessageInteractionEventListener(function (message) {
33
+ _this.recordMessageEvent(message, AWSPinpointMessageEvent.MESSAGE_DISPLAYED);
34
+ }, InAppMessageInteractionEvent.MESSAGE_DISPLAYED);
35
+ addMessageInteractionEventListener(function (message) {
36
+ _this.recordMessageEvent(message, AWSPinpointMessageEvent.MESSAGE_DISMISSED);
37
+ }, InAppMessageInteractionEvent.MESSAGE_DISMISSED);
38
+ addMessageInteractionEventListener(function (message) {
39
+ _this.recordMessageEvent(message, AWSPinpointMessageEvent.MESSAGE_ACTION_TAKEN);
40
+ }, InAppMessageInteractionEvent.MESSAGE_ACTION_TAKEN);
41
+ }
42
+ _this.configured = true;
43
+ dispatchInAppMessagingEvent('pinpointProvider_configured', null);
44
+ return _this.config;
45
+ };
46
+ this.getInAppMessages = function () { return __awaiter(_this, void 0, void 0, function () {
47
+ var _a, appId, endpointId, pinpointClient, input, command, response, messages, err_1;
48
+ return __generator(this, function (_b) {
49
+ switch (_b.label) {
50
+ case 0:
51
+ if (!!this.initialized) return [3 /*break*/, 2];
52
+ return [4 /*yield*/, this.init()];
53
+ case 1:
54
+ _b.sent();
55
+ _b.label = 2;
56
+ case 2:
57
+ // There is no way to granuarly reconcile the filter memoization as the keys are composited from a message id and
58
+ // event properties thus opting to just clear them out when getting messages rather than leave potentially
59
+ // obsolete entries that will no longer serve any purpose.
60
+ clearMemo();
61
+ _b.label = 3;
62
+ case 3:
63
+ _b.trys.push([3, 6, , 7]);
64
+ return [4 /*yield*/, this.updateEndpoint()];
65
+ case 4:
66
+ _b.sent();
67
+ _a = this.config, appId = _a.appId, endpointId = _a.endpointId, pinpointClient = _a.pinpointClient;
68
+ input = {
69
+ ApplicationId: appId,
70
+ EndpointId: endpointId,
71
+ };
72
+ command = new GetInAppMessagesCommand(input);
73
+ logger.debug('getting in-app messages', input);
74
+ return [4 /*yield*/, pinpointClient.send(command)];
75
+ case 5:
76
+ response = _b.sent();
77
+ messages = response.InAppMessagesResponse.InAppMessageCampaigns;
78
+ dispatchInAppMessagingEvent('getInAppMessages', messages);
79
+ return [2 /*return*/, messages];
80
+ case 6:
81
+ err_1 = _b.sent();
82
+ logger.error('Error getting in-app messages', err_1);
83
+ throw err_1;
84
+ case 7: return [2 /*return*/];
85
+ }
86
+ });
87
+ }); };
88
+ this.processInAppMessages = function (messages, event) { return __awaiter(_this, void 0, void 0, function () {
89
+ var highestPrioritySeen;
90
+ var _this = this;
91
+ return __generator(this, function (_a) {
92
+ switch (_a.label) {
93
+ case 0:
94
+ if (!!this.initialized) return [3 /*break*/, 2];
95
+ return [4 /*yield*/, this.init()];
96
+ case 1:
97
+ _a.sent();
98
+ _a.label = 2;
99
+ case 2: return [2 /*return*/, this.normalizeMessages(messages.reduce(function (acc, message) {
100
+ var messageQualifies = matchesEventType(message, event) &&
101
+ matchesAttributes(message, event) &&
102
+ matchesMetrics(message, event) &&
103
+ isBeforeEndDate(message) &&
104
+ _this.isBelowCap(message);
105
+ // filter all qualifying messages returning only those that are of (relative) highest priority
106
+ if (messageQualifies) {
107
+ // have not yet encountered message with priority
108
+ if (!highestPrioritySeen) {
109
+ // this message has priority, so reset the accumulator with this message only
110
+ if (message.Priority) {
111
+ highestPrioritySeen = message.Priority;
112
+ return [message];
113
+ }
114
+ else {
115
+ // this message also has no priority, so just add this message to accumulator
116
+ acc.push(message);
117
+ }
118
+ // have previously encountered message with priority, so only messages with priority matter now
119
+ }
120
+ else if (message.Priority) {
121
+ // this message has higher priority (lower number), so reset the accumulator with this message only
122
+ if (message.Priority < highestPrioritySeen) {
123
+ highestPrioritySeen = message.Priority;
124
+ return [message];
125
+ // this message has the same priority, so just add this message to accumulator
126
+ }
127
+ else if (message.Priority === highestPrioritySeen) {
128
+ acc.push(message);
129
+ }
130
+ }
131
+ }
132
+ return acc;
133
+ }, []))];
134
+ }
135
+ });
136
+ }); };
137
+ this.identifyUser = function (userId, userInfo) { return __awaiter(_this, void 0, void 0, function () {
138
+ var err_2;
139
+ return __generator(this, function (_a) {
140
+ switch (_a.label) {
141
+ case 0:
142
+ if (!!this.initialized) return [3 /*break*/, 2];
143
+ return [4 /*yield*/, this.init()];
144
+ case 1:
145
+ _a.sent();
146
+ _a.label = 2;
147
+ case 2:
148
+ _a.trys.push([2, 4, , 5]);
149
+ return [4 /*yield*/, this.updateEndpoint(userId, userInfo)];
150
+ case 3:
151
+ _a.sent();
152
+ return [3 /*break*/, 5];
153
+ case 4:
154
+ err_2 = _a.sent();
155
+ logger.error('Error identifying user', err_2);
156
+ throw err_2;
157
+ case 5: return [2 /*return*/];
158
+ }
159
+ });
160
+ }); };
161
+ this.init = function () { return __awaiter(_this, void 0, void 0, function () {
162
+ var _a, endpointId, storage, providerName, _b, err_3;
163
+ return __generator(this, function (_c) {
164
+ switch (_c.label) {
165
+ case 0:
166
+ _a = this.config, endpointId = _a.endpointId, storage = _a.storage;
167
+ providerName = this.getProviderName();
168
+ _c.label = 1;
169
+ case 1:
170
+ _c.trys.push([1, 6, , 7]);
171
+ if (!(typeof storage.sync === 'function')) return [3 /*break*/, 3];
172
+ return [4 /*yield*/, storage.sync()];
173
+ case 2:
174
+ _c.sent();
175
+ _c.label = 3;
176
+ case 3:
177
+ if (!!endpointId) return [3 /*break*/, 5];
178
+ _b = this.config;
179
+ return [4 /*yield*/, this.getEndpointId()];
180
+ case 4:
181
+ _b.endpointId = _c.sent();
182
+ _c.label = 5;
183
+ case 5:
184
+ this.initialized = true;
185
+ return [3 /*break*/, 7];
186
+ case 6:
187
+ err_3 = _c.sent();
188
+ logger.error("Failed to initialize " + providerName, err_3);
189
+ return [3 /*break*/, 7];
190
+ case 7: return [2 /*return*/];
191
+ }
192
+ });
193
+ }); };
194
+ this.initPinpointClient = function () { return __awaiter(_this, void 0, void 0, function () {
195
+ var _a, appId, credentials, pinpointClient, region;
196
+ return __generator(this, function (_b) {
197
+ _a = this.config, appId = _a.appId, credentials = _a.credentials, pinpointClient = _a.pinpointClient, region = _a.region;
198
+ if (!appId || !credentials || !region) {
199
+ throw new Error('One or more of credentials, appId or region is not configured');
200
+ }
201
+ if (pinpointClient) {
202
+ pinpointClient.destroy();
203
+ }
204
+ this.config.pinpointClient = new PinpointClient({
205
+ region: region,
206
+ credentials: credentials,
207
+ customUserAgent: getAmplifyUserAgent(),
208
+ });
209
+ return [2 /*return*/];
210
+ });
211
+ }); };
212
+ this.getEndpointId = function () { return __awaiter(_this, void 0, void 0, function () {
213
+ var appId, cacheKey, cachedEndpointId, endpointId, ttl, expiration;
214
+ return __generator(this, function (_a) {
215
+ switch (_a.label) {
216
+ case 0:
217
+ appId = this.config.appId;
218
+ cacheKey = this.getSubCategory() + ":" + this.getProviderName() + ":" + appId;
219
+ return [4 /*yield*/, Cache.getItem(cacheKey)];
220
+ case 1:
221
+ cachedEndpointId = _a.sent();
222
+ // Found in cache, just return it
223
+ if (cachedEndpointId) {
224
+ return [2 /*return*/, cachedEndpointId];
225
+ }
226
+ endpointId = uuid();
227
+ ttl = 1000 * 60 * 60 * 24 * 365 * 100;
228
+ expiration = new Date().getTime() + ttl;
229
+ Cache.setItem(cacheKey, endpointId, {
230
+ expires: expiration,
231
+ priority: 1,
232
+ });
233
+ return [2 /*return*/, endpointId];
234
+ }
235
+ });
236
+ }); };
237
+ this.updateEndpoint = function (userId, userInfo) {
238
+ if (userId === void 0) { userId = null; }
239
+ if (userInfo === void 0) { userInfo = null; }
240
+ return __awaiter(_this, void 0, void 0, function () {
241
+ var _a, appId, credentials, endpointId, _b, endpointInfo, pinpointClient, currentCredentials, credentialsUpdated, _c, address, attributes, demographic, location_1, metrics, optOut, _d, appVersion, make, model, platform, version, input, command, err_4;
242
+ var _e;
243
+ return __generator(this, function (_f) {
244
+ switch (_f.label) {
245
+ case 0:
246
+ _a = this.config, appId = _a.appId, credentials = _a.credentials, endpointId = _a.endpointId, _b = _a.endpointInfo, endpointInfo = _b === void 0 ? {} : _b, pinpointClient = _a.pinpointClient;
247
+ return [4 /*yield*/, this.getCredentials()];
248
+ case 1:
249
+ currentCredentials = _f.sent();
250
+ credentialsUpdated = !credentials ||
251
+ Object.keys(currentCredentials).some(function (key) { return currentCredentials[key] !== credentials[key]; });
252
+ // If endpoint is already initialized, and nothing else is changing, just early return
253
+ if (this.endpointInitialized &&
254
+ !credentialsUpdated &&
255
+ !userId &&
256
+ !userInfo) {
257
+ return [2 /*return*/];
258
+ }
259
+ // Update credentials
260
+ this.config.credentials = currentCredentials;
261
+ _f.label = 2;
262
+ case 2:
263
+ _f.trys.push([2, 6, , 7]);
264
+ if (!(!pinpointClient || credentialsUpdated)) return [3 /*break*/, 4];
265
+ return [4 /*yield*/, this.initPinpointClient()];
266
+ case 3:
267
+ _f.sent();
268
+ _f.label = 4;
269
+ case 4:
270
+ _c = userInfo !== null && userInfo !== void 0 ? userInfo : {}, address = _c.address, attributes = _c.attributes, demographic = _c.demographic, location_1 = _c.location, metrics = _c.metrics, optOut = _c.optOut;
271
+ _d = this.clientInfo, appVersion = _d.appVersion, make = _d.make, model = _d.model, platform = _d.platform, version = _d.version;
272
+ input = {
273
+ ApplicationId: appId,
274
+ EndpointId: endpointId,
275
+ EndpointRequest: {
276
+ RequestId: uuid(),
277
+ EffectiveDate: new Date().toISOString(),
278
+ ChannelType: ChannelType.IN_APP,
279
+ Address: address !== null && address !== void 0 ? address : endpointInfo.address,
280
+ Attributes: __assign(__assign({}, endpointInfo.attributes), attributes),
281
+ Demographic: __assign({ AppVersion: appVersion, Make: make, Model: model, ModelVersion: version, Platform: platform }, transferKeyToUpperCase(__assign(__assign({}, endpointInfo.demographic), demographic))),
282
+ Location: transferKeyToUpperCase(__assign(__assign({}, endpointInfo.location), location_1)),
283
+ Metrics: __assign(__assign({}, endpointInfo.metrics), metrics),
284
+ OptOut: optOut !== null && optOut !== void 0 ? optOut : endpointInfo.optOut,
285
+ User: {
286
+ UserId: (_e = userId !== null && userId !== void 0 ? userId : endpointInfo.userId) !== null && _e !== void 0 ? _e : currentCredentials.identityId,
287
+ UserAttributes: attributes !== null && attributes !== void 0 ? attributes : endpointInfo.userAttributes,
288
+ },
289
+ },
290
+ };
291
+ command = new UpdateEndpointCommand(input);
292
+ logger.debug('updating endpoint', input);
293
+ return [4 /*yield*/, this.config.pinpointClient.send(command)];
294
+ case 5:
295
+ _f.sent();
296
+ this.endpointInitialized = true;
297
+ return [3 /*break*/, 7];
298
+ case 6:
299
+ err_4 = _f.sent();
300
+ throw err_4;
301
+ case 7: return [2 /*return*/];
302
+ }
303
+ });
304
+ });
305
+ };
306
+ this.getCredentials = function () { return __awaiter(_this, void 0, void 0, function () {
307
+ var credentials, err_5;
308
+ return __generator(this, function (_a) {
309
+ switch (_a.label) {
310
+ case 0:
311
+ _a.trys.push([0, 2, , 3]);
312
+ return [4 /*yield*/, Credentials.get()];
313
+ case 1:
314
+ credentials = _a.sent();
315
+ if (!credentials) {
316
+ logger.debug('no credentials found');
317
+ return [2 /*return*/, null];
318
+ }
319
+ return [2 /*return*/, Credentials.shear(credentials)];
320
+ case 2:
321
+ err_5 = _a.sent();
322
+ logger.error('Error getting credentials:', err_5);
323
+ return [2 /*return*/, null];
324
+ case 3: return [2 /*return*/];
325
+ }
326
+ });
327
+ }); };
328
+ this.sessionStateChangeHandler = function (state) {
329
+ if (state === 'started') {
330
+ // reset all session counts
331
+ _this.sessionMessageCountMap = {};
332
+ }
333
+ };
334
+ this.isBelowCap = function (_a) {
335
+ var CampaignId = _a.CampaignId, SessionCap = _a.SessionCap, DailyCap = _a.DailyCap, TotalCap = _a.TotalCap;
336
+ var _b = _this.getMessageCounts(CampaignId), sessionCount = _b.sessionCount, dailyCount = _b.dailyCount, totalCount = _b.totalCount;
337
+ return ((!SessionCap || sessionCount < SessionCap) &&
338
+ (!DailyCap || dailyCount < DailyCap) &&
339
+ (!TotalCap || totalCount < TotalCap));
340
+ };
341
+ // Use the current session count in memory or initialize as empty count
342
+ this.getSessionCount = function (messageId) {
343
+ return _this.sessionMessageCountMap[messageId] || 0;
344
+ };
345
+ this.getDailyCount = function () {
346
+ var storage = _this.config.storage;
347
+ var today = getStartOfDay();
348
+ var item = storage.getItem(MESSAGE_DAILY_COUNT_KEY);
349
+ // Parse stored count or initialize as empty count
350
+ var counter = item
351
+ ? JSON.parse(item)
352
+ : { count: 0, lastCountTimestamp: today };
353
+ // If the stored counter timestamp is today, use it as the count, otherwise reset to 0
354
+ return counter.lastCountTimestamp === today ? counter.count : 0;
355
+ };
356
+ this.getTotalCountMap = function () {
357
+ var storage = _this.config.storage;
358
+ var item = storage.getItem(MESSAGE_TOTAL_COUNT_KEY);
359
+ // Parse stored count map or initialize as empty
360
+ return item ? JSON.parse(item) : {};
361
+ };
362
+ this.getTotalCount = function (messageId) {
363
+ var countMap = _this.getTotalCountMap();
364
+ // Return stored count or initialize as empty count
365
+ return countMap[messageId] || 0;
366
+ };
367
+ this.getMessageCounts = function (messageId) {
368
+ try {
369
+ return {
370
+ sessionCount: _this.getSessionCount(messageId),
371
+ dailyCount: _this.getDailyCount(),
372
+ totalCount: _this.getTotalCount(messageId),
373
+ };
374
+ }
375
+ catch (err) {
376
+ logger.error('Failed to get message counts from storage', err);
377
+ }
378
+ };
379
+ this.setSessionCount = function (messageId, count) {
380
+ _this.sessionMessageCountMap[messageId] = count;
381
+ };
382
+ this.setDailyCount = function (count) {
383
+ var storage = _this.config.storage;
384
+ var dailyCount = {
385
+ count: count,
386
+ lastCountTimestamp: getStartOfDay(),
387
+ };
388
+ try {
389
+ storage.setItem(MESSAGE_DAILY_COUNT_KEY, JSON.stringify(dailyCount));
390
+ }
391
+ catch (err) {
392
+ logger.error('Failed to save daily message count to storage', err);
393
+ }
394
+ };
395
+ this.setTotalCountMap = function (countMap) {
396
+ var storage = _this.config.storage;
397
+ try {
398
+ storage.setItem(MESSAGE_TOTAL_COUNT_KEY, JSON.stringify(countMap));
399
+ }
400
+ catch (err) {
401
+ logger.error('Failed to save total count to storage', err);
402
+ }
403
+ };
404
+ this.setTotalCount = function (messageId, count) {
405
+ var _a;
406
+ var updatedMap = __assign(__assign({}, _this.getTotalCountMap()), (_a = {}, _a[messageId] = count, _a));
407
+ _this.setTotalCountMap(updatedMap);
408
+ };
409
+ this.incrementCounts = function (messageId) { return __awaiter(_this, void 0, void 0, function () {
410
+ var _a, sessionCount, dailyCount, totalCount;
411
+ return __generator(this, function (_b) {
412
+ _a = this.getMessageCounts(messageId), sessionCount = _a.sessionCount, dailyCount = _a.dailyCount, totalCount = _a.totalCount;
413
+ this.setSessionCount(messageId, sessionCount + 1);
414
+ this.setDailyCount(dailyCount + 1);
415
+ this.setTotalCount(messageId, totalCount + 1);
416
+ return [2 /*return*/];
417
+ });
418
+ }); };
419
+ this.normalizeMessages = function (messages) {
420
+ return messages.map(function (message) {
421
+ var CampaignId = message.CampaignId, InAppMessage = message.InAppMessage;
422
+ return {
423
+ id: CampaignId,
424
+ content: extractContent(message),
425
+ layout: interpretLayout(InAppMessage.Layout),
426
+ metadata: extractMetadata(message),
427
+ };
428
+ });
429
+ };
430
+ this.recordMessageEvent = function (message, event) { return __awaiter(_this, void 0, void 0, function () {
431
+ return __generator(this, function (_a) {
432
+ switch (_a.label) {
433
+ case 0:
434
+ if (!!this.initialized) return [3 /*break*/, 2];
435
+ return [4 /*yield*/, this.init()];
436
+ case 1:
437
+ _a.sent();
438
+ _a.label = 2;
439
+ case 2:
440
+ recordAnalyticsEvent(event, message);
441
+ if (!(event === AWSPinpointMessageEvent.MESSAGE_DISPLAYED)) return [3 /*break*/, 4];
442
+ return [4 /*yield*/, this.incrementCounts(message.id)];
443
+ case 3:
444
+ _a.sent();
445
+ _a.label = 4;
446
+ case 4: return [2 /*return*/];
447
+ }
448
+ });
449
+ }); };
450
+ this.sessionMessageCountMap = {};
451
+ this.config = {
452
+ storage: new StorageHelper().getStorage(),
453
+ };
454
+ this.clientInfo = (_a = ClientDevice.clientInfo()) !== null && _a !== void 0 ? _a : {};
455
+ }
456
+ /**
457
+ * get the category of the plugin
458
+ */
459
+ AWSPinpointProvider.prototype.getCategory = function () {
460
+ return AWSPinpointProvider.category;
461
+ };
462
+ /**
463
+ * get the sub-category of the plugin
464
+ */
465
+ AWSPinpointProvider.prototype.getSubCategory = function () {
466
+ return AWSPinpointProvider.subCategory;
467
+ };
468
+ /**
469
+ * get provider name of the plugin
470
+ */
471
+ AWSPinpointProvider.prototype.getProviderName = function () {
472
+ return AWSPinpointProvider.providerName;
473
+ };
474
+ AWSPinpointProvider.category = 'Notifications';
475
+ AWSPinpointProvider.subCategory = 'InAppMessaging';
476
+ AWSPinpointProvider.providerName = 'AWSPinpoint';
477
+ return AWSPinpointProvider;
478
+ }());
479
+ export default AWSPinpointProvider;
480
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/InAppMessaging/Providers/AWSPinpointProvider/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { UserInfo } from '../../types';
2
+ export declare type InAppMessageCountMap = Record<string, number>;
3
+ export declare type DailyInAppMessageCounter = {
4
+ count: number;
5
+ lastCountTimestamp: string;
6
+ };
7
+ export declare type InAppMessageCounts = {
8
+ sessionCount: number;
9
+ dailyCount: number;
10
+ totalCount: number;
11
+ };
12
+ export declare type MetricsComparator = (metricsVal: number, eventVal: number) => boolean;
13
+ export interface AWSPinpointProviderConfig {
14
+ appId: string;
15
+ region: string;
16
+ }
17
+ export declare enum AWSPinpointMessageEvent {
18
+ MESSAGE_DISPLAYED = "_inapp.message_displayed",
19
+ MESSAGE_DISMISSED = "_inapp.message_dismissed",
20
+ MESSAGE_ACTION_TAKEN = "_inapp.message_clicked"
21
+ }
22
+ export interface AWSPinpointUserInfo extends UserInfo {
23
+ address?: string;
24
+ optOut?: 'ALL' | 'NONE';
25
+ }
@@ -0,0 +1,9 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export var AWSPinpointMessageEvent;
4
+ (function (AWSPinpointMessageEvent) {
5
+ AWSPinpointMessageEvent["MESSAGE_DISPLAYED"] = "_inapp.message_displayed";
6
+ AWSPinpointMessageEvent["MESSAGE_DISMISSED"] = "_inapp.message_dismissed";
7
+ AWSPinpointMessageEvent["MESSAGE_ACTION_TAKEN"] = "_inapp.message_clicked";
8
+ })(AWSPinpointMessageEvent || (AWSPinpointMessageEvent = {}));
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/InAppMessaging/Providers/AWSPinpointProvider/types.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AA2BtC,MAAM,CAAN,IAAY,uBAIX;AAJD,WAAY,uBAAuB;IAClC,yEAA8C,CAAA;IAC9C,yEAA8C,CAAA;IAC9C,0EAA+C,CAAA;AAChD,CAAC,EAJW,uBAAuB,KAAvB,uBAAuB,QAIlC"}
@@ -0,0 +1,18 @@
1
+ import { ConsoleLogger } from '@aws-amplify/core';
2
+ import { InAppMessageCampaign as PinpointInAppMessage } from '@aws-sdk/client-pinpoint';
3
+ import { InAppMessage, InAppMessageContent, InAppMessageLayout, InAppMessagingEvent } from '../../types';
4
+ import { AWSPinpointMessageEvent, MetricsComparator } from './types';
5
+ export declare const logger: ConsoleLogger;
6
+ export declare const dispatchInAppMessagingEvent: (event: string, data: any, message?: string) => void;
7
+ export declare const recordAnalyticsEvent: (event: AWSPinpointMessageEvent, message: InAppMessage) => void;
8
+ export declare const getStartOfDay: () => string;
9
+ export declare const matchesEventType: ({ CampaignId, Schedule }: PinpointInAppMessage, { name: eventType }: InAppMessagingEvent) => any;
10
+ export declare const matchesAttributes: ({ CampaignId, Schedule }: PinpointInAppMessage, { attributes }: InAppMessagingEvent) => boolean;
11
+ export declare const matchesMetrics: ({ CampaignId, Schedule }: PinpointInAppMessage, { metrics }: InAppMessagingEvent) => boolean;
12
+ export declare const getComparator: (operator: string) => MetricsComparator;
13
+ export declare const isBeforeEndDate: ({ Schedule, }: PinpointInAppMessage) => boolean;
14
+ export declare const isQuietTime: (message: PinpointInAppMessage) => boolean;
15
+ export declare const clearMemo: () => void;
16
+ export declare const interpretLayout: (layout: string) => InAppMessageLayout;
17
+ export declare const extractContent: ({ InAppMessage: message, }: PinpointInAppMessage) => InAppMessageContent[];
18
+ export declare const extractMetadata: ({ InAppMessage, Priority, Schedule, TreatmentId, }: PinpointInAppMessage) => any;