@dashx/react-native 1.0.8 → 1.1.1

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 (166) hide show
  1. package/.gitattributes +1 -0
  2. package/.gitignore +46 -0
  3. package/.nvmrc +1 -0
  4. package/README.md +268 -39
  5. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/results.bin +1 -0
  6. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/dashx/rn/sdk/BuildConfig.dex +0 -0
  7. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/dashx/rn/sdk/DashXPackage.dex +0 -0
  8. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/dashx/rn/sdk/DashXReactNativeModule.dex +0 -0
  9. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/dashx/rn/sdk/ReactNativeLibraryInfoProvider.dex +0 -0
  10. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/dashx/rn/sdk/util/ArrayUtil$1.dex +0 -0
  11. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/dashx/rn/sdk/util/ArrayUtil.dex +0 -0
  12. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/dashx/rn/sdk/util/MapUtil$1.dex +0 -0
  13. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/dashx/rn/sdk/util/MapUtil.dex +0 -0
  14. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/dashx/rn/sdk/util/Utils$WhenMappings.dex +0 -0
  15. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/dashx/rn/sdk/util/Utils.dex +0 -0
  16. package/android/build/.transforms/9dceace6c3787533d2dbb1a387e9284c/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  17. package/android/build/.transforms/f3c6049e7ab4bb564c79f3a246b8575e/results.bin +1 -0
  18. package/android/build/.transforms/f3c6049e7ab4bb564c79f3a246b8575e/transformed/classes/classes_dex/classes.dex +0 -0
  19. package/android/build/generated/source/buildConfig/debug/com/dashx/rn/sdk/BuildConfig.java +12 -0
  20. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
  21. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  22. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  23. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  24. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  25. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  26. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  27. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  28. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  29. package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +2 -0
  30. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  31. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  32. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/dashx_react-native_debug.kotlin_module +0 -0
  33. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/services/com.dashx.android.DashXLibraryInfoProvider +1 -0
  34. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/dashx/rn/sdk/BuildConfig.class +0 -0
  35. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/dashx/rn/sdk/util/ArrayUtil$1.class +0 -0
  36. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/dashx/rn/sdk/util/ArrayUtil.class +0 -0
  37. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/dashx/rn/sdk/util/MapUtil$1.class +0 -0
  38. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/dashx/rn/sdk/util/MapUtil.class +0 -0
  39. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
  40. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
  41. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
  42. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  43. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  44. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/dashx_react-native_debug.kotlin_module +0 -0
  45. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/dashx/rn/sdk/BuildConfig.class +0 -0
  46. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/dashx/rn/sdk/DashXPackage.class +0 -0
  47. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/dashx/rn/sdk/DashXReactNativeModule.class +0 -0
  48. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/dashx/rn/sdk/ReactNativeLibraryInfoProvider.class +0 -0
  49. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/dashx/rn/sdk/util/ArrayUtil$1.class +0 -0
  50. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/dashx/rn/sdk/util/ArrayUtil.class +0 -0
  51. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/dashx/rn/sdk/util/MapUtil$1.class +0 -0
  52. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/dashx/rn/sdk/util/MapUtil.class +0 -0
  53. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/dashx/rn/sdk/util/Utils$WhenMappings.class +0 -0
  54. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/dashx/rn/sdk/util/Utils.class +0 -0
  55. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  56. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
  57. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  58. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  59. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  60. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  61. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  62. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  63. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  64. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  65. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  66. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  67. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  68. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  69. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  70. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  71. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  72. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  73. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  74. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  75. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  76. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  77. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  78. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  79. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  80. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  81. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  82. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  83. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  125. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  126. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  127. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  128. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  129. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  130. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  131. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  132. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  133. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  134. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  135. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  136. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  137. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  138. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  139. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  140. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  141. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  142. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  143. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  144. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  145. package/android/build/outputs/logs/manifest-merger-debug-report.txt +16 -0
  146. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  147. package/android/build/tmp/kotlin-classes/debug/META-INF/dashx_react-native_debug.kotlin_module +0 -0
  148. package/android/build/tmp/kotlin-classes/debug/com/dashx/rn/sdk/DashXPackage.class +0 -0
  149. package/android/build/tmp/kotlin-classes/debug/com/dashx/rn/sdk/DashXReactNativeModule.class +0 -0
  150. package/android/build/tmp/kotlin-classes/debug/com/dashx/rn/sdk/ReactNativeLibraryInfoProvider.class +0 -0
  151. package/android/build/tmp/kotlin-classes/debug/com/dashx/rn/sdk/util/Utils$WhenMappings.class +0 -0
  152. package/android/build/tmp/kotlin-classes/debug/com/dashx/rn/sdk/util/Utils.class +0 -0
  153. package/android/build.gradle +13 -29
  154. package/android/gradlew +185 -0
  155. package/android/gradlew.bat +89 -0
  156. package/android/src/main/AndroidManifest.xml +1 -2
  157. package/android/src/main/java/com/dashx/rn/sdk/DashXReactNativeModule.kt +31 -98
  158. package/android/src/main/java/com/dashx/rn/sdk/ReactNativeLibraryInfoProvider.kt +8 -0
  159. package/android/src/main/resources/META-INF/services/com.dashx.android.DashXLibraryInfoProvider +1 -0
  160. package/babel.config.js +3 -0
  161. package/index.d.ts +92 -0
  162. package/index.js +104 -63
  163. package/package.json +8 -14
  164. package/yarn.lock +6244 -0
  165. package/ContentOptionsBuilder.js +0 -62
  166. package/utils.js +0 -21
