@aws-amplify/notifications 1.0.25 → 1.0.26-unstable.1b5840e.8

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 (208) hide show
  1. package/lib/InAppMessaging/InAppMessaging.d.ts +10 -8
  2. package/lib/InAppMessaging/InAppMessaging.js +9 -11
  3. package/lib/InAppMessaging/InAppMessaging.js.map +1 -1
  4. package/lib/InAppMessaging/Providers/AWSPinpointProvider/index.d.ts +5 -25
  5. package/lib/InAppMessaging/Providers/AWSPinpointProvider/index.js +37 -252
  6. package/lib/InAppMessaging/Providers/AWSPinpointProvider/index.js.map +1 -1
  7. package/lib/InAppMessaging/Providers/AWSPinpointProvider/types.d.ts +0 -9
  8. package/lib/InAppMessaging/Providers/AWSPinpointProvider/types.js.map +1 -1
  9. package/lib/InAppMessaging/Providers/AWSPinpointProvider/utils.js +3 -9
  10. package/lib/InAppMessaging/Providers/AWSPinpointProvider/utils.js.map +1 -1
  11. package/lib/InAppMessaging/index.d.ts +1 -3
  12. package/lib/InAppMessaging/index.js +0 -2
  13. package/lib/InAppMessaging/index.js.map +1 -1
  14. package/lib/InAppMessaging/types.d.ts +30 -42
  15. package/lib/InAppMessaging/types.js +2 -0
  16. package/lib/InAppMessaging/types.js.map +1 -1
  17. package/lib/Notifications.d.ts +6 -2
  18. package/lib/Notifications.js +45 -0
  19. package/lib/Notifications.js.map +1 -1
  20. package/lib/PushNotification/NotEnabledError.d.ts +3 -0
  21. package/lib/PushNotification/NotEnabledError.js +16 -0
  22. package/lib/PushNotification/NotEnabledError.js.map +1 -0
  23. package/lib/PushNotification/Platform/index.d.ts +2 -0
  24. package/lib/PushNotification/Platform/index.js +26 -0
  25. package/lib/PushNotification/Platform/index.js.map +1 -0
  26. package/lib/PushNotification/Platform/index.native.d.ts +2 -0
  27. package/lib/PushNotification/Platform/index.native.js +8 -0
  28. package/lib/PushNotification/Platform/index.native.js.map +1 -0
  29. package/lib/PushNotification/Platform/types.d.ts +5 -0
  30. package/lib/PushNotification/Platform/types.js +5 -0
  31. package/lib/PushNotification/Platform/types.js.map +1 -0
  32. package/lib/PushNotification/PlatformNotSupportedError.d.ts +3 -0
  33. package/lib/PushNotification/PlatformNotSupportedError.js +16 -0
  34. package/lib/PushNotification/PlatformNotSupportedError.js.map +1 -0
  35. package/lib/PushNotification/Providers/AWSPinpointProvider/index.d.ts +15 -0
  36. package/lib/PushNotification/Providers/AWSPinpointProvider/index.js +115 -0
  37. package/lib/PushNotification/Providers/AWSPinpointProvider/index.js.map +1 -0
  38. package/lib/PushNotification/Providers/AWSPinpointProvider/types.d.ts +9 -0
  39. package/lib/PushNotification/Providers/AWSPinpointProvider/types.js +16 -0
  40. package/lib/PushNotification/Providers/AWSPinpointProvider/types.js.map +1 -0
  41. package/lib/PushNotification/Providers/AWSPinpointProvider/utils.d.ts +7 -0
  42. package/lib/PushNotification/Providers/AWSPinpointProvider/utils.js +58 -0
  43. package/lib/PushNotification/Providers/AWSPinpointProvider/utils.js.map +1 -0
  44. package/lib/PushNotification/Providers/index.d.ts +1 -0
  45. package/lib/PushNotification/Providers/index.js +7 -0
  46. package/lib/PushNotification/Providers/index.js.map +1 -0
  47. package/lib/PushNotification/PushNotification.d.ts +39 -0
  48. package/lib/PushNotification/PushNotification.js +91 -0
  49. package/lib/PushNotification/PushNotification.js.map +1 -0
  50. package/lib/PushNotification/PushNotification.native.d.ts +63 -0
  51. package/lib/PushNotification/PushNotification.native.js +327 -0
  52. package/lib/PushNotification/PushNotification.native.js.map +1 -0
  53. package/lib/PushNotification/index.d.ts +2 -0
  54. package/lib/PushNotification/index.js +9 -0
  55. package/lib/PushNotification/index.js.map +1 -0
  56. package/lib/PushNotification/types.d.ts +77 -0
  57. package/lib/PushNotification/types.js +12 -0
  58. package/lib/PushNotification/types.js.map +1 -0
  59. package/lib/PushNotification/utils.d.ts +3 -0
  60. package/lib/PushNotification/utils.js +81 -0
  61. package/lib/PushNotification/utils.js.map +1 -0
  62. package/lib/common/AWSPinpointProviderCommon/index.d.ts +34 -0
  63. package/lib/common/AWSPinpointProviderCommon/index.js +281 -0
  64. package/lib/common/AWSPinpointProviderCommon/index.js.map +1 -0
  65. package/lib/common/AWSPinpointProviderCommon/types.d.ts +9 -0
  66. package/lib/common/AWSPinpointProviderCommon/types.js +5 -0
  67. package/lib/common/AWSPinpointProviderCommon/types.js.map +1 -0
  68. package/lib/common/constants.d.ts +1 -0
  69. package/lib/common/constants.js +6 -0
  70. package/lib/common/constants.js.map +1 -0
  71. package/lib/common/eventListeners/index.d.ts +4 -0
  72. package/lib/common/eventListeners/index.js +55 -0
  73. package/lib/common/eventListeners/index.js.map +1 -0
  74. package/lib/common/eventListeners/types.d.ts +7 -0
  75. package/lib/common/eventListeners/types.js +5 -0
  76. package/lib/common/eventListeners/types.js.map +1 -0
  77. package/lib/common/index.d.ts +4 -0
  78. package/lib/common/index.js +13 -0
  79. package/lib/common/index.js.map +1 -0
  80. package/lib/index.d.ts +5 -2
  81. package/lib/index.js +4 -0
  82. package/lib/index.js.map +1 -1
  83. package/lib/types.d.ts +34 -2
  84. package/lib/types.js +2 -0
  85. package/lib/types.js.map +1 -1
  86. package/lib-esm/InAppMessaging/InAppMessaging.d.ts +10 -8
  87. package/lib-esm/InAppMessaging/InAppMessaging.js +9 -11
  88. package/lib-esm/InAppMessaging/InAppMessaging.js.map +1 -1
  89. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/index.d.ts +5 -25
  90. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/index.js +39 -254
  91. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/index.js.map +1 -1
  92. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/types.d.ts +0 -9
  93. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/types.js.map +1 -1
  94. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/utils.js +2 -8
  95. package/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/utils.js.map +1 -1
  96. package/lib-esm/InAppMessaging/index.d.ts +1 -3
  97. package/lib-esm/InAppMessaging/index.js +0 -1
  98. package/lib-esm/InAppMessaging/index.js.map +1 -1
  99. package/lib-esm/InAppMessaging/types.d.ts +30 -42
  100. package/lib-esm/InAppMessaging/types.js +2 -0
  101. package/lib-esm/InAppMessaging/types.js.map +1 -1
  102. package/lib-esm/Notifications.d.ts +6 -2
  103. package/lib-esm/Notifications.js +48 -3
  104. package/lib-esm/Notifications.js.map +1 -1
  105. package/lib-esm/PushNotification/NotEnabledError.d.ts +3 -0
  106. package/lib-esm/PushNotification/NotEnabledError.js +14 -0
  107. package/lib-esm/PushNotification/NotEnabledError.js.map +1 -0
  108. package/lib-esm/PushNotification/Platform/index.d.ts +2 -0
  109. package/lib-esm/PushNotification/Platform/index.js +24 -0
  110. package/lib-esm/PushNotification/Platform/index.js.map +1 -0
  111. package/lib-esm/PushNotification/Platform/index.native.d.ts +2 -0
  112. package/lib-esm/PushNotification/Platform/index.native.js +6 -0
  113. package/lib-esm/PushNotification/Platform/index.native.js.map +1 -0
  114. package/lib-esm/PushNotification/Platform/types.d.ts +5 -0
  115. package/lib-esm/PushNotification/Platform/types.js +3 -0
  116. package/lib-esm/PushNotification/Platform/types.js.map +1 -0
  117. package/lib-esm/PushNotification/PlatformNotSupportedError.d.ts +3 -0
  118. package/lib-esm/PushNotification/PlatformNotSupportedError.js +14 -0
  119. package/lib-esm/PushNotification/PlatformNotSupportedError.js.map +1 -0
  120. package/lib-esm/PushNotification/Providers/AWSPinpointProvider/index.d.ts +15 -0
  121. package/lib-esm/PushNotification/Providers/AWSPinpointProvider/index.js +113 -0
  122. package/lib-esm/PushNotification/Providers/AWSPinpointProvider/index.js.map +1 -0
  123. package/lib-esm/PushNotification/Providers/AWSPinpointProvider/types.d.ts +9 -0
  124. package/lib-esm/PushNotification/Providers/AWSPinpointProvider/types.js +14 -0
  125. package/lib-esm/PushNotification/Providers/AWSPinpointProvider/types.js.map +1 -0
  126. package/lib-esm/PushNotification/Providers/AWSPinpointProvider/utils.d.ts +7 -0
  127. package/lib-esm/PushNotification/Providers/AWSPinpointProvider/utils.js +56 -0
  128. package/lib-esm/PushNotification/Providers/AWSPinpointProvider/utils.js.map +1 -0
  129. package/lib-esm/PushNotification/Providers/index.d.ts +1 -0
  130. package/lib-esm/PushNotification/Providers/index.js +4 -0
  131. package/lib-esm/PushNotification/Providers/index.js.map +1 -0
  132. package/lib-esm/PushNotification/PushNotification.d.ts +39 -0
  133. package/lib-esm/PushNotification/PushNotification.js +89 -0
  134. package/lib-esm/PushNotification/PushNotification.js.map +1 -0
  135. package/lib-esm/PushNotification/PushNotification.native.d.ts +63 -0
  136. package/lib-esm/PushNotification/PushNotification.native.js +325 -0
  137. package/lib-esm/PushNotification/PushNotification.native.js.map +1 -0
  138. package/lib-esm/PushNotification/index.d.ts +2 -0
  139. package/lib-esm/PushNotification/index.js +5 -0
  140. package/lib-esm/PushNotification/index.js.map +1 -0
  141. package/lib-esm/PushNotification/types.d.ts +77 -0
  142. package/lib-esm/PushNotification/types.js +10 -0
  143. package/lib-esm/PushNotification/types.js.map +1 -0
  144. package/lib-esm/PushNotification/utils.d.ts +3 -0
  145. package/lib-esm/PushNotification/utils.js +79 -0
  146. package/lib-esm/PushNotification/utils.js.map +1 -0
  147. package/lib-esm/common/AWSPinpointProviderCommon/index.d.ts +34 -0
  148. package/lib-esm/common/AWSPinpointProviderCommon/index.js +279 -0
  149. package/lib-esm/common/AWSPinpointProviderCommon/index.js.map +1 -0
  150. package/lib-esm/common/AWSPinpointProviderCommon/types.d.ts +9 -0
  151. package/lib-esm/common/AWSPinpointProviderCommon/types.js +3 -0
  152. package/lib-esm/common/AWSPinpointProviderCommon/types.js.map +1 -0
  153. package/lib-esm/common/constants.d.ts +1 -0
  154. package/lib-esm/common/constants.js +4 -0
  155. package/lib-esm/common/constants.js.map +1 -0
  156. package/lib-esm/common/eventListeners/index.d.ts +4 -0
  157. package/lib-esm/common/eventListeners/index.js +53 -0
  158. package/lib-esm/common/eventListeners/index.js.map +1 -0
  159. package/lib-esm/common/eventListeners/types.d.ts +7 -0
  160. package/lib-esm/common/eventListeners/types.js +3 -0
  161. package/lib-esm/common/eventListeners/types.js.map +1 -0
  162. package/lib-esm/common/index.d.ts +4 -0
  163. package/lib-esm/common/index.js +6 -0
  164. package/lib-esm/common/index.js.map +1 -0
  165. package/lib-esm/index.d.ts +5 -2
  166. package/lib-esm/index.js +2 -0
  167. package/lib-esm/index.js.map +1 -1
  168. package/lib-esm/types.d.ts +34 -2
  169. package/lib-esm/types.js +2 -0
  170. package/lib-esm/types.js.map +1 -1
  171. package/package.json +11 -50
  172. package/src/InAppMessaging/InAppMessaging.ts +27 -36
  173. package/src/InAppMessaging/Providers/AWSPinpointProvider/index.ts +45 -245
  174. package/src/InAppMessaging/Providers/AWSPinpointProvider/types.ts +0 -12
  175. package/src/InAppMessaging/Providers/AWSPinpointProvider/utils.ts +3 -12
  176. package/src/InAppMessaging/index.ts +0 -3
  177. package/src/InAppMessaging/types.ts +52 -56
  178. package/src/Notifications.ts +42 -4
  179. package/src/PushNotification/NotEnabledError.ts +11 -0
  180. package/src/PushNotification/Platform/index.native.ts +9 -0
  181. package/src/PushNotification/Platform/index.ts +22 -0
  182. package/src/PushNotification/Platform/types.ts +15 -0
  183. package/src/PushNotification/PlatformNotSupportedError.ts +9 -0
  184. package/src/PushNotification/Providers/AWSPinpointProvider/index.ts +137 -0
  185. package/src/PushNotification/Providers/AWSPinpointProvider/types.ts +13 -0
  186. package/src/PushNotification/Providers/AWSPinpointProvider/utils.ts +79 -0
  187. package/src/PushNotification/Providers/index.ts +4 -0
  188. package/src/PushNotification/PushNotification.native.ts +381 -0
  189. package/src/PushNotification/PushNotification.ts +107 -0
  190. package/src/PushNotification/index.ts +9 -0
  191. package/src/PushNotification/types.ts +114 -0
  192. package/src/PushNotification/utils.ts +112 -0
  193. package/src/common/AWSPinpointProviderCommon/index.ts +295 -0
  194. package/src/common/AWSPinpointProviderCommon/types.ts +14 -0
  195. package/src/common/constants.ts +5 -0
  196. package/src/common/eventListeners/index.ts +44 -0
  197. package/src/common/eventListeners/types.ts +12 -0
  198. package/src/common/index.ts +11 -0
  199. package/src/index.ts +9 -3
  200. package/src/types.ts +47 -2
  201. package/CHANGELOG.md +0 -215
  202. package/lib/InAppMessaging/eventListeners.d.ts +0 -3
  203. package/lib/InAppMessaging/eventListeners.js +0 -28
  204. package/lib/InAppMessaging/eventListeners.js.map +0 -1
  205. package/lib-esm/InAppMessaging/eventListeners.d.ts +0 -3
  206. package/lib-esm/InAppMessaging/eventListeners.js +0 -26
  207. package/lib-esm/InAppMessaging/eventListeners.js.map +0 -1
  208. package/src/InAppMessaging/eventListeners.ts +0 -42
