@snowplow/react-native-tracker 1.3.0 → 2.0.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 (240) hide show
  1. package/.editorconfig +15 -0
  2. package/.eslintignore +6 -0
  3. package/.gitattributes +3 -0
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +29 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. package/.github/actions/setup/action.yml +28 -0
  7. package/.github/workflows/build.yml +150 -0
  8. package/.github/workflows/deploy.yml +98 -0
  9. package/.github/workflows/e2e-android.yml +121 -0
  10. package/.github/workflows/e2e-ios.yml +90 -0
  11. package/.github/workflows/snyk.yml +21 -0
  12. package/.gitignore +70 -0
  13. package/.npmignore +60 -0
  14. package/.nvmrc +1 -0
  15. package/.watchmanconfig +1 -0
  16. package/.yarnrc +3 -0
  17. package/CHANGELOG +166 -0
  18. package/CONTRIBUTING.md +80 -0
  19. package/LICENSE +1 -1
  20. package/README.md +24 -111
  21. package/android/build.gradle +93 -37
  22. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  23. package/android/gradle/wrapper/gradle-wrapper.properties +1 -2
  24. package/android/gradle.properties +5 -2
  25. package/android/gradlew +172 -110
  26. package/android/gradlew.bat +24 -19
  27. package/android/src/main/AndroidManifest.xml +1 -3
  28. package/android/src/main/AndroidManifestNew.xml +2 -0
  29. package/android/src/main/java/com/snowplow/reactnativetracker/ReactNativeTrackerModule.kt +704 -0
  30. package/android/src/main/java/com/snowplow/reactnativetracker/ReactNativeTrackerPackage.kt +17 -0
  31. package/android/src/main/java/com/snowplow/reactnativetracker/util/ConfigUtil.kt +271 -0
  32. package/android/src/main/java/com/snowplow/reactnativetracker/util/EventUtil.kt +213 -0
  33. package/android/src/main/java/com/snowplow/reactnativetracker/util/TrackerVersion.kt +5 -0
  34. package/babel.config.js +3 -0
  35. package/example/.watchmanconfig +1 -0
  36. package/example/Gemfile +6 -0
  37. package/example/android/app/build.gradle +129 -0
  38. package/example/android/app/debug.keystore +0 -0
  39. package/example/android/app/proguard-rules.pro +10 -0
  40. package/example/android/app/src/androidTest/java/com/reactnativetrackerexample/DetoxTest.java +36 -0
  41. package/example/android/app/src/androidTest/java/com/reactnativetrackerexample/DetoxTestAppJUnitRunner.java +21 -0
  42. package/example/android/app/src/debug/AndroidManifest.xml +13 -0
  43. package/example/android/app/src/debug/java/com/reactnativetrackerexample/ReactNativeFlipper.java +75 -0
  44. package/example/android/app/src/main/AndroidManifest.xml +26 -0
  45. package/example/android/app/src/main/java/com/reactnativetrackerexample/MainActivity.java +32 -0
  46. package/example/android/app/src/main/java/com/reactnativetrackerexample/MainApplication.java +62 -0
  47. package/example/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  48. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  49. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  50. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  51. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  52. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  53. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  54. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  55. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  56. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  57. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  58. package/example/android/app/src/main/res/values/strings.xml +3 -0
  59. package/example/android/app/src/main/res/values/styles.xml +9 -0
  60. package/example/android/app/src/release/java/com/reactnativetrackerexample/ReactNativeFlipper.java +20 -0
  61. package/example/android/build.gradle +31 -0
  62. package/example/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  63. package/example/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  64. package/example/android/gradle.properties +44 -0
  65. package/example/android/gradlew +244 -0
  66. package/example/android/gradlew.bat +92 -0
  67. package/example/android/settings.gradle +4 -0
  68. package/example/app.json +4 -0
  69. package/example/babel.config.js +17 -0
  70. package/example/detox.config.js +92 -0
  71. package/example/e2e/config.json +10 -0
  72. package/example/e2e/emitEvents.e2e.detox.js +108 -0
  73. package/example/e2e/environment.js +23 -0
  74. package/example/e2e/helpers/microCommands.js +153 -0
  75. package/example/e2e/helpers/microHelpers.js +346 -0
  76. package/example/e2e/helpers/microHelpers.test.js +308 -0
  77. package/example/e2e/helpers/schemas.js +62 -0
  78. package/example/e2e/jest.config.js +16 -0
  79. package/example/e2e/setup.js +4 -0
  80. package/example/e2e/testEvents.micro.test.js +300 -0
  81. package/example/index.js +5 -0
  82. package/example/ios/.xcode.env +11 -0
  83. package/example/ios/Podfile +64 -0
  84. package/example/ios/Podfile.lock +737 -0
  85. package/example/ios/ReactNativeTrackerExample/AppDelegate.h +6 -0
  86. package/example/ios/ReactNativeTrackerExample/AppDelegate.mm +26 -0
  87. package/example/ios/ReactNativeTrackerExample/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  88. package/example/ios/ReactNativeTrackerExample/Images.xcassets/Contents.json +6 -0
  89. package/example/ios/ReactNativeTrackerExample/Info.plist +55 -0
  90. package/example/ios/ReactNativeTrackerExample/LaunchScreen.storyboard +47 -0
  91. package/example/ios/ReactNativeTrackerExample/main.m +10 -0
  92. package/example/ios/ReactNativeTrackerExample-Bridging-Header.h +3 -0
  93. package/example/ios/ReactNativeTrackerExample.xcodeproj/project.pbxproj +722 -0
  94. package/{ios/RNSnowplowTracker.xcodeproj/xcshareddata/xcschemes/RNSnowplowTracker.xcscheme → example/ios/ReactNativeTrackerExample.xcodeproj/xcshareddata/xcschemes/ReactNativeTrackerExample.xcscheme} +29 -21
  95. package/example/ios/ReactNativeTrackerExample.xcworkspace/contents.xcworkspacedata +10 -0
  96. package/example/ios/ReactNativeTrackerExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  97. package/example/ios/ReactNativeTrackerExampleTests/Info.plist +24 -0
  98. package/example/ios/ReactNativeTrackerExampleTests/ReactNativeTrackerExampleTests.m +66 -0
  99. package/example/metro.config.js +45 -0
  100. package/example/package.json +54 -0
  101. package/example/react-native.config.js +10 -0
  102. package/example/src/App.js +557 -0
  103. package/example/tsconfig.json +5 -0
  104. package/example/yarn.lock +7379 -0
  105. package/ios/ReactNativeTracker-Bridging-Header.h +2 -0
  106. package/ios/ReactNativeTracker.mm +165 -0
  107. package/ios/ReactNativeTracker.swift +757 -0
  108. package/ios/{RNSnowplowTracker.xcodeproj → ReactNativeTracker.xcodeproj}/project.pbxproj +55 -79
  109. package/ios/Util/ConfigUtils.swift +206 -0
  110. package/ios/Util/TrackerVersion.swift +3 -0
  111. package/ios/Util/Utilities.swift +37 -0
  112. package/lefthook.yml +11 -0
  113. package/lib/commonjs/api.js +475 -0
  114. package/lib/commonjs/api.js.map +1 -0
  115. package/lib/commonjs/configurations.js +209 -0
  116. package/lib/commonjs/configurations.js.map +1 -0
  117. package/lib/commonjs/constants.js +85 -0
  118. package/lib/commonjs/constants.js.map +1 -0
  119. package/lib/commonjs/events.js +256 -0
  120. package/lib/commonjs/events.js.map +1 -0
  121. package/lib/commonjs/index.js +141 -0
  122. package/lib/commonjs/index.js.map +1 -0
  123. package/lib/commonjs/jsCore.js +393 -0
  124. package/lib/commonjs/jsCore.js.map +1 -0
  125. package/lib/commonjs/native.js +29 -0
  126. package/lib/commonjs/native.js.map +1 -0
  127. package/lib/commonjs/subject.js +248 -0
  128. package/lib/commonjs/subject.js.map +1 -0
  129. package/lib/commonjs/tracker.js +221 -0
  130. package/lib/commonjs/tracker.js.map +1 -0
  131. package/lib/commonjs/types.js +2 -0
  132. package/lib/commonjs/types.js.map +1 -0
  133. package/lib/commonjs/utils.js +85 -0
  134. package/lib/commonjs/utils.js.map +1 -0
  135. package/lib/commonjs/webViewInterface.js +79 -0
  136. package/lib/commonjs/webViewInterface.js.map +1 -0
  137. package/lib/module/api.js +439 -0
  138. package/lib/module/api.js.map +1 -0
  139. package/lib/module/configurations.js +197 -0
  140. package/lib/module/configurations.js.map +1 -0
  141. package/lib/module/constants.js +80 -0
  142. package/lib/module/constants.js.map +1 -0
  143. package/lib/module/events.js +240 -0
  144. package/lib/module/events.js.map +1 -0
  145. package/lib/module/index.js +129 -0
  146. package/lib/module/index.js.map +1 -0
  147. package/lib/module/jsCore.js +390 -0
  148. package/lib/module/jsCore.js.map +1 -0
  149. package/lib/module/native.js +25 -0
  150. package/lib/module/native.js.map +1 -0
  151. package/lib/module/subject.js +235 -0
  152. package/lib/module/subject.js.map +1 -0
  153. package/lib/module/tracker.js +209 -0
  154. package/lib/module/tracker.js.map +1 -0
  155. package/lib/module/types.js +2 -0
  156. package/lib/module/types.js.map +1 -0
  157. package/lib/module/utils.js +79 -0
  158. package/lib/module/utils.js.map +1 -0
  159. package/lib/module/webViewInterface.js +75 -0
  160. package/lib/module/webViewInterface.js.map +1 -0
  161. package/lib/typescript/__tests__/api.test.d.ts +2 -0
  162. package/lib/typescript/__tests__/api.test.d.ts.map +1 -0
  163. package/lib/typescript/__tests__/configurations.test.d.ts +2 -0
  164. package/lib/typescript/__tests__/configurations.test.d.ts.map +1 -0
  165. package/lib/typescript/__tests__/events.test.d.ts +2 -0
  166. package/lib/typescript/__tests__/events.test.d.ts.map +1 -0
  167. package/lib/typescript/__tests__/index.test.d.ts +2 -0
  168. package/lib/typescript/__tests__/index.test.d.ts.map +1 -0
  169. package/lib/typescript/__tests__/jsCore.test.d.ts +2 -0
  170. package/lib/typescript/__tests__/jsCore.test.d.ts.map +1 -0
  171. package/lib/typescript/__tests__/utils.test.d.ts +2 -0
  172. package/lib/typescript/__tests__/utils.test.d.ts.map +1 -0
  173. package/lib/typescript/api.d.ts +226 -0
  174. package/lib/typescript/api.d.ts.map +1 -0
  175. package/lib/typescript/configurations.d.ts +73 -0
  176. package/lib/typescript/configurations.d.ts.map +1 -0
  177. package/lib/typescript/constants.d.ts +59 -0
  178. package/lib/typescript/constants.d.ts.map +1 -0
  179. package/lib/typescript/events.d.ts +101 -0
  180. package/lib/typescript/events.d.ts.map +1 -0
  181. package/lib/typescript/index.d.ts +27 -0
  182. package/lib/typescript/index.d.ts.map +1 -0
  183. package/lib/typescript/jsCore.d.ts +140 -0
  184. package/lib/typescript/jsCore.d.ts.map +1 -0
  185. package/lib/typescript/native.d.ts +4 -0
  186. package/lib/typescript/native.d.ts.map +1 -0
  187. package/lib/typescript/subject.d.ts +91 -0
  188. package/lib/typescript/subject.d.ts.map +1 -0
  189. package/lib/typescript/tracker.d.ts +93 -0
  190. package/lib/typescript/tracker.d.ts.map +1 -0
  191. package/{dist/index.d.ts → lib/typescript/types.d.ts} +188 -75
  192. package/lib/typescript/types.d.ts.map +1 -0
  193. package/lib/typescript/utils.d.ts +35 -0
  194. package/lib/typescript/utils.d.ts.map +1 -0
  195. package/lib/typescript/webViewInterface.d.ts +15 -0
  196. package/lib/typescript/webViewInterface.d.ts.map +1 -0
  197. package/package.json +138 -51
  198. package/scripts/bootstrap.js +29 -0
  199. package/snowplow-react-native-tracker.podspec +42 -0
  200. package/src/__mocks__/react-native.js +7 -0
  201. package/src/__tests__/api.test.ts +34 -0
  202. package/src/__tests__/configurations.test.ts +620 -0
  203. package/src/__tests__/events.test.ts +749 -0
  204. package/src/__tests__/index.test.ts +27 -0
  205. package/src/__tests__/jsCore.test.ts +169 -0
  206. package/src/__tests__/utils.test.ts +23 -0
  207. package/src/api.ts +535 -0
  208. package/src/configurations.ts +337 -0
  209. package/src/constants.ts +102 -0
  210. package/src/events.ts +330 -0
  211. package/src/index.ts +189 -0
  212. package/src/jsCore.ts +553 -0
  213. package/src/native.ts +34 -0
  214. package/src/subject.ts +315 -0
  215. package/src/tracker.ts +330 -0
  216. package/src/types.ts +1087 -0
  217. package/src/utils.ts +78 -0
  218. package/src/webViewInterface.ts +105 -0
  219. package/tsconfig.build.json +5 -0
  220. package/tsconfig.json +28 -0
  221. package/turbo.json +34 -0
  222. package/yarn.lock +9333 -0
  223. package/RNSnowplowTracker.podspec +0 -24
  224. package/android/src/main/java/com/snowplowanalytics/react/tracker/RNSnowplowTrackerModule.java +0 -750
  225. package/android/src/main/java/com/snowplowanalytics/react/tracker/RNSnowplowTrackerPackage.java +0 -29
  226. package/android/src/main/java/com/snowplowanalytics/react/util/ConfigUtil.java +0 -351
  227. package/android/src/main/java/com/snowplowanalytics/react/util/EventUtil.java +0 -339
  228. package/android/src/main/java/com/snowplowanalytics/react/util/TrackerVersion.java +0 -7
  229. package/dist/index.js +0 -1650
  230. package/dist/index.js.map +0 -1
  231. package/ios/RNSnowplowTracker.h +0 -34
  232. package/ios/RNSnowplowTracker.m +0 -911
  233. package/ios/Util/NSDictionary+RNSP_TypeMethods.h +0 -33
  234. package/ios/Util/NSDictionary+RNSP_TypeMethods.m +0 -40
  235. package/ios/Util/RNConfigUtils.h +0 -44
  236. package/ios/Util/RNConfigUtils.m +0 -209
  237. package/ios/Util/RNTrackerVersion.h +0 -27
  238. package/ios/Util/RNTrackerVersion.m +0 -27
  239. package/ios/Util/RNUtilities.h +0 -32
  240. package/ios/Util/RNUtilities.m +0 -68
