@aws-amplify/analytics 7.0.1-console-preview.7919075.0 → 7.0.1-console-preview.5dc0b68.0

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 (254) hide show
  1. package/lib/errors/AnalyticsError.d.ts +7 -0
  2. package/lib/errors/AnalyticsError.js +23 -0
  3. package/lib/errors/assertValidationError.d.ts +5 -0
  4. package/lib/errors/assertValidationError.js +17 -0
  5. package/lib/errors/index.d.ts +3 -0
  6. package/lib/errors/index.js +12 -0
  7. package/lib/errors/validation.d.ts +9 -0
  8. package/lib/errors/validation.js +31 -0
  9. package/lib/index.d.ts +0 -3
  10. package/lib/index.js +0 -15
  11. package/lib/providers/pinpoint/apis/identifyUser.d.ts +10 -0
  12. package/lib/providers/pinpoint/apis/identifyUser.js +44 -0
  13. package/lib/providers/pinpoint/apis/index.d.ts +2 -0
  14. package/lib/providers/pinpoint/apis/index.js +9 -0
  15. package/lib/providers/pinpoint/apis/record.d.ts +11 -0
  16. package/lib/providers/pinpoint/apis/record.js +44 -0
  17. package/lib/providers/pinpoint/index.d.ts +1 -1
  18. package/lib/providers/pinpoint/index.js +1 -7
  19. package/lib/providers/pinpoint/types/errors.d.ts +9 -0
  20. package/lib/providers/pinpoint/types/errors.js +15 -0
  21. package/lib/providers/pinpoint/types/index.d.ts +2 -0
  22. package/lib/providers/pinpoint/types/index.js +7 -0
  23. package/lib/providers/pinpoint/types/parameters.d.ts +18 -0
  24. package/lib/providers/pinpoint/utils/index.d.ts +2 -0
  25. package/lib/providers/pinpoint/utils/index.js +9 -0
  26. package/lib/providers/pinpoint/utils/resolveConfig.d.ts +7 -0
  27. package/lib/providers/pinpoint/utils/resolveConfig.js +18 -0
  28. package/lib/providers/pinpoint/utils/resolveCredentials.d.ts +12 -0
  29. package/lib/providers/pinpoint/utils/resolveCredentials.js +24 -0
  30. package/lib/setupTests.js +1 -0
  31. package/lib/tsconfig.tsbuildinfo +1 -1
  32. package/{lib-esm/types/Analytics.d.ts → lib/types/analytics.d.ts} +0 -8
  33. package/lib/types/index.d.ts +1 -3
  34. package/lib/types/index.js +1 -3
  35. package/lib/utils/{UserAgent.d.ts → userAgent.d.ts} +1 -1
  36. package/lib/utils/{UserAgent.js → userAgent.js} +5 -5
  37. package/lib-esm/errors/AnalyticsError.d.ts +7 -0
  38. package/lib-esm/errors/AnalyticsError.js +20 -0
  39. package/lib-esm/errors/assertValidationError.d.ts +5 -0
  40. package/lib-esm/errors/assertValidationError.js +13 -0
  41. package/lib-esm/errors/index.d.ts +3 -0
  42. package/lib-esm/errors/index.js +5 -0
  43. package/lib-esm/errors/validation.d.ts +9 -0
  44. package/lib-esm/errors/validation.js +28 -0
  45. package/lib-esm/index.d.ts +0 -3
  46. package/lib-esm/index.js +0 -12
  47. package/lib-esm/providers/pinpoint/apis/identifyUser.d.ts +10 -0
  48. package/lib-esm/providers/pinpoint/apis/identifyUser.js +40 -0
  49. package/lib-esm/providers/pinpoint/apis/index.d.ts +2 -0
  50. package/{src/types/providers/index.ts → lib-esm/providers/pinpoint/apis/index.js} +2 -1
  51. package/lib-esm/providers/pinpoint/apis/record.d.ts +11 -0
  52. package/lib-esm/providers/pinpoint/apis/record.js +40 -0
  53. package/lib-esm/providers/pinpoint/index.d.ts +1 -1
  54. package/lib-esm/providers/pinpoint/index.js +1 -6
  55. package/lib-esm/providers/pinpoint/types/errors.d.ts +9 -0
  56. package/lib-esm/providers/pinpoint/types/errors.js +12 -0
  57. package/lib-esm/providers/pinpoint/types/index.d.ts +2 -0
  58. package/lib-esm/{types/providers → providers/pinpoint/types}/index.js +1 -1
  59. package/lib-esm/providers/pinpoint/types/parameters.d.ts +18 -0
  60. package/lib-esm/providers/pinpoint/utils/index.d.ts +2 -0
  61. package/lib-esm/{utils/AppUtils.js → providers/pinpoint/utils/index.js} +2 -4
  62. package/lib-esm/providers/pinpoint/utils/resolveConfig.d.ts +7 -0
  63. package/lib-esm/providers/pinpoint/utils/resolveConfig.js +14 -0
  64. package/lib-esm/providers/pinpoint/utils/resolveCredentials.d.ts +12 -0
  65. package/lib-esm/providers/pinpoint/utils/resolveCredentials.js +20 -0
  66. package/lib-esm/setupTests.js +1 -0
  67. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  68. package/{lib/types/Analytics.d.ts → lib-esm/types/analytics.d.ts} +0 -8
  69. package/lib-esm/types/index.d.ts +1 -3
  70. package/lib-esm/types/index.js +1 -3
  71. package/lib-esm/utils/{UserAgent.d.ts → userAgent.d.ts} +1 -1
  72. package/lib-esm/utils/{UserAgent.js → userAgent.js} +1 -1
  73. package/package.json +11 -29
  74. package/src/errors/AnalyticsError.ts +18 -0
  75. package/src/errors/assertValidationError.ts +19 -0
  76. package/src/errors/index.ts +6 -0
  77. package/src/errors/validation.ts +31 -0
  78. package/src/index.ts +0 -15
  79. package/src/providers/pinpoint/apis/identifyUser.ts +35 -0
  80. package/src/{utils/AppUtils.ts → providers/pinpoint/apis/index.ts} +2 -4
  81. package/src/providers/pinpoint/apis/record.ts +50 -0
  82. package/src/providers/pinpoint/index.ts +1 -3
  83. package/src/providers/pinpoint/types/errors.ts +12 -0
  84. package/src/providers/pinpoint/types/index.ts +5 -0
  85. package/src/providers/pinpoint/types/parameters.ts +24 -0
  86. package/src/providers/pinpoint/utils/index.ts +5 -0
  87. package/src/providers/pinpoint/utils/resolveConfig.ts +18 -0
  88. package/src/providers/pinpoint/utils/resolveCredentials.ts +20 -0
  89. package/src/types/{Analytics.ts → analytics.ts} +1 -10
  90. package/src/types/index.ts +1 -3
  91. package/src/utils/{UserAgent.ts → userAgent.ts} +1 -1
  92. package/lib/Analytics.d.ts +0 -87
  93. package/lib/Analytics.js +0 -354
  94. package/lib/providers/AWSKinesisFirehoseProvider.d.ts +0 -12
  95. package/lib/providers/AWSKinesisFirehoseProvider.js +0 -82
  96. package/lib/providers/AWSKinesisProvider.d.ts +0 -43
  97. package/lib/providers/AWSKinesisProvider.js +0 -240
  98. package/lib/providers/AWSPinpointProvider.d.ts +0 -67
  99. package/lib/providers/AWSPinpointProvider.js +0 -576
  100. package/lib/providers/AmazonPersonalizeHelper/DataType.d.ts +0 -40
  101. package/lib/providers/AmazonPersonalizeHelper/MediaAutoTrack.d.ts +0 -20
  102. package/lib/providers/AmazonPersonalizeHelper/MediaAutoTrack.js +0 -156
  103. package/lib/providers/AmazonPersonalizeHelper/SessionInfoManager.d.ts +0 -17
  104. package/lib/providers/AmazonPersonalizeHelper/SessionInfoManager.js +0 -96
  105. package/lib/providers/AmazonPersonalizeHelper/index.d.ts +0 -3
  106. package/lib/providers/AmazonPersonalizeHelper/index.js +0 -7
  107. package/lib/providers/AmazonPersonalizeProvider.d.ts +0 -76
  108. package/lib/providers/AmazonPersonalizeProvider.js +0 -331
  109. package/lib/providers/EventBuffer.d.ts +0 -28
  110. package/lib/providers/EventBuffer.js +0 -209
  111. package/lib/providers/index.d.ts +0 -4
  112. package/lib/providers/index.js +0 -14
  113. package/lib/trackers/EventTracker.d.ts +0 -9
  114. package/lib/trackers/EventTracker.js +0 -99
  115. package/lib/trackers/PageViewTracker.d.ts +0 -12
  116. package/lib/trackers/PageViewTracker.js +0 -158
  117. package/lib/trackers/SessionTracker-rn.d.ts +0 -12
  118. package/lib/trackers/SessionTracker-rn.js +0 -134
  119. package/lib/trackers/SessionTracker.d.ts +0 -14
  120. package/lib/trackers/SessionTracker.js +0 -163
  121. package/lib/trackers/index.d.ts +0 -3
  122. package/lib/trackers/index.js +0 -11
  123. package/lib/trackers/reactnative.d.ts +0 -8
  124. package/lib/trackers/reactnative.js +0 -19
  125. package/lib/types/Analytics.js +0 -2
  126. package/lib/types/Provider.d.ts +0 -10
  127. package/lib/types/providers/AWSKinesisProvider.d.ts +0 -6
  128. package/lib/types/providers/AWSKinesisProvider.js +0 -2
  129. package/lib/types/providers/AWSPinpointProvider.d.ts +0 -50
  130. package/lib/types/providers/AWSPinpointProvider.js +0 -2
  131. package/lib/types/providers/AmazonPersonalizeProvider.d.ts +0 -7
  132. package/lib/types/providers/AmazonPersonalizeProvider.js +0 -2
  133. package/lib/types/providers/index.d.ts +0 -1
  134. package/lib/types/providers/index.js +0 -6
  135. package/lib/utils/AppUtils.d.ts +0 -2
  136. package/lib/utils/AppUtils.js +0 -9
  137. package/lib/utils/AppUtils.native.d.ts +0 -2
  138. package/lib/utils/AppUtils.native.js +0 -10
  139. package/lib/utils/MethodEmbed.d.ts +0 -11
  140. package/lib/utils/MethodEmbed.js +0 -43
  141. package/lib/vendor/dom-utils/closest.d.ts +0 -12
  142. package/lib/vendor/dom-utils/closest.js +0 -27
  143. package/lib/vendor/dom-utils/delegate.d.ts +0 -18
  144. package/lib/vendor/dom-utils/delegate.js +0 -51
  145. package/lib/vendor/dom-utils/dispatch.d.ts +0 -17
  146. package/lib/vendor/dom-utils/dispatch.js +0 -51
  147. package/lib/vendor/dom-utils/get-attributes.d.ts +0 -11
  148. package/lib/vendor/dom-utils/get-attributes.js +0 -28
  149. package/lib/vendor/dom-utils/index.d.ts +0 -7
  150. package/lib/vendor/dom-utils/index.js +0 -17
  151. package/lib/vendor/dom-utils/matches.d.ts +0 -11
  152. package/lib/vendor/dom-utils/matches.js +0 -69
  153. package/lib/vendor/dom-utils/parents.d.ts +0 -10
  154. package/lib/vendor/dom-utils/parents.js +0 -22
  155. package/lib/vendor/dom-utils/parse-url.d.ts +0 -9
  156. package/lib/vendor/dom-utils/parse-url.js +0 -59
  157. package/lib-esm/Analytics.d.ts +0 -87
  158. package/lib-esm/Analytics.js +0 -351
  159. package/lib-esm/providers/AWSKinesisFirehoseProvider.d.ts +0 -12
  160. package/lib-esm/providers/AWSKinesisFirehoseProvider.js +0 -79
  161. package/lib-esm/providers/AWSKinesisProvider.d.ts +0 -43
  162. package/lib-esm/providers/AWSKinesisProvider.js +0 -237
  163. package/lib-esm/providers/AWSPinpointProvider.d.ts +0 -67
  164. package/lib-esm/providers/AWSPinpointProvider.js +0 -573
  165. package/lib-esm/providers/AmazonPersonalizeHelper/DataType.d.ts +0 -40
  166. package/lib-esm/providers/AmazonPersonalizeHelper/MediaAutoTrack.d.ts +0 -20
  167. package/lib-esm/providers/AmazonPersonalizeHelper/MediaAutoTrack.js +0 -153
  168. package/lib-esm/providers/AmazonPersonalizeHelper/SessionInfoManager.d.ts +0 -17
  169. package/lib-esm/providers/AmazonPersonalizeHelper/SessionInfoManager.js +0 -92
  170. package/lib-esm/providers/AmazonPersonalizeHelper/index.d.ts +0 -3
  171. package/lib-esm/providers/AmazonPersonalizeHelper/index.js +0 -2
  172. package/lib-esm/providers/AmazonPersonalizeProvider.d.ts +0 -76
  173. package/lib-esm/providers/AmazonPersonalizeProvider.js +0 -328
  174. package/lib-esm/providers/EventBuffer.d.ts +0 -28
  175. package/lib-esm/providers/EventBuffer.js +0 -207
  176. package/lib-esm/providers/index.d.ts +0 -4
  177. package/lib-esm/providers/index.js +0 -7
  178. package/lib-esm/trackers/EventTracker.d.ts +0 -9
  179. package/lib-esm/trackers/EventTracker.js +0 -96
  180. package/lib-esm/trackers/PageViewTracker.d.ts +0 -12
  181. package/lib-esm/trackers/PageViewTracker.js +0 -155
  182. package/lib-esm/trackers/SessionTracker-rn.d.ts +0 -12
  183. package/lib-esm/trackers/SessionTracker-rn.js +0 -131
  184. package/lib-esm/trackers/SessionTracker.d.ts +0 -14
  185. package/lib-esm/trackers/SessionTracker.js +0 -160
  186. package/lib-esm/trackers/index.d.ts +0 -3
  187. package/lib-esm/trackers/index.js +0 -5
  188. package/lib-esm/trackers/reactnative.d.ts +0 -8
  189. package/lib-esm/trackers/reactnative.js +0 -14
  190. package/lib-esm/types/Analytics.js +0 -1
  191. package/lib-esm/types/Provider.d.ts +0 -10
  192. package/lib-esm/types/providers/AWSKinesisProvider.d.ts +0 -6
  193. package/lib-esm/types/providers/AWSKinesisProvider.js +0 -1
  194. package/lib-esm/types/providers/AWSPinpointProvider.d.ts +0 -50
  195. package/lib-esm/types/providers/AWSPinpointProvider.js +0 -1
  196. package/lib-esm/types/providers/AmazonPersonalizeProvider.d.ts +0 -7
  197. package/lib-esm/types/providers/AmazonPersonalizeProvider.js +0 -1
  198. package/lib-esm/types/providers/index.d.ts +0 -1
  199. package/lib-esm/utils/AppUtils.d.ts +0 -2
  200. package/lib-esm/utils/AppUtils.native.d.ts +0 -2
  201. package/lib-esm/utils/AppUtils.native.js +0 -7
  202. package/lib-esm/utils/MethodEmbed.d.ts +0 -11
  203. package/lib-esm/utils/MethodEmbed.js +0 -40
  204. package/lib-esm/vendor/dom-utils/closest.d.ts +0 -12
  205. package/lib-esm/vendor/dom-utils/closest.js +0 -23
  206. package/lib-esm/vendor/dom-utils/delegate.d.ts +0 -18
  207. package/lib-esm/vendor/dom-utils/delegate.js +0 -47
  208. package/lib-esm/vendor/dom-utils/dispatch.d.ts +0 -17
  209. package/lib-esm/vendor/dom-utils/dispatch.js +0 -47
  210. package/lib-esm/vendor/dom-utils/get-attributes.d.ts +0 -11
  211. package/lib-esm/vendor/dom-utils/get-attributes.js +0 -24
  212. package/lib-esm/vendor/dom-utils/index.d.ts +0 -7
  213. package/lib-esm/vendor/dom-utils/index.js +0 -7
  214. package/lib-esm/vendor/dom-utils/matches.d.ts +0 -11
  215. package/lib-esm/vendor/dom-utils/matches.js +0 -65
  216. package/lib-esm/vendor/dom-utils/parents.d.ts +0 -10
  217. package/lib-esm/vendor/dom-utils/parents.js +0 -18
  218. package/lib-esm/vendor/dom-utils/parse-url.d.ts +0 -9
  219. package/lib-esm/vendor/dom-utils/parse-url.js +0 -55
  220. package/src/Analytics.ts +0 -446
  221. package/src/providers/AWSKinesisFirehoseProvider.ts +0 -105
  222. package/src/providers/AWSKinesisProvider.ts +0 -250
  223. package/src/providers/AWSPinpointProvider.ts +0 -685
  224. package/src/providers/AmazonPersonalizeHelper/DataType.ts +0 -49
  225. package/src/providers/AmazonPersonalizeHelper/MediaAutoTrack.ts +0 -196
  226. package/src/providers/AmazonPersonalizeHelper/SessionInfoManager.ts +0 -121
  227. package/src/providers/AmazonPersonalizeHelper/index.ts +0 -11
  228. package/src/providers/AmazonPersonalizeProvider.ts +0 -398
  229. package/src/providers/EventBuffer.ts +0 -257
  230. package/src/providers/index.ts +0 -8
  231. package/src/trackers/EventTracker.ts +0 -115
  232. package/src/trackers/PageViewTracker.ts +0 -157
  233. package/src/trackers/SessionTracker-rn.ts +0 -134
  234. package/src/trackers/SessionTracker.ts +0 -179
  235. package/src/trackers/index.ts +0 -5
  236. package/src/trackers/reactnative.ts +0 -13
  237. package/src/types/Provider.ts +0 -26
  238. package/src/types/providers/AWSKinesisProvider.ts +0 -8
  239. package/src/types/providers/AWSPinpointProvider.ts +0 -60
  240. package/src/types/providers/AmazonPersonalizeProvider.ts +0 -9
  241. package/src/utils/AppUtils.native.ts +0 -9
  242. package/src/utils/MethodEmbed.ts +0 -49
  243. package/src/vendor/dom-utils/closest.ts +0 -25
  244. package/src/vendor/dom-utils/delegate.ts +0 -51
  245. package/src/vendor/dom-utils/dispatch.ts +0 -59
  246. package/src/vendor/dom-utils/get-attributes.ts +0 -26
  247. package/src/vendor/dom-utils/index.ts +0 -7
  248. package/src/vendor/dom-utils/matches.ts +0 -68
  249. package/src/vendor/dom-utils/parents.ts +0 -19
  250. package/src/vendor/dom-utils/parse-url.ts +0 -66
  251. /package/lib/{types/Provider.js → providers/pinpoint/types/parameters.js} +0 -0
  252. /package/lib/{providers/AmazonPersonalizeHelper/DataType.js → types/analytics.js} +0 -0
  253. /package/lib-esm/{types/Provider.js → providers/pinpoint/types/parameters.js} +0 -0
  254. /package/lib-esm/{providers/AmazonPersonalizeHelper/DataType.js → types/analytics.js} +0 -0