@@ -0,0 +1,79 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { __assign } from "tslib";
4
+ import { isEmpty } from 'lodash';
5
+ import { PushNotificationPermissionStatus, } from './types';
6
+ var DEEP_LINK_ACTION = 'deeplink';
7
+ var URL_ACTION = 'url';
8
+ export var normalizeNativePermissionStatus = function (nativeStatus) {
9
+ switch (nativeStatus) {
10
+ case 'ShouldRequest':
11
+ return PushNotificationPermissionStatus.SHOULD_REQUEST;
12
+ case 'NotDetermined':
13
+ case 'ShouldExplainThenRequest':
14
+ return PushNotificationPermissionStatus.SHOULD_EXPLAIN_THEN_REQUEST;
15
+ case 'Authorized':
16
+ case 'Granted':
17
+ return PushNotificationPermissionStatus.GRANTED;
18
+ case 'Denied':
19
+ return PushNotificationPermissionStatus.DENIED;
20
+ }
21
+ };
22
+ export var normalizeNativeMessage = function (nativeMessage) {
23
+ var normalized;
24
+ if (nativeMessage === null || nativeMessage === void 0 ? void 0 : nativeMessage.aps) {
25
+ normalized = normalizeApnsMessage(nativeMessage);
26
+ }
27
+ if (nativeMessage === null || nativeMessage === void 0 ? void 0 : nativeMessage.rawData) {
28
+ normalized = normalizeFcmMessage(nativeMessage);
29
+ }
30
+ if (!normalized) {
31
+ return null;
32
+ }
33
+ var body = normalized.body, imageUrl = normalized.imageUrl, title = normalized.title, action = normalized.action, options = normalized.options, data = normalized.data;
34
+ return __assign(__assign(__assign(__assign(__assign(__assign({}, (body && { body: body })), (imageUrl && { imageUrl: imageUrl })), (title && { title: title })), action), options), (!isEmpty(data) && { data: data }));
35
+ };
36
+ var normalizeApnsMessage = function (apnsMessage) {
37
+ var _a, _b;
38
+ var aps = apnsMessage.aps, _c = apnsMessage.data, data = _c === void 0 ? {} : _c;
39
+ var _d = (_a = aps.alert) !== null && _a !== void 0 ? _a : {}, body = _d.body, title = _d.title;
40
+ var action = (_b = getApnsAction(data.pinpoint)) !== null && _b !== void 0 ? _b : {};
41
+ var imageUrl = data['media-url'];
42
+ var options = getApnsOptions(apnsMessage);
43
+ return { body: body, imageUrl: imageUrl, title: title, action: action, options: options, data: data };
44
+ };
45
+ var normalizeFcmMessage = function (fcmMessage) {
46
+ var _a;
47
+ var body = fcmMessage.body, imageUrl = fcmMessage.imageUrl, data = fcmMessage.rawData, title = fcmMessage.title;
48
+ var action = (_a = getFcmAction(fcmMessage.action)) !== null && _a !== void 0 ? _a : {};
49
+ var options = getFcmOptions(fcmMessage);
50
+ return { body: body, imageUrl: imageUrl, title: title, action: action, options: options, data: data };
51
+ };
52
+ var getApnsAction = function (action) {
53
+ if (action === void 0) { action = {}; }
54
+ if (action[DEEP_LINK_ACTION]) {
55
+ return { deeplinkUrl: action[DEEP_LINK_ACTION] };
56
+ }
57
+ };
58
+ var getFcmAction = function (action) {
59
+ if (action === void 0) { action = {}; }
60
+ if (action[URL_ACTION]) {
61
+ return { goToUrl: action[URL_ACTION] };
62
+ }
63
+ if (action[DEEP_LINK_ACTION]) {
64
+ return { deeplinkUrl: action[DEEP_LINK_ACTION] };
65
+ }
66
+ };
67
+ var getApnsOptions = function (_a) {
68
+ var aps = _a.aps;
69
+ var _b;
70
+ var subtitle = ((_b = aps.alert) !== null && _b !== void 0 ? _b : {}).subtitle;
71
+ var apnsOptions = __assign({}, (subtitle && { subtitle: subtitle }));
72
+ return __assign({}, (!isEmpty(apnsOptions) && { apnsOptions: apnsOptions }));
73
+ };
74
+ var getFcmOptions = function (_a) {
75
+ var channelId = _a.channelId, messageId = _a.messageId, senderId = _a.senderId, sendTime = _a.sendTime;
76
+ var fcmOptions = __assign(__assign(__assign(__assign({}, (channelId && { channelId: channelId })), (messageId && { messageId: messageId })), (senderId && { senderId: senderId })), (sendTime && { sendTime: new Date(sendTime) }));
77
+ return __assign({}, (!isEmpty(fcmOptions) && { fcmOptions: fcmOptions }));
78
+ };
79
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/PushNotification/utils.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAGN,gCAAgC,GAChC,MAAM,SAAS,CAAC;AAEjB,IAAM,gBAAgB,GAAG,UAAU,CAAC;AACpC,IAAM,UAAU,GAAG,KAAK,CAAC;AAEzB,MAAM,CAAC,IAAM,+BAA+B,GAAG,UAC9C,YAAa;IAEb,QAAQ,YAAY,EAAE;QACrB,KAAK,eAAe;YACnB,OAAO,gCAAgC,CAAC,cAAc,CAAC;QACxD,KAAK,eAAe,CAAC;QACrB,KAAK,0BAA0B;YAC9B,OAAO,gCAAgC,CAAC,2BAA2B,CAAC;QACrE,KAAK,YAAY,CAAC;QAClB,KAAK,SAAS;YACb,OAAO,gCAAgC,CAAC,OAAO,CAAC;QACjD,KAAK,QAAQ;YACZ,OAAO,gCAAgC,CAAC,MAAM,CAAC;KAChD;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,sBAAsB,GAAG,UACrC,aAAc;IAEd,IAAI,UAA4B,CAAC;IACjC,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG,EAAE;QACvB,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;KACjD;IACD,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,EAAE;QAC3B,UAAU,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;KAChD;IACD,IAAI,CAAC,UAAU,EAAE;QAChB,OAAO,IAAI,CAAC;KACZ;IACO,IAAA,sBAAI,EAAE,8BAAQ,EAAE,wBAAK,EAAE,0BAAM,EAAE,4BAAO,EAAE,sBAAI,CAAgB;IACpE,iEACI,CAAC,IAAI,IAAI,EAAE,IAAI,MAAA,EAAE,CAAC,GAClB,CAAC,QAAQ,IAAI,EAAE,QAAQ,UAAA,EAAE,CAAC,GAC1B,CAAC,KAAK,IAAI,EAAE,KAAK,OAAA,EAAE,CAAC,GACpB,MAAM,GACN,OAAO,GACP,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,MAAA,EAAE,CAAC,EAC9B;AACH,CAAC,CAAC;AAEF,IAAM,oBAAoB,GAAG,UAAC,WAAW;;IAChC,IAAA,qBAAG,EAAE,qBAAS,EAAT,8BAAS,CAAiB;IACjC,IAAA,yDAAiC,EAA/B,cAAI,EAAE,gBAAyB,CAAC;IACxC,IAAM,MAAM,SAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC;IAClD,IAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,IAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,EAAE,IAAI,MAAA,EAAE,QAAQ,UAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAC;AACzD,CAAC,CAAC;AAEF,IAAM,mBAAmB,GAAG,UAAC,UAAU;;IAC9B,IAAA,sBAAI,EAAE,8BAAQ,EAAE,yBAAa,EAAE,wBAAK,CAAgB;IAC5D,IAAM,MAAM,SAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC;IACrD,IAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO,EAAE,IAAI,MAAA,EAAE,QAAQ,UAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAC;AACzD,CAAC,CAAC;AAEF,IAAM,aAAa,GAAG,UACrB,MAAW;IAAX,uBAAA,EAAA,WAAW;IAEX,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE;QAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;KACjD;AACF,CAAC,CAAC;AAEF,IAAM,YAAY,GAAG,UACpB,MAAW;IAAX,uBAAA,EAAA,WAAW;IAEX,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;QACvB,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;KACvC;IACD,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE;QAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;KACjD;AACF,CAAC,CAAC;AAEF,IAAM,cAAc,GAAG,UAAC,EAEvB;QADA,YAAG;;IAEK,IAAA,0EAAQ,CAAqB;IACrC,IAAM,WAAW,gBAAQ,CAAC,QAAQ,IAAI,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAE,CAAC;IACtD,oBAAY,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,aAAA,EAAE,CAAC,EAAG;AAC1D,CAAC,CAAC;AAEF,IAAM,aAAa,GAAG,UAAC,EAKtB;QAJA,wBAAS,EACT,wBAAS,EACT,sBAAQ,EACR,sBAAQ;IAER,IAAM,UAAU,2CACZ,CAAC,SAAS,IAAI,EAAE,SAAS,WAAA,EAAE,CAAC,GAC5B,CAAC,SAAS,IAAI,EAAE,SAAS,WAAA,EAAE,CAAC,GAC5B,CAAC,QAAQ,IAAI,EAAE,QAAQ,UAAA,EAAE,CAAC,GAC1B,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CACjD,CAAC;IACF,oBAAY,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,YAAA,EAAE,CAAC,EAAG;AACxD,CAAC,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { ConsoleLogger } from '@aws-amplify/core';
2
+ import { Event as AWSPinpointAnalyticsEvent } from '@aws-sdk/client-pinpoint';
3
+ import { NotificationsCategory, NotificationsSubCategory, NotificationsProvider, UserInfo } from '../../types';
4
+ import { AWSPinpointUserInfo } from './types';
5
+ export default abstract class AWSPinpointProviderCommon implements NotificationsProvider {
6
+ static category: NotificationsCategory;
7
+ static providerName: string;
8
+ protected clientInfo: any;
9
+ protected config: Record<string, any>;
10
+ protected endpointInitialized: boolean;
11
+ protected initialized: boolean;
12
+ protected logger: ConsoleLogger;
13
+ constructor(logger: any);
14
+ /**
15
+ * get the category of the plugin
16
+ */
17
+ getCategory(): "Notifications";
18
+ /**
19
+ * get the sub-category of the plugin
20
+ */
21
+ abstract getSubCategory(): NotificationsSubCategory;
22
+ /**
23
+ * get provider name of the plugin
24
+ */
25
+ getProviderName(): string;
26
+ configure(config?: {}): Record<string, any>;
27
+ identifyUser: (userId: string, userInfo: UserInfo) => Promise<void>;
28
+ protected init: () => Promise<void>;
29
+ protected recordAnalyticsEvent: (event: AWSPinpointAnalyticsEvent) => Promise<void>;
30
+ protected updateEndpoint: (userId?: string, userInfo?: AWSPinpointUserInfo) => Promise<void>;
31
+ private initPinpointClient;
32
+ private getEndpointId;
33
+ private getCredentials;
34
+ }
@@ -0,0 +1,279 @@
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 { UpdateEndpointCommand, PinpointClient, PutEventsCommand, } from '@aws-sdk/client-pinpoint';
7
+ import { v4 as uuid } from 'uuid';
8
+ var AWSPinpointProviderCommon = /** @class */ (function () {
9
+ function AWSPinpointProviderCommon(logger) {
10
+ var _this = this;
11
+ var _a;
12
+ this.config = {};
13
+ this.endpointInitialized = false;
14
+ this.initialized = false;
15
+ this.identifyUser = function (userId, userInfo) { return __awaiter(_this, void 0, void 0, function () {
16
+ var err_1;
17
+ return __generator(this, function (_a) {
18
+ switch (_a.label) {
19
+ case 0:
20
+ if (!!this.initialized) return [3 /*break*/, 2];
21
+ return [4 /*yield*/, this.init()];
22
+ case 1:
23
+ _a.sent();
24
+ _a.label = 2;
25
+ case 2:
26
+ _a.trys.push([2, 4, , 5]);
27
+ return [4 /*yield*/, this.updateEndpoint(userId, userInfo)];
28
+ case 3:
29
+ _a.sent();
30
+ return [3 /*break*/, 5];
31
+ case 4:
32
+ err_1 = _a.sent();
33
+ this.logger.error('Error identifying user', err_1);
34
+ throw err_1;
35
+ case 5: return [2 /*return*/];
36
+ }
37
+ });
38
+ }); };
39
+ this.init = function () { return __awaiter(_this, void 0, void 0, function () {
40
+ var _a, endpointId, storage, providerName, _b, err_2;
41
+ return __generator(this, function (_c) {
42
+ switch (_c.label) {
43
+ case 0:
44
+ _a = this.config, endpointId = _a.endpointId, storage = _a.storage;
45
+ providerName = this.getProviderName();
46
+ _c.label = 1;
47
+ case 1:
48
+ _c.trys.push([1, 6, , 7]);
49
+ if (!(typeof storage.sync === 'function')) return [3 /*break*/, 3];
50
+ return [4 /*yield*/, storage.sync()];
51
+ case 2:
52
+ _c.sent();
53
+ _c.label = 3;
54
+ case 3:
55
+ if (!!endpointId) return [3 /*break*/, 5];
56
+ _b = this.config;
57
+ return [4 /*yield*/, this.getEndpointId()];
58
+ case 4:
59
+ _b.endpointId = _c.sent();
60
+ _c.label = 5;
61
+ case 5:
62
+ this.initialized = true;
63
+ return [3 /*break*/, 7];
64
+ case 6:
65
+ err_2 = _c.sent();
66
+ this.logger.error("Failed to initialize " + providerName, err_2);
67
+ return [3 /*break*/, 7];
68
+ case 7: return [2 /*return*/];
69
+ }
70
+ });
71
+ }); };
72
+ this.recordAnalyticsEvent = function (event) { return __awaiter(_this, void 0, void 0, function () {
73
+ var _a, appId, credentials, endpointId, pinpointClient, currentCredentials, credentialsUpdated, input, command, err_3;
74
+ var _b, _c;
75
+ return __generator(this, function (_d) {
76
+ switch (_d.label) {
77
+ case 0:
78
+ _a = this.config, appId = _a.appId, credentials = _a.credentials, endpointId = _a.endpointId, pinpointClient = _a.pinpointClient;
79
+ return [4 /*yield*/, this.getCredentials()];
80
+ case 1:
81
+ currentCredentials = _d.sent();
82
+ credentialsUpdated = !credentials ||
83
+ Object.keys(currentCredentials).some(function (key) { return currentCredentials[key] !== credentials[key]; });
84
+ // Update credentials
85
+ this.config.credentials = currentCredentials;
86
+ _d.label = 2;
87
+ case 2:
88
+ _d.trys.push([2, 6, , 7]);
89
+ if (!(!pinpointClient || credentialsUpdated)) return [3 /*break*/, 4];
90
+ return [4 /*yield*/, this.initPinpointClient()];
91
+ case 3:
92
+ _d.sent();
93
+ _d.label = 4;
94
+ case 4:
95
+ input = {
96
+ ApplicationId: appId,
97
+ EventsRequest: {
98
+ BatchItem: (_b = {},
99
+ _b[endpointId] = {
100
+ Endpoint: {},
101
+ Events: (_c = {},
102
+ _c[uuid()] = event,
103
+ _c),
104
+ },
105
+ _b),
106
+ },
107
+ };
108
+ command = new PutEventsCommand(input);
109
+ this.logger.debug('recording analytics event');
110
+ return [4 /*yield*/, this.config.pinpointClient.send(command)];
111
+ case 5:
112
+ _d.sent();
113
+ return [3 /*break*/, 7];
114
+ case 6:
115
+ err_3 = _d.sent();
116
+ this.logger.error('Error recording analytics event', err_3);
117
+ throw err_3;
118
+ case 7: return [2 /*return*/];
119
+ }
120
+ });
121
+ }); };
122
+ this.updateEndpoint = function (userId, userInfo) {
123
+ if (userId === void 0) { userId = null; }
124
+ if (userInfo === void 0) { userInfo = null; }
125
+ return __awaiter(_this, void 0, void 0, function () {
126
+ 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;
127
+ var _e;
128
+ return __generator(this, function (_f) {
129
+ switch (_f.label) {
130
+ case 0:
131
+ _a = this.config, appId = _a.appId, credentials = _a.credentials, endpointId = _a.endpointId, _b = _a.endpointInfo, endpointInfo = _b === void 0 ? {} : _b, pinpointClient = _a.pinpointClient;
132
+ return [4 /*yield*/, this.getCredentials()];
133
+ case 1:
134
+ currentCredentials = _f.sent();
135
+ credentialsUpdated = !credentials ||
136
+ Object.keys(currentCredentials).some(function (key) { return currentCredentials[key] !== credentials[key]; });
137
+ // If endpoint is already initialized, and nothing else is changing, just early return
138
+ if (this.endpointInitialized &&
139
+ !credentialsUpdated &&
140
+ !userId &&
141
+ !userInfo) {
142
+ return [2 /*return*/];
143
+ }
144
+ // Update credentials
145
+ this.config.credentials = currentCredentials;
146
+ _f.label = 2;
147
+ case 2:
148
+ _f.trys.push([2, 4, , 5]);
149
+ // Initialize a new pinpoint client if one isn't already configured or if credentials changed
150
+ if (!pinpointClient || credentialsUpdated) {
151
+ this.initPinpointClient();
152
+ }
153
+ _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;
154
+ _d = this.clientInfo, appVersion = _d.appVersion, make = _d.make, model = _d.model, platform = _d.platform, version = _d.version;
155
+ input = {
156
+ ApplicationId: appId,
157
+ EndpointId: endpointId,
158
+ EndpointRequest: {
159
+ RequestId: uuid(),
160
+ EffectiveDate: new Date().toISOString(),
161
+ ChannelType: endpointInfo.channelType,
162
+ Address: address !== null && address !== void 0 ? address : endpointInfo.address,
163
+ Attributes: __assign(__assign({}, endpointInfo.attributes), attributes),
164
+ Demographic: __assign({ AppVersion: appVersion, Make: make, Model: model, ModelVersion: version, Platform: platform }, transferKeyToUpperCase(__assign(__assign({}, endpointInfo.demographic), demographic))),
165
+ Location: transferKeyToUpperCase(__assign(__assign({}, endpointInfo.location), location_1)),
166
+ Metrics: __assign(__assign({}, endpointInfo.metrics), metrics),
167
+ OptOut: optOut !== null && optOut !== void 0 ? optOut : endpointInfo.optOut,
168
+ User: {
169
+ UserId: (_e = userId !== null && userId !== void 0 ? userId : endpointInfo.userId) !== null && _e !== void 0 ? _e : currentCredentials.identityId,
170
+ UserAttributes: attributes !== null && attributes !== void 0 ? attributes : endpointInfo.userAttributes,
171
+ },
172
+ },
173
+ };
174
+ command = new UpdateEndpointCommand(input);
175
+ this.logger.debug('updating endpoint');
176
+ return [4 /*yield*/, this.config.pinpointClient.send(command)];
177
+ case 3:
178
+ _f.sent();
179
+ this.endpointInitialized = true;
180
+ return [3 /*break*/, 5];
181
+ case 4:
182
+ err_4 = _f.sent();
183
+ throw err_4;
184
+ case 5: return [2 /*return*/];
185
+ }
186
+ });
187
+ });
188
+ };
189
+ this.initPinpointClient = function () {
190
+ var _a = _this.config, appId = _a.appId, credentials = _a.credentials, pinpointClient = _a.pinpointClient, region = _a.region;
191
+ if (!appId || !credentials || !region) {
192
+ throw new Error('One or more of credentials, appId or region is not configured');
193
+ }
194
+ if (pinpointClient) {
195
+ pinpointClient.destroy();
196
+ }
197
+ _this.config.pinpointClient = new PinpointClient({
198
+ region: region,
199
+ credentials: credentials,
200
+ customUserAgent: getAmplifyUserAgent("/" + _this.getSubCategory()),
201
+ });
202
+ };
203
+ this.getEndpointId = function () { return __awaiter(_this, void 0, void 0, function () {
204
+ var appId, cacheKey, cachedEndpointId, endpointId, ttl, expiration;
205
+ return __generator(this, function (_a) {
206
+ switch (_a.label) {
207
+ case 0:
208
+ appId = this.config.appId;
209
+ cacheKey = this.getSubCategory() === 'PushNotification'
210
+ ? this.getProviderName() + "_" + appId
211
+ : this.getSubCategory() + ":" + this.getProviderName() + ":" + appId;
212
+ return [4 /*yield*/, Cache.getItem(cacheKey)];
213
+ case 1:
214
+ cachedEndpointId = _a.sent();
215
+ // Found in cache, just return it
216
+ if (cachedEndpointId) {
217
+ return [2 /*return*/, cachedEndpointId];
218
+ }
219
+ endpointId = uuid();
220
+ ttl = 1000 * 60 * 60 * 24 * 365 * 100;
221
+ expiration = new Date().getTime() + ttl;
222
+ Cache.setItem(cacheKey, endpointId, {
223
+ expires: expiration,
224
+ priority: 1,
225
+ });
226
+ return [2 /*return*/, endpointId];
227
+ }
228
+ });
229
+ }); };
230
+ this.getCredentials = function () { return __awaiter(_this, void 0, void 0, function () {
231
+ var credentials, err_5;
232
+ return __generator(this, function (_a) {
233
+ switch (_a.label) {
234
+ case 0:
235
+ _a.trys.push([0, 2, , 3]);
236
+ return [4 /*yield*/, Credentials.get()];
237
+ case 1:
238
+ credentials = _a.sent();
239
+ if (!credentials) {
240
+ this.logger.debug('no credentials found');
241
+ return [2 /*return*/, null];
242
+ }
243
+ return [2 /*return*/, Credentials.shear(credentials)];
244
+ case 2:
245
+ err_5 = _a.sent();
246
+ this.logger.error('Error getting credentials:', err_5);
247
+ return [2 /*return*/, null];
248
+ case 3: return [2 /*return*/];
249
+ }
250
+ });
251
+ }); };
252
+ this.config = { storage: new StorageHelper().getStorage() };
253
+ this.clientInfo = (_a = ClientDevice.clientInfo()) !== null && _a !== void 0 ? _a : {};
254
+ this.logger = logger;
255
+ }
256
+ /**
257
+ * get the category of the plugin
258
+ */
259
+ AWSPinpointProviderCommon.prototype.getCategory = function () {
260
+ return AWSPinpointProviderCommon.category;
261
+ };
262
+ /**
263
+ * get provider name of the plugin
264
+ */
265
+ AWSPinpointProviderCommon.prototype.getProviderName = function () {
266
+ return AWSPinpointProviderCommon.providerName;
267
+ };
268
+ AWSPinpointProviderCommon.prototype.configure = function (config) {
269
+ if (config === void 0) { config = {}; }
270
+ this.config = __assign(__assign({}, this.config), config);
271
+ this.logger.debug("configure " + this.getProviderName() + this.getSubCategory() + "Provider", this.config);
272
+ return this.config;
273
+ };
274
+ AWSPinpointProviderCommon.category = 'Notifications';
275
+ AWSPinpointProviderCommon.providerName = 'AWSPinpoint';
276
+ return AWSPinpointProviderCommon;
277
+ }());
278
+ export default AWSPinpointProviderCommon;
279
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/AWSPinpointProviderCommon/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { UserInfo } from '../../types';
2
+ export interface AWSPinpointProviderConfig {
3
+ appId: string;
4
+ region: string;
5
+ }
6
+ export interface AWSPinpointUserInfo extends UserInfo {
7
+ address?: string;
8
+ optOut?: 'ALL' | 'NONE';
9
+ }
@@ -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/common/AWSPinpointProviderCommon/types.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC"}
@@ -0,0 +1 @@
1
+ export declare const AMPLIFY_SYMBOL: Symbol;
@@ -0,0 +1,4 @@
1
+ export var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'
2
+ ? Symbol.for('amplify_default')
3
+ : '@@amplify_default');
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,cAAc,GAAG,CAC7B,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU;IAChE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC/B,CAAC,CAAC,mBAAmB,CACZ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { EventListener, EventType } from './types';
2
+ export declare const notifyEventListeners: (type: EventType, ...args: any[]) => void;
3
+ export declare const notifyEventListenersAndAwaitHandlers: (type: EventType, ...args: any[]) => Promise<void[]>;
4
+ export declare const addEventListener: <EventHandler extends Function>(type: EventType, handler: EventHandler) => EventListener<EventHandler>;
@@ -0,0 +1,53 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { __awaiter, __generator, __read, __spread } from "tslib";
4
+ var eventListeners = {};
5
+ export var notifyEventListeners = function (type) {
6
+ var args = [];
7
+ for (var _i = 1; _i < arguments.length; _i++) {
8
+ args[_i - 1] = arguments[_i];
9
+ }
10
+ var _a;
11
+ (_a = eventListeners[type]) === null || _a === void 0 ? void 0 : _a.forEach(function (listener) {
12
+ listener.handleEvent.apply(listener, __spread(args));
13
+ });
14
+ };
15
+ export var notifyEventListenersAndAwaitHandlers = function (type) {
16
+ var args = [];
17
+ for (var _i = 1; _i < arguments.length; _i++) {
18
+ args[_i - 1] = arguments[_i];
19
+ }
20
+ var _a;
21
+ return Promise.all(Array.from((_a = eventListeners[type]) !== null && _a !== void 0 ? _a : []).map(function (listener) { return __awaiter(void 0, void 0, void 0, function () {
22
+ var err_1;
23
+ return __generator(this, function (_a) {
24
+ switch (_a.label) {
25
+ case 0:
26
+ _a.trys.push([0, 2, , 3]);
27
+ return [4 /*yield*/, listener.handleEvent.apply(listener, __spread(args))];
28
+ case 1:
29
+ _a.sent();
30
+ return [3 /*break*/, 3];
31
+ case 2:
32
+ err_1 = _a.sent();
33
+ throw err_1;
34
+ case 3: return [2 /*return*/];
35
+ }
36
+ });
37
+ }); }));
38
+ };
39
+ export var addEventListener = function (type, handler) {
40
+ // If there is no listener set for the event type, just create it
41
+ if (!eventListeners[type]) {
42
+ eventListeners[type] = new Set();
43
+ }
44
+ var listener = {
45
+ handleEvent: handler,
46
+ remove: function () {
47
+ eventListeners[type].delete(listener);
48
+ },
49
+ };
50
+ eventListeners[type].add(listener);
51
+ return listener;
52
+ };
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/eventListeners/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;;AAItC,IAAM,cAAc,GAAiD,EAAE,CAAC;AAExE,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,IAAe;IAAE,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,6BAAc;;;IACnE,MAAA,cAAc,CAAC,IAAI,CAAC,0CAAE,OAAO,CAAC,UAAA,QAAQ;QACrC,QAAQ,CAAC,WAAW,OAApB,QAAQ,WAAgB,IAAI,GAAE;IAC/B,CAAC,EAAE;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,oCAAoC,GAAG,UACnD,IAAe;IACf,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,6BAAc;;;IAEd,OAAA,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,IAAI,OAAC,cAAc,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAM,QAAQ;;;;;;oBAEvD,qBAAM,QAAQ,CAAC,WAAW,OAApB,QAAQ,WAAgB,IAAI,IAAC;;oBAAnC,SAAmC,CAAC;;;;oBAEpC,MAAM,KAAG,CAAC;;;;SAEX,CAAC,CACF,CAAA;CAAA,CAAC;AAEH,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAC/B,IAAe,EACf,OAAqB;IAErB,iEAAiE;IACjE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QAC1B,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAA+B,CAAC;KAC9D;IACD,IAAM,QAAQ,GAAG;QAChB,WAAW,EAAE,OAAO;QACpB,MAAM,EAAE;YACP,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;KACD,CAAC;IACF,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { InAppMessageInteractionEvent } from '../../InAppMessaging/types';
2
+ import { PushNotificationEvent } from '../../PushNotification/types';
3
+ export interface EventListener<EventHandler extends Function> {
4
+ handleEvent: EventHandler;
5
+ remove: () => void;
6
+ }
7
+ export declare type EventType = InAppMessageInteractionEvent | PushNotificationEvent;
@@ -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/common/eventListeners/types.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC"}
@@ -0,0 +1,4 @@
1
+ export { default as AWSPinpointProviderCommon } from './AWSPinpointProviderCommon';
2
+ export { AMPLIFY_SYMBOL } from './constants';
3
+ export { addEventListener, notifyEventListeners, notifyEventListenersAndAwaitHandlers, } from './eventListeners';
4
+ export { EventListener, EventType } from './eventListeners/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 as AWSPinpointProviderCommon } from './AWSPinpointProviderCommon';
4
+ export { AMPLIFY_SYMBOL } from './constants';
5
+ export { addEventListener, notifyEventListeners, notifyEventListenersAndAwaitHandlers, } from './eventListeners';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACN,gBAAgB,EAChB,oBAAoB,EACpB,oCAAoC,GACpC,MAAM,kBAAkB,CAAC"}
@@ -1,3 +1,6 @@
1
1
  export { default as Notifications } from './Notifications';
