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