@@ -56,11 +56,3 @@ export interface AutoTrackEventOpts {
56
56
  provider?: string;
57
57
  attributes?: AutoTrackAttributes;
58
58
  }
59
- export interface AnalyticsEvent {
60
- name: string;
61
- attributes?: EventAttributes;
62
- metrics?: EventMetrics;
63
- immediate?: boolean;
64
- }
65
- export { PersonalizeAnalyticsEvent } from './providers/AmazonPersonalizeProvider';
66
- export { KinesisAnalyticsEvent } from './providers/AWSKinesisProvider';
@@ -1,3 +1 @@
1
- export * from './Analytics';
2
- export * from './Provider';
3
- export * from './providers';
1
+ export * from './analytics';
@@ -1,5 +1,3 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- export * from './Analytics';
4
- export * from './Provider';
5
- export * from './providers';
3
+ export * from './analytics';
@@ -1,4 +1,4 @@
1
- import { AnalyticsAction } from '@aws-amplify/core';
1
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
2
2
  import { UserAgent } from '@aws-sdk/types';
3
3
  export declare function getAnalyticsUserAgent(action: AnalyticsAction): UserAgent;
4
4
  export declare function getAnalyticsUserAgentString(action: AnalyticsAction): string;
@@ -1,6 +1,6 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- import { Category, getAmplifyUserAgentObject, getAmplifyUserAgent, } from '@aws-amplify/core';
3
+ import { Category, getAmplifyUserAgentObject, getAmplifyUserAgent, } from '@aws-amplify/core/internals/utils';
4
4
  export function getAnalyticsUserAgent(action) {
5
5
  return getAmplifyUserAgentObject({
6
6
  category: Category.Analytics,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/analytics",
3
- "version": "7.0.1-console-preview.7919075.0+7919075",
3
+ "version": "7.0.1-console-preview.5dc0b68.0+5dc0b68",
4
4
  "description": "Analytics category of aws-amplify",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib-esm/index.js",
@@ -15,7 +15,6 @@
15
15
  "scripts": {
16
16
  "test": "npm run lint && jest -w 1 --coverage",
17
17
  "test:watch": "tslint 'src/**/*.ts' && jest -w 1 --watch",
18
- "test:size": "size-limit",
19
18
  "build-with-test": "npm run clean && npm test && tsc && webpack",
20
19
  "build:cjs": "rimraf lib && tsc -m commonjs --outDir lib && webpack && webpack --config ./webpack.config.dev.js",
21
20
  "build:esm": "rimraf lib-esm && tsc -m esnext --outDir lib-esm",
@@ -26,12 +25,9 @@
26
25
  "clean:size": "rimraf dual-publish-tmp tmp*",
27
26
  "format": "echo \"Not implemented\"",
28
27
  "lint": "tslint 'src/**/*.ts' && npm run ts-coverage",
29
- "ts-coverage": "typescript-coverage-report -p ./tsconfig.json -t 72.5"
30
- },
31
- "react-native": {
32
- "./lib/index": "./lib-esm/index.js",
33
- "./lib-esm/trackers": "./lib-esm/trackers/reactnative.js"
28
+ "ts-coverage": "typescript-coverage-report -p ./tsconfig.json -t 71.4"
34
29
  },
30
+ "react-native": "./lib-esm/index.js",
35
31
  "typesVersions": {
36
32
  ">=3.8": {
37
33
  "*": [
@@ -69,39 +65,22 @@
69
65
  "lib",
70
66
  "lib-esm",
71
67
  "src",
72
- "**/package.json"
68
+ "pinpoint"
73
69
  ],
74
70
  "dependencies": {
75
- "@aws-sdk/client-firehose": "3.388.0",
76
- "@aws-sdk/client-kinesis": "3.388.0",
77
- "@aws-sdk/client-personalize-events": "3.388.0",
78
- "@aws-sdk/util-utf8-browser": "3.259.0",
79
71
  "lodash": "^4.17.20",
80
72
  "tslib": "^2.5.0",
81
73
  "uuid": "^9.0.0"
82
74
  },
83
75
  "peerDependencies": {
84
- "@aws-amplify/core": "6.0.1-console-preview.7919075.0+7919075"
76
+ "@aws-amplify/core": "6.0.1-console-preview.5dc0b68.0+5dc0b68"
85
77
  },
86
78
  "devDependencies": {
87
- "@aws-amplify/core": "6.0.1-console-preview.7919075.0+7919075",
79
+ "@aws-amplify/core": "6.0.1-console-preview.5dc0b68.0+5dc0b68",
88
80
  "@aws-sdk/types": "3.387.0",
81
+ "@types/uuid": "^9.0.0",
89
82
  "typescript": "5.0.2"
90
83
  },
91
- "size-limit": [
92
- {
93
- "name": "Analytics (Pinpoint)",
94
- "path": "./lib-esm/index.js",
95
- "import": "{ Amplify, Analytics, AWSPinpointProvider }",
96
- "limit": "31.57 kB"
97
- },
98
- {
99
- "name": "Analytics (Kinesis)",
100
- "path": "./lib-esm/index.js",
101
- "import": "{ Amplify, Analytics, AWSKinesisProvider }",
102
- "limit": "60.82 kB"
103
- }
104
- ],
105
84
  "jest": {
106
85
  "globals": {
107
86
  "ts-jest": {
@@ -115,6 +94,9 @@
115
94
  "transform": {
116
95
  "^.+\\.(js|jsx|ts|tsx)$": "ts-jest"
117
96
  },
97
+ "testPathIgnorePatterns": [
98
+ "/testUtils/"
99
+ ],
118
100
  "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$",
119
101
  "moduleFileExtensions": [
120
102
  "ts",
@@ -143,5 +125,5 @@
143
125
  "<rootDir>/src/setupTests.ts"
144
126
  ]
145
127
  },
146
- "gitHead": "79190755720763a764aa7650655016a6d7b41a11"
128
+ "gitHead": "5dc0b68f9d56006a92abc29aa4e7d8142e083387"
147
129
  }
@@ -0,0 +1,18 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { AmplifyError, ErrorParams } from '@aws-amplify/core/internals/utils';
5
+
6
+ /**
7
+ * @internal
8
+ */
9
+ export class AnalyticsError extends AmplifyError {
10
+ constructor(params: ErrorParams) {
11
+ super(params);
12
+
13
+ // Hack for making the custom error class work when transpiled to es5
14
+ // TODO: Delete the following 2 lines after we change the build target to >= es2015
15
+ this.constructor = AnalyticsError;
16
+ Object.setPrototypeOf(this, AnalyticsError.prototype);
17
+ }
18
+ }
@@ -0,0 +1,19 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { AnalyticsError } from './AnalyticsError';
5
+ import { AnalyticsValidationErrorCode, validationErrorMap } from './validation';
6
+
7
+ /**
8
+ * @internal
9
+ */
10
+ export function assertValidationError(
11
+ assertion: boolean,
12
+ name: AnalyticsValidationErrorCode
13
+ ): asserts assertion {
14
+ const { message, recoverySuggestion } = validationErrorMap[name];
15
+
16
+ if (!assertion) {
17
+ throw new AnalyticsError({ name, message, recoverySuggestion });
18
+ }
19
+ }
@@ -0,0 +1,6 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { AnalyticsError } from './AnalyticsError';
5
+ export { assertValidationError } from './assertValidationError';
6
+ export { AnalyticsValidationErrorCode, validationErrorMap } from './validation';
@@ -0,0 +1,31 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { AmplifyErrorMap } from '@aws-amplify/core/internals/utils';
5
+
6
+ export enum AnalyticsValidationErrorCode {
7
+ NoAppId = 'NoAppId',
8
+ NoCredentials = 'NoCredentials',
9
+ NoEvent = 'NoEvent',
10
+ NoEventName = 'NoEventName',
11
+ NoRegion = 'NoRegion',
12
+ }
13
+
14
+ export const validationErrorMap: AmplifyErrorMap<AnalyticsValidationErrorCode> =
15
+ {
16
+ [AnalyticsValidationErrorCode.NoAppId]: {
17
+ message: 'Missing application id.',
18
+ },
19
+ [AnalyticsValidationErrorCode.NoCredentials]: {
20
+ message: 'Credentials should not be empty.',
21
+ },
22
+ [AnalyticsValidationErrorCode.NoEvent]: {
23
+ message: 'An event is required to record.',
24
+ },
25
+ [AnalyticsValidationErrorCode.NoEventName]: {
26
+ message: 'Events must specify a name.',
27
+ },
28
+ [AnalyticsValidationErrorCode.NoRegion]: {
29
+ message: 'Missing region.',
30
+ },
31
+ };
package/src/index.ts CHANGED
@@ -1,19 +1,4 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- // TODO(v6) Remove once all default provider functional APIs available
5
- export { Analytics } from './Analytics';
6
- export { AnalyticsProvider } from './types';
7
- export { AWSPinpointProvider } from './providers';
8
-
9
- // TODO(v6) Refactor as additional Analytics providers come online
10
- /*
11
- export {
12
- AWSKinesisProvider,
13
- AWSKinesisFirehoseProvider,
14
- AmazonPersonalizeProvider,
15
- } from './providers';
16
- */
17
-
18
- // Default provider types
19
4
  export * from './providers/pinpoint';
@@ -0,0 +1,35 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
5
+ import { updateEndpoint } from '@aws-amplify/core/internals/providers/pinpoint';
6
+ import { AnalyticsValidationErrorCode } from '../../../errors';
7
+ import { getAnalyticsUserAgentString } from '../../../utils/userAgent';
8
+ import { IdentifyUserParameters, UpdateEndpointException } from '../types';
9
+ import { resolveConfig, resolveCredentials } from '../utils';
10
+
11
+ /**
12
+ * Identifies the current user with Pinpoint.
13
+ *
14
+ * @param {IdentifyUserParameters} params parameters used to construct requests sent to Pinpoint's UpdateEndpoint API.
15
+ *
16
+ * @throws An {@link UpdateEndpointException} when the underlying Pinpoint service returns an error.
17
+ * @throws An {@link AnalyticsValidationErrorCode} when API call parameters are invalid.
18
+ */
19
+ export const identifyUser = async ({
20
+ userId,
21
+ userProfile,
22
+ }: IdentifyUserParameters): Promise<void> => {
23
+ const { credentials, identityId } = await resolveCredentials();
24
+ const { appId, region } = resolveConfig();
25
+ updateEndpoint({
26
+ appId,
27
+ category: 'Analytics',
28
+ credentials,
29
+ identityId,
30
+ region,
31
+ userId,
32
+ userProfile,
33
+ userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.UpdateEndpoint),
34
+ });
35
+ };
@@ -1,7 +1,5 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- const isAppInForeground = () => {
4
- return true;
5
- };
6
3
 
7
- export { isAppInForeground };
4
+ export { record } from './record';
5
+ export { identifyUser } from './identifyUser';
@@ -0,0 +1,50 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import {
5
+ AnalyticsAction,
6
+ ConsoleLogger as Logger,
7
+ } from '@aws-amplify/core/internals/utils';
8
+ import { record as recordCore } from '@aws-amplify/core/internals/providers/pinpoint';
9
+ import {
10
+ AnalyticsValidationErrorCode,
11
+ assertValidationError,
12
+ } from '../../../errors';
13
+ import { getAnalyticsUserAgentString } from '../../../utils/userAgent';
14
+ import { RecordParameters } from '../types/parameters';
15
+ import { resolveConfig, resolveCredentials } from '../utils';
16
+
17
+ const logger = new Logger('Analytics');
18
+
19
+ /**
20
+ * Sends an event to Pinpoint.
21
+ *
22
+ * @param {RecordParameters} params Parameters used to construct the request.
23
+ *
24
+ * @throws An {@link AnalyticsValidationErrorCode} when there is an error in the parameters or configuration.
25
+ *
26
+ * @returns A promise that will resolve when the request is complete.
27
+ */
28
+ export const record = ({ event }: RecordParameters): void => {
29
+ const { appId, region } = resolveConfig();
30
+
31
+ assertValidationError(!!event, AnalyticsValidationErrorCode.NoEvent);
32
+ assertValidationError(!!event.name, AnalyticsValidationErrorCode.NoEventName);
33
+
34
+ resolveCredentials()
35
+ .then(({ credentials, identityId }) => {
36
+ recordCore({
37
+ appId,
38
+ category: 'Analytics',
39
+ credentials,
40
+ event,
41
+ identityId,
42
+ region,
43
+ userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
44
+ });
45
+ })
46
+ .catch(e => {
47
+ // An error occured while fetching credentials or persisting the event to the buffer
48
+ logger.warn('Failed to record event.', e);
49
+ });
50
+ };
@@ -1,6 +1,4 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- // TODO(v6): Export Pinpoint functional APIs & types
5
- // Mock function to make exports work
6
- export const record = async () => {};
4
+ export * from './apis';
@@ -0,0 +1,12 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export enum UpdateEndpointException {
5
+ BadRequestException = 'BadRequestException',
6
+ ForbiddenException = 'ForbiddenException',
7
+ InternalServerErrorException = 'InternalServerErrorException',
8
+ MethodNotAllowedException = 'MethodNotAllowedException',
9
+ NotFoundException = 'NotFoundException',
10
+ PayloadTooLargeException = 'PayloadTooLargeException',
11
+ TooManyRequestsException = 'TooManyRequestsException',
12
+ }
@@ -0,0 +1,5 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { UpdateEndpointException } from './errors';
5
+ export { IdentifyUserParameters } from './parameters';
@@ -0,0 +1,24 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { UserProfile } from '@aws-amplify/core';
5
+ import { PinpointAnalyticsEvent } from '@aws-amplify/core/internals/providers/pinpoint';
6
+
7
+ export type RecordParameters = {
8
+ /**
9
+ * An event to send to the default Analytics provider.
10
+ */
11
+ event: PinpointAnalyticsEvent;
12
+ };
13
+
14
+ export type IdentifyUserParameters = {
15
+ /**
16
+ * A User ID associated to the current device.
17
+ */
18
+ userId: string;
19
+
20
+ /**
21
+ * Additional information about the user and their device.
22
+ */
23
+ userProfile: UserProfile;
24
+ };
@@ -0,0 +1,5 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { resolveConfig } from './resolveConfig';
5
+ export { resolveCredentials } from './resolveCredentials';
@@ -0,0 +1,18 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { Amplify } from '@aws-amplify/core';
5
+ import {
6
+ AnalyticsValidationErrorCode,
7
+ assertValidationError,
8
+ } from '../../../errors';
9
+
10
+ /**
11
+ * @internal
12
+ */
13
+ export const resolveConfig = () => {
14
+ const { appId, region } = Amplify.getConfig().Analytics?.AWSPinpoint ?? {};
15
+ assertValidationError(!!appId, AnalyticsValidationErrorCode.NoAppId);
16
+ assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);
17
+ return { appId, region };
18
+ };
@@ -0,0 +1,20 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { fetchAuthSession } from '@aws-amplify/core';
5
+ import {
6
+ AnalyticsValidationErrorCode,
7
+ assertValidationError,
8
+ } from '../../../errors';
9
+
10
+ /**
11
+ * @internal
12
+ */
13
+ export const resolveCredentials = async () => {
14
+ const { credentials, identityId } = await fetchAuthSession();
15
+ assertValidationError(
16
+ !!credentials,
17
+ AnalyticsValidationErrorCode.NoCredentials
18
+ );
19
+ return { credentials, identityId };
20
+ };
@@ -1,6 +1,7 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { ICredentials } from '@aws-amplify/core';
4
+
4
5
  /**
5
6
  * Analytics instance options
6
7
  */
@@ -75,13 +76,3 @@ export interface AutoTrackEventOpts {
75
76
  provider?: string;
76
77
  attributes?: AutoTrackAttributes;
77
78
  }
78
-
79
- export interface AnalyticsEvent {
80
- name: string;
81
- attributes?: EventAttributes;
82
- metrics?: EventMetrics;
83
- immediate?: boolean;
84
- }
85
-
86
- export { PersonalizeAnalyticsEvent } from './providers/AmazonPersonalizeProvider';
87
- export { KinesisAnalyticsEvent } from './providers/AWSKinesisProvider';
@@ -1,6 +1,4 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- export * from './Analytics';
5
- export * from './Provider';
6
- export * from './providers';
4
+ export * from './analytics';
@@ -5,7 +5,7 @@ import {
5
5
  Category,
6
6
  getAmplifyUserAgentObject,
7
7
  getAmplifyUserAgent,
8
- } from '@aws-amplify/core';
8
+ } from '@aws-amplify/core/internals/utils';
9
9
  import { UserAgent } from '@aws-sdk/types';
10
10
 
11
11
  export function getAnalyticsUserAgent(action: AnalyticsAction): UserAgent {
@@ -1,87 +0,0 @@
1
- import { AnalyticsProvider, AnalyticsEvent, AutoTrackSessionOpts, AutoTrackPageViewOpts, AutoTrackEventOpts, PersonalizeAnalyticsEvent, KinesisAnalyticsEvent } from './types';
2
- import { PageViewTracker, EventTracker, SessionTracker } from './trackers';
3
- declare const trackers: {
4
- pageView: typeof PageViewTracker;
5
- event: typeof EventTracker;
6
- session: typeof SessionTracker;
7
- };
8
- type TrackerTypes = keyof typeof trackers;
9
- /**
10
- * Provide mobile analytics client functions
11
- */
12
- export declare class AnalyticsClass {
13
- private _config;
14
- private _pluggables;
15
- private _disabled;
16
- private _trackers;
17
- /**
18
- * Initialize Analtyics
19
- * @param config - Configuration of the Analytics
20
- */
21
- constructor();
22
- getModuleName(): string;
23
- /**
24
- * configure Analytics
25
- * @param {Object} config - Configuration of the Analytics
26
- */
27
- configure(config?: any): any;
28
- /**
29
- * add plugin into Analytics category
30
- * @param pluggable - an instance of the plugin
31
- */
32
- addPluggable(pluggable: AnalyticsProvider): any;
33
- /**
34
- * Get the plugin object
35
- * @param providerName - the name of the provider to be removed
36
- */
37
- getPluggable(providerName: string): AnalyticsProvider;
38
- /**
39
- * Remove the plugin object
40
- * @param providerName - the name of the provider to be removed
41
- */
42
- removePluggable(providerName: string): void;
43
- /**
44
- * stop sending events
45
- */
46
- disable(): void;
47
- /**
48
- * start sending events
49
- */
50
- enable(): void;
51
- /**
52
- * Record Session start
53
- * @param [provider] - name of the provider.
54
- * @return - A promise which resolves if buffer doesn't overflow
55
- */
56
- startSession(provider?: string): Promise<unknown>;
57
- /**
58
- * Record Session stop
59
- * @param [provider] - name of the provider.
60
- * @return - A promise which resolves if buffer doesn't overflow
61
- */
62
- stopSession(provider?: string): Promise<unknown>;
63
- /**
64
- * Record one analytic event and send it to Pinpoint
65
- * @param event - An object with the name of the event, attributes of the event and event metrics.
66
- * @param [provider] - name of the provider.
67
- */
68
- record(event: AnalyticsEvent | PersonalizeAnalyticsEvent | KinesisAnalyticsEvent, provider?: string): Promise<unknown>;
69
- updateEndpoint(attrs: {
70
- [key: string]: any;
71
- }, provider?: string): Promise<unknown>;
72
- private _sendEvent;
73
- /**
74
- * Enable or disable auto tracking
75
- * @param trackerType - The type of tracker to activate.
76
- * @param [opts] - Auto tracking options.
77
- */
78
- autoTrack(trackerType: 'session', opts: AutoTrackSessionOpts): any;
79
- autoTrack(trackerType: 'pageView', opts: AutoTrackPageViewOpts): any;
80
- autoTrack(trackerType: 'event', opts: AutoTrackEventOpts): any;
81
- autoTrack(trackerType: TrackerTypes, opts: {
82
- provider: string;
83
- [key: string]: any;
84
- }): any;
85
- }
86
- export declare const Analytics: AnalyticsClass;
87
- export {};