@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,252 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { __read } from "tslib";
4
+ import { Amplify, ConsoleLogger, Hub } from '@aws-amplify/core';
5
+ import { Layout as PinpointInAppMessageLayout, } from '@aws-sdk/client-pinpoint';
6
+ import isEmpty from 'lodash/isEmpty';
7
+ var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'
8
+ ? Symbol.for('amplify_default')
9
+ : '@@amplify_default');
10
+ var DELIVERY_TYPE = 'IN_APP_MESSAGE';
11
+ var eventNameMemo = {};
12
+ var eventAttributesMemo = {};
13
+ var eventMetricsMemo = {};
14
+ export var logger = new ConsoleLogger('AWSPinpointProvider');
15
+ export var dispatchInAppMessagingEvent = function (event, data, message) {
16
+ Hub.dispatch('inAppMessaging', { event: event, data: data, message: message }, 'InAppMessaging', AMPLIFY_SYMBOL);
17
+ };
18
+ export var recordAnalyticsEvent = function (event, message) {
19
+ if (!message) {
20
+ logger.debug('Unable to record analytics event - no InAppMessage was received');
21
+ return;
22
+ }
23
+ if (Amplify.Analytics && typeof Amplify.Analytics.record === 'function') {
24
+ var id = message.id, metadata = message.metadata;
25
+ Amplify.Analytics.record({
26
+ name: event,
27
+ attributes: {
28
+ campaign_id: id,
29
+ delivery_type: DELIVERY_TYPE,
30
+ treatment_id: metadata === null || metadata === void 0 ? void 0 : metadata.treatmentId,
31
+ },
32
+ });
33
+ }
34
+ else {
35
+ logger.debug('Analytics module is not registered into Amplify');
36
+ }
37
+ };
38
+ export var getStartOfDay = function () {
39
+ var now = new Date();
40
+ now.setHours(0, 0, 0, 0);
41
+ return now.toISOString();
42
+ };
43
+ export var matchesEventType = function (_a, _b) {
44
+ var CampaignId = _a.CampaignId, Schedule = _a.Schedule;
45
+ var eventType = _b.name;
46
+ var _c;
47
+ var EventType = ((_c = Schedule === null || Schedule === void 0 ? void 0 : Schedule.EventFilter) === null || _c === void 0 ? void 0 : _c.Dimensions).EventType;
48
+ var memoKey = CampaignId + ":" + eventType;
49
+ if (!eventNameMemo.hasOwnProperty(memoKey)) {
50
+ eventNameMemo[memoKey] = !!(EventType === null || EventType === void 0 ? void 0 : EventType.Values.includes(eventType));
51
+ }
52
+ return eventNameMemo[memoKey];
53
+ };
54
+ export var matchesAttributes = function (_a, _b) {
55
+ var CampaignId = _a.CampaignId, Schedule = _a.Schedule;
56
+ var attributes = _b.attributes;
57
+ var _c;
58
+ var Attributes = ((_c = Schedule === null || Schedule === void 0 ? void 0 : Schedule.EventFilter) === null || _c === void 0 ? void 0 : _c.Dimensions).Attributes;
59
+ if (isEmpty(Attributes)) {
60
+ // if message does not have attributes defined it does not matter what attributes are on the event
61
+ return true;
62
+ }
63
+ if (isEmpty(attributes)) {
64
+ // if message does have attributes but the event does not then it always fails the check
65
+ return false;
66
+ }
67
+ var memoKey = CampaignId + ":" + JSON.stringify(attributes);
68
+ if (!eventAttributesMemo.hasOwnProperty(memoKey)) {
69
+ eventAttributesMemo[memoKey] = Object.entries(Attributes).every(function (_a) {
70
+ var _b = __read(_a, 2), key = _b[0], Values = _b[1].Values;
71
+ return Values.includes(attributes[key]);
72
+ });
73
+ }
74
+ return eventAttributesMemo[memoKey];
75
+ };
76
+ export var matchesMetrics = function (_a, _b) {
77
+ var CampaignId = _a.CampaignId, Schedule = _a.Schedule;
78
+ var metrics = _b.metrics;
79
+ var _c;
80
+ var Metrics = ((_c = Schedule === null || Schedule === void 0 ? void 0 : Schedule.EventFilter) === null || _c === void 0 ? void 0 : _c.Dimensions).Metrics;
81
+ if (isEmpty(Metrics)) {
82
+ // if message does not have metrics defined it does not matter what metrics are on the event
83
+ return true;
84
+ }
85
+ if (isEmpty(metrics)) {
86
+ // if message does have metrics but the event does not then it always fails the check
87
+ return false;
88
+ }
89
+ var memoKey = CampaignId + ":" + JSON.stringify(metrics);
90
+ if (!eventMetricsMemo.hasOwnProperty(memoKey)) {
91
+ eventMetricsMemo[memoKey] = Object.entries(Metrics).every(function (_a) {
92
+ var _b = __read(_a, 2), key = _b[0], _c = _b[1], ComparisonOperator = _c.ComparisonOperator, Value = _c.Value;
93
+ var compare = getComparator(ComparisonOperator);
94
+ // if there is some unknown comparison operator, treat as a comparison failure
95
+ return compare ? compare(Value, metrics[key]) : false;
96
+ });
97
+ }
98
+ return eventMetricsMemo[memoKey];
99
+ };
100
+ export var getComparator = function (operator) {
101
+ switch (operator) {
102
+ case 'EQUAL':
103
+ return function (metricsVal, eventVal) { return metricsVal === eventVal; };
104
+ case 'GREATER_THAN':
105
+ return function (metricsVal, eventVal) { return metricsVal < eventVal; };
106
+ case 'GREATER_THAN_OR_EQUAL':
107
+ return function (metricsVal, eventVal) { return metricsVal <= eventVal; };
108
+ case 'LESS_THAN':
109
+ return function (metricsVal, eventVal) { return metricsVal > eventVal; };
110
+ case 'LESS_THAN_OR_EQUAL':
111
+ return function (metricsVal, eventVal) { return metricsVal >= eventVal; };
112
+ default:
113
+ return null;
114
+ }
115
+ };
116
+ export var isBeforeEndDate = function (_a) {
117
+ var Schedule = _a.Schedule;
118
+ if (!(Schedule === null || Schedule === void 0 ? void 0 : Schedule.EndDate)) {
119
+ return true;
120
+ }
121
+ return new Date() < new Date(Schedule.EndDate);
122
+ };
123
+ export var isQuietTime = function (message) {
124
+ var Schedule = message.Schedule;
125
+ if (!(Schedule === null || Schedule === void 0 ? void 0 : Schedule.QuietTime)) {
126
+ return false;
127
+ }
128
+ var pattern = /^[0-2]\d:[0-5]\d$/; // basic sanity check, not a fully featured HH:MM validation
129
+ var _a = Schedule.QuietTime, Start = _a.Start, End = _a.End;
130
+ if (!Start ||
131
+ !End ||
132
+ Start === End ||
133
+ !pattern.test(Start) ||
134
+ !pattern.test(End)) {
135
+ return false;
136
+ }
137
+ var now = new Date();
138
+ var start = new Date(now);
139
+ var end = new Date(now);
140
+ var _b = __read(Start.split(':'), 2), startHours = _b[0], startMinutes = _b[1];
141
+ var _c = __read(End.split(':'), 2), endHours = _c[0], endMinutes = _c[1];
142
+ start.setHours(Number.parseInt(startHours, 10), Number.parseInt(startMinutes, 10), 0, 0);
143
+ end.setHours(Number.parseInt(endHours, 10), Number.parseInt(endMinutes, 10), 0, 0);
144
+ // if quiet time includes midnight, bump the end time to the next day
145
+ if (start > end) {
146
+ end.setDate(end.getDate() + 1);
147
+ }
148
+ var isQuietTime = now >= start && now <= end;
149
+ if (isQuietTime) {
150
+ logger.debug('message filtered due to quiet time', message);
151
+ }
152
+ return isQuietTime;
153
+ };
154
+ export var clearMemo = function () {
155
+ eventNameMemo = {};
156
+ eventAttributesMemo = {};
157
+ eventMetricsMemo = {};
158
+ };
159
+ // in the pinpoint console when a message is created with a Modal or Full Screen layout,
160
+ // it is assigned a layout value of MOBILE_FEED or OVERLAYS respectively in the message payload.
161
+ // In the future, Pinpoint will be updating the layout values in the aforementioned scenario
162
+ // to MODAL and FULL_SCREEN.
163
+ //
164
+ // This utility acts as a safeguard to ensure that:
165
+ // - 1. the usage of MOBILE_FEED and OVERLAYS as values for message layouts are not leaked
166
+ // outside the Pinpoint provider
167
+ // - 2. Amplify correctly handles the legacy layout values from Pinpoint after they are updated
168
+ export var interpretLayout = function (layout) {
169
+ if (layout === PinpointInAppMessageLayout.MOBILE_FEED) {
170
+ return 'MODAL';
171
+ }
172
+ if (layout === PinpointInAppMessageLayout.OVERLAYS) {
173
+ return 'FULL_SCREEN';
174
+ }
175
+ // cast as PinpointInAppMessage['InAppMessage']['Layout'] allows `string` as a value
176
+ return layout;
177
+ };
178
+ export var extractContent = function (_a) {
179
+ var message = _a.InAppMessage;
180
+ var _b, _c;
181
+ return ((_c = (_b = message === null || message === void 0 ? void 0 : message.Content) === null || _b === void 0 ? void 0 : _b.map(function (content) {
182
+ var BackgroundColor = content.BackgroundColor, BodyConfig = content.BodyConfig, HeaderConfig = content.HeaderConfig, ImageUrl = content.ImageUrl, PrimaryBtn = content.PrimaryBtn, SecondaryBtn = content.SecondaryBtn;
183
+ var defaultPrimaryButton = PrimaryBtn === null || PrimaryBtn === void 0 ? void 0 : PrimaryBtn.DefaultConfig;
184
+ var defaultSecondaryButton = SecondaryBtn === null || SecondaryBtn === void 0 ? void 0 : SecondaryBtn.DefaultConfig;
185
+ var extractedContent = {};
186
+ if (BackgroundColor) {
187
+ extractedContent.container = {
188
+ style: {
189
+ backgroundColor: BackgroundColor,
190
+ },
191
+ };
192
+ }
193
+ if (HeaderConfig) {
194
+ extractedContent.header = {
195
+ content: HeaderConfig.Header,
196
+ style: {
197
+ color: HeaderConfig.TextColor,
198
+ textAlign: HeaderConfig.Alignment.toLowerCase(),
199
+ },
200
+ };
201
+ }
202
+ if (BodyConfig) {
203
+ extractedContent.body = {
204
+ content: BodyConfig.Body,
205
+ style: {
206
+ color: BodyConfig.TextColor,
207
+ textAlign: BodyConfig.Alignment.toLowerCase(),
208
+ },
209
+ };
210
+ }
211
+ if (ImageUrl) {
212
+ extractedContent.image = {
213
+ src: ImageUrl,
214
+ };
215
+ }
216
+ if (defaultPrimaryButton) {
217
+ extractedContent.primaryButton = {
218
+ title: defaultPrimaryButton.Text,
219
+ action: defaultPrimaryButton.ButtonAction,
220
+ url: defaultPrimaryButton.Link,
221
+ style: {
222
+ backgroundColor: defaultPrimaryButton.BackgroundColor,
223
+ borderRadius: defaultPrimaryButton.BorderRadius,
224
+ color: defaultPrimaryButton.TextColor,
225
+ },
226
+ };
227
+ }
228
+ if (defaultSecondaryButton) {
229
+ extractedContent.secondaryButton = {
230
+ title: defaultSecondaryButton.Text,
231
+ action: defaultSecondaryButton.ButtonAction,
232
+ url: defaultSecondaryButton.Link,
233
+ style: {
234
+ backgroundColor: defaultSecondaryButton.BackgroundColor,
235
+ borderRadius: defaultSecondaryButton.BorderRadius,
236
+ color: defaultSecondaryButton.TextColor,
237
+ },
238
+ };
239
+ }
240
+ return extractedContent;
241
+ })) !== null && _c !== void 0 ? _c : []);
242
+ };
243
+ export var extractMetadata = function (_a) {
244
+ var InAppMessage = _a.InAppMessage, Priority = _a.Priority, Schedule = _a.Schedule, TreatmentId = _a.TreatmentId;
245
+ return ({
246
+ customData: InAppMessage === null || InAppMessage === void 0 ? void 0 : InAppMessage.CustomConfig,
247
+ endDate: Schedule === null || Schedule === void 0 ? void 0 : Schedule.EndDate,
248
+ priority: Priority,
249
+ treatmentId: TreatmentId,
250
+ });
251
+ };
252
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/InAppMessaging/Providers/AWSPinpointProvider/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { default as AWSPinpointProvider } from './AWSPinpointProvider';
@@ -0,0 +1,4 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export { default as AWSPinpointProvider } from './AWSPinpointProvider';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/InAppMessaging/Providers/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { SessionState, SessionStateChangeHandler, SessionTrackerInterface } from './types';
2
+ export default class SessionTracker implements SessionTrackerInterface {
3
+ private sessionStateChangeHandler;
4
+ constructor(sessionStateChangeHandler?: SessionStateChangeHandler);
5
+ start: () => SessionState;
6
+ end: () => SessionState;
7
+ private getSessionState;
8
+ private visibilityChangeHandler;
9
+ }
@@ -0,0 +1,65 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { browserOrNode, ConsoleLogger as Logger } from '@aws-amplify/core';
4
+ import noop from 'lodash/noop';
5
+ // Per https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API
6
+ var hidden;
7
+ var visibilityChange;
8
+ var isBrowser = browserOrNode().isBrowser;
9
+ if (isBrowser && document) {
10
+ if (typeof document.hidden !== 'undefined') {
11
+ hidden = 'hidden';
12
+ visibilityChange = 'visibilitychange';
13
+ }
14
+ else if (typeof document['msHidden'] !== 'undefined') {
15
+ hidden = 'msHidden';
16
+ visibilityChange = 'msvisibilitychange';
17
+ }
18
+ else if (typeof document['webkitHidden'] !== 'undefined') {
19
+ hidden = 'webkitHidden';
20
+ visibilityChange = 'webkitvisibilitychange';
21
+ }
22
+ }
23
+ var logger = new Logger('InAppMessagingSessionTracker');
24
+ var SessionTracker = /** @class */ (function () {
25
+ function SessionTracker(sessionStateChangeHandler) {
26
+ var _this = this;
27
+ if (sessionStateChangeHandler === void 0) { sessionStateChangeHandler = noop; }
28
+ this.start = function () {
29
+ if (isBrowser) {
30
+ document === null || document === void 0 ? void 0 : document.addEventListener(visibilityChange, _this.visibilityChangeHandler);
31
+ }
32
+ return _this.getSessionState();
33
+ };
34
+ this.end = function () {
35
+ if (isBrowser) {
36
+ document === null || document === void 0 ? void 0 : document.removeEventListener(visibilityChange, _this.visibilityChangeHandler);
37
+ }
38
+ return _this.getSessionState();
39
+ };
40
+ this.getSessionState = function () {
41
+ if (isBrowser && document && !document[hidden]) {
42
+ return 'started';
43
+ }
44
+ // If, for any reason, document is undefined the session will never start
45
+ return 'ended';
46
+ };
47
+ this.visibilityChangeHandler = function () {
48
+ if (!isBrowser || !document) {
49
+ return;
50
+ }
51
+ if (document[hidden]) {
52
+ logger.debug('App is now hidden');
53
+ _this.sessionStateChangeHandler('ended');
54
+ }
55
+ else {
56
+ logger.debug('App is now visible');
57
+ _this.sessionStateChangeHandler('started');
58
+ }
59
+ };
60
+ this.sessionStateChangeHandler = sessionStateChangeHandler;
61
+ }
62
+ return SessionTracker;
63
+ }());
64
+ export default SessionTracker;
65
+ //# sourceMappingURL=SessionTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionTracker.js","sourceRoot":"","sources":["../../../src/InAppMessaging/SessionTracker/SessionTracker.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAE,aAAa,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,IAAI,MAAM,aAAa,CAAC;AAO/B,2EAA2E;AAC3E,IAAI,MAAc,CAAC;AACnB,IAAI,gBAAwB,CAAC;AACrB,IAAA,qCAAS,CAAqB;AAEtC,IAAI,SAAS,IAAI,QAAQ,EAAE;IAC1B,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE;QAC3C,MAAM,GAAG,QAAQ,CAAC;QAClB,gBAAgB,GAAG,kBAAkB,CAAC;KACtC;SAAM,IAAI,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,WAAW,EAAE;QACvD,MAAM,GAAG,UAAU,CAAC;QACpB,gBAAgB,GAAG,oBAAoB,CAAC;KACxC;SAAM,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,KAAK,WAAW,EAAE;QAC3D,MAAM,GAAG,cAAc,CAAC;QACxB,gBAAgB,GAAG,wBAAwB,CAAC;KAC5C;CACD;AAED,IAAM,MAAM,GAAG,IAAI,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAE1D;IAGC,wBAAY,yBAA2D;QAAvE,iBAEC;QAFW,0CAAA,EAAA,gCAA2D;QAIvE,UAAK,GAAG;YACP,IAAI,SAAS,EAAE;gBACd,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,gBAAgB,CACzB,gBAAgB,EAChB,KAAI,CAAC,uBAAuB,EAC3B;aACF;YACD,OAAO,KAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC,CAAC;QAEF,QAAG,GAAG;YACL,IAAI,SAAS,EAAE;gBACd,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,mBAAmB,CAC5B,gBAAgB,EAChB,KAAI,CAAC,uBAAuB,EAC3B;aACF;YACD,OAAO,KAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC,CAAC;QAEM,oBAAe,GAAG;YACzB,IAAI,SAAS,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAC/C,OAAO,SAAS,CAAC;aACjB;YACD,yEAAyE;YACzE,OAAO,OAAO,CAAC;QAChB,CAAC,CAAC;QAEM,4BAAuB,GAAG;YACjC,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE;gBAC5B,OAAO;aACP;YACD,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAClC,KAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;aACxC;iBAAM;gBACN,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACnC,KAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;aAC1C;QACF,CAAC,CAAC;QA1CD,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;IAC5D,CAAC;IA0CF,qBAAC;AAAD,CAAC,AA/CD,IA+CC"}
@@ -0,0 +1,10 @@
1
+ import { SessionState, SessionStateChangeHandler, SessionTrackerInterface } from './types';
2
+ export default class SessionTracker implements SessionTrackerInterface {
3
+ private currentAppState;
4
+ private sessionStateChangeHandler;
5
+ constructor(sessionStateChangeHandler?: SessionStateChangeHandler);
6
+ start: () => SessionState;
7
+ end: () => SessionState;
8
+ private getSessionState;
9
+ private appStateChangeHandler;
10
+ }
@@ -0,0 +1,50 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { ConsoleLogger as Logger } from '@aws-amplify/core';
4
+ import { AppState } from 'react-native';
5
+ import noop from 'lodash/noop';
6
+ var isActive = function (appState) { return appState === 'active'; };
7
+ var isInactive = function (appState) {
8
+ return appState === 'inactive' || appState === 'background';
9
+ };
10
+ var logger = new Logger('InAppMessagingSessionTracker');
11
+ var SessionTracker = /** @class */ (function () {
12
+ function SessionTracker(sessionStateChangeHandler) {
13
+ var _this = this;
14
+ if (sessionStateChangeHandler === void 0) { sessionStateChangeHandler = noop; }
15
+ this.start = function () {
16
+ AppState.addEventListener('change', _this.appStateChangeHandler);
17
+ return _this.getSessionState();
18
+ };
19
+ this.end = function () {
20
+ AppState.removeEventListener('change', _this.appStateChangeHandler);
21
+ return _this.getSessionState();
22
+ };
23
+ this.getSessionState = function () {
24
+ if (isActive(_this.currentAppState)) {
25
+ return 'started';
26
+ }
27
+ // consider any other app state as session ended
28
+ return 'ended';
29
+ };
30
+ this.appStateChangeHandler = function (nextAppState) {
31
+ // if going from active to inactive
32
+ if (isActive(_this.currentAppState) && isInactive(nextAppState)) {
33
+ logger.debug('App has gone to the background');
34
+ _this.sessionStateChangeHandler('ended');
35
+ }
36
+ // if going from inactive to active
37
+ if (isInactive(_this.currentAppState) && isActive(nextAppState)) {
38
+ logger.debug('App has come to the foreground');
39
+ _this.sessionStateChangeHandler('started');
40
+ }
41
+ // otherwise do nothing but always update current state
42
+ _this.currentAppState = nextAppState;
43
+ };
44
+ this.currentAppState = 'active';
45
+ this.sessionStateChangeHandler = sessionStateChangeHandler;
46
+ }
47
+ return SessionTracker;
48
+ }());
49
+ export default SessionTracker;
50
+ //# sourceMappingURL=SessionTracker.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionTracker.native.js","sourceRoot":"","sources":["../../../src/InAppMessaging/SessionTracker/SessionTracker.native.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAkB,MAAM,cAAc,CAAC;AACxD,OAAO,IAAI,MAAM,aAAa,CAAC;AAO/B,IAAM,QAAQ,GAAG,UAAA,QAAQ,IAAI,OAAA,QAAQ,KAAK,QAAQ,EAArB,CAAqB,CAAC;AACnD,IAAM,UAAU,GAAG,UAAA,QAAQ;IAC1B,OAAA,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,YAAY;AAApD,CAAoD,CAAC;AAEtD,IAAM,MAAM,GAAG,IAAI,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAE1D;IAIC,wBAAY,yBAA2D;QAAvE,iBAGC;QAHW,0CAAA,EAAA,gCAA2D;QAKvE,UAAK,GAAG;YACP,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAI,CAAC,qBAAqB,CAAC,CAAC;YAChE,OAAO,KAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC,CAAC;QAEF,QAAG,GAAG;YACL,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAI,CAAC,qBAAqB,CAAC,CAAC;YACnE,OAAO,KAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC,CAAC;QAEM,oBAAe,GAAG;YACzB,IAAI,QAAQ,CAAC,KAAI,CAAC,eAAe,CAAC,EAAE;gBACnC,OAAO,SAAS,CAAC;aACjB;YACD,gDAAgD;YAChD,OAAO,OAAO,CAAC;QAChB,CAAC,CAAC;QAEM,0BAAqB,GAAG,UAAA,YAAY;YAC3C,mCAAmC;YACnC,IAAI,QAAQ,CAAC,KAAI,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE;gBAC/D,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC/C,KAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;aACxC;YACD,mCAAmC;YACnC,IAAI,UAAU,CAAC,KAAI,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE;gBAC/D,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC/C,KAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;aAC1C;YACD,uDAAuD;YACvD,KAAI,CAAC,eAAe,GAAG,YAAY,CAAC;QACrC,CAAC,CAAC;QAnCD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;IAC5D,CAAC;IAkCF,qBAAC;AAAD,CAAC,AAzCD,IAyCC"}
@@ -0,0 +1,3 @@
1
+ import { default as SessionTracker } from './SessionTracker';
2
+ export * from './types';
3
+ export default SessionTracker;
@@ -0,0 +1,5 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { default as SessionTracker } from './SessionTracker';
4
+ export default SessionTracker;
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/InAppMessaging/SessionTracker/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7D,eAAe,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare type SessionState = 'started' | 'ended';
2
+ export declare type SessionStateChangeHandler = (state: SessionState) => void;
3
+ export interface SessionTrackerInterface {
4
+ start: () => SessionState;
5
+ end: () => SessionState;
6
+ }
@@ -0,0 +1,3 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/InAppMessaging/SessionTracker/types.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC"}
@@ -0,0 +1,3 @@
1
+ import { InAppMessage, InAppMessageInteractionEvent, OnMessageInteractionEventHandler, OnMessageInteractionEventListener } from './types';
2
+ export declare const notifyMessageInteractionEventListeners: (message: InAppMessage, event: InAppMessageInteractionEvent) => void;
3
+ export declare const addMessageInteractionEventListener: (handler: OnMessageInteractionEventHandler, event: InAppMessageInteractionEvent) => OnMessageInteractionEventListener;
@@ -0,0 +1,26 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ var _a;
4
+ import { InAppMessageInteractionEvent, } from './types';
5
+ var onMessageActionListeners = (_a = {},
6
+ _a[InAppMessageInteractionEvent.MESSAGE_RECEIVED] = new Set(),
7
+ _a[InAppMessageInteractionEvent.MESSAGE_DISPLAYED] = new Set(),
8
+ _a[InAppMessageInteractionEvent.MESSAGE_DISMISSED] = new Set(),
9
+ _a[InAppMessageInteractionEvent.MESSAGE_ACTION_TAKEN] = new Set(),
10
+ _a);
11
+ export var notifyMessageInteractionEventListeners = function (message, event) {
12
+ onMessageActionListeners[event].forEach(function (listener) {
13
+ listener.handleEvent(message);
14
+ });
15
+ };
16
+ export var addMessageInteractionEventListener = function (handler, event) {
17
+ var listener = {
18
+ handleEvent: handler,
19
+ remove: function () {
20
+ onMessageActionListeners[event].delete(listener);
21
+ },
22
+ };
23
+ onMessageActionListeners[event].add(listener);
24
+ return listener;
25
+ };
26
+ //# sourceMappingURL=eventListeners.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventListeners.js","sourceRoot":"","sources":["../../src/InAppMessaging/eventListeners.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC,OAAO,EAEN,4BAA4B,GAG5B,MAAM,SAAS,CAAC;AAEjB,IAAM,wBAAwB;IAI7B,GAAC,4BAA4B,CAAC,gBAAgB,IAAG,IAAI,GAAG,EAAE;IAC1D,GAAC,4BAA4B,CAAC,iBAAiB,IAAG,IAAI,GAAG,EAAE;IAC3D,GAAC,4BAA4B,CAAC,iBAAiB,IAAG,IAAI,GAAG,EAAE;IAC3D,GAAC,4BAA4B,CAAC,oBAAoB,IAAG,IAAI,GAAG,EAAE;OAC9D,CAAC;AAEF,MAAM,CAAC,IAAM,sCAAsC,GAAG,UACrD,OAAqB,EACrB,KAAmC;IAEnC,wBAAwB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAA,QAAQ;QAC/C,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,kCAAkC,GAAG,UACjD,OAAyC,EACzC,KAAmC;IAEnC,IAAM,QAAQ,GAAG;QAChB,WAAW,EAAE,OAAO;QACpB,MAAM,EAAE;YACP,wBAAwB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;KACD,CAAC;IACF,wBAAwB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { default } from './InAppMessaging';
2
+ export { AWSPinpointProvider } from './Providers';
3
+ export { AWSPinpointUserInfo } from './Providers/AWSPinpointProvider/types';
4
+ export { InAppMessage, InAppMessageAction, InAppMessageButton, InAppMessageContent, InAppMessageImage, InAppMessageInteractionEvent, InAppMessageLayout, InAppMessageStyle, InAppMessageTextAlign, InAppMessagingConfig, InAppMessagingEvent, UserInfo, } from './types';
@@ -0,0 +1,6 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export { default } from './InAppMessaging';
4
+ export { AWSPinpointProvider } from './Providers';
5
+ export { InAppMessageInteractionEvent, } from './types';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/InAppMessaging/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAMN,4BAA4B,GAO5B,MAAM,SAAS,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { NotificationsCategory } from '../types';
2
+ import { AWSPinpointProviderConfig } from './Providers/AWSPinpointProvider/types';
3
+ export declare type NotificationsSubcategory = 'InAppMessaging';
4
+ export declare type UserInfo = {
5
+ attributes?: Record<string, string[]>;
6
+ demographic?: {
7
+ appVersion?: string;
8
+ locale?: string;
9
+ make?: string;
10
+ model?: string;
11
+ modelVersion?: string;
12
+ platform?: string;
13
+ platformVersion?: string;
14
+ timezone?: string;
15
+ };
16
+ location?: {
17
+ city?: string;
18
+ country?: string;
19
+ latitude?: number;
20
+ longitude?: number;
21
+ postalCode?: string;
22
+ region?: string;
23
+ };
24
+ metrics?: Record<string, number>;
25
+ };
26
+ export declare type InAppMessagingEvent = {
27
+ name: string;
28
+ attributes?: Record<string, string>;
29
+ metrics?: Record<string, number>;
30
+ };
31
+ export interface InAppMessagingConfig {
32
+ listenForAnalyticsEvents?: boolean;
33
+ AWSPinpoint?: AWSPinpointProviderConfig;
34
+ }
35
+ export interface InAppMessagingProvider {
36
+ configure(config: object): object;
37
+ getCategory(): NotificationsCategory;
38
+ getSubCategory(): NotificationsSubcategory;
39
+ getProviderName(): string;
40
+ getInAppMessages(): Promise<any>;
41
+ processInAppMessages(messages: InAppMessage[], event: InAppMessagingEvent): Promise<InAppMessage[]>;
42
+ identifyUser(userId: string, userInfo: UserInfo): Promise<void>;
43
+ }
44
+ export declare type InAppMessageLayout = 'BOTTOM_BANNER' | 'CAROUSEL' | 'FULL_SCREEN' | 'MIDDLE_BANNER' | 'MODAL' | 'TOP_BANNER';
45
+ export declare type InAppMessageAction = 'CLOSE' | 'DEEP_LINK' | 'LINK';
46
+ export declare type InAppMessageTextAlign = 'center' | 'left' | 'right';
47
+ interface InAppMessageContainer {
48
+ style?: InAppMessageStyle;
49
+ }
50
+ interface InAppMessageHeader {
51
+ content: string;
52
+ style?: InAppMessageStyle;
53
+ }
54
+ interface InAppMessageBody {
55
+ content: string;
56
+ style?: InAppMessageStyle;
57
+ }
58
+ export interface InAppMessageImage {
59
+ src: string;
60
+ }
61
+ export interface InAppMessageButton {
62
+ title: string;
63
+ action: InAppMessageAction;
64
+ url?: string;
65
+ style?: InAppMessageStyle;
66
+ }
67
+ export interface InAppMessageStyle {
68
+ backgroundColor?: string;
69
+ borderRadius?: number;
70
+ color?: string;
71
+ textAlign?: InAppMessageTextAlign;
72
+ }
73
+ export interface InAppMessageContent {
74
+ container?: InAppMessageContainer;
75
+ header?: InAppMessageHeader;
76
+ body?: InAppMessageBody;
77
+ image?: InAppMessageImage;
78
+ primaryButton?: InAppMessageButton;
79
+ secondaryButton?: InAppMessageButton;
80
+ }
81
+ export interface InAppMessage {
82
+ id: string;
83
+ layout: InAppMessageLayout;
84
+ content: InAppMessageContent[];
85
+ metadata?: any;
86
+ }
87
+ export declare type OnMessageInteractionEventHandler = (message: InAppMessage) => any;
88
+ export interface OnMessageInteractionEventListener {
89
+ handleEvent: OnMessageInteractionEventHandler;
90
+ remove: () => void;
91
+ }
92
+ export declare enum InAppMessageInteractionEvent {
93
+ MESSAGE_RECEIVED = "MESSAGE_RECEIVED_EVENT",
94
+ MESSAGE_DISPLAYED = "MESSAGE_DISPLAYED_EVENT",
95
+ MESSAGE_DISMISSED = "MESSAGE_DISMISSED_EVENT",
96
+ MESSAGE_ACTION_TAKEN = "MESSAGE_ACTION_TAKEN_EVENT"
97
+ }
98
+ export declare type InAppMessageConflictHandler = (messages: InAppMessage[]) => InAppMessage;
99
+ export {};
@@ -0,0 +1,8 @@
1
+ export var InAppMessageInteractionEvent;
2
+ (function (InAppMessageInteractionEvent) {
3
+ InAppMessageInteractionEvent["MESSAGE_RECEIVED"] = "MESSAGE_RECEIVED_EVENT";
4
+ InAppMessageInteractionEvent["MESSAGE_DISPLAYED"] = "MESSAGE_DISPLAYED_EVENT";
5
+ InAppMessageInteractionEvent["MESSAGE_DISMISSED"] = "MESSAGE_DISMISSED_EVENT";
6
+ InAppMessageInteractionEvent["MESSAGE_ACTION_TAKEN"] = "MESSAGE_ACTION_TAKEN_EVENT";
7
+ })(InAppMessageInteractionEvent || (InAppMessageInteractionEvent = {}));
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/InAppMessaging/types.ts"],"names":[],"mappings":"AAwIA,MAAM,CAAN,IAAY,4BAKX;AALD,WAAY,4BAA4B;IACvC,2EAA2C,CAAA;IAC3C,6EAA6C,CAAA;IAC7C,6EAA6C,CAAA;IAC7C,mFAAmD,CAAA;AACpD,CAAC,EALW,4BAA4B,KAA5B,4BAA4B,QAKvC"}