2
- export { AWSPinpointUserInfo, InAppMessage, InAppMessageAction, InAppMessageButton, InAppMessageContent, InAppMessageImage, InAppMessageInteractionEvent, InAppMessageLayout, InAppMessageStyle, InAppMessageTextAlign, InAppMessagingConfig, InAppMessagingEvent, UserInfo, } from './InAppMessaging';
3
- export { NotificationsConfig } from './types';
2
+ export { AWSPinpointProviderCommon } from './common';
3
+ export { AWSPinpointUserInfo } from './common/AWSPinpointProviderCommon/types';
4
+ export { InAppMessage, InAppMessageAction, InAppMessageButton, InAppMessageContent, InAppMessageImage, InAppMessageInteractionEvent, InAppMessageLayout, InAppMessageStyle, InAppMessageTextAlign, InAppMessagingConfig, InAppMessagingEvent, } from './InAppMessaging';
5
+ export { PushNotificationMessage, PushNotificationPermissions, PushNotificationPermissionStatus, } from './PushNotification/types';
6
+ export { NotificationsConfig, UserInfo } from './types';
package/lib-esm/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  export { default as Notifications } from './Notifications';
4
+ export { AWSPinpointProviderCommon } from './common';
4
5
  export { InAppMessageInteractionEvent, } from './InAppMessaging';
