@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 @@
1
+ {"version":3,"names":["Object","defineProperty","exports","value","getWebViewCallback","_tracker","require","_utils","forEachTracker","trackers","iterator","length","forEach","message","data","JSON","parse","nativeEvent","command","namespace","trackSelfDescribingEvent","event","context","catch","error","errorHandler","trackStructuredEvent","trackPageViewEvent","pageTitle","title","pageUrl","url","referrer","trackScreenViewEvent"],"sourceRoot":"../../src","sources":["webViewInterface.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,kBAAA,GAAAA,kBAAA;AAEb,IAAAC,QAAA,GAAAC,OAAA;AAaA,IAAAC,MAAA,GAAAD,OAAA;AAEA,SAASE,cAAcA,CACrBC,QAAmC,EACnCC,QAA4C,EACtC;EACN,IAAID,QAAQ,IAAIA,QAAQ,CAACE,MAAM,GAAG,CAAC,EAAE;IACnCF,QAAQ,CAACG,OAAO,CAACF,QAAQ,CAAC;EAC5B,CAAC,MAAM;IACLA,QAAQ,CAAC,IAAI,CAAC;EAChB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASN,kBAAkBA,CAAA,EAAG;EACnC,OAAQS,OAA0C,IAAW;IAC3D,MAAMC,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACH,OAAO,CAACI,WAAW,CAACH,IAAI,CAAmB;IACnE,QAAQA,IAAI,CAACI,OAAO;MAClB,KAAK,0BAA0B;QAC7BV,cAAc,CAACM,IAAI,CAACL,QAAQ,EAAGU,SAAS,IAAK;UAC3C,IAAAC,iCAAwB,EACtBD,SAAS,EACTL,IAAI,CAACO,KAAK,EACVP,IAAI,CAACQ,OAAO,IAAI,EAClB,CAAC,CAACC,KAAK,CAAEC,KAAK,IAAK;YACjB,IAAAC,mBAAY,EAACD,KAAK,CAAC;UACrB,CAAC,CAAC;QACJ,CAAC,CAAC;QACF;MAEF,KAAK,kBAAkB;QACrBhB,cAAc,CAACM,IAAI,CAACL,QAAQ,EAAGU,SAAS,IAAK;UAC3C,IAAAO,6BAAoB,EAClBP,SAAS,EACTL,IAAI,CAACO,KAAK,EACVP,IAAI,CAACQ,OAAO,IAAI,EAClB,CAAC,CAACC,KAAK,CAAEC,KAAK,IAAK;YACjB,IAAAC,mBAAY,EAACD,KAAK,CAAC;UACrB,CAAC,CAAC;QACJ,CAAC,CAAC;QACF;MAEF,KAAK,eAAe;QAClBhB,cAAc,CAACM,IAAI,CAACL,QAAQ,EAAGU,SAAS,IAAK;UAC3C,MAAME,KAAK,GAAGP,IAAI,CAACO,KAA6B;UAChD,IAAAM,2BAAkB,EAACR,SAAS,EAAE;YAC5BS,SAAS,EAAEP,KAAK,CAACQ,KAAK,IAAI,EAAE;YAC5BC,OAAO,EAAET,KAAK,CAACU,GAAG,IAAI,EAAE;YACxBC,QAAQ,EAAEX,KAAK,CAACW;UAClB,CAAC,CAAC,CAACT,KAAK,CAAEC,KAAK,IAAK;YAClB,IAAAC,mBAAY,EAACD,KAAK,CAAC;UACrB,CAAC,CAAC;QACJ,CAAC,CAAC;QACF;MAEF,KAAK,iBAAiB;QACpBhB,cAAc,CAACM,IAAI,CAACL,QAAQ,EAAGU,SAAS,IAAK;UAC3C,IAAAc,6BAAoB,EAClBd,SAAS,EACTL,IAAI,CAACO,KAAK,EACVP,IAAI,CAACQ,OAAO,IAAI,EAClB,CAAC,CAACC,KAAK,CAAEC,KAAK,IAAK;YACjB,IAAAC,mBAAY,EAACD,KAAK,CAAC;UACrB,CAAC,CAAC;QACJ,CAAC,CAAC;QACF;IACJ;EACF,CAAC;AACH"}
@@ -0,0 +1,439 @@
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
+ import { RNSnowplowTracker } from './native';
17
+ import { initValidate, isValidGC } from './configurations';
18
+ import { logMessages } from './constants';
19
+ import * as tracker from './tracker';
20
+ import * as subject from './subject';
21
+ /**
22
+ * Create a tracker from specified initial configuration.
23
+ *
24
+ * @param initConfig {Object} - The initial tracker configuration
25
+ * @returns - A promise fullfilled if the tracker is initialized
26
+ */
27
+ function createTracker(initConfig) {
28
+ return initValidate(initConfig).then(() => RNSnowplowTracker.createTracker(initConfig)).catch(error => {
29
+ throw new Error(`${logMessages.createTracker} ${error.message}.`);
30
+ });
31
+ }
32
+
33
+ /**
34
+ * Removes the tracker with given namespace
35
+ *
36
+ * @param trackerNamespace {string} - The tracker namespace
37
+ * @returns - A boolean promise
38
+ */
39
+ function removeTracker(trackerNamespace) {
40
+ if (typeof trackerNamespace !== 'string') {
41
+ return Promise.reject(new Error(logMessages.removeTracker));
42
+ }
43
+ return Promise.resolve(RNSnowplowTracker.removeTracker({
44
+ tracker: trackerNamespace
45
+ }));
46
+ }
47
+
48
+ /**
49
+ * Removes all existing trackers
50
+ *
51
+ * @returns - A void promise
52
+ */
53
+ function removeAllTrackers() {
54
+ return Promise.resolve(RNSnowplowTracker.removeAllTrackers());
55
+ }
56
+
57
+ /**
58
+ * Returns a function to track a SelfDescribing event by a tracker
59
+ *
60
+ * @param namespace {string} - The tracker namespace
61
+ * @returns - A function to track a SelfDescribing event
62
+ */
63
+ function trackSelfDescribingEvent(namespace) {
64
+ return function (argmap) {
65
+ let contexts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
66
+ return tracker.trackSelfDescribingEvent(namespace, argmap, contexts);
67
+ };
68
+ }
69
+
70
+ /**
71
+ * Returns a function to track a ScreenView event by a tracker
72
+ *
73
+ * @param namespace {string} - The tracker namespace
74
+ * @returns - A function to track a ScreenView event
75
+ */
76
+ function trackScreenViewEvent(namespace) {
77
+ return function (argmap) {
78
+ let contexts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
79
+ return tracker.trackScreenViewEvent(namespace, argmap, contexts);
80
+ };
81
+ }
82
+
83
+ /**
84
+ * Returns a function to track a Structured event by a tracker
85
+ *
86
+ * @param namespace {string} - The tracker namespace
87
+ * @returns - A function to track a Structured event
88
+ */
89
+ function trackStructuredEvent(namespace) {
90
+ return function (argmap) {
91
+ let contexts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
92
+ return tracker.trackStructuredEvent(namespace, argmap, contexts);
93
+ };
94
+ }
95
+
96
+ /**
97
+ * Returns a function to track a PageView event by a tracker
98
+ *
99
+ * @param namespace {string} - The tracker namespace
100
+ * @returns - A function to track a PageView event
101
+ */
102
+ function trackPageViewEvent(namespace) {
103
+ return function (argmap) {
104
+ let contexts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
105
+ return tracker.trackPageViewEvent(namespace, argmap, contexts);
106
+ };
107
+ }
108
+
109
+ /**
110
+ * Returns a function to track a Timing event by a tracker
111
+ *
112
+ * @param namespace {string} - The tracker namespace
113
+ * @returns - A function to track a Timing event
114
+ */
115
+ function trackTimingEvent(namespace) {
116
+ return function (argmap) {
117
+ let contexts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
118
+ return tracker.trackTimingEvent(namespace, argmap, contexts);
119
+ };
120
+ }
121
+
122
+ /**
123
+ * Returns a function to track a ConsentGranted event by a tracker
124
+ *
125
+ * @param namespace {string} - The tracker namespace
126
+ * @returns - A function to track a ConsentGranted event
127
+ */
128
+ function trackConsentGrantedEvent(namespace) {
129
+ return function (argmap) {
130
+ let contexts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
131
+ return tracker.trackConsentGrantedEvent(namespace, argmap, contexts);
132
+ };
133
+ }
134
+
135
+ /**
136
+ * Returns a function to track a ConsentWithdrawn event by a tracker
137
+ *
138
+ * @param namespace {string} - The tracker namespace
139
+ * @returns - A function to track a ConsentWithdrawn event
140
+ */
141
+ function trackConsentWithdrawnEvent(namespace) {
142
+ return function (argmap) {
143
+ let contexts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
144
+ return tracker.trackConsentWithdrawnEvent(namespace, argmap, contexts);
145
+ };
146
+ }
147
+
148
+ /**
149
+ * Returns a function to track an EcommerceTransaction event by a tracker
150
+ *
151
+ * @param namespace {string} - The tracker namespace
152
+ * @returns - A function to track an EcommerceTransaction event
153
+ */
154
+ function trackEcommerceTransactionEvent(namespace) {
155
+ return function (argmap) {
156
+ let contexts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
157
+ return tracker.trackEcommerceTransactionEvent(namespace, argmap, contexts);
158
+ };
159
+ }
160
+
161
+ /**
162
+ * Returns a function to track an DeepLinkReceived event by a tracker
163
+ *
164
+ * @param namespace {string} - The tracker namespace
165
+ * @returns - A function to track an DeepLinkReceived event
166
+ */
167
+ function trackDeepLinkReceivedEvent(namespace) {
168
+ return function (argmap) {
169
+ let contexts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
170
+ return tracker.trackDeepLinkReceivedEvent(namespace, argmap, contexts);
171
+ };
172
+ }
173
+
174
+ /**
175
+ * Returns a function to track an MessageNotification event by a tracker
176
+ *
177
+ * @param namespace {string} - The tracker namespace
178
+ * @returns - A function to track an MessageNotification event
179
+ */
180
+ function trackMessageNotificationEvent(namespace) {
181
+ return function (argmap) {
182
+ let contexts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
183
+ return tracker.trackMessageNotificationEvent(namespace, argmap, contexts);
184
+ };
185
+ }
186
+
187
+ /**
188
+ * Returns a function to remove global contexts by a tracker
189
+ *
190
+ * @param namespace {string} - The tracker namespace
191
+ * @returns - A function to remove global contexts
192
+ */
193
+ function removeGlobalContexts(namespace) {
194
+ return function (tag) {
195
+ if (typeof tag !== 'string') {
196
+ return Promise.reject(new Error(`${logMessages.removeGlobalContexts} ${logMessages.gcTagType}`));
197
+ }
198
+ return Promise.resolve(RNSnowplowTracker.removeGlobalContexts({
199
+ tracker: namespace,
200
+ removeTag: tag
201
+ }));
202
+ };
203
+ }
204
+
205
+ /**
206
+ * Returns a function to add global contexts by a tracker
207
+ *
208
+ * @param namespace {string} - The tracker namespace
209
+ * @returns - A function to add global contexts
210
+ */
211
+ function addGlobalContexts(namespace) {
212
+ return function (gc) {
213
+ if (!isValidGC(gc)) {
214
+ return Promise.reject(new Error(`${logMessages.addGlobalContexts} ${logMessages.gcType}`));
215
+ }
216
+ return Promise.resolve(RNSnowplowTracker.addGlobalContexts({
217
+ tracker: namespace,
218
+ addGlobalContext: gc
219
+ }));
220
+ };
221
+ }
222
+
223
+ /**
224
+ * Returns a function to set the subject userId
225
+ *
226
+ * @param namespace {string} - The tracker namespace
227
+ * @returns - A function to set the userId
228
+ */
229
+ function setUserId(namespace) {
230
+ return function (newUid) {
231
+ return subject.setUserId(namespace, newUid);
232
+ };
233
+ }
234
+
235
+ /**
236
+ * Returns a function to set the subject networkUserId
237
+ *
238
+ * @param namespace {string} - The tracker namespace
239
+ * @returns - A function to set the networkUserId
240
+ */
241
+ function setNetworkUserId(namespace) {
242
+ return function (newNuid) {
243
+ return subject.setNetworkUserId(namespace, newNuid);
244
+ };
245
+ }
246
+
247
+ /**
248
+ * Returns a function to set the subject domainUserId
249
+ *
250
+ * @param namespace {string} - The tracker namespace
251
+ * @returns - A function to set the domainUserId
252
+ */
253
+ function setDomainUserId(namespace) {
254
+ return function (newDuid) {
255
+ return subject.setDomainUserId(namespace, newDuid);
256
+ };
257
+ }
258
+
259
+ /**
260
+ * Returns a function to set the subject ipAddress
261
+ *
262
+ * @param namespace {string} - The tracker namespace
263
+ * @returns - A function to set the ipAddress
264
+ */
265
+ function setIpAddress(namespace) {
266
+ return function (newIp) {
267
+ return subject.setIpAddress(namespace, newIp);
268
+ };
269
+ }
270
+
271
+ /**
272
+ * Returns a function to set the subject useragent
273
+ *
274
+ * @param namespace {string} - The tracker namespace
275
+ * @returns - A function to set the useragent
276
+ */
277
+ function setUseragent(namespace) {
278
+ return function (newUagent) {
279
+ return subject.setUseragent(namespace, newUagent);
280
+ };
281
+ }
282
+
283
+ /**
284
+ * Returns a function to set the subject timezone
285
+ *
286
+ * @param namespace {string} - The tracker namespace
287
+ * @returns - A function to set the timezone
288
+ */
289
+ function setTimezone(namespace) {
290
+ return function (newTz) {
291
+ return subject.setTimezone(namespace, newTz);
292
+ };
293
+ }
294
+
295
+ /**
296
+ * Returns a function to set the subject language
297
+ *
298
+ * @param namespace {string} - The tracker namespace
299
+ * @returns - A function to set the language
300
+ */
301
+ function setLanguage(namespace) {
302
+ return function (newLang) {
303
+ return subject.setLanguage(namespace, newLang);
304
+ };
305
+ }
306
+
307
+ /**
308
+ * Returns a function to set the subject screenResolution
309
+ *
310
+ * @param namespace {string} - The tracker namespace
311
+ * @returns - A function to set the screenResolution
312
+ */
313
+ function setScreenResolution(namespace) {
314
+ return function (newRes) {
315
+ return subject.setScreenResolution(namespace, newRes);
316
+ };
317
+ }
318
+
319
+ /**
320
+ * Returns a function to set the subject screenViewport
321
+ *
322
+ * @param namespace {string} - The tracker namespace
323
+ * @returns - A function to set the screenViewport
324
+ */
325
+ function setScreenViewport(namespace) {
326
+ return function (newView) {
327
+ return subject.setScreenViewport(namespace, newView);
328
+ };
329
+ }
330
+
331
+ /**
332
+ * Returns a function to set the subject colorDepth
333
+ *
334
+ * @param namespace {string} - The tracker namespace
335
+ * @returns - A function to set the colorDepth
336
+ */
337
+ function setColorDepth(namespace) {
338
+ return function (newColorD) {
339
+ return subject.setColorDepth(namespace, newColorD);
340
+ };
341
+ }
342
+
343
+ /**
344
+ * Returns a function to set subject data
345
+ *
346
+ * @param namespace {string} - The tracker namespace
347
+ * @returns - A function to set subject data
348
+ */
349
+ function setSubjectData(namespace) {
350
+ return function (config) {
351
+ return subject.setSubjectData(namespace, config);
352
+ };
353
+ }
354
+
355
+ /**
356
+ * Returns a function to get the current session userId
357
+ *
358
+ * @param namespace {string} - The tracker namespace
359
+ * @returns - A function to get the session userId
360
+ */
361
+ function getSessionUserId(namespace) {
362
+ return function () {
363
+ return Promise.resolve(RNSnowplowTracker.getSessionUserId({
364
+ tracker: namespace
365
+ }));
366
+ };
367
+ }
368
+
369
+ /**
370
+ * Returns a function to get the current sessionId
371
+ *
372
+ * @param namespace {string} - The tracker namespace
373
+ * @returns - A function to get the sessionId
374
+ */
375
+ function getSessionId(namespace) {
376
+ return function () {
377
+ return Promise.resolve(RNSnowplowTracker.getSessionId({
378
+ tracker: namespace
379
+ }));
380
+ };
381
+ }
382
+
383
+ /**
384
+ * Returns a function to get the current session index
385
+ *
386
+ * @param namespace {string} - The tracker namespace
387
+ * @returns - A function to get the session index
388
+ */
389
+ function getSessionIndex(namespace) {
390
+ return function () {
391
+ return Promise.resolve(RNSnowplowTracker.getSessionIndex({
392
+ tracker: namespace
393
+ }));
394
+ };
395
+ }
396
+
397
+ /**
398
+ * Returns a function to get whether the app is in background
399
+ *
400
+ * @param namespace {string} - The tracker namespace
401
+ * @returns - A function to get whether the app isInBackground
402
+ */
403
+ function getIsInBackground(namespace) {
404
+ return function () {
405
+ return Promise.resolve(RNSnowplowTracker.getIsInBackground({
406
+ tracker: namespace
407
+ }));
408
+ };
409
+ }
410
+
411
+ /**
412
+ * Returns a function to get the background index
413
+ *
414
+ * @param namespace {string} - The tracker namespace
415
+ * @returns - A function to get the backgroundIndex
416
+ */
417
+ function getBackgroundIndex(namespace) {
418
+ return function () {
419
+ return Promise.resolve(RNSnowplowTracker.getBackgroundIndex({
420
+ tracker: namespace
421
+ }));
422
+ };
423
+ }
424
+
425
+ /**
426
+ * Returns a function to get the foreground index
427
+ *
428
+ * @param namespace {string} - The tracker namespace
429
+ * @returns - A function to get the foregroundIndex
430
+ */
431
+ function getForegroundIndex(namespace) {
432
+ return function () {
433
+ return Promise.resolve(RNSnowplowTracker.getForegroundIndex({
434
+ tracker: namespace
435
+ }));
436
+ };
437
+ }
438
+ export { createTracker, removeTracker, removeAllTrackers, trackSelfDescribingEvent, trackScreenViewEvent, trackStructuredEvent, trackPageViewEvent, trackTimingEvent, trackConsentGrantedEvent, trackConsentWithdrawnEvent, trackEcommerceTransactionEvent, trackDeepLinkReceivedEvent, trackMessageNotificationEvent, removeGlobalContexts, addGlobalContexts, setUserId, setNetworkUserId, setDomainUserId, setIpAddress, setUseragent, setTimezone, setLanguage, setScreenResolution, setScreenViewport, setColorDepth, setSubjectData, getSessionUserId, getSessionId, getSessionIndex, getIsInBackground, getBackgroundIndex, getForegroundIndex };
439
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RNSnowplowTracker","initValidate","isValidGC","logMessages","tracker","subject","createTracker","initConfig","then","catch","error","Error","message","removeTracker","trackerNamespace","Promise","reject","resolve","removeAllTrackers","trackSelfDescribingEvent","namespace","argmap","contexts","arguments","length","undefined","trackScreenViewEvent","trackStructuredEvent","trackPageViewEvent","trackTimingEvent","trackConsentGrantedEvent","trackConsentWithdrawnEvent","trackEcommerceTransactionEvent","trackDeepLinkReceivedEvent","trackMessageNotificationEvent","removeGlobalContexts","tag","gcTagType","removeTag","addGlobalContexts","gc","gcType","addGlobalContext","setUserId","newUid","setNetworkUserId","newNuid","setDomainUserId","newDuid","setIpAddress","newIp","setUseragent","newUagent","setTimezone","newTz","setLanguage","newLang","setScreenResolution","newRes","setScreenViewport","newView","setColorDepth","newColorD","setSubjectData","config","getSessionUserId","getSessionId","getSessionIndex","getIsInBackground","getBackgroundIndex","getForegroundIndex"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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"}
@@ -0,0 +1,197 @@
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
+ import { isObject } from './utils';
17
+ import { isValidSD } from './events';
18
+ import { logMessages } from './constants';
19
+ /**
20
+ * Configuration properties
21
+ */
22
+ const networkProps = ['endpoint', 'method', 'customPostPath', 'requestHeaders'];
23
+ const trackerProps = ['appId', 'devicePlatform', 'base64Encoding', 'logLevel', 'applicationContext', 'platformContext', 'geoLocationContext', 'sessionContext', 'deepLinkContext', 'screenContext', 'screenViewAutotracking', 'lifecycleAutotracking', 'installAutotracking', 'exceptionAutotracking', 'diagnosticAutotracking', 'userAnonymisation'];
24
+ const sessionProps = ['foregroundTimeout', 'backgroundTimeout'];
25
+ const emitterProps = ['bufferOption', 'emitRange', 'threadPoolSize', 'byteLimitPost', 'byteLimitGet', 'serverAnonymisation'];
26
+ const subjectProps = ['userId', 'networkUserId', 'domainUserId', 'useragent', 'ipAddress', 'timezone', 'language', 'screenResolution', 'screenViewport', 'colorDepth'];
27
+ const gdprProps = ['basisForProcessing', 'documentId', 'documentVersion', 'documentDescription'];
28
+ const gcProps = ['tag', 'globalContexts'];
29
+
30
+ /**
31
+ * Validates whether an object is of valid configuration given its default keys
32
+ *
33
+ * @param config {Object} - the object to validate
34
+ * @param defaultKeys {Array} - the default keys to validate against
35
+ * @returns - boolean
36
+ */
37
+ function isValidConfig(config, defaultKeys) {
38
+ return Object.keys(config).every(key => defaultKeys.includes(key));
39
+ }
40
+
41
+ /**
42
+ * Validates the networkConfig
43
+ *
44
+ * @param config {Object} - the config to validate
45
+ * @returns - boolean
46
+ */
47
+ function isValidNetworkConf(config) {
48
+ if (!isObject(config) || !isValidConfig(config, networkProps) || typeof config.endpoint !== 'string' || !config.endpoint) {
49
+ return false;
50
+ }
51
+ return true;
52
+ }
53
+
54
+ /**
55
+ * Validates the trackerConfig
56
+ *
57
+ * @param config {Object} - the config to validate
58
+ * @returns - boolean
59
+ */
60
+ function isValidTrackerConf(config) {
61
+ if (!isObject(config) || !isValidConfig(config, trackerProps)) {
62
+ return false;
63
+ }
64
+ return true;
65
+ }
66
+
67
+ /**
68
+ * Validates the sessionConfig
69
+ *
70
+ * @param config {Object} - the config to validate
71
+ * @returns - boolean
72
+ */
73
+ function isValidSessionConf(config) {
74
+ if (!isObject(config) || !isValidConfig(config, sessionProps) || !sessionProps.every(key => Object.keys(config).includes(key))) {
75
+ return false;
76
+ }
77
+ return true;
78
+ }
79
+
80
+ /**
81
+ * Validates the emitterConfig
82
+ *
83
+ * @param config {Object} - the config to validate
84
+ * @returns - boolean
85
+ */
86
+ function isValidEmitterConf(config) {
87
+ if (!isObject(config) || !isValidConfig(config, emitterProps)) {
88
+ return false;
89
+ }
90
+ return true;
91
+ }
92
+
93
+ /**
94
+ * Validates whether an object is of ScreenSize type
95
+ *
96
+ * @param arr {Object} - the object to validate
97
+ * @returns - boolean
98
+ */
99
+ function isScreenSize(arr) {
100
+ return Array.isArray(arr) && arr.length === 2 && arr.every(n => typeof n === 'number');
101
+ }
102
+
103
+ /**
104
+ * Validates the subjectConfig
105
+ *
106
+ * @param config {Object} - the config to validate
107
+ * @returns - boolean
108
+ */
109
+ function isValidSubjectConf(config) {
110
+ if (!isObject(config) || !isValidConfig(config, subjectProps)) {
111
+ return false;
112
+ }
113
+
114
+ // validating ScreenSize here to simplify array handling in bridge
115
+ if (Object.prototype.hasOwnProperty.call(config, 'screenResolution') && config.screenResolution !== null && !isScreenSize(config.screenResolution)) {
116
+ return false;
117
+ }
118
+ if (Object.prototype.hasOwnProperty.call(config, 'screenViewport') && config.screenViewport !== null && !isScreenSize(config.screenViewport)) {
119
+ return false;
120
+ }
121
+ return true;
122
+ }
123
+
124
+ /**
125
+ * Validates the gdprConfig
126
+ *
127
+ * @param config {Object} - the config to validate
128
+ * @returns - boolean
129
+ */
130
+ function isValidGdprConf(config) {
131
+ if (!isObject(config) || !isValidConfig(config, gdprProps) || !gdprProps.every(key => Object.keys(config).includes(key)) || !['consent', 'contract', 'legal_obligation', 'legitimate_interests', 'public_task', 'vital_interests'].includes(config.basisForProcessing)) {
132
+ return false;
133
+ }
134
+ return true;
135
+ }
136
+
137
+ /**
138
+ * Validates whether an object is of GlobalContext type
139
+ *
140
+ * @param gc {Object} - the object to validate
141
+ * @returns - boolean
142
+ */
143
+ function isValidGC(gc) {
144
+ return isObject(gc) && isValidConfig(gc, gcProps) && typeof gc.tag === 'string' && Array.isArray(gc.globalContexts) && gc.globalContexts.every(c => isValidSD(c));
145
+ }
146
+
147
+ /**
148
+ * Validates the GCConfig (global contexts)
149
+ *
150
+ * @param config {Object} - the config to validate
151
+ * @returns - boolean
152
+ */
153
+ function isValidGCConf(config) {
154
+ if (!Array.isArray(config)) {
155
+ return false;
156
+ }
157
+ if (!config.every(gc => isValidGC(gc))) {
158
+ return false;
159
+ }
160
+ return true;
161
+ }
162
+
163
+ /**
164
+ * Validates the initTrackerConfiguration
165
+ *
166
+ * @param init {Object} - the config to validate
167
+ * @returns - boolean promise
168
+ */
169
+ function initValidate(init) {
170
+ if (typeof init.namespace !== 'string' || !init.namespace) {
171
+ return Promise.reject(new Error(logMessages.namespace));
172
+ }
173
+ if (!Object.prototype.hasOwnProperty.call(init, 'networkConfig') || !isValidNetworkConf(init.networkConfig)) {
174
+ return Promise.reject(new Error(logMessages.network));
175
+ }
176
+ if (Object.prototype.hasOwnProperty.call(init, 'trackerConfig') && !isValidTrackerConf(init.trackerConfig)) {
177
+ return Promise.reject(new Error(logMessages.tracker));
178
+ }
179
+ if (Object.prototype.hasOwnProperty.call(init, 'sessionConfig') && !isValidSessionConf(init.sessionConfig)) {
180
+ return Promise.reject(new Error(logMessages.session));
181
+ }
182
+ if (Object.prototype.hasOwnProperty.call(init, 'emitterConfig') && !isValidEmitterConf(init.emitterConfig)) {
183
+ return Promise.reject(new Error(logMessages.emitter));
184
+ }
185
+ if (Object.prototype.hasOwnProperty.call(init, 'subjectConfig') && !isValidSubjectConf(init.subjectConfig)) {
186
+ return Promise.reject(new Error(logMessages.subject));
187
+ }
188
+ if (Object.prototype.hasOwnProperty.call(init, 'gdprConfig') && !isValidGdprConf(init.gdprConfig)) {
189
+ return Promise.reject(new Error(logMessages.gdpr));
190
+ }
191
+ if (Object.prototype.hasOwnProperty.call(init, 'gcConfig') && !isValidGCConf(init.gcConfig)) {
192
+ return Promise.reject(new Error(logMessages.gc));
193
+ }
194
+ return Promise.resolve(true);
195
+ }
196
+ export { isValidNetworkConf, isValidTrackerConf, isValidSessionConf, isValidEmitterConf, isValidSubjectConf, isValidGdprConf, isValidGCConf, isValidGC, isScreenSize, initValidate };
197
+ //# sourceMappingURL=configurations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isObject","isValidSD","logMessages","networkProps","trackerProps","sessionProps","emitterProps","subjectProps","gdprProps","gcProps","isValidConfig","config","defaultKeys","Object","keys","every","key","includes","isValidNetworkConf","endpoint","isValidTrackerConf","isValidSessionConf","isValidEmitterConf","isScreenSize","arr","Array","isArray","length","n","isValidSubjectConf","prototype","hasOwnProperty","call","screenResolution","screenViewport","isValidGdprConf","basisForProcessing","isValidGC","gc","tag","globalContexts","c","isValidGCConf","initValidate","init","namespace","Promise","reject","Error","networkConfig","network","trackerConfig","tracker","sessionConfig","session","emitterConfig","emitter","subjectConfig","subject","gdprConfig","gdpr","gcConfig","resolve"],"sourceRoot":"../../src","sources":["configurations.ts"],"mappings":"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"}