@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,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;
|