@@ -1,15 +1,10 @@
1
1
  package com.dashx.rn.sdk
2
2
 
3
- import android.content.pm.PackageInfo
4
- import android.content.pm.PackageManager.NameNotFoundException
5
- import android.net.Uri
6
3
  import com.dashx.rn.sdk.util.*
7
- import com.dashx.sdk.DashXClient as DashX
8
- import com.dashx.sdk.DashXLog
9
- import com.dashx.sdk.DashXLog.LogLevel
10
- import com.dashx.sdk.data.LibraryInfo
4
+ import com.dashx.android.DashX
5
+ import com.dashx.android.DashXLog
6
+ import com.dashx.android.DashXLog.LogLevel
11
7
  import com.facebook.react.bridge.*
12
- import java.io.File
13
8
  import kotlinx.serialization.decodeFromString
14
9
  import kotlinx.serialization.encodeToString
15
10
  import kotlinx.serialization.json.Json
@@ -17,7 +12,6 @@ import kotlinx.serialization.json.JsonObject
17
12
 
18
13
  class DashXReactNativeModule(private val reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
19
14
  private val tag = DashXReactNativeModule::class.java.simpleName
20
- private var dashXClient: DashX? = null
21
15
 
22
16
  override fun getName(): String {
23
17
  return "DashXReactNative"
@@ -31,59 +25,65 @@ class DashXReactNativeModule(private val reactContext: ReactApplicationContext)
31
25
 
32
26
  @ReactMethod
33
27
  fun configure(options: ReadableMap) {
34
- dashXClient = DashX.configure(
28
+ DashX.configure(
35
29
  reactContext,
36
30
  options.getString("publicKey")!!,
37
31
  options.getStringIfPresent("baseURI"),
38
- options.getStringIfPresent("targetEnvironment"),
39
- LibraryInfo("dashx-react-native", BuildConfig.VERSION_NAME)
32
+ options.getStringIfPresent("targetEnvironment")
40
33
  )
41
34
  }
42
35
 
43
36
  @ReactMethod
44
37
  fun identify(options: ReadableMap?) {
45
38
  val optionsHashMap = options?.toHashMap()
46
- dashXClient?.identify(optionsHashMap as HashMap<String, String>?)
39
+ ?.filterValues { it != null }
40
+ ?.mapValues { it.value.toString() }
41
+ DashX.identify(optionsHashMap?.let { HashMap(it) })
47
42
  }
48
43
 
49
44
  @ReactMethod
50
45
  fun setIdentity(uid: String?, token: String?) {
51
- dashXClient?.setIdentity(uid, token)
46
+ DashX.setIdentity(uid, token)
52
47
  }
53
48
 
54
49
  @ReactMethod
55
50
  fun reset() {
56
- dashXClient?.reset()
51
+ DashX.reset()
57
52
  }
58
53
 
59
54
  @ReactMethod
60
55
  fun track(event: String, data: ReadableMap?) {
61
56
  val jsonData = try {
62
- data?.toHashMap() as HashMap<String, String>?
57
+ data?.toHashMap()
58
+ ?.filterValues { it != null }
59
+ ?.mapValues { it.value.toString() }
60
+ ?.let { HashMap(it) }
63
61
  } catch (e: Exception) {
64
62
  DashXLog.d(tag, e.message)
65
63
  return
66
64
  }
67
65
 
68
- dashXClient?.track(event, jsonData)
66
+ DashX.track(event, jsonData)
69
67
  }
70
68
 
71
69
  @ReactMethod
72
70
  fun screen(screenName: String, data: ReadableMap?) {
73
- dashXClient?.screen(screenName, data?.toHashMap() as HashMap<String, String>)
71
+ val screenData = data?.toHashMap()
72
+ ?.filterValues { it != null }
73
+ ?.mapValues { it.value.toString() }
74
+ ?.let { HashMap(it) }
75
+ ?: HashMap()
76
+ DashX.screen(screenName, screenData)
74
77
  }
75
78
 
76
79
  @ReactMethod
77
80
  fun fetchContent(urn: String, options: ReadableMap?, promise: Promise) {
78
- dashXClient?.fetchContent(
81
+ DashX.fetchRecord(
79
82
  urn,
80
83
  options?.getBooleanIfPresent("preview"),
81
84
  options?.getStringIfPresent("language"),
82
- listOf(options?.getArray("fields")) as List<String>?,
83
- listOf(options?.getArray("include")) as List<String>?,
84
- listOf(options?.getArray("exclude")) as List<String>?,
85
85
  onError = {
86
- promise.reject("EUNSPECIFIED", it)
86
+ promise.reject("EUNSPECIFIED", it.message)
87
87
  },
88
88
  onSuccess = {
89
89
  promise.resolve(convertJsonToMap(convertKJsonToJson(it)))
@@ -107,19 +107,11 @@ class DashXReactNativeModule(private val reactContext: ReactApplicationContext)
107
107
  throw Exception("Encountered an error while parsing order")
108
108
  }
109
109
 
110
- dashXClient?.searchContent(
110
+ DashX.searchRecords(
111
111
  contentType,
112
- options?.getString("returnType") ?: "all",
113
112
  convertJsonToKJson(jsonFilter),
114
- convertJsonToKJson(jsonOrder),
115
- options?.getIntIfPresent("limit"),
116
- options?.getBooleanIfPresent("preview"),
117
- options?.getStringIfPresent("language"),
118
- listOf(options?.getArray("fields")) as List<String>?,
119
- listOf(options?.getArray("include")) as List<String>?,
120
- listOf(options?.getArray("exclude")) as List<String>?,
121
113
  onError = {
122
- promise.reject("EUNSPECIFIED", it)
114
+ promise.reject("EUNSPECIFIED", it.message)
123
115
  },
124
116
  onSuccess = { content ->
125
117
  val readableArray = Arguments.createArray()
@@ -131,54 +123,11 @@ class DashXReactNativeModule(private val reactContext: ReactApplicationContext)
131
123
  )
132
124
  }
133
125
 
134
- @ReactMethod
135
- fun addItemToCart(
136
- itemId: String,
137
- pricingId: String,
138
- quantity: String,
139
- reset: Boolean? = false,
140
- custom: ReadableMap? = null,
141
- promise: Promise
142
- ) {
143
- val jsonCustom = try {
144
- convertMapToJson(custom)
145
- } catch (e: Exception) {
146
- DashXLog.d(tag, e.message)
147
- throw Exception("Encountered an error while parsing custom")
148
- }
149
-
150
- dashXClient?.addItemToCart(
151
- itemId,
152
- pricingId,
153
- quantity,
154
- reset ?: false,
155
- convertJsonToKJson(jsonCustom),
156
- onError = {
157
- promise.reject("EUNSPECIFIED", it)
158
- },
159
- onSuccess = { content ->
160
- promise.resolve(convertJsonToMap(convertKJsonToJson(Json.decodeFromString<JsonObject>(Json.encodeToString(content)))))
161
- }
162
- )
163
- }
164
-
165
- @ReactMethod
166
- fun fetchCart(promise: Promise) {
167
- dashXClient?.fetchCart(
168
- onError = {
169
- promise.reject("EUNSPECIFIED", it)
170
- },
171
- onSuccess = { content ->
172
- promise.resolve(convertJsonToMap(convertKJsonToJson(Json.decodeFromString<JsonObject>(Json.encodeToString(content)))))
173
- }
174
- )
175
- }
176
-
177
126
  @ReactMethod
178
127
  fun fetchStoredPreferences(promise: Promise) {
179
- dashXClient?.fetchStoredPreferences(
128
+ DashX.fetchStoredPreferences(
180
129
  onError = {
181
- promise.reject("EUNSPECIFIED", it)
130
+ promise.reject("EUNSPECIFIED", it.message)
182
131
  },
183
132
  onSuccess = { content ->
184
133
  promise.resolve(convertJsonToMap(convertKJsonToJson(Json.decodeFromString<JsonObject>(Json.encodeToString(content)))))
@@ -190,10 +139,10 @@ class DashXReactNativeModule(private val reactContext: ReactApplicationContext)
190
139
  fun saveStoredPreferences(preferenceData: ReadableMap?, promise: Promise) {
191
140
  val preferencesString = MapUtil.toJSONElement(preferenceData).toString()
192
141
 
193
- dashXClient?.saveStoredPreferences(
142
+ DashX.saveStoredPreferences(
194
143
  Json.decodeFromString<JsonObject>(preferencesString),
195
144
  onError = {
196
- promise.reject("EUNSPECIFIED", it)
145
+ promise.reject("EUNSPECIFIED", it.message)
197
146
  },
198
147
  onSuccess = { content ->
199
148
  promise.resolve(convertJsonToMap(convertKJsonToJson(Json.decodeFromString<JsonObject>(Json.encodeToString(content)))))
@@ -203,27 +152,11 @@ class DashXReactNativeModule(private val reactContext: ReactApplicationContext)
203
152
 
204
153
  @ReactMethod
205
154
  fun subscribe() {
206
- dashXClient?.subscribe()
155
+ DashX.subscribe()
207
156
  }
208
157
 
209
158
  @ReactMethod
210
159
  fun unsubscribe() {
211
- dashXClient?.unsubscribe()
212
- }
213
-
214
- //FIXME Amend the logic to work with React Native content URIs
215
- fun getFilePathFromURIString(contentUriString: String): String {
216
- val sanitizedURI = contentUriString.replace("\"", "")
217
- val path = Uri.parse(sanitizedURI).path
218
- val index = path?.indexOf(':')
219
-
220
- if (index == null) {
221
- return ""
222
- }
223
-
224
- // Remove unnecessary URI component
225
- val filePath = path!!.substring(index!! + 1)
226
-
227
- return filePath
160
+ DashX.unsubscribe()
228
161
  }
229
162
  }
@@ -0,0 +1,8 @@
1
+ package com.dashx.rn.sdk
2
+
3
+ import com.dashx.android.DashXLibraryInfoProvider
4
+
5
+ class ReactNativeLibraryInfoProvider : DashXLibraryInfoProvider {
6
+ override val name = "@dashx/react-native"
7
+ override val version: String = BuildConfig.VERSION_NAME
8
+ }
@@ -0,0 +1 @@
1
+ com.dashx.rn.sdk.ReactNativeLibraryInfoProvider
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ presets: ['module:metro-react-native-babel-preset'],
3
+ };
package/index.d.ts ADDED
@@ -0,0 +1,92 @@
1
+ import { EmitterSubscription } from 'react-native';
2
+
3
+ export interface ConfigureOptions {
4
+ publicKey: string;
5
+ baseURI?: string;
6
+ targetEnvironment?: string;
7
+ }
8
+
9
+ export interface IdentifyOptions {
10
+ firstName?: string;
11
+ lastName?: string;
12
+ email?: string;
13
+ phone?: string;
14
+ [key: string]: string | undefined;
15
+ }
16
+
17
+ export type LogLevel = 0 | 1 | 2;
18
+
19
+ export interface NotificationMessage {
20
+ [key: string]: unknown;
21
+ }
22
+
23
+ export interface DashXInstance {
24
+ /**
25
+ * Initialize the SDK with your public key and optional configuration.
26
+ * Call this as early as possible, e.g. in your root component.
27
+ */
28
+ configure(options: ConfigureOptions): void;
29
+
30
+ /**
31
+ * Identify the current user with traits such as name and email.
32
+ */
33
+ identify(options: IdentifyOptions): void;
34
+
35
+ /**
36
+ * Set user identity using a UID and authentication token.
37
+ */
38
+ setIdentity(uid: string, token: string): void;
39
+
40
+ /**
41
+ * Clear the current user identity and reset SDK state.
42
+ */
43
+ reset(): void;
44
+
45
+ /**
46
+ * Track a named event with optional metadata.
47
+ */
48
+ track(event: string, data?: Record<string, unknown>): void;
49
+
50
+ /**
51
+ * Track a screen view with optional metadata.
52
+ */
53
+ screen(screenName: string, data?: Record<string, unknown>): void;
54
+
55
+ /**
56
+ * Subscribe the current device to push notifications.
57
+ */
58
+ subscribe(): void;
59
+
60
+ /**
61
+ * Unsubscribe the current device from push notifications.
62
+ */
63
+ unsubscribe(): void;
64
+
65
+ /**
66
+ * Fetch stored notification preferences for the current user.
67
+ */
68
+ fetchStoredPreferences(): Promise<Record<string, unknown>>;
69
+
70
+ /**
71
+ * Save notification preferences for the current user.
72
+ */
73
+ saveStoredPreferences(
74
+ data: Record<string, unknown>
75
+ ): Promise<Record<string, unknown>>;
76
+
77
+ /**
78
+ * Set SDK log verbosity. 0 = off, 1 = errors, 2 = debug.
79
+ */
80
+ setLogLevel(level: LogLevel): void;
81
+
82
+ /**
83
+ * Register a listener for incoming push notification messages.
84
+ * Returns a subscription that can be removed via `.remove()`.
85
+ */
86
+ onMessageReceived(
87
+ callback: (message: NotificationMessage) => void
88
+ ): EmitterSubscription;
89
+ }
90
+
91
+ declare const DashX: DashXInstance;
92
+ export default DashX;
package/index.js CHANGED
@@ -1,78 +1,119 @@
1
- import { NativeModules, Platform } from 'react-native';
2
-
3
- const LINKING_ERROR =
4
- `The package 'dashx-react-native' doesn't seem to be linked. Make sure: \n\n` +
5
- Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
6
- '- You rebuilt the app after installing the package\n' +
7
- '- You are not using Expo Go\n';
8
-
9
- const DashX = NativeModules.DashXReactNative
10
- ? NativeModules.DashXReactNative
11
- : new Proxy(
12
- {},
13
- {
14
- get() {
15
- throw new Error(LINKING_ERROR);
16
- },
17
- }
1
+ import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
2
+
3
+ function getLinkingError() {
4
+ return (
5
+ `The package 'dashx-react-native' doesn't seem to be linked. Make sure: \n\n` +
6
+ Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
7
+ '- You rebuilt the app after installing the package\n' +
8
+ '- You are not using Expo Go\n'
18
9
  );
10
+ }
19
11
 
20
- const {
21
- configure,
22
- identify,
23
- setIdentity,
24
- reset,
25
- track,
26
- screen,
27
- fetchStoredPreferences,
28
- saveStoredPreferences,
29
- subscribe,
30
- unsubscribe,
31
- setLogLevel,
32
- } = DashX;
33
-
34
- DashX.configure = (options) => {
35
- return configure(options);
12
+ let _nativeDashX = null;
13
+ function getNativeDashX() {
14
+ if (!_nativeDashX) {
15
+ _nativeDashX = NativeModules.DashXReactNative
16
+ ? NativeModules.DashXReactNative
17
+ : new Proxy(
18
+ {},
19
+ {
20
+ get() {
21
+ throw new Error(getLinkingError());
22
+ },
23
+ }
24
+ );
25
+ }
26
+ return _nativeDashX;
36
27
  }
37
28
 
38
- DashX.identify = (options) => {
39
- return identify(options);
40
- };
29
+ let _eventEmitter = null;
30
+ function getEventEmitter() {
31
+ if (!_eventEmitter) {
32
+ _eventEmitter = new NativeEventEmitter(getNativeDashX());
33
+ }
34
+ return _eventEmitter;
35
+ }
41
36
 
42
- DashX.setIdentity = (uid, token) => {
43
- return setIdentity(uid, token);
44
- };
37
+ const DashX = {
38
+ configure(options) {
39
+ if (!options || typeof options !== 'object') {
40
+ throw new Error('DashX.configure: options must be an object');
41
+ }
42
+ if (!options.publicKey || typeof options.publicKey !== 'string') {
43
+ throw new Error('DashX.configure: publicKey is required and must be a string');
44
+ }
45
+ return getNativeDashX().configure(options);
46
+ },
45
47
 
46
- DashX.reset = () => {
47
- return reset();
48
- }
48
+ identify(options) {
49
+ if (!options || typeof options !== 'object') {
50
+ throw new Error('DashX.identify: options must be an object');
51
+ }
52
+ return getNativeDashX().identify(options);
53
+ },
49
54
 
50
- DashX.track = (event, data) => {
51
- return track(event, data || null);
52
- }
55
+ setIdentity(uid, token) {
56
+ if (!uid || typeof uid !== 'string') {
57
+ throw new Error('DashX.setIdentity: uid is required and must be a string');
58
+ }
59
+ if (!token || typeof token !== 'string') {
60
+ throw new Error('DashX.setIdentity: token is required and must be a string');
61
+ }
62
+ return getNativeDashX().setIdentity(uid, token);
63
+ },
53
64
 
54
- DashX.screen = (screenName, data) => {
55
- return screen(screenName, data || null)
56
- }
65
+ reset() {
66
+ return getNativeDashX().reset();
67
+ },
57
68
 
58
- DashX.fetchStoredPreferences = () => {
59
- return fetchStoredPreferences();
60
- };
69
+ track(event, data) {
70
+ if (!event || typeof event !== 'string') {
71
+ throw new Error('DashX.track: event is required and must be a string');
72
+ }
73
+ return getNativeDashX().track(event, data || null);
74
+ },
61
75
 
62
- DashX.saveStoredPreferences = (preferenceData) => {
63
- return saveStoredPreferences(preferenceData);
64
- };
76
+ screen(screenName, data) {
77
+ if (!screenName || typeof screenName !== 'string') {
78
+ throw new Error('DashX.screen: screenName is required and must be a string');
79
+ }
80
+ return getNativeDashX().screen(screenName, data || null);
81
+ },
65
82
 
66
- DashX.subscribe = () => {
67
- return subscribe();
68
- }
83
+ fetchStoredPreferences() {
84
+ return getNativeDashX().fetchStoredPreferences();
85
+ },
69
86
 
70
- DashX.unsubscribe = () => {
71
- return unsubscribe();
72
- }
87
+ saveStoredPreferences(preferenceData) {
88
+ if (!preferenceData || typeof preferenceData !== 'object') {
89
+ throw new Error(
90
+ 'DashX.saveStoredPreferences: preferenceData is required and must be an object'
91
+ );
92
+ }
93
+ return getNativeDashX().saveStoredPreferences(preferenceData);
94
+ },
73
95
 
74
- DashX.setLogLevel = (level) => {
75
- return setLogLevel(level);
76
- }
96
+ subscribe() {
97
+ return getNativeDashX().subscribe();
98
+ },
99
+
100
+ unsubscribe() {
101
+ return getNativeDashX().unsubscribe();
102
+ },
103
+
104
+ setLogLevel(level) {
105
+ if (typeof level !== 'number') {
106
+ throw new Error('DashX.setLogLevel: level must be a number');
107
+ }
108
+ return getNativeDashX().setLogLevel(level);
109
+ },
110
+
111
+ onMessageReceived(callback) {
112
+ if (typeof callback !== 'function') {
113
+ throw new Error('DashX.onMessageReceived: callback must be a function');
114
+ }
115
+ return getEventEmitter().addListener('messageReceived', callback);
116
+ },
117
+ };
77
118
 
78
119
  export default DashX;
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@dashx/react-native",
3
3
  "title": "DashX React Native",
4
- "version": "1.0.8",
4
+ "version": "1.1.1",
5
5
  "description": "DashX SDK for React Native",
6
6
  "main": "index.js",
7
+ "types": "index.d.ts",
7
8
  "files": [
8
9
  "!**/__fixtures__",
9
10
  "!**/__mocks__",
@@ -15,16 +16,13 @@
15
16
  "!android/gradlew",
16
17
  "!android/local.properties",
17
18
  "!ios/build",
18
- "!lib/typescript/example",
19
19
  "*.podspec",
20
20
  "android",
21
- "ContentOptionsBuilder.js",
22
- "cpp",
23
21
  "DashXReactNative.podspec",
24
22
  "index.js",
23
+ "index.d.ts",
25
24
  "ios",
26
- "README.md",
27
- "utils.js"
25
+ "README.md"
28
26
  ],
29
27
  "scripts": {
30
28
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -54,7 +52,7 @@
54
52
  },
55
53
  "devDependencies": {
56
54
  "@commitlint/config-conventional": "^17.0.2",
57
- "@react-native/eslint-config": "^0.72.2",
55
+ "@react-native/eslint-config": "0.77.3",
58
56
  "del-cli": "^5.0.0",
59
57
  "eslint": "^8.4.1",
60
58
  "eslint-config-prettier": "^8.5.0",
@@ -62,18 +60,14 @@
62
60
  "jest": "^28.1.1",
63
61
  "pod-install": "^0.1.0",
64
62
  "prettier": "^2.0.5",
65
- "react": "18.2.0",
66
- "react-native": "0.72.3",
67
- "react-native-builder-bob": "^0.21.3",
63
+ "react": "18.3.1",
64
+ "react-native": "0.77.3",
68
65
  "turbo": "^1.10.7"
69
66
  },
70
67
  "engines": {
71
68
  "node": ">= 16.0.0"
72
69
  },
73
- "packageManager": "^yarn@1.22.15",
74
- "dependencies": {
75
- "react-native-get-real-path": "github:Wraptime/react-native-get-real-path"
76
- },
70
+ "dependencies": {},
77
71
  "eslintConfig": {
78
72
  "root": true,
79
73
  "extends": [