@@ -0,0 +1,248 @@
1
+ /*
2
+ * Copyright (c) 2020-2023 Snowplow Analytics Ltd. All rights reserved.
3
+ *
4
+ * This program is licensed to you under the Apache License Version 2.0,
5
+ * and you may not use this file except in compliance with the Apache License Version 2.0.
6
+ * You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
7
+ *
8
+ * Unless required by applicable law or agreed to in writing,
9
+ * software distributed under the Apache License Version 2.0 is distributed on an
10
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
12
+ */
13
+
14
+ 'use strict';
15
+
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+ exports.setColorDepth = setColorDepth;
20
+ exports.setDomainUserId = setDomainUserId;
21
+ exports.setIpAddress = setIpAddress;
22
+ exports.setLanguage = setLanguage;
23
+ exports.setNetworkUserId = setNetworkUserId;
24
+ exports.setScreenResolution = setScreenResolution;
25
+ exports.setScreenViewport = setScreenViewport;
26
+ exports.setSubjectData = setSubjectData;
27
+ exports.setTimezone = setTimezone;
28
+ exports.setUserId = setUserId;
29
+ exports.setUseragent = setUseragent;
30
+ var _native = require("./native");
31
+ var _constants = require("./constants");
32
+ var _configurations = require("./configurations");
33
+ /**
34
+ * Sets the userId of the tracker subject
35
+ *
36
+ * @param namespace {string} - the tracker namespace
37
+ * @param newUid {string | null} - the new userId
38
+ * @returns - Promise
39
+ */
40
+ function setUserId(namespace, newUid) {
41
+ if (!(newUid === null || typeof newUid === 'string')) {
42
+ return Promise.reject(new Error(_constants.logMessages.setUserId));
43
+ }
44
+ return Promise.resolve(_native.RNSnowplowTracker.setUserId({
45
+ tracker: namespace,
46
+ userId: newUid
47
+ }));
48
+ }
49
+
50
+ /**
51
+ * Sets the networkUserId of the tracker subject
52
+ *
53
+ * @param namespace {string} - the tracker namespace
54
+ * @param newNuid {string | null} - the new networkUserId
55
+ * @returns - Promise
56
+ */
57
+ function setNetworkUserId(namespace, newNuid) {
58
+ if (!(newNuid === null || typeof newNuid === 'string')) {
59
+ return Promise.reject(new Error(_constants.logMessages.setNetworkUserId));
60
+ }
61
+ return Promise.resolve(_native.RNSnowplowTracker.setNetworkUserId({
62
+ tracker: namespace,
63
+ networkUserId: newNuid
64
+ }));
65
+ }
66
+
67
+ /**
68
+ * Sets the domainUserId of the tracker subject
69
+ *
70
+ * @param namespace {string} - the tracker namespace
71
+ * @param newDuid {string | null} - the new domainUserId
72
+ * @returns - Promise
73
+ */
74
+ function setDomainUserId(namespace, newDuid) {
75
+ if (!(newDuid === null || typeof newDuid === 'string')) {
76
+ return Promise.reject(new Error(_constants.logMessages.setDomainUserId));
77
+ }
78
+ return Promise.resolve(_native.RNSnowplowTracker.setDomainUserId({
79
+ tracker: namespace,
80
+ domainUserId: newDuid
81
+ }));
82
+ }
83
+
84
+ /**
85
+ * Sets the ipAddress of the tracker subject
86
+ *
87
+ * @param namespace {string} - the tracker namespace
88
+ * @param newIp {string | null} - the new ipAddress
89
+ * @returns - Promise
90
+ */
91
+ function setIpAddress(namespace, newIp) {
92
+ if (!(newIp === null || typeof newIp === 'string')) {
93
+ return Promise.reject(new Error(_constants.logMessages.setIpAddress));
94
+ }
95
+ return Promise.resolve(_native.RNSnowplowTracker.setIpAddress({
96
+ tracker: namespace,
97
+ ipAddress: newIp
98
+ }));
99
+ }
100
+
101
+ /**
102
+ * Sets the useragent of the tracker subject
103
+ *
104
+ * @param namespace {string} - the tracker namespace
105
+ * @param newUagent {string | null} - the new useragent
106
+ * @returns - Promise
107
+ */
108
+ function setUseragent(namespace, newUagent) {
109
+ if (!(newUagent === null || typeof newUagent === 'string')) {
110
+ return Promise.reject(new Error(_constants.logMessages.setUseragent));
111
+ }
112
+ return Promise.resolve(_native.RNSnowplowTracker.setUseragent({
113
+ tracker: namespace,
114
+ useragent: newUagent
115
+ }));
116
+ }
117
+
118
+ /**
119
+ * Sets the timezone of the tracker subject
120
+ *
121
+ * @param namespace {string} - the tracker namespace
122
+ * @param newTz {string | null} - the new timezone
123
+ * @returns - Promise
124
+ */
125
+ function setTimezone(namespace, newTz) {
126
+ if (!(newTz === null || typeof newTz === 'string')) {
127
+ return Promise.reject(new Error(_constants.logMessages.setTimezone));
128
+ }
129
+ return Promise.resolve(_native.RNSnowplowTracker.setTimezone({
130
+ tracker: namespace,
131
+ timezone: newTz
132
+ }));
133
+ }
134
+
135
+ /**
136
+ * Sets the language of the tracker subject
137
+ *
138
+ * @param namespace {string} - the tracker namespace
139
+ * @param newLang {string | null} - the new language
140
+ * @returns - Promise
141
+ */
142
+ function setLanguage(namespace, newLang) {
143
+ if (!(newLang === null || typeof newLang === 'string')) {
144
+ return Promise.reject(new Error(_constants.logMessages.setLanguage));
145
+ }
146
+ return Promise.resolve(_native.RNSnowplowTracker.setLanguage({
147
+ tracker: namespace,
148
+ language: newLang
149
+ }));
150
+ }
151
+
152
+ /**
153
+ * Sets the screenResolution of the tracker subject
154
+ *
155
+ * @param namespace {string} - the tracker namespace
156
+ * @param newRes {ScreenSize | null} - the new screenResolution
157
+ * @returns - Promise
158
+ */
159
+ function setScreenResolution(namespace, newRes) {
160
+ if (!(newRes === null || (0, _configurations.isScreenSize)(newRes))) {
161
+ return Promise.reject(new Error(_constants.logMessages.setScreenResolution));
162
+ }
163
+ return Promise.resolve(_native.RNSnowplowTracker.setScreenResolution({
164
+ tracker: namespace,
165
+ screenResolution: newRes
166
+ }));
167
+ }
168
+
169
+ /**
170
+ * Sets the screenViewport of the tracker subject
171
+ *
172
+ * @param namespace {string} - the tracker namespace
173
+ * @param newView {ScreenSize | null} - the new screenViewport
174
+ * @returns - Promise
175
+ */
176
+ function setScreenViewport(namespace, newView) {
177
+ if (!(newView === null || (0, _configurations.isScreenSize)(newView))) {
178
+ return Promise.reject(new Error(_constants.logMessages.setScreenViewport));
179
+ }
180
+ return Promise.resolve(_native.RNSnowplowTracker.setScreenViewport({
181
+ tracker: namespace,
182
+ screenViewport: newView
183
+ }));
184
+ }
185
+
186
+ /**
187
+ * Sets the colorDepth of the tracker subject
188
+ *
189
+ * @param namespace {string} - the tracker namespace
190
+ * @param newColorD {number | null} - the new colorDepth
191
+ * @returns - Promise
192
+ */
193
+ function setColorDepth(namespace, newColorD) {
194
+ if (!(newColorD === null || typeof newColorD === 'number')) {
195
+ return Promise.reject(new Error(_constants.logMessages.setColorDepth));
196
+ }
197
+ return Promise.resolve(_native.RNSnowplowTracker.setColorDepth({
198
+ tracker: namespace,
199
+ colorDepth: newColorD
200
+ }));
201
+ }
202
+ const setterMap = {
203
+ userId: setUserId,
204
+ networkUserId: setNetworkUserId,
205
+ domainUserId: setDomainUserId,
206
+ ipAddress: setIpAddress,
207
+ useragent: setUseragent,
208
+ timezone: setTimezone,
209
+ language: setLanguage,
210
+ screenResolution: setScreenResolution,
211
+ screenViewport: setScreenViewport,
212
+ colorDepth: setColorDepth
213
+ };
214
+
215
+ /**
216
+ * Sets the tracker subject
217
+ *
218
+ * @param namespace {string} - the tracker namespace
219
+ * @param config {SubjectConfiguration} - the new subject data
220
+ * @returns - Promise
221
+ */
222
+ function setSubjectData(namespace, config) {
223
+ if (!(0, _configurations.isValidSubjectConf)(config)) {
224
+ return Promise.reject(new Error(`${_constants.logMessages.setSubjectData} ${_constants.logMessages.subject}`));
225
+ }
226
+ const promises = Object.keys(config).map(k => {
227
+ const fun = setterMap[k];
228
+ return fun ? fun(namespace, config[k]) : undefined;
229
+ }).filter(f => f !== undefined);
230
+
231
+ // to use Promise.all (Promise.allSettled not supported in all RN versions)
232
+ const safePromises = promises.map(p => p.then(x => Object.assign({
233
+ status: 'fulfilled',
234
+ value: x
235
+ })).catch(err => Object.assign({
236
+ status: 'rejected',
237
+ reason: err.message
238
+ })));
239
+ return Promise.all(safePromises).then(outcomes => {
240
+ const anyReasons = outcomes.filter(res => res.status === 'rejected');
241
+ if (anyReasons.length > 0) {
242
+ const allReasons = anyReasons.reduce((acc, curr) => acc + ':' + curr.reason, _constants.logMessages.setSubjectData);
243
+ throw new Error(allReasons);
244
+ }
245
+ return true;
246
+ });
247
+ }
248
+ //# sourceMappingURL=subject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Object","defineProperty","exports","value","setColorDepth","setDomainUserId","setIpAddress","setLanguage","setNetworkUserId","setScreenResolution","setScreenViewport","setSubjectData","setTimezone","setUserId","setUseragent","_native","require","_constants","_configurations","namespace","newUid","Promise","reject","Error","logMessages","resolve","RNSnowplowTracker","tracker","userId","newNuid","networkUserId","newDuid","domainUserId","newIp","ipAddress","newUagent","useragent","newTz","timezone","newLang","language","newRes","isScreenSize","screenResolution","newView","screenViewport","newColorD","colorDepth","setterMap","config","isValidSubjectConf","subject","promises","keys","map","k","fun","undefined","filter","f","safePromises","p","then","x","assign","status","catch","err","reason","message","all","outcomes","anyReasons","res","length","allReasons","reduce","acc","curr"],"sourceRoot":"../../src","sources":["subject.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,aAAA,GAAAA,aAAA;AAAAF,OAAA,CAAAG,eAAA,GAAAA,eAAA;AAAAH,OAAA,CAAAI,YAAA,GAAAA,YAAA;AAAAJ,OAAA,CAAAK,WAAA,GAAAA,WAAA;AAAAL,OAAA,CAAAM,gBAAA,GAAAA,gBAAA;AAAAN,OAAA,CAAAO,mBAAA,GAAAA,mBAAA;AAAAP,OAAA,CAAAQ,iBAAA,GAAAA,iBAAA;AAAAR,OAAA,CAAAS,cAAA,GAAAA,cAAA;AAAAT,OAAA,CAAAU,WAAA,GAAAA,WAAA;AAAAV,OAAA,CAAAW,SAAA,GAAAA,SAAA;AAAAX,OAAA,CAAAY,YAAA,GAAAA,YAAA;AAEb,IAAAC,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASH,SAASA,CAACM,SAAiB,EAAEC,MAAqB,EAAiB;EAC1E,IAAI,EAAEA,MAAM,KAAK,IAAI,IAAI,OAAOA,MAAM,KAAK,QAAQ,CAAC,EAAE;IACpD,OAAOC,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACC,sBAAW,CAACX,SAAS,CAAC,CAAC;EACzD;EACA,OAAsBQ,OAAO,CAACI,OAAO,CACnCC,yBAAiB,CAACb,SAAS,CAAC;IAC1Bc,OAAO,EAAER,SAAS;IAClBS,MAAM,EAAER;EACV,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASZ,gBAAgBA,CACvBW,SAAiB,EACjBU,OAAsB,EACP;EACf,IAAI,EAAEA,OAAO,KAAK,IAAI,IAAI,OAAOA,OAAO,KAAK,QAAQ,CAAC,EAAE;IACtD,OAAOR,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACC,sBAAW,CAAChB,gBAAgB,CAAC,CAAC;EAChE;EACA,OAAsBa,OAAO,CAACI,OAAO,CACnCC,yBAAiB,CAAClB,gBAAgB,CAAC;IACjCmB,OAAO,EAAER,SAAS;IAClBW,aAAa,EAAED;EACjB,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASxB,eAAeA,CACtBc,SAAiB,EACjBY,OAAsB,EACP;EACf,IAAI,EAAEA,OAAO,KAAK,IAAI,IAAI,OAAOA,OAAO,KAAK,QAAQ,CAAC,EAAE;IACtD,OAAOV,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACC,sBAAW,CAACnB,eAAe,CAAC,CAAC;EAC/D;EACA,OAAsBgB,OAAO,CAACI,OAAO,CACnCC,yBAAiB,CAACrB,eAAe,CAAC;IAChCsB,OAAO,EAAER,SAAS;IAClBa,YAAY,EAAED;EAChB,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASzB,YAAYA,CAACa,SAAiB,EAAEc,KAAoB,EAAiB;EAC5E,IAAI,EAAEA,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,CAAC,EAAE;IAClD,OAAOZ,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACC,sBAAW,CAAClB,YAAY,CAAC,CAAC;EAC5D;EACA,OAAsBe,OAAO,CAACI,OAAO,CACnCC,yBAAiB,CAACpB,YAAY,CAAC;IAC7BqB,OAAO,EAAER,SAAS;IAClBe,SAAS,EAAED;EACb,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASnB,YAAYA,CACnBK,SAAiB,EACjBgB,SAAwB,EACT;EACf,IAAI,EAAEA,SAAS,KAAK,IAAI,IAAI,OAAOA,SAAS,KAAK,QAAQ,CAAC,EAAE;IAC1D,OAAOd,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACC,sBAAW,CAACV,YAAY,CAAC,CAAC;EAC5D;EACA,OAAsBO,OAAO,CAACI,OAAO,CACnCC,yBAAiB,CAACZ,YAAY,CAAC;IAC7Ba,OAAO,EAAER,SAAS;IAClBiB,SAAS,EAAED;EACb,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASvB,WAAWA,CAACO,SAAiB,EAAEkB,KAAoB,EAAiB;EAC3E,IAAI,EAAEA,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,CAAC,EAAE;IAClD,OAAOhB,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACC,sBAAW,CAACZ,WAAW,CAAC,CAAC;EAC3D;EACA,OAAsBS,OAAO,CAACI,OAAO,CACnCC,yBAAiB,CAACd,WAAW,CAAC;IAC5Be,OAAO,EAAER,SAAS;IAClBmB,QAAQ,EAAED;EACZ,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS9B,WAAWA,CAACY,SAAiB,EAAEoB,OAAsB,EAAiB;EAC7E,IAAI,EAAEA,OAAO,KAAK,IAAI,IAAI,OAAOA,OAAO,KAAK,QAAQ,CAAC,EAAE;IACtD,OAAOlB,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACC,sBAAW,CAACjB,WAAW,CAAC,CAAC;EAC3D;EACA,OAAsBc,OAAO,CAACI,OAAO,CACnCC,yBAAiB,CAACnB,WAAW,CAAC;IAC5BoB,OAAO,EAAER,SAAS;IAClBqB,QAAQ,EAAED;EACZ,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS9B,mBAAmBA,CAC1BU,SAAiB,EACjBsB,MAAyB,EACV;EACf,IAAI,EAAEA,MAAM,KAAK,IAAI,IAAI,IAAAC,4BAAY,EAACD,MAAM,CAAC,CAAC,EAAE;IAC9C,OAAOpB,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACC,sBAAW,CAACf,mBAAmB,CAAC,CAAC;EACnE;EACA,OAAsBY,OAAO,CAACI,OAAO,CACnCC,yBAAiB,CAACjB,mBAAmB,CAAC;IACpCkB,OAAO,EAAER,SAAS;IAClBwB,gBAAgB,EAAEF;EACpB,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS/B,iBAAiBA,CACxBS,SAAiB,EACjByB,OAA0B,EACX;EACf,IAAI,EAAEA,OAAO,KAAK,IAAI,IAAI,IAAAF,4BAAY,EAACE,OAAO,CAAC,CAAC,EAAE;IAChD,OAAOvB,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACC,sBAAW,CAACd,iBAAiB,CAAC,CAAC;EACjE;EACA,OAAsBW,OAAO,CAACI,OAAO,CACnCC,yBAAiB,CAAChB,iBAAiB,CAAC;IAClCiB,OAAO,EAAER,SAAS;IAClB0B,cAAc,EAAED;EAClB,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASxC,aAAaA,CACpBe,SAAiB,EACjB2B,SAAwB,EACT;EACf,IAAI,EAAEA,SAAS,KAAK,IAAI,IAAI,OAAOA,SAAS,KAAK,QAAQ,CAAC,EAAE;IAC1D,OAAOzB,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACC,sBAAW,CAACpB,aAAa,CAAC,CAAC;EAC7D;EACA,OAAsBiB,OAAO,CAACI,OAAO,CACnCC,yBAAiB,CAACtB,aAAa,CAAC;IAC9BuB,OAAO,EAAER,SAAS;IAClB4B,UAAU,EAAED;EACd,CAAC,CACH,CAAC;AACH;AAEA,MAAME,SAAS,GAAG;EAChBpB,MAAM,EAAEf,SAAS;EACjBiB,aAAa,EAAEtB,gBAAgB;EAC/BwB,YAAY,EAAE3B,eAAe;EAC7B6B,SAAS,EAAE5B,YAAY;EACvB8B,SAAS,EAAEtB,YAAY;EACvBwB,QAAQ,EAAE1B,WAAW;EACrB4B,QAAQ,EAAEjC,WAAW;EACrBoC,gBAAgB,EAAElC,mBAAmB;EACrCoC,cAAc,EAAEnC,iBAAiB;EACjCqC,UAAU,EAAE3C;AACd,CAGC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,cAAcA,CACrBQ,SAAiB,EACjB8B,MAA4B,EACb;EACf,IAAI,CAAC,IAAAC,kCAAkB,EAACD,MAAM,CAAC,EAAE;IAC/B,OAAO5B,OAAO,CAACC,MAAM,CACnB,IAAIC,KAAK,CAAE,GAAEC,sBAAW,CAACb,cAAe,IAAGa,sBAAW,CAAC2B,OAAQ,EAAC,CAClE,CAAC;EACH;EAEA,MAAMC,QAAQ,GAAGpD,MAAM,CAACqD,IAAI,CAACJ,MAAM,CAAC,CACjCK,GAAG,CAAEC,CAAC,IAAK;IACV,MAAMC,GAAG,GAAGR,SAAS,CAACO,CAAC,CAAC;IACxB,OAAOC,GAAG,GAAGA,GAAG,CAACrC,SAAS,EAAE8B,MAAM,CAACM,CAAC,CAAC,CAAC,GAAGE,SAAS;EACpD,CAAC,CAAC,CACDC,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAKF,SAAS,CAAC;;EAEjC;EACA,MAAMG,YAAY,GAAGR,QAAQ,CAACE,GAAG,CAAEO,CAAC,IACjCA,CAAC,CACCC,IAAI,CACFC,CAAC,IACA/D,MAAM,CAACgE,MAAM,CAAC;IACZC,MAAM,EAAE,WAAW;IACnB9D,KAAK,EAAE4D;EACT,CAAC,CACL,CAAC,CACAG,KAAK,CACHC,GAAG,IACFnE,MAAM,CAACgE,MAAM,CAAC;IACZC,MAAM,EAAE,UAAU;IAClBG,MAAM,EAAED,GAAG,CAACE;EACd,CAAC,CACL,CACJ,CAAC;EAED,OAAsBhD,OAAO,CAACiD,GAAG,CAACV,YAAY,CAAC,CAACE,IAAI,CAAES,QAAQ,IAAK;IACjE,MAAMC,UAAU,GAAGD,QAAQ,CAACb,MAAM,CAC/Be,GAAG,IAAKA,GAAG,CAACR,MAAM,KAAK,UAC1B,CAA4B;IAC5B,IAAIO,UAAU,CAACE,MAAM,GAAG,CAAC,EAAE;MACzB,MAAMC,UAAU,GAAGH,UAAU,CAACI,MAAM,CAClC,CAACC,GAAG,EAAEC,IAAI,KAAKD,GAAG,GAAG,GAAG,GAAGC,IAAI,CAACV,MAAM,EACtC5C,sBAAW,CAACb,cACd,CAAC;MACD,MAAM,IAAIY,KAAK,CAACoD,UAAU,CAAC;IAC7B;IACA,OAAO,IAAI;EACb,CAAC,CAAC;AACJ"}
@@ -0,0 +1,221 @@
1
+ /*
2
+ * Copyright (c) 2020-2023 Snowplow Analytics Ltd. All rights reserved.
3
+ *
4
+ * This program is licensed to you under the Apache License Version 2.0,
5
+ * and you may not use this file except in compliance with the Apache License Version 2.0.
6
+ * You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
7
+ *
8
+ * Unless required by applicable law or agreed to in writing,
9
+ * software distributed under the Apache License Version 2.0 is distributed on an
10
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
12
+ */
13
+
14
+ 'use strict';
15
+
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+ exports.trackConsentGrantedEvent = trackConsentGrantedEvent;
20
+ exports.trackConsentWithdrawnEvent = trackConsentWithdrawnEvent;
21
+ exports.trackDeepLinkReceivedEvent = trackDeepLinkReceivedEvent;
22
+ exports.trackEcommerceTransactionEvent = trackEcommerceTransactionEvent;
23
+ exports.trackMessageNotificationEvent = trackMessageNotificationEvent;
24
+ exports.trackPageViewEvent = trackPageViewEvent;
25
+ exports.trackScreenViewEvent = trackScreenViewEvent;
26
+ exports.trackSelfDescribingEvent = trackSelfDescribingEvent;
27
+ exports.trackStructuredEvent = trackStructuredEvent;
28
+ exports.trackTimingEvent = trackTimingEvent;
29
+ var _native = require("./native");
30
+ var _constants = require("./constants");
31
+ var _events = require("./events");
32
+ /**
33
+ * Tracks a self-describing event
34
+ *
35
+ * @param namespace {string} - the tracker namespace
36
+ * @param argmap {Object} - the event data
37
+ * @param contexts {Array}- the event contexts
38
+ * @returns {Promise}
39
+ */
40
+ function trackSelfDescribingEvent(namespace, argmap) {
41
+ let contexts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
42
+ return (0, _events.validateSelfDesc)(argmap).then(() => (0, _events.validateContexts)(contexts)).then(() => _native.RNSnowplowTracker.trackSelfDescribingEvent({
43
+ tracker: namespace,
44
+ eventData: argmap,
45
+ contexts: contexts
46
+ })).catch(error => {
47
+ throw new Error(`${_constants.logMessages.trackSelfDesc} ${error.message}`);
48
+ });
49
+ }
50
+
51
+ /**
52
+ * Tracks a screen-view event
53
+ *
54
+ * @param namespace {string} - the tracker namespace
55
+ * @param argmap {Object} - the event data
56
+ * @param contexts {Array}- the event contexts
57
+ * @returns {Promise}
58
+ */
59
+ function trackScreenViewEvent(namespace, argmap) {
60
+ let contexts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
61
+ return (0, _events.validateScreenView)(argmap).then(() => (0, _events.validateContexts)(contexts)).then(() => _native.RNSnowplowTracker.trackScreenViewEvent({
62
+ tracker: namespace,
63
+ eventData: argmap,
64
+ contexts: contexts
65
+ })).catch(error => {
66
+ throw new Error(`${_constants.logMessages.trackScreenView} ${error.message}`);
67
+ });
68
+ }
69
+
70
+ /**
71
+ * Tracks a structured event
72
+ *
73
+ * @param namespace {string} - the tracker namespace
74
+ * @param argmap {Object} - the event data
75
+ * @param contexts {Array}- the event contexts
76
+ * @returns {Promise}
77
+ */
78
+ function trackStructuredEvent(namespace, argmap) {
79
+ let contexts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
80
+ return (0, _events.validateStructured)(argmap).then(() => (0, _events.validateContexts)(contexts)).then(() => _native.RNSnowplowTracker.trackStructuredEvent({
81
+ tracker: namespace,
82
+ eventData: argmap,
83
+ contexts: contexts
84
+ })).catch(error => {
85
+ throw new Error(`${_constants.logMessages.trackStructured} ${error.message}`);
86
+ });
87
+ }
88
+
89
+ /**
90
+ * Tracks a page-view event
91
+ *
92
+ * @param namespace {string} - the tracker namespace
93
+ * @param argmap {Object} - the event data
94
+ * @param contexts {Array}- the event contexts
95
+ * @returns {Promise}
96
+ */
97
+ function trackPageViewEvent(namespace, argmap) {
98
+ let contexts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
99
+ return (0, _events.validatePageView)(argmap).then(() => (0, _events.validateContexts)(contexts)).then(() => _native.RNSnowplowTracker.trackPageViewEvent({
100
+ tracker: namespace,
101
+ eventData: argmap,
102
+ contexts: contexts
103
+ })).catch(error => {
104
+ throw new Error(`${_constants.logMessages.trackPageView} ${error.message}`);
105
+ });
106
+ }
107
+
108
+ /**
109
+ * Tracks a timing event
110
+ *
111
+ * @param namespace {string} - the tracker namespace
112
+ * @param argmap {Object} - the event data
113
+ * @param contexts {Array}- the event contexts
114
+ * @returns {Promise}
115
+ */
116
+ function trackTimingEvent(namespace, argmap) {
117
+ let contexts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
118
+ return (0, _events.validateTiming)(argmap).then(() => (0, _events.validateContexts)(contexts)).then(() => _native.RNSnowplowTracker.trackTimingEvent({
119
+ tracker: namespace,
120
+ eventData: argmap,
121
+ contexts: contexts
122
+ })).catch(error => {
123
+ throw new Error(`${_constants.logMessages.trackTiming} ${error.message}`);
124
+ });
125
+ }
126
+
127
+ /**
128
+ * Tracks a consent-granted event
129
+ *
130
+ * @param namespace {string} - the tracker namespace
131
+ * @param argmap {Object} - the event data
132
+ * @param contexts {Array}- the event contexts
133
+ * @returns {Promise}
134
+ */
135
+ function trackConsentGrantedEvent(namespace, argmap) {
136
+ let contexts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
137
+ return (0, _events.validateConsentGranted)(argmap).then(() => (0, _events.validateContexts)(contexts)).then(() => _native.RNSnowplowTracker.trackConsentGrantedEvent({
138
+ tracker: namespace,
139
+ eventData: argmap,
140
+ contexts: contexts
141
+ })).catch(error => {
142
+ throw new Error(`${_constants.logMessages.trackConsentGranted} ${error.message}`);
143
+ });
144
+ }
145
+
146
+ /**
147
+ * Tracks a consent-withdrawn event
148
+ *
149
+ * @param namespace {string} - the tracker namespace
150
+ * @param argmap {Object} - the event data
151
+ * @param contexts {Array}- the event contexts
152
+ * @returns {Promise}
153
+ */
154
+ function trackConsentWithdrawnEvent(namespace, argmap) {
155
+ let contexts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
156
+ return (0, _events.validateConsentWithdrawn)(argmap).then(() => (0, _events.validateContexts)(contexts)).then(() => _native.RNSnowplowTracker.trackConsentWithdrawnEvent({
157
+ tracker: namespace,
158
+ eventData: argmap,
159
+ contexts: contexts
160
+ })).catch(error => {
161
+ throw new Error(`${_constants.logMessages.trackConsentWithdrawn} ${error.message}`);
162
+ });
163
+ }
164
+
165
+ /**
166
+ * Tracks an ecommerce-transaction event
167
+ *
168
+ * @param namespace {string} - the tracker namespace
169
+ * @param argmap {Object} - the event data
170
+ * @param contexts {Array}- the event contexts
171
+ * @returns {Promise}
172
+ */
173
+ function trackEcommerceTransactionEvent(namespace, argmap) {
174
+ let contexts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
175
+ return (0, _events.validateEcommerceTransaction)(argmap).then(() => (0, _events.validateContexts)(contexts)).then(() => _native.RNSnowplowTracker.trackEcommerceTransactionEvent({
176
+ tracker: namespace,
177
+ eventData: argmap,
178
+ contexts: contexts
179
+ })).catch(error => {
180
+ throw new Error(`${_constants.logMessages.trackEcommerceTransaction} ${error.message}`);
181
+ });
182
+ }
183
+
184
+ /**
185
+ * Tracks a deep link received event
186
+ *
187
+ * @param namespace {string} - the tracker namespace
188
+ * @param argmap {Object} - the event data
189
+ * @param contexts {Array}- the event contexts
190
+ * @returns {Promise}
191
+ */
192
+ function trackDeepLinkReceivedEvent(namespace, argmap) {
193
+ let contexts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
194
+ return (0, _events.validateDeepLinkReceived)(argmap).then(() => (0, _events.validateContexts)(contexts)).then(() => _native.RNSnowplowTracker.trackDeepLinkReceivedEvent({
195
+ tracker: namespace,
196
+ eventData: argmap,
197
+ contexts: contexts
198
+ })).catch(error => {
199
+ throw new Error(`${_constants.logMessages.trackDeepLinkReceived} ${error.message}`);
200
+ });
201
+ }
202
+
203
+ /**
204
+ * Tracks a message notification event
205
+ *
206
+ * @param namespace {string} - the tracker namespace
207
+ * @param argmap {Object} - the event data
208
+ * @param contexts {Array}- the event contexts
209
+ * @returns {Promise}
210
+ */
211
+ function trackMessageNotificationEvent(namespace, argmap) {
212
+ let contexts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
213
+ return (0, _events.validateMessageNotification)(argmap).then(() => (0, _events.validateContexts)(contexts)).then(() => _native.RNSnowplowTracker.trackMessageNotificationEvent({
214
+ tracker: namespace,
215
+ eventData: argmap,
216
+ contexts: contexts
217
+ })).catch(error => {
218
+ throw new Error(`${_constants.logMessages.trackMessageNotification} ${error.message}`);
219
+ });
220
+ }
221
+ //# sourceMappingURL=tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Object","defineProperty","exports","value","trackConsentGrantedEvent","trackConsentWithdrawnEvent","trackDeepLinkReceivedEvent","trackEcommerceTransactionEvent","trackMessageNotificationEvent","trackPageViewEvent","trackScreenViewEvent","trackSelfDescribingEvent","trackStructuredEvent","trackTimingEvent","_native","require","_constants","_events","namespace","argmap","contexts","arguments","length","undefined","validateSelfDesc","then","validateContexts","RNSnowplowTracker","tracker","eventData","catch","error","Error","logMessages","trackSelfDesc","message","validateScreenView","trackScreenView","validateStructured","trackStructured","validatePageView","trackPageView","validateTiming","trackTiming","validateConsentGranted","trackConsentGranted","validateConsentWithdrawn","trackConsentWithdrawn","validateEcommerceTransaction","trackEcommerceTransaction","validateDeepLinkReceived","trackDeepLinkReceived","validateMessageNotification","trackMessageNotification"],"sourceRoot":"../../src","sources":["tracker.ts"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":""}
@@ -0,0 +1,85 @@
1
+ /*
2
+ * Copyright (c) 2020-2023 Snowplow Analytics Ltd. All rights reserved.
3
+ *
4
+ * This program is licensed to you under the Apache License Version 2.0,
5
+ * and you may not use this file except in compliance with the Apache License Version 2.0.
6
+ * You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
7
+ *
8
+ * Unless required by applicable law or agreed to in writing,
9
+ * software distributed under the Apache License Version 2.0 is distributed on an
10
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
12
+ */
13
+
14
+ 'use strict';
15
+
16
+ /**
17
+ * Returns a function that accepts a side-effect function as its argument and subscribes
18
+ * that function to aPromise's fullfillment,
19
+ * and errHandle to aPromise's rejection.
20
+ *
21
+ * @param aPromise - A void Promise
22
+ * @param errHandle - A function to handle the promise being rejected
23
+ * @returns - A function subscribed to the Promise's fullfillment
24
+ */
25
+ Object.defineProperty(exports, "__esModule", {
26
+ value: true
27
+ });
28
+ exports.errorHandler = errorHandler;
29
+ exports.isObject = isObject;
30
+ exports.safeWait = safeWait;
31
+ exports.safeWaitCallback = safeWaitCallback;
32
+ function safeWait(aPromise, errHandle) {
33
+ return func => {
34
+ return function () {
35
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
36
+ args[_key] = arguments[_key];
37
+ }
38
+ return aPromise.then(() => func(...args)).catch(err => errHandle(err));
39
+ };
40
+ };
41
+ }
42
+
43
+ /**
44
+ * Returns a function that accepts a callback function as its argument and subscribes
45
+ * that function to aPromise's fullfillment,
46
+ * and errHandle to aPromise's rejection.
47
+ *
48
+ * @param aPromise - A void Promise
49
+ * @param errHandle - A function to handle the promise being rejected
50
+ * @returns - A function subscribed to the Promise's fullfillment
51
+ */
52
+ function safeWaitCallback(callPromise, errHandle) {
53
+ return func => {
54
+ return function () {
55
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
56
+ args[_key2] = arguments[_key2];
57
+ }
58
+ return callPromise.then(() => func(...args)).catch(err => errHandle(err));
59
+ };
60
+ };
61
+ }
62
+
63
+ /**
64
+ * Handles an error.
65
+ *
66
+ * @param err - The error to be handled.
67
+ */
68
+ function errorHandler(err) {
69
+ if (__DEV__) {
70
+ console.warn('SnowplowTracker:' + err.message);
71
+ return undefined;
72
+ }
73
+ return undefined;
74
+ }
75
+
76
+ /**
77
+ * Helper to check whether its argument is of object type
78
+ *
79
+ * @param x - The argument to check.
80
+ * @returns - A boolean
81
+ */
82
+ function isObject(x) {
83
+ return Object.prototype.toString.call(x) === '[object Object]';
84
+ }
85
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Object","defineProperty","exports","value","errorHandler","isObject","safeWait","safeWaitCallback","aPromise","errHandle","func","_len","arguments","length","args","Array","_key","then","catch","err","callPromise","_len2","_key2","__DEV__","console","warn","message","undefined","x","prototype","toString","call"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,YAAA,GAAAA,YAAA;AAAAF,OAAA,CAAAG,QAAA,GAAAA,QAAA;AAAAH,OAAA,CAAAI,QAAA,GAAAA,QAAA;AAAAJ,OAAA,CAAAK,gBAAA,GAAAA,gBAAA;AASA,SAASD,QAAQA,CAACE,QAAuB,EAAEC,SAA+B,EAAE;EAC1E,OAAuDC,IAAO,IAAK;IACjE,OAAO,YAA2C;MAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAvCC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MACb,OAAOR,QAAQ,CAACS,IAAI,CAAC,MAAMP,IAAI,CAAC,GAAGI,IAAI,CAAC,CAAC,CAACI,KAAK,CAAEC,GAAG,IAAKV,SAAS,CAACU,GAAG,CAAC,CAAC;IAC1E,CAAC;EACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASZ,gBAAgBA,CACvBa,WAA0B,EAC1BX,SAAoC,EACpC;EACA,OAAuDC,IAAO,IAAK;IACjE,OAAO,YAAgE;MAAA,SAAAW,KAAA,GAAAT,SAAA,CAAAC,MAAA,EAA5DC,IAAI,OAAAC,KAAA,CAAAM,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAJR,IAAI,CAAAQ,KAAA,IAAAV,SAAA,CAAAU,KAAA;MAAA;MACb,OAAOF,WAAW,CACfH,IAAI,CAAC,MAAqBP,IAAI,CAAC,GAAGI,IAAI,CAAC,CAAC,CACxCI,KAAK,CAAEC,GAAG,IAAKV,SAAS,CAACU,GAAG,CAAC,CAAC;IACnC,CAAC;EACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASf,YAAYA,CAACe,GAAU,EAAa;EAC3C,IAAII,OAAO,EAAE;IACXC,OAAO,CAACC,IAAI,CAAC,kBAAkB,GAAGN,GAAG,CAACO,OAAO,CAAC;IAC9C,OAAOC,SAAS;EAClB;EACA,OAAOA,SAAS;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAStB,QAAQA,CAAOuB,CAAO,EAAW;EACxC,OAAO5B,MAAM,CAAC6B,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACH,CAAC,CAAC,KAAK,iBAAiB;AAChE"}
@@ -0,0 +1,79 @@
1
+ /*
2
+ * Copyright (c) 2020-2023 Snowplow Analytics Ltd. All rights reserved.
3
+ *
4
+ * This program is licensed to you under the Apache License Version 2.0,
5
+ * and you may not use this file except in compliance with the Apache License Version 2.0.
6
+ * You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
7
+ *
8
+ * Unless required by applicable law or agreed to in writing,
9
+ * software distributed under the Apache License Version 2.0 is distributed on an
10
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
12
+ */
13
+
14
+ 'use strict';
15
+
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+ exports.getWebViewCallback = getWebViewCallback;
20
+ var _tracker = require("./tracker");
21
+ var _utils = require("./utils");
22
+ function forEachTracker(trackers, iterator) {
23
+ if (trackers && trackers.length > 0) {
24
+ trackers.forEach(iterator);
25
+ } else {
26
+ iterator(null);
27
+ }
28
+ }
29
+
30
+ /**
31
+ * Enables tracking events from apps rendered in react-native-webview components.
32
+ * The apps need to use the Snowplow WebView tracker to track the events.
33
+ *
34
+ * To subscribe for the events, set the `onMessage` attribute:
35
+ * <WebView onMessage={getWebViewCallback()} ... />
36
+ *
37
+ * @returns Callback to subscribe for events from Web views tracked using the Snowplow WebView tracker.
38
+ */
39
+ function getWebViewCallback() {
40
+ return message => {
41
+ const data = JSON.parse(message.nativeEvent.data);
42
+ switch (data.command) {
43
+ case 'trackSelfDescribingEvent':
44
+ forEachTracker(data.trackers, namespace => {
45
+ (0, _tracker.trackSelfDescribingEvent)(namespace, data.event, data.context || []).catch(error => {
46
+ (0, _utils.errorHandler)(error);
47
+ });
48
+ });
49
+ break;
50
+ case 'trackStructEvent':
51
+ forEachTracker(data.trackers, namespace => {
52
+ (0, _tracker.trackStructuredEvent)(namespace, data.event, data.context || []).catch(error => {
53
+ (0, _utils.errorHandler)(error);
54
+ });
55
+ });
56
+ break;
57
+ case 'trackPageView':
58
+ forEachTracker(data.trackers, namespace => {
59
+ const event = data.event;
60
+ (0, _tracker.trackPageViewEvent)(namespace, {
61
+ pageTitle: event.title ?? '',
62
+ pageUrl: event.url ?? '',
63
+ referrer: event.referrer
64
+ }).catch(error => {
65
+ (0, _utils.errorHandler)(error);
66
+ });
67
+ });
68
+ break;
69
+ case 'trackScreenView':
70
+ forEachTracker(data.trackers, namespace => {
71
+ (0, _tracker.trackScreenViewEvent)(namespace, data.event, data.context || []).catch(error => {
72
+ (0, _utils.errorHandler)(error);
73
+ });
74
+ });
75
+ break;
76
+ }
77
+ };
78
+ }
79
+ //# sourceMappingURL=webViewInterface.js.map