6
+ export { PushNotificationPermissionStatus, } from './PushNotification/types';
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAON,4BAA4B,GAO5B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,EAMN,4BAA4B,GAM5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAGN,gCAAgC,GAChC,MAAM,0BAA0B,CAAC"}
@@ -1,7 +1,39 @@
1
- import { InAppMessagingConfig } from './InAppMessaging';
1
+ import { InAppMessagingConfig } from './InAppMessaging/types';
2
+ import { PushNotificationConfig } from './PushNotification/types';
2
3
  export declare type NotificationsCategory = 'Notifications';
3
- export interface NotificationsConfig extends Record<any, any> {
4
+ export declare type NotificationsSubCategory = 'InAppMessaging' | 'PushNotification';
5
+ export interface NotificationsProvider {
6
+ configure(config: object): object;
7
+ getCategory(): NotificationsCategory;
8
+ getSubCategory(): NotificationsSubCategory;
9
+ getProviderName(): string;
10
+ identifyUser(userId: string, userInfo: UserInfo): Promise<void>;
11
+ }
12
+ export interface NotificationsConfig {
4
13
  Notifications?: {
5
14
  InAppMessaging?: InAppMessagingConfig;
15
+ PushNotification?: PushNotificationConfig;
6
16
  };
7
17
  }
18
+ export declare type UserInfo = {
19
+ attributes?: Record<string, string[]>;
20
+ demographic?: {
21
+ appVersion?: string;
22
+ locale?: string;
23
+ make?: string;
24
+ model?: string;
25
+ modelVersion?: string;
26
+ platform?: string;
27
+ platformVersion?: string;
28
+ timezone?: string;
29
+ };
30
+ location?: {
31
+ city?: string;
32
+ country?: string;
33
+ latitude?: number;
34
+ longitude?: number;
35
+ postalCode?: string;
36
+ region?: string;
37
+ };
38
+ metrics?: Record<string, number>;
39
+ };
package/lib-esm/types.js CHANGED
@@ -1 +1,3 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
1
3
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC"}