From e1f1ab599d3ea39ab52be3f4d3340a7e5015ab5c Mon Sep 17 00:00:00 2001 From: James Keith Date: Thu, 11 Apr 2024 13:35:49 +0100 Subject: [PATCH] Release/2.4.0 (#172) * [MT-1342] Target XCode 15 and iOS 12 (#168) Update all dependencies Fix and standardise podspecs Remove pods warnings Add missing licenses Remove Arm64 exclusions * [MT-1506] - Incomplete callback fixes and Android de-init fix. Android dependency updates (#169) * [MT-1342] Target XCode 15 and iOS 12 Update all dependencies Fix and standardise podspecs Remove pods warnings Add missing licenses Remove Arm64 exclusions * Incomplete callback fixes and Android de-init fix. Android dependency updates * return type changes for backward compatability with typescript definitions * Gradle 8+ support * rollback unnecessary changes, and formatting * gatherTrackData callback fix --------- Co-authored-by: Enrico Zannini --------- Co-authored-by: Enrico Zannini --- example/.ruby-version | 1 - example/App.js | 14 + example/ios/Podfile.lock | 322 ++++++++++-------- modules/adobe-visitor/android/build.gradle | 15 +- .../project.pbxproj | 6 +- modules/adobe-visitor/package.json | 2 +- .../tealium-react-adobe-visitor.podspec | 45 +-- modules/crash-reporter/android/build.gradle | 19 +- .../project.pbxproj | 6 +- modules/crash-reporter/package.json | 2 +- ...ealium-react-native-crash-reporter.podspec | 16 +- modules/location/android/build.gradle | 6 +- modules/location/package.json | 2 +- .../tealium-react-native-location.podspec | 16 +- npm-package/android/build.gradle | 31 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- npm-package/android/gradlew | 281 +++++++++------ npm-package/android/gradlew.bat | 38 +-- .../java/com/tealium/react/TealiumReact.kt | 60 ++-- .../com/tealium/react/TealiumReactTests.kt | 56 +++ npm-package/index.js | 2 +- npm-package/ios/TealiumReactNative.swift | 8 +- npm-package/ios/TealiumWrapper.swift | 4 + npm-package/package.json | 2 +- .../tealium-react-native-swift.podspec | 18 +- npm-package/tealium-react-native.podspec | 18 +- remotecommands/tealium-react-adjust/LICENSE | 62 ++-- .../tealium-react-adjust/android/build.gradle | 21 +- .../tealium-react-adjust/package.json | 4 +- .../tealium-react-adjust.podspec | 19 +- .../tealium-react-appsflyer/LICENSE | 41 +++ .../android/build.gradle | 16 +- .../project.pbxproj | 6 +- .../tealium-react-appsflyer/package.json | 4 +- .../tealium-react-appsflyer.podspec | 17 +- remotecommands/tealium-react-braze/LICENSE | 41 +++ .../tealium-react-braze/android/build.gradle | 8 +- .../tealium-react-braze/package.json | 4 +- .../tealium-react-braze.podspec | 17 +- remotecommands/tealium-react-firebase/LICENSE | 41 +++ .../android/build.gradle | 8 +- .../tealium-react-firebase/package.json | 4 +- .../tealium-react-firebase.podspec | 19 +- 43 files changed, 807 insertions(+), 519 deletions(-) delete mode 100644 example/.ruby-version create mode 100644 remotecommands/tealium-react-appsflyer/LICENSE create mode 100644 remotecommands/tealium-react-braze/LICENSE create mode 100644 remotecommands/tealium-react-firebase/LICENSE diff --git a/example/.ruby-version b/example/.ruby-version deleted file mode 100644 index a603bb50a..000000000 --- a/example/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.7.5 diff --git a/example/App.js b/example/App.js index dac1a616f..50b954d2e 100644 --- a/example/App.js +++ b/example/App.js @@ -196,6 +196,20 @@ export default class App extends Component<{}> { Tealium.getData(DataLayer.TestSessionData, value => { console.log(`${DataLayer.TestSessionData}: ${value}`) }) + + new Promise((resolve, reject) => { + Tealium.getData("missing_data", value => { + if (value) { + resolve(value) + } else { + reject("Data for 'missing_data' not found.") + } + }) + }).then((value) => { + console.log("missing_data: " + value) + }).catch((err) => { + console.log("Error fetching data: " + err) + }) } gatherTrackData() { diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index fcce3c2e6..518286e6c 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1,11 +1,12 @@ PODS: - - Adjust (4.33.6): - - Adjust/Core (= 4.33.6) - - Adjust/Core (4.33.6) - - AppsFlyerFramework (6.12.1): - - AppsFlyerFramework/Main (= 6.12.1) - - AppsFlyerFramework/Main (6.12.1) + - Adjust (4.37.2): + - Adjust/Core (= 4.37.2) + - Adjust/Core (4.37.2) + - AppsFlyerFramework (6.13.1): + - AppsFlyerFramework/Main (= 6.13.1) + - AppsFlyerFramework/Main (6.13.1) - boost (1.76.0) + - BrazeKit (7.7.0) - DoubleConversion (1.1.6) - FBLazyVector (0.71.10) - FBReactNativeSpec (0.71.10): @@ -15,100 +16,109 @@ PODS: - React-Core (= 0.71.10) - React-jsi (= 0.71.10) - ReactCommon/turbomodule/core (= 0.71.10) - - Firebase (10.12.0): - - Firebase/Core (= 10.12.0) - - Firebase/Core (10.12.0): + - Firebase (10.22.0): + - Firebase/Core (= 10.22.0) + - Firebase/Core (10.22.0): - Firebase/CoreOnly - - FirebaseAnalytics (~> 10.12.0) - - Firebase/CoreOnly (10.12.0): - - FirebaseCore (= 10.12.0) - - FirebaseAnalytics (10.12.0): - - FirebaseAnalytics/AdIdSupport (= 10.12.0) + - FirebaseAnalytics (~> 10.22.0) + - Firebase/CoreOnly (10.22.0): + - FirebaseCore (= 10.22.0) + - FirebaseAnalytics (10.22.0): + - FirebaseAnalytics/AdIdSupport (= 10.22.0) - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30910.0, >= 2.30908.0) - - FirebaseAnalytics/AdIdSupport (10.12.0): + - nanopb (< 2.30911.0, >= 2.30908.0) + - FirebaseAnalytics/AdIdSupport (10.22.0): - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - - GoogleAppMeasurement (= 10.12.0) + - GoogleAppMeasurement (= 10.22.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30910.0, >= 2.30908.0) - - FirebaseCore (10.12.0): + - nanopb (< 2.30911.0, >= 2.30908.0) + - FirebaseCore (10.22.0): - FirebaseCoreInternal (~> 10.0) - - GoogleUtilities/Environment (~> 7.8) - - GoogleUtilities/Logger (~> 7.8) - - FirebaseCoreInternal (10.12.0): + - GoogleUtilities/Environment (~> 7.12) + - GoogleUtilities/Logger (~> 7.12) + - FirebaseCoreInternal (10.22.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseInstallations (10.12.0): + - FirebaseInstallations (10.22.0): - FirebaseCore (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - PromisesObjC (~> 2.1) - fmt (6.2.1) - glog (0.3.5) - - GoogleAppMeasurement (10.12.0): - - GoogleAppMeasurement/AdIdSupport (= 10.12.0) + - GoogleAppMeasurement (10.22.0): + - GoogleAppMeasurement/AdIdSupport (= 10.22.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30910.0, >= 2.30908.0) - - GoogleAppMeasurement/AdIdSupport (10.12.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 10.12.0) + - nanopb (< 2.30911.0, >= 2.30908.0) + - GoogleAppMeasurement/AdIdSupport (10.22.0): + - GoogleAppMeasurement/WithoutAdIdSupport (= 10.22.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30910.0, >= 2.30908.0) - - GoogleAppMeasurement/WithoutAdIdSupport (10.12.0): + - nanopb (< 2.30911.0, >= 2.30908.0) + - GoogleAppMeasurement/WithoutAdIdSupport (10.22.0): - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30910.0, >= 2.30908.0) - - GoogleUtilities/AppDelegateSwizzler (7.11.4): + - nanopb (< 2.30911.0, >= 2.30908.0) + - GoogleUtilities/AppDelegateSwizzler (7.13.0): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - - GoogleUtilities/Environment (7.11.4): + - GoogleUtilities/Privacy + - GoogleUtilities/Environment (7.13.0): + - GoogleUtilities/Privacy - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Logger (7.11.4): + - GoogleUtilities/Logger (7.13.0): - GoogleUtilities/Environment - - GoogleUtilities/MethodSwizzler (7.11.4): + - GoogleUtilities/Privacy + - GoogleUtilities/MethodSwizzler (7.13.0): - GoogleUtilities/Logger - - GoogleUtilities/Network (7.11.4): + - GoogleUtilities/Privacy + - GoogleUtilities/Network (7.13.0): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" + - GoogleUtilities/Privacy - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (7.11.4)" - - GoogleUtilities/Reachability (7.11.4): + - "GoogleUtilities/NSData+zlib (7.13.0)": + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (7.13.0) + - GoogleUtilities/Reachability (7.13.0): - GoogleUtilities/Logger - - GoogleUtilities/UserDefaults (7.11.4): + - GoogleUtilities/Privacy + - GoogleUtilities/UserDefaults (7.13.0): - GoogleUtilities/Logger + - GoogleUtilities/Privacy - hermes-engine (0.71.10): - hermes-engine/Pre-built (= 0.71.10) - hermes-engine/Pre-built (0.71.10) - libevent (2.1.12) - - nanopb (2.30909.0): - - nanopb/decode (= 2.30909.0) - - nanopb/encode (= 2.30909.0) - - nanopb/decode (2.30909.0) - - nanopb/encode (2.30909.0) - - Permission-LocationAccuracy (3.8.4): + - nanopb (2.30910.0): + - nanopb/decode (= 2.30910.0) + - nanopb/encode (= 2.30910.0) + - nanopb/decode (2.30910.0) + - nanopb/encode (2.30910.0) + - Permission-LocationAccuracy (3.10.1): - RNPermissions - - Permission-LocationAlways (3.8.4): + - Permission-LocationAlways (3.10.1): - RNPermissions - - Permission-LocationWhenInUse (3.8.4): + - Permission-LocationWhenInUse (3.10.1): - RNPermissions - PLCrashReporter (1.11.1) - - PromisesObjC (2.2.0) + - PromisesObjC (2.4.0) - RCT-Folly (2021.07.22.00): - boost - DoubleConversion @@ -444,94 +454,104 @@ PODS: - React-jsi (= 0.71.10) - React-logger (= 0.71.10) - React-perflogger (= 0.71.10) - - RNPermissions (3.8.4): + - RNPermissions (3.10.1): - React-Core - - tealium-react-adjust (1.0.3): + - tealium-react-adjust (1.1.0): - React-Core - - tealium-react-native (~> 2.2) - - tealium-react-native-swift (~> 2.2) - - tealium-swift/Core (~> 2.6) - - TealiumAdjust (~> 1.1) - - tealium-react-adobe-visitor (1.0.2): + - tealium-react-native (~> 2.4) + - tealium-react-native-swift (~> 2.4) + - tealium-swift/Core (~> 2.12) + - TealiumAdjust (~> 1.3) + - tealium-react-adobe-visitor (1.1.0): - React-Core - - tealium-react-native (~> 2.2) - - tealium-react-native-swift (~> 2.2) - - tealium-swift/Core (~> 2.6) - - TealiumAdobeVisitorAPI (~> 1.1) - - tealium-react-appsflyer (1.0.1): + - tealium-react-native (~> 2.4) + - tealium-react-native-swift (~> 2.4) + - tealium-swift/Core (~> 2.12) + - TealiumAdobeVisitorAPI (~> 1.2) + - tealium-react-appsflyer (1.1.0): + - React + - tealium-react-native (~> 2.4) + - tealium-react-native-swift (~> 2.4) + - tealium-swift/Core (~> 2.12) + - TealiumAppsFlyer (~> 3.0) + - tealium-react-braze (1.1.0): - React - - tealium-react-native (~> 2.2) - - tealium-react-native-swift (~> 2.2) - - tealium-swift/Core (~> 2.9) - - TealiumAppsFlyer (~> 2.1) - - tealium-react-firebase (1.0.4): + - tealium-react-native (~> 2.4) + - tealium-react-native-swift (~> 2.4) + - tealium-swift/Core (~> 2.12) + - TealiumBraze (~> 3.2) + - tealium-react-firebase (1.1.0): - React-Core - - tealium-react-native (~> 2.2) - - tealium-react-native-swift (~> 2.2) - - tealium-swift/Core (~> 2.8) - - TealiumFirebase (~> 3.0) - - tealium-react-native (2.3.1): + - tealium-react-native (~> 2.4) + - tealium-react-native-swift (~> 2.4) + - tealium-swift/Core (~> 2.12) + - TealiumFirebase (~> 3.2) + - tealium-react-native (2.4.0): - React-Core - - tealium-swift/Collect (~> 2.8) - - tealium-swift/Core (~> 2.8) - - tealium-swift/Lifecycle (~> 2.8) - - tealium-swift/RemoteCommands (~> 2.8) - - tealium-swift/TagManagement (~> 2.8) - - tealium-swift/VisitorService (~> 2.8) - - tealium-react-native-crash-reporter (1.0.0): + - tealium-swift/Collect (~> 2.12) + - tealium-swift/Core (~> 2.12) + - tealium-swift/Lifecycle (~> 2.12) + - tealium-swift/RemoteCommands (~> 2.12) + - tealium-swift/TagManagement (~> 2.12) + - tealium-swift/VisitorService (~> 2.12) + - tealium-react-native-crash-reporter (1.1.0): - React-Core - - tealium-react-native (~> 2.2) - - tealium-react-native-swift (~> 2.2) - - tealium-swift/Core (~> 2.6) - - TealiumCrashModule (~> 2.3) - - tealium-react-native-location (1.0.2): + - tealium-react-native (~> 2.4) + - tealium-react-native-swift (~> 2.4) + - tealium-swift/Core (~> 2.12) + - TealiumCrashModule (~> 2.5) + - tealium-react-native-location (1.1.0): - React-Core - - tealium-react-native (~> 2.2) - - tealium-react-native-swift (~> 2.2) - - tealium-swift/Core (~> 2.6) - - tealium-swift/Location (~> 2.6) - - tealium-react-native-swift (2.3.1): + - tealium-react-native (~> 2.4) + - tealium-react-native-swift (~> 2.4) + - tealium-swift/Core (~> 2.12) + - tealium-swift/Location (~> 2.12) + - tealium-react-native-swift (2.4.0): - React-Core - tealium-react-native - - tealium-swift/Collect (~> 2.8) - - tealium-swift/Core (~> 2.8) - - tealium-swift/Lifecycle (~> 2.8) - - tealium-swift/RemoteCommands (~> 2.8) - - tealium-swift/TagManagement (~> 2.8) - - tealium-swift/VisitorService (~> 2.8) - - tealium-swift/Collect (2.10.0): + - tealium-swift/Collect (~> 2.12) + - tealium-swift/Core (~> 2.12) + - tealium-swift/Lifecycle (~> 2.12) + - tealium-swift/RemoteCommands (~> 2.12) + - tealium-swift/TagManagement (~> 2.12) + - tealium-swift/VisitorService (~> 2.12) + - tealium-swift/Collect (2.12.2): - tealium-swift/Core - - tealium-swift/Core (2.10.0) - - tealium-swift/Lifecycle (2.10.0): + - tealium-swift/Core (2.12.2) + - tealium-swift/Lifecycle (2.12.2): - tealium-swift/Core - - tealium-swift/Location (2.10.0): + - tealium-swift/Location (2.12.2): - tealium-swift/Core - - tealium-swift/RemoteCommands (2.10.0): + - tealium-swift/RemoteCommands (2.12.2): - tealium-swift/Core - - tealium-swift/TagManagement (2.10.0): + - tealium-swift/TagManagement (2.12.2): - tealium-swift/Core - - tealium-swift/VisitorService (2.10.0): + - tealium-swift/VisitorService (2.12.2): - tealium-swift/Core - - TealiumAdjust (1.1.0): - - Adjust (~> 4.29) - - tealium-swift/Core (~> 2.6) - - tealium-swift/RemoteCommands (~> 2.6) - - TealiumAdobeVisitorAPI (1.1.1): - - tealium-swift/Core (~> 2.8) - - TealiumAppsFlyer (2.1.2): + - TealiumAdjust (1.3.0): + - Adjust (~> 4.34) + - tealium-swift/Core (~> 2.12) + - tealium-swift/RemoteCommands (~> 2.12) + - TealiumAdobeVisitorAPI (1.2.0): + - tealium-swift/Core (~> 2.12) + - TealiumAppsFlyer (3.0.0): - AppsFlyerFramework (~> 6.9) - - tealium-swift/Core (~> 2.9) - - tealium-swift/RemoteCommands (~> 2.9) - - TealiumCrashModule (2.3.0): - - TealiumCrashModule/Crash (= 2.3.0) - - TealiumCrashModule/Crash (2.3.0): - - PLCrashReporter - - tealium-swift/Core - - TealiumFirebase (3.0.0): + - tealium-swift/Core (~> 2.12) + - tealium-swift/RemoteCommands (~> 2.12) + - TealiumBraze (3.2.0): + - BrazeKit (~> 7.2) + - tealium-swift/Core (~> 2.12) + - tealium-swift/RemoteCommands (~> 2.12) + - TealiumCrashModule (2.5.0): + - TealiumCrashModule/Crash (= 2.5.0) + - TealiumCrashModule/Crash (2.5.0): + - PLCrashReporter (~> 1.11) + - tealium-swift/Core (~> 2.12) + - TealiumFirebase (3.2.0): - Firebase (~> 10.7) - FirebaseAnalytics (~> 10.7) - - tealium-swift/Core (~> 2.9) - - tealium-swift/RemoteCommands (~> 2.9) + - tealium-swift/Core (~> 2.12) + - tealium-swift/RemoteCommands (~> 2.12) - Yoga (1.14.0) DEPENDENCIES: @@ -577,6 +597,7 @@ DEPENDENCIES: - tealium-react-adjust (from `../node_modules/tealium-react-adjust`) - tealium-react-adobe-visitor (from `../node_modules/tealium-react-native-adobe-visitor`) - tealium-react-appsflyer (from `../node_modules/tealium-react-appsflyer`) + - tealium-react-braze (from `../node_modules/tealium-react-braze`) - tealium-react-firebase (from `../node_modules/tealium-react-firebase`) - tealium-react-native (from `../node_modules/tealium-react-native`) - tealium-react-native-crash-reporter (from `../node_modules/tealium-react-native-crash-reporter`) @@ -588,6 +609,7 @@ SPEC REPOS: trunk: - Adjust - AppsFlyerFramework + - BrazeKit - Firebase - FirebaseAnalytics - FirebaseCore @@ -604,6 +626,7 @@ SPEC REPOS: - TealiumAdjust - TealiumAdobeVisitorAPI - TealiumAppsFlyer + - TealiumBraze - TealiumCrashModule - TealiumFirebase @@ -688,6 +711,8 @@ EXTERNAL SOURCES: :path: "../node_modules/tealium-react-native-adobe-visitor" tealium-react-appsflyer: :path: "../node_modules/tealium-react-appsflyer" + tealium-react-braze: + :path: "../node_modules/tealium-react-braze" tealium-react-firebase: :path: "../node_modules/tealium-react-firebase" tealium-react-native: @@ -702,29 +727,30 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - Adjust: c3b6c3734928a617fefce81dc223fd5f104162be - AppsFlyerFramework: e29b63fc5441400a38a31c5501c1da500b9d53d0 + Adjust: a830d963025334aee8a62a7bac87825e297a841e + AppsFlyerFramework: 971521cf5b890c2afeab2f2c91734547b8b169ca boost: 57d2868c099736d80fcd648bf211b4431e51a558 + BrazeKit: ee31d3b5113646cbd6ad44eafc93b14c3c3c504c DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 FBLazyVector: ddb55c55295ea51ed98aa7e2e08add2f826309d5 FBReactNativeSpec: 90fc1a90b4b7a171e0a7c20ea426c1bf6ce4399c - Firebase: 07150e75d142fb9399f6777fa56a187b17f833a0 - FirebaseAnalytics: 0270389efbe3022b54ec4588862dabec3477ee98 - FirebaseCore: f86a1394906b97ac445ae49c92552a9425831bed - FirebaseCoreInternal: 950500ad8a08963657f6d8c67b579740c06d6aa1 - FirebaseInstallations: 7b99ef103f013624444c614397038219c45f8e63 + Firebase: 797fd7297b7e1be954432743a0b3f90038e45a71 + FirebaseAnalytics: 8d0ff929c63b7f72260f332b86ccf569776b75d3 + FirebaseCore: 0326ec9b05fbed8f8716cddbf0e36894a13837f7 + FirebaseCoreInternal: bca337352024b18424a61e478460547d46c4c753 + FirebaseInstallations: 763814908793c0da14c18b3dcffdec71e29ed55e fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b - GoogleAppMeasurement: 2d800fab85e7848b1e66a6f8ce5bca06c5aad892 - GoogleUtilities: c63691989bf362ba0505507da00eeb326192e83e + GoogleAppMeasurement: ccefe3eac9b0aa27f96066809fb1a7fe4b462626 + GoogleUtilities: d053d902a8edaa9904e1bd00c37535385b8ed152 hermes-engine: d27603b55a48402501ad1928c05411dae9cd6b85 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 - nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 - Permission-LocationAccuracy: a38ddb5c5d0b8e656f3c86e4a500f9bb88bc099d - Permission-LocationAlways: 8fd5518716c3045f9c4edf77b901126098d79b60 - Permission-LocationWhenInUse: 24d97eeb25d8ff9f2232e070f792eeb1360ccaf0 + nanopb: 438bc412db1928dac798aa6fd75726007be04262 + Permission-LocationAccuracy: dc0b0989dd004f183a32ad5f99802d9e09b0571a + Permission-LocationAlways: 0a0de4637662cfdf3603d6933779da2bdd657306 + Permission-LocationWhenInUse: 31f52ebddef50c306a585b5a82ca16c8ff582dec PLCrashReporter: 5d2d3967afe0efad61b3048d617e2199a5d1b787 - PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef + PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 RCTRequired: 8ef706f91e2b643cd32c26a57700b5f24fab0585 RCTTypeSafety: 5fbddd8eb9242b91ac0d901c01da3673f358b1b7 @@ -752,23 +778,25 @@ SPEC CHECKSUMS: React-RCTVibration: d13cc2d63286c633393d3a7f6f607cc2a09ec011 React-runtimeexecutor: a9a1cd79996c9a0846e3232ecb25c64e1cc0172e ReactCommon: e7a0cdbb67f8da60677db83d693dea816780a6e9 - RNPermissions: f1b49dd05fa9b83993cd05a9ee115247944d8f1a - tealium-react-adjust: ae9cb0658f21293ca1bd8240cbc01e6da744d3cc - tealium-react-adobe-visitor: 8493ca729d41f3290d1c16ac521b405dbc004fb4 - tealium-react-appsflyer: 041783acc14ac5a3ca416cc6e0a92dd3e5c81ecb - tealium-react-firebase: e8d20c3ea0d36c0b56afbdd75b6d43057abc93ab - tealium-react-native: 2a5481ab4be78106f33447a93b035725b1aa957e - tealium-react-native-crash-reporter: b83046fe9a3c7e83a6554311e28993fc3673bf2f - tealium-react-native-location: 2bd1b4e1081fd96904195ccbfb08b48b675256b8 - tealium-react-native-swift: c1302b2ba205cf9fb75ab27373e32c2bb4de4e6f - tealium-swift: 92ac60201de69b342ecc2d52e2207796cf936cf8 - TealiumAdjust: e4dc17fd9dad81b37207e8df2b52ab12af36f606 - TealiumAdobeVisitorAPI: dbcc822fad80ade2edcb731f732f0cb43048c604 - TealiumAppsFlyer: 091f216de29ef5152a2a8575db82b3ea7e48d7c7 - TealiumCrashModule: 49826bdeb10b24407296463cd30a9ee00ca43232 - TealiumFirebase: 49aef245aa7e5e6826a7fa1594538f2c7f1750d2 + RNPermissions: 4e3714e18afe7141d000beae3755e5b5fb2f5e05 + tealium-react-adjust: f3ef6ba43238d4cbc9483f0aa38738a3eb892fbf + tealium-react-adobe-visitor: 140c65d5cd476edd285b4943b75f9aafcd698077 + tealium-react-appsflyer: 1be2e9df2dde521ebcd9b4324ddf78ce688ee995 + tealium-react-braze: f72256073bf99902dbfbfcd875399cd0fac61796 + tealium-react-firebase: 44bc3f5f8294a0f9fc2fba5ebd109bde31a141e5 + tealium-react-native: 88d35a0e0e57dcb58d43af0422c15225e60de3b4 + tealium-react-native-crash-reporter: b6bbb018f2d3fc1c27a0423aca58c33820395d41 + tealium-react-native-location: 7f275669c9434c0877e8ba20af06ac37c003657f + tealium-react-native-swift: 3a6978cb7bcf1a9f6444d4bd7a507be890c1b9a6 + tealium-swift: 4b7e3dda42d7c1de6acb769abad9920346d17d43 + TealiumAdjust: 7a8c033c93f5aaf306ebecaa2e575a5958e55e87 + TealiumAdobeVisitorAPI: dd487f3e130829a15b9cdc7de7b2841a200214e2 + TealiumAppsFlyer: 7736e28b06462c2fe2349040adce06a8ba6b27b1 + TealiumBraze: 9de0067b72a00c7d3b0ad67bee501a34518b4e06 + TealiumCrashModule: f52a33391a599e6b62983caff5432cd7e536104d + TealiumFirebase: b489c74d3a1d7d81ad806e4da4638be6ea9870b9 Yoga: e7ea9e590e27460d28911403b894722354d73479 PODFILE CHECKSUM: 832c551ff313519d4cfb80ad52278076f6e41133 -COCOAPODS: 1.12.1 +COCOAPODS: 1.15.2 diff --git a/modules/adobe-visitor/android/build.gradle b/modules/adobe-visitor/android/build.gradle index 6e9c3336f..746c9c216 100644 --- a/modules/adobe-visitor/android/build.gradle +++ b/modules/adobe-visitor/android/build.gradle @@ -55,13 +55,16 @@ android { disable 'GradleCompatible' } - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } + def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() + if(agpVersion < 8) { + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11 + } } } diff --git a/modules/adobe-visitor/ios/TealiumReactAdobeVisitor.xcodeproj/project.pbxproj b/modules/adobe-visitor/ios/TealiumReactAdobeVisitor.xcodeproj/project.pbxproj index cbd85838e..a290228cb 100644 --- a/modules/adobe-visitor/ios/TealiumReactAdobeVisitor.xcodeproj/project.pbxproj +++ b/modules/adobe-visitor/ios/TealiumReactAdobeVisitor.xcodeproj/project.pbxproj @@ -7,8 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - 5E555C0D2413F4C50049A1A2 /* TealiumReactAdobeVisitor.m in Sources */ = {isa = PBXBuildFile; fileRef = B3E7B5891CC2AC0600A0062D /* TealiumReactAdobeVisitor.m */; }; - F4FF95D7245B92E800C19C63 /* TealiumReactAdobeVisitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* TealiumReactAdobeVisitor.swift */; }; + F4FF95D7245B92E800C19C63 /* TealiumReactAdobeVisitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* TealiumReactAdobeVisitor.swift */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -117,7 +116,6 @@ buildActionMask = 2147483647; files = ( F4FF95D7245B92E800C19C63 /* TealiumReactAdobeVisitor.swift in Sources */, - B3E7B58A1CC2AC0600A0062D /* TealiumReactAdobeVisitor.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -152,7 +150,6 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -203,7 +200,6 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/modules/adobe-visitor/package.json b/modules/adobe-visitor/package.json index 98ca451f0..029a28def 100644 --- a/modules/adobe-visitor/package.json +++ b/modules/adobe-visitor/package.json @@ -1,7 +1,7 @@ { "name": "tealium-react-native-adobe-visitor", "title": "Tealium React Native Adobe Visitor Service", - "version": "1.0.3", + "version": "1.1.0", "description": "A native module for using Tealium's Adobe Visitor Service module for Kotlin and Swift libraries.", "main": "index.js", "types": "*.ts", diff --git a/modules/adobe-visitor/tealium-react-adobe-visitor.podspec b/modules/adobe-visitor/tealium-react-adobe-visitor.podspec index 2b729a389..b3d4619f5 100644 --- a/modules/adobe-visitor/tealium-react-adobe-visitor.podspec +++ b/modules/adobe-visitor/tealium-react-adobe-visitor.podspec @@ -1,36 +1,5 @@ require "json" -package = JSON.parse(File.read(File.join(__dir__, "package.json"))) -folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' - -Pod::Spec.new do |s| - s.name = "tealium-react-adobe-visitor" - s.version = package["version"] - s.summary = package["description"] - s.homepage = package["homepage"] - s.license = package["license"] - s.authors = package["author"] - - s.platforms = { :ios => "11.0" } - s.source = { :git => "https://github.com/tealium-bot/tealium-react-adobe-visitor.git", :tag => "#{s.version}" } - - s.source_files = "ios/**/*.{h,m,mm,swift}" - - s.dependency "React-Core" - - # Don't install the dependencies when we run `pod install` in the old architecture. - if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then - s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1" - s.pod_target_xcconfig = { - "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"", - "OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1", - "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" - } - end -end - -require "json" - package = JSON.parse(File.read(File.join(__dir__, "package.json"))) Pod::Spec.new do |s| @@ -40,20 +9,20 @@ Pod::Spec.new do |s| s.description = <<-DESC Tealium React Native Adobe Plugin DESC - s.homepage = "https://github.com/tealium/tealium-react-native" + s.homepage = "https://github.com/Tealium/tealium-react-native/modules/adobe-visitor" s.license = { :type => "Commercial", :file => "LICENSE" } s.authors = { "Tyler Rister" => "tyler.rister@tealium.com" } - s.platforms = { :ios => "11.0" } - s.source = { :git => "https://github.com/tealium/tealium-react-native.git", :tag => "#{s.version}" } + s.platforms = { :ios => "12.0" } + s.source = { :git => "https://github.com/Tealium/tealium-react-native.git", :tag => "#{s.version}" } s.source_files = "ios/**/*.{h,c,m,swift}" s.requires_arc = true s.swift_version = "5.0" s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } s.dependency "React-Core" - s.dependency "tealium-react-native", "~> 2.2" - s.dependency "tealium-react-native-swift", "~> 2.2" - s.dependency "TealiumAdobeVisitorAPI", "~> 1.1" - s.dependency "tealium-swift/Core", "~> 2.6" + s.dependency "tealium-react-native", "~> 2.4" + s.dependency "tealium-react-native-swift", "~> 2.4" + s.dependency "TealiumAdobeVisitorAPI", "~> 1.2" + s.dependency "tealium-swift/Core", "~> 2.12" end diff --git a/modules/crash-reporter/android/build.gradle b/modules/crash-reporter/android/build.gradle index dc74d8f1a..0c6cffff8 100644 --- a/modules/crash-reporter/android/build.gradle +++ b/modules/crash-reporter/android/build.gradle @@ -36,7 +36,7 @@ buildscript { } } -version = "1.0.0" +version = "1.1.0" android { compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION) @@ -55,13 +55,16 @@ android { disable 'GradleCompatible' } - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } + def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() + if(agpVersion < 8) { + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11 + } } } @@ -95,7 +98,7 @@ dependencies { implementation project(":tealium-react-native") // Tealium - implementation 'com.tealium:kotlin-core:1.5.3' + implementation 'com.tealium:kotlin-core:1.5.5' implementation 'com.tealium:kotlin-crash-reporter:1.1.0' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${project.ext.kotlinVersion}" diff --git a/modules/crash-reporter/ios/TealiumReactCrashReporter.xcodeproj/project.pbxproj b/modules/crash-reporter/ios/TealiumReactCrashReporter.xcodeproj/project.pbxproj index 48c8ef27f..026e49e16 100644 --- a/modules/crash-reporter/ios/TealiumReactCrashReporter.xcodeproj/project.pbxproj +++ b/modules/crash-reporter/ios/TealiumReactCrashReporter.xcodeproj/project.pbxproj @@ -7,8 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - 5E555C0D2413F4C50049A1A2 /* TealiumReactCrashReporter.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3E7B5891CC2AC0600A0062D /* TealiumReactCrashReporter.mm */; }; - F4FF95D7245B92E800C19C63 /* TealiumReactCrashReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* TealiumReactCrashReporter.swift */; }; + F4FF95D7245B92E800C19C63 /* TealiumReactCrashReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* TealiumReactCrashReporter.swift */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -117,7 +116,6 @@ buildActionMask = 2147483647; files = ( F4FF95D7245B92E800C19C63 /* TealiumReactCrashReporter.swift in Sources */, - B3E7B58A1CC2AC0600A0062D /* TealiumReactCrashReporter.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -152,7 +150,6 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -203,7 +200,6 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/modules/crash-reporter/package.json b/modules/crash-reporter/package.json index 1d9cb4250..bbb1440af 100644 --- a/modules/crash-reporter/package.json +++ b/modules/crash-reporter/package.json @@ -1,7 +1,7 @@ { "name": "tealium-react-native-crash-reporter", "title": "Tealium React Native Crash Reporter", - "version": "1.0.1", + "version": "1.1.0", "description": "A native module for using Tealium's Crash Reporter Module for Kotlin and Swift libraries.", "main": "index.js", "types": "*.ts", diff --git a/modules/crash-reporter/tealium-react-native-crash-reporter.podspec b/modules/crash-reporter/tealium-react-native-crash-reporter.podspec index 05da45ac3..3c435b63b 100644 --- a/modules/crash-reporter/tealium-react-native-crash-reporter.podspec +++ b/modules/crash-reporter/tealium-react-native-crash-reporter.podspec @@ -9,20 +9,20 @@ Pod::Spec.new do |s| s.description = <<-DESC Tealium React Native Crash Reporter Plugin DESC - s.homepage = "https://github.com/tealium/tealium-react-native" - s.license = { :type => "Commercial", :file => "LICENSE.txt" } + s.homepage = "https://github.com/Tealium/tealium-react-native/modules/crash-reporter" + s.license = { :type => "Commercial", :file => "LICENSE" } s.authors = { "James Keith" => "james.keith@tealium.com" } - s.platforms = { :ios => "11.0" } - s.source = { :git => "https://github.com/tealium/tealium-react-native.git", :tag => "#{s.version}" } + s.platforms = { :ios => "12.0" } + s.source = { :git => "https://github.com/Tealium/tealium-react-native.git", :tag => "#{s.version}" } s.source_files = "ios/**/*.{h,c,m,swift}" s.requires_arc = true s.swift_version = "5.0" s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } s.dependency "React-Core" - s.dependency "tealium-react-native", "~> 2.2" - s.dependency "tealium-react-native-swift", "~> 2.2" - s.dependency "tealium-swift/Core", "~> 2.6" - s.dependency "TealiumCrashModule", "~> 2.3" + s.dependency "tealium-react-native", "~> 2.4" + s.dependency "tealium-react-native-swift", "~> 2.4" + s.dependency "tealium-swift/Core", "~> 2.12" + s.dependency "TealiumCrashModule", "~> 2.5" end diff --git a/modules/location/android/build.gradle b/modules/location/android/build.gradle index 3d72c5fbc..70702387e 100644 --- a/modules/location/android/build.gradle +++ b/modules/location/android/build.gradle @@ -40,7 +40,7 @@ buildscript { } } -version = "1.0.1" +version = "1.1.0" android { compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION) buildToolsVersion safeExtGet('buildToolsVersion', DEFAULT_BUILD_TOOLS_VERSION) @@ -86,8 +86,8 @@ dependencies { implementation project(":tealium-react-native") //Tealium - implementation 'com.tealium:kotlin-core:1.3.0' - implementation 'com.tealium:kotlin-location:1.1.0' + implementation 'com.tealium:kotlin-core:1.5.5' + implementation 'com.tealium:kotlin-location:1.1.2' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${project.ext.kotlinVersion}" testImplementation 'com.facebook.react:react-native:+' diff --git a/modules/location/package.json b/modules/location/package.json index cd4d4574a..e262e4b6e 100644 --- a/modules/location/package.json +++ b/modules/location/package.json @@ -1,7 +1,7 @@ { "name": "tealium-react-native-location", "title": "Tealium React Native Location", - "version": "1.0.3", + "version": "1.1.0", "description": "A native module for using Tealium's Location Module for Kotlin and Swift libraries.", "main": "index.js", "types": "*.ts", diff --git a/modules/location/tealium-react-native-location.podspec b/modules/location/tealium-react-native-location.podspec index 32e614985..b20fe6f21 100644 --- a/modules/location/tealium-react-native-location.podspec +++ b/modules/location/tealium-react-native-location.podspec @@ -9,21 +9,21 @@ Pod::Spec.new do |s| s.description = <<-DESC Tealium React Native Location Plugin DESC - s.homepage = "https://github.com/tealium/tealium-react-native" - s.license = { :type => "Commercial", :file => "LICENSE.txt" } + s.homepage = "https://github.com/Tealium/tealium-react-native/modules/location" + s.license = { :type => "Commercial", :file => "LICENSE" } s.authors = { "James Keith" => "james.keith@tealium.com" } - s.platforms = { :ios => "11.0" } - s.source = { :git => "https://github.com/tealium/tealium-react-native.git", :tag => "#{s.version}" } + s.platforms = { :ios => "12.0" } + s.source = { :git => "https://github.com/Tealium/tealium-react-native.git", :tag => "#{s.version}" } s.source_files = "ios/**/*.{h,c,m,swift}" s.requires_arc = true s.swift_version = "5.0" s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } s.dependency "React-Core" - s.dependency "tealium-react-native", "~> 2.2" - s.dependency "tealium-react-native-swift", "~> 2.2" - s.dependency "tealium-swift/Core", "~> 2.6" - s.dependency "tealium-swift/Location", "~> 2.6" + s.dependency "tealium-react-native", "~> 2.4" + s.dependency "tealium-react-native-swift", "~> 2.4" + s.dependency "tealium-swift/Core", "~> 2.12" + s.dependency "tealium-swift/Location", "~> 2.12" end diff --git a/npm-package/android/build.gradle b/npm-package/android/build.gradle index 8e75c1de0..6894a1c55 100644 --- a/npm-package/android/build.gradle +++ b/npm-package/android/build.gradle @@ -43,7 +43,7 @@ buildscript { } } -version = "2.3.1" +version = "2.4.0" android { compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION) buildToolsVersion safeExtGet('buildToolsVersion', DEFAULT_BUILD_TOOLS_VERSION) @@ -61,13 +61,16 @@ android { abortOnError false } - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } + def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() + if(agpVersion < 8) { + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11 + } } } @@ -98,16 +101,16 @@ dependencies { implementation 'com.facebook.react:react-native:+' // From node_modules //Tealium - implementation 'com.tealium:kotlin-core:1.5.3' - implementation 'com.tealium:kotlin-collect-dispatcher:1.1.0' - implementation 'com.tealium:kotlin-tagmanagement-dispatcher:1.2.0' - implementation 'com.tealium:kotlin-remotecommand-dispatcher:1.2.1' + implementation 'com.tealium:kotlin-core:1.5.5' + implementation 'com.tealium:kotlin-collect-dispatcher:1.1.1' + implementation 'com.tealium:kotlin-tagmanagement-dispatcher:1.2.1' + implementation 'com.tealium:kotlin-remotecommand-dispatcher:1.3.1' implementation 'com.tealium:kotlin-lifecycle:1.2.0' implementation 'com.tealium:kotlin-visitor-service:1.2.0' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${project.ext.kotlinVersion}" testImplementation 'com.facebook.react:react-native:+' - testImplementation 'io.mockk:mockk:1.12.0' - testImplementation 'junit:junit:4.12' - testImplementation "org.robolectric:robolectric:4.6.1" + testImplementation 'io.mockk:mockk:1.13.3' + testImplementation 'junit:junit:4.13.2' + testImplementation "org.robolectric:robolectric:4.11.1" } diff --git a/npm-package/android/gradle/wrapper/gradle-wrapper.properties b/npm-package/android/gradle/wrapper/gradle-wrapper.properties index 1f3fdbc52..164080a81 100644 --- a/npm-package/android/gradle/wrapper/gradle-wrapper.properties +++ b/npm-package/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/npm-package/android/gradlew b/npm-package/android/gradlew index 2fe81a7d9..fcb6fca14 100755 --- a/npm-package/android/gradlew +++ b/npm-package/android/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,78 +17,110 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -97,87 +129,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/npm-package/android/gradlew.bat b/npm-package/android/gradlew.bat index 24467a141..6689b85be 100644 --- a/npm-package/android/gradlew.bat +++ b/npm-package/android/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,10 +25,14 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @@ -37,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -51,7 +55,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -61,38 +65,26 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/npm-package/android/src/main/java/com/tealium/react/TealiumReact.kt b/npm-package/android/src/main/java/com/tealium/react/TealiumReact.kt index 8a10d66bd..180961af7 100644 --- a/npm-package/android/src/main/java/com/tealium/react/TealiumReact.kt +++ b/npm-package/android/src/main/java/com/tealium/react/TealiumReact.kt @@ -35,7 +35,7 @@ class TealiumReactNative : ReactPackage { class TealiumReact(private val reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { override fun getName(): String = MODULE_NAME - private var tealium: Tealium? = null + internal var tealium: Tealium? = null private val remoteCommandFactories: MutableMap = mutableMapOf() private val optionalModules: MutableList = mutableListOf() @@ -124,6 +124,7 @@ class TealiumReact(private val reactContext: ReactApplicationContext) : ReactCon @ReactMethod fun terminateInstance() { + tealium = null Tealium.destroy(INSTANCE_NAME) } @@ -179,25 +180,35 @@ class TealiumReact(private val reactContext: ReactApplicationContext) : ReactCon @ReactMethod fun getFromDataLayer(key: String, callback: Callback) { - tealium?.dataLayer?.get(key)?.let { - val payload = when (it) { - is Array<*> -> JSONArray(it).toWritableArray() - is JSONObject -> it.toWritableMap() - is String -> { - try { - // Mixed Arrays and Arrays of Arrays/Objects are serialized to string. - // check if we need to deserialize it back here, else return the String value - if (it.startsWith("[") && it.endsWith("]")) { - JSONArray(it).toWritableArray() - } else it - } catch (jex: JSONException) { - it - } + val datalayer = tealium?.dataLayer + if (datalayer == null) { + callback.invoke(null) + return + } + + val value = datalayer.get(key) + if (value == null) { + callback.invoke(null) + return + } + + val payload = when (value) { + is Array<*> -> JSONArray(value).toWritableArray() + is JSONObject -> value.toWritableMap() + is String -> { + try { + // Mixed Arrays and Arrays of Arrays/Objects are serialized to string. + // check if we need to deserialize it back here, else return the String value + if (value.startsWith("[") && value.endsWith("]")) { + JSONArray(value).toWritableArray() + } else value + } catch (jex: JSONException) { + value } - else -> it } - callback.invoke(payload) + else -> value } + callback.invoke(payload) } @ReactMethod @@ -211,9 +222,13 @@ class TealiumReact(private val reactContext: ReactApplicationContext) : ReactCon @ReactMethod fun gatherTrackData(callback: Callback) { - tealium?.apply { - callback.invoke(JSONObject(gatherTrackData()).toWritableMap()) + val teal = tealium + if (teal == null) { + callback.invoke(null) + return } + + callback.invoke(JSONObject(teal.gatherTrackData()).toWritableMap()) } @ReactMethod @@ -285,6 +300,11 @@ class TealiumReact(private val reactContext: ReactApplicationContext) : ReactCon @ReactMethod fun getSessionId(callback: Callback){ - callback(tealium?.session?.id.toString()) + val id = tealium?.session?.id + if (id == null) { + callback("") + } else { + callback(id.toString()) + } } } \ No newline at end of file diff --git a/npm-package/android/src/test/java/com/tealium/react/TealiumReactTests.kt b/npm-package/android/src/test/java/com/tealium/react/TealiumReactTests.kt index 7bbc12889..4ab598629 100644 --- a/npm-package/android/src/test/java/com/tealium/react/TealiumReactTests.kt +++ b/npm-package/android/src/test/java/com/tealium/react/TealiumReactTests.kt @@ -22,6 +22,7 @@ import io.mockk.impl.annotations.MockK import io.mockk.impl.annotations.RelaxedMockK import org.json.JSONArray import org.json.JSONObject +import org.junit.Assert.assertNull import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test @@ -255,6 +256,13 @@ class TealiumReactTests { } } + @Test + fun terminate_NullifiesLocalInstance() { + tealiumReact.terminateInstance() + + assertNull(tealiumReact.tealium) + } + @Test fun track_CallsTrack() { val eventMap = JavaOnlyMap().apply { @@ -695,6 +703,32 @@ class TealiumReactTests { } } + @Test + fun getFromDataLayer_ReturnsNull_WhenTealiumNull() { + val callback: Callback = mockk(relaxed = true) + tealiumReact.tealium = null + + tealiumReact.getFromDataLayer("test", callback) + + verify { + callback.invoke(null) + } + } + + @Test + fun getFromDataLayer_ReturnsNull_WhenDataLayerReturnsNull() { + val callback: Callback = mockk(relaxed = true) + val dataLayer: DataLayer = mockk(relaxed = true) + every { mockTealium.dataLayer } returns dataLayer + every { dataLayer.get("test") } returns null + + tealiumReact.getFromDataLayer("test", callback) + + verify { + callback.invoke(null) + } + } + @Test fun removeFromDataLayer_CallsRemove_ForEachKey() { val dataLayer: DataLayer = mockk(relaxed = true) @@ -863,6 +897,17 @@ class TealiumReactTests { } } + @Test + fun getVisitorId_ReturnsEmptyString_When_TealiumNull() { + tealiumReact.tealium = null + + tealiumReact.getVisitorId(mockCallback) + + verify { + mockCallback.invoke("") + } + } + @Test fun getSessionId_CallsCallback() { every { mockTealium.session.id } returns 12345 @@ -874,6 +919,17 @@ class TealiumReactTests { } } + @Test + fun getSessionId_ReturnsEmptyString_When_TealiumNull() { + tealiumReact.tealium = null + + tealiumReact.getSessionId(mockCallback) + + verify { + mockCallback.invoke("") + } + } + private class TestRemoteCommandFactory( override val name: String = "factory_command" ) : RemoteCommandFactory { diff --git a/npm-package/index.js b/npm-package/index.js index 6c5f9244a..5b3429f8c 100644 --- a/npm-package/index.js +++ b/npm-package/index.js @@ -17,7 +17,7 @@ export default class Tealium { }); } TealiumWrapper.initialize(config, callback || (response => {})); - TealiumWrapper.addToDataLayer({'plugin_name': 'Tealium-ReactNative', 'plugin_version': '2.3.1'}, Expiry.forever); + TealiumWrapper.addToDataLayer({'plugin_name': 'Tealium-ReactNative', 'plugin_version': '2.4.0'}, Expiry.forever); if (config["dispatchers"].includes(Dispatchers.RemoteCommands)) { this.setRemoteCommandListener(); } diff --git a/npm-package/ios/TealiumReactNative.swift b/npm-package/ios/TealiumReactNative.swift index 327b21c81..a632cce5b 100644 --- a/npm-package/ios/TealiumReactNative.swift +++ b/npm-package/ios/TealiumReactNative.swift @@ -154,8 +154,12 @@ public class TealiumReactNative: RCTEventEmitter { } @objc - public static func gatherTrackData(completion: @escaping ([String: Any]) -> ()) { - tealium?.gatherTrackData(completion: completion) + public static func gatherTrackData(completion: @escaping ([String: Any]?) -> ()) { + guard let tealium = tealium else { + completion(nil) + return + } + tealium.gatherTrackData(completion: completion) } @objc diff --git a/npm-package/ios/TealiumWrapper.swift b/npm-package/ios/TealiumWrapper.swift index 4d875b922..6b0530ade 100644 --- a/npm-package/ios/TealiumWrapper.swift +++ b/npm-package/ios/TealiumWrapper.swift @@ -49,6 +49,7 @@ class TealiumWrapper: NSObject { @objc(getFromDataLayer:callback:) public func getFromDataLayer(_ key: String, callback: RCTResponseSenderBlock) { guard let item = TealiumReactNative.getFromDataLayer(key: key) else { + callback(nil) return } callback([item]) @@ -63,6 +64,7 @@ class TealiumWrapper: NSObject { public func gatherTrackData(callback: @escaping RCTResponseSenderBlock) { TealiumReactNative.gatherTrackData(completion: { response in guard let result = response as Any? else { + callback(nil) return } callback([result]) @@ -112,6 +114,7 @@ class TealiumWrapper: NSObject { @objc(getVisitorId:) public func getVisitorId(_ callback: RCTResponseSenderBlock) { guard let visitorId = TealiumReactNative.visitorId else { + callback([""]) return } callback([visitorId]) @@ -130,6 +133,7 @@ class TealiumWrapper: NSObject { @objc(getSessionId:) public func getSessionId(_ callback: RCTResponseSenderBlock) { guard let sessionId = TealiumReactNative.sessionId else { + callback([""]) return } callback([sessionId]) diff --git a/npm-package/package.json b/npm-package/package.json index b84b76fb7..3cb36adcc 100644 --- a/npm-package/package.json +++ b/npm-package/package.json @@ -1,7 +1,7 @@ { "name": "tealium-react-native", "title": "Tealium React Native", - "version": "2.3.2", + "version": "2.4.0", "description": "A native module for using Tealium's Kotlin and Swift libraries.", "main": "index.js", "types": "*.ts", diff --git a/npm-package/tealium-react-native-swift.podspec b/npm-package/tealium-react-native-swift.podspec index da5397eb6..e5b9c3c9c 100644 --- a/npm-package/tealium-react-native-swift.podspec +++ b/npm-package/tealium-react-native-swift.podspec @@ -9,11 +9,11 @@ Pod::Spec.new do |s| s.description = <<-DESC Tealium React Native Plugin DESC - s.homepage = "https://github.com/tealium/tealium-react-native" + s.homepage = "https://github.com/Tealium/tealium-react-native" s.license = { :type => "Commercial", :file => "LICENSE" } s.authors = { "Christina Sund" => "christina.sund@tealium.com", "James Keith" => "james.keith@tealium.com" } - s.platforms = { :ios => "11.0" } - s.source = { :git => "https://github.com/tealium/tealium-react-native.git", :tag => "#{s.version}" } + s.platforms = { :ios => "12.0" } + s.source = { :git => "https://github.com/Tealium/tealium-react-native.git", :tag => "#{s.version}" } s.source_files = "ios/**/*.{swift}" s.requires_arc = true s.swift_version = "5.0" @@ -21,12 +21,12 @@ Pod::Spec.new do |s| s.dependency "tealium-react-native" s.dependency "React-Core" - s.dependency "tealium-swift/Core", "~> 2.8" - s.dependency "tealium-swift/TagManagement", "~> 2.8" - s.dependency "tealium-swift/Collect", "~> 2.8" - s.dependency "tealium-swift/Lifecycle", "~> 2.8" - s.dependency "tealium-swift/RemoteCommands", "~> 2.8" - s.dependency "tealium-swift/VisitorService", "~> 2.8" + s.dependency "tealium-swift/Core", "~> 2.12" + s.dependency "tealium-swift/TagManagement", "~> 2.12" + s.dependency "tealium-swift/Collect", "~> 2.12" + s.dependency "tealium-swift/Lifecycle", "~> 2.12" + s.dependency "tealium-swift/RemoteCommands", "~> 2.12" + s.dependency "tealium-swift/VisitorService", "~> 2.12" end diff --git a/npm-package/tealium-react-native.podspec b/npm-package/tealium-react-native.podspec index 97494b1db..66bfab736 100644 --- a/npm-package/tealium-react-native.podspec +++ b/npm-package/tealium-react-native.podspec @@ -9,23 +9,23 @@ Pod::Spec.new do |s| s.description = <<-DESC Tealium React Native Plugin DESC - s.homepage = "https://github.com/tealium/tealium-react-native" + s.homepage = "https://github.com/Tealium/tealium-react-native" s.license = { :type => "Commercial", :file => "LICENSE" } s.authors = { "Christina Sund" => "christina.sund@tealium.com", "James Keith" => "james.keith@tealium.com" } - s.platforms = { :ios => "11.0" } - s.source = { :git => "https://github.com/tealium/tealium-react-native.git", :tag => "#{s.version}" } + s.platforms = { :ios => "12.0" } + s.source = { :git => "https://github.com/Tealium/tealium-react-native.git", :tag => "#{s.version}" } s.source_files = "ios/**/*.{h,c,m}" s.requires_arc = true s.swift_version = "5.0" s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } s.dependency "React-Core" - s.dependency "tealium-swift/Core", "~> 2.8" - s.dependency "tealium-swift/TagManagement", "~> 2.8" - s.dependency "tealium-swift/Collect", "~> 2.8" - s.dependency "tealium-swift/Lifecycle", "~> 2.8" - s.dependency "tealium-swift/RemoteCommands", "~> 2.8" - s.dependency "tealium-swift/VisitorService", "~> 2.8" + s.dependency "tealium-swift/Core", "~> 2.12" + s.dependency "tealium-swift/TagManagement", "~> 2.12" + s.dependency "tealium-swift/Collect", "~> 2.12" + s.dependency "tealium-swift/Lifecycle", "~> 2.12" + s.dependency "tealium-swift/RemoteCommands", "~> 2.12" + s.dependency "tealium-swift/VisitorService", "~> 2.12" end diff --git a/remotecommands/tealium-react-adjust/LICENSE b/remotecommands/tealium-react-adjust/LICENSE index 20abed5f2..f6f2da35e 100644 --- a/remotecommands/tealium-react-adjust/LICENSE +++ b/remotecommands/tealium-react-adjust/LICENSE @@ -1,21 +1,41 @@ -MIT License - -Copyright (c) 2021 Tealium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +License Agreement + +Thank You for Your interest in our Tealium React Native Library (the "Software"), owned and licensed by Tealium Inc. (“Tealium,” "Our," “We,” or “Us”). Please read this license agreement (the "Agreement") carefully, as it contains the terms and conditions that govern Your use of and access to the Software. + +You may not access the Software if You are Our direct competitor, except with Our prior written consent. In addition, You may not access the Software for purposes of monitoring the availability, performance, or functionality, of any of our products and services or for any other benchmarking or competitive purposes. + +BY DOWNLOADING THE SOFTWARE OR BY EXECUTING A TEALIUM PROVIDED ORDER FORM THAT REFERENCES THIS AGREEMENT, YOU AGREE TO BE BOUND BY AND COMPLY WITH THIS AGREEMENT. IF YOU ARE ENTERING INTO THIS AGREEMENT ON BEHALF OF A COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT THAT YOU HAVE THE AUTHORITY TO BIND SUCH ENTITY AND ITS AFFILIATES TO THIS AGREEMENT, IN WHICH CASE THE TERMS "YOU" OR "YOUR" WILL REFER TO SUCH ENTITY AND ITS AFFILIATES. IF YOU DO NOT HAVE SUCH AUTHORITY, OR IF YOU DO NOT AGREE WITH THE TERMS OF THIS AGREEMENT, YOU MUST NOT USE THE SOFTWARE. + +The term of Your license to use the Software (the "Term") will begin when You accept this Agreement as set forth above and will continue until terminated pursuant to the provisions of the "Cancellation and Termination" section below. During the Term, We grant You a non-exclusive, non-transferable, royalty-free, limited license (with no right to sublicense) to use the Software to do the following: + +develop software applications and functionality designed to be used in conjunction with Tealium's products and services; +conduct quality assurance testing to ensure compatibility between your software application and Tealium's products and services; and +conduct support testing to troubleshoot compatibility between your software application and Tealium's products and services. + +During the Term, Tealium further grants to You a non-exclusive, non-transferable, royalty-free, limited world-wide license (with no right to sublicense) to market, reproduce, and distribute applications incorporating the integration You develop under this Agreement, either directly or through multiple levels of distributors, Your end users, but only under an end-user license agreement with terms that are as protective of Tealium's rights as this Agreement. + +We do not grant any other rights to the Software. You may only use the Software during the Term, we reserve all rights not expressly granted under this Agreement, and there are no implied rights or other rights We grant hereunder, whether by estoppel or otherwise. You may not: (i) copy or reproduce the Software (except for reasonable archival purposes); (ii) modify or create any derivative works of the Software; (iii) decompile, disassemble, or reverse engineer the Software (except to the extent expressly permitted under applicable law); or (iv) remove or alter any trademark, logo, copyright or other proprietary notices, legends, symbols or labels in the Software. Further, You may not use the Software for any illegal or unauthorized purpose. + +Tealium will retain all title, ownership, and Intellectual Property Rights in the Software and any derivative works thereof. “Intellectual Property Rights” will mean all patent, copyright, trade secret, trademark and other proprietary and intellectual property rights, including moral rights. The Software is protected by copyright and other intellectual property laws and by international treaties. You agree that We will own all suggestions, enhancements requests, feedback, recommendations, or other input provided by You or any other party relating to the Software. Other than the use licenses expressly granted in this Agreement, neither this Agreement nor its performance transfers from Us to You any Tealium intellectual property. + +General Conditions and Restrictions +Your use of the Software is at Your sole risk. +You agree that Tealium is under no obligation to provide You with support for the Software, or to provide You with updates or error corrections ("Updates") to the Software. If Tealium, at its sole discretion, decides to provide You with Updates, Updates will be considered part of Software, and subject to the terms of this Agreement. +You agree not to reproduce, duplicate, copy, sell, resell, or exploit any portion or feature of the Software or access to the Software without express written permission from Tealium. + +No Warranty +THE SOFTWARE IS PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS, AND TEALIUM EXPRESSLY DISCLAIMS ANY WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, QUIET ENJOYMENT, ACCURACY, OR NON-INFRINGEMENT. WITHOUT LIMITING THE FOREGOING, TEALIUM DOES NOT WARRANT THAT THE SERVICE WILL MEET YOUR SPECIFIC REQUIREMENTS, THAT THE SERVICE WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR-FREE, THAT THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE SOFTWARE WILL BE COMPLETE, ACCURATE, OR RELIABLE, THAT THE QUALITY OF ANY PRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL PURCHASED OR OBTAINED BY YOU THROUGH THE SOFTWARE WILL MEET YOUR EXPECTATIONS, OR THAT ANY ERRORS IN THE SOFTWARE WILL BE CORRECTED. + +Limitation of Liability +YOU EXPRESSLY UNDERSTAND AND AGREE THAT TEALIUM WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA OR OTHER INTANGIBLE LOSSES (EVEN IF TEALIUM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES), INCLUDING ANY SUCH DAMAGES RESULTING FROM THE USE OR THE INABILITY TO USE THE SOFTWARE; THE COST OF PROCUREMENT OF SUBSTITUTE GOODS AND SERVICES RESULTING FROM ANY GOODS, DATA, INFORMATION OR SERVICES PURCHASED OR OBTAINED OR MESSAGES RECEIVED OR TRANSACTIONS ENTERED INTO THROUGH OR FROM THE SOFTWARE; UNAUTHORIZED ACCESS TO OR ALTERATION OF YOUR TRANSMISSIONS OR DATA; STATEMENTS OR CONDUCT OF ANY THIRD PARTY ON THE SOFTWARE; TERMINATION OF YOUR ACCOUNT; OR ANY OTHER MATTER RELATING TO THE SOFTWARE. + +NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, TEALIUM’S LIABILITY TO YOU FOR ANY DAMAGES ARISING FROM OR RELATING TO THE SOFTWARE (FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION) WILL AT ALL TIMES BE LIMITED TO THE GREATER OR EITHER (1) THE AMOUNT YOU PAID TO TEALIUM IN THE SIX (6) MONTHS IMMEDIATELY PRECEDING THE INCIDENT GIVING RISE TO THE CLAIM OR (2) ONE HUNDRED FIFTY DOLLARS (USD 150.00). + +Cancellation and Termination +Tealium, in its sole discretion, may terminate your license, for any reason at any time. +You, in your sole discretion, may terminate this Agreement immediately upon written notice to Tealium. +Upon termination or expiration of this Agreement, You will immediately cease use of and destroy the original and all copies of the Software in Your possession or control. Upon Tealium's written request, You will confirm to Tealium in writing that You have complied with all provisions of this Agreement. +Either party may terminate this Agreement upon written notice to the other party, for any material breach by the other party, if such breach is not cured within thirty (30) days after the non-breaching party provides the allegedly breaching party with written notice of such breach. + +Miscellaneous +This Agreement will be governed by the laws of the State of California without giving effect to any conflicts of laws principles that may require the application of the law of a different jurisdiction. For any dispute or proceeding arising from or relating to this Agreement, You agree to submit to the jurisdiction of, and agree that venue is proper in, the state courts located in San Diego County, California, and in the federal courts located in the Southern District of California. The failure of Tealium to exercise or enforce any right or provision of this Agreement will not constitute a waiver of such right or provision. This Agreement constitutes the entire agreement between You and Tealium and governs Your use of the Service, superseding any prior agreements between You and Tealium (including, but not limited to, any prior versions of the Agreement). \ No newline at end of file diff --git a/remotecommands/tealium-react-adjust/android/build.gradle b/remotecommands/tealium-react-adjust/android/build.gradle index 889db04cf..212176c2c 100644 --- a/remotecommands/tealium-react-adjust/android/build.gradle +++ b/remotecommands/tealium-react-adjust/android/build.gradle @@ -39,7 +39,7 @@ buildscript { } } -version = "1.0.3" +version = "1.1.0" android { compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION) @@ -58,13 +58,16 @@ android { disable 'GradleCompatible' } - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } + def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() + if(agpVersion < 8) { + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11 + } } } @@ -93,8 +96,8 @@ dependencies { implementation 'com.facebook.react:react-native:+' implementation project(":tealium-react-native") - implementation 'com.tealium.remotecommands:adjust:1.1.0' - implementation 'com.tealium:remotecommands:1.0.1' + implementation 'com.tealium.remotecommands:adjust:1.3.0' + implementation 'com.tealium:remotecommands:1.0.2' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${project.ext.kotlinVersion}" } diff --git a/remotecommands/tealium-react-adjust/package.json b/remotecommands/tealium-react-adjust/package.json index b94dfb26e..50576185a 100644 --- a/remotecommands/tealium-react-adjust/package.json +++ b/remotecommands/tealium-react-adjust/package.json @@ -1,7 +1,7 @@ { "name": "tealium-react-adjust", "title": "Tealium React Adjust", - "version": "1.0.4", + "version": "1.1.0", "description": "Package to support the Tealium Adjust Remote Command", "main": "index.js", "files": [ @@ -27,7 +27,7 @@ "author": { "name": "Tealium" }, - "license": "MIT", + "license": "Commercial", "licenseFilename": "LICENSE", "readmeFilename": "README.md", "peerDependencies": { diff --git a/remotecommands/tealium-react-adjust/tealium-react-adjust.podspec b/remotecommands/tealium-react-adjust/tealium-react-adjust.podspec index ea3c2d69e..2c5788f76 100644 --- a/remotecommands/tealium-react-adjust/tealium-react-adjust.podspec +++ b/remotecommands/tealium-react-adjust/tealium-react-adjust.podspec @@ -9,23 +9,20 @@ Pod::Spec.new do |s| s.description = <<-DESC tealium-react-adjust DESC - s.homepage = "https://github.com/github_account/tealium-react-adjust" - # brief license entry: - s.license = "MIT" - # optional - use expanded license entry instead: - # s.license = { :type => "MIT", :file => "LICENSE" } + s.homepage = "https://github.com/Tealium/tealium-react-native/remotecommands/tealium-react-adjust" + s.license = { :type => "Commercial", :file => "LICENSE" } s.authors = { "Tealium" => "mobile-team@tealium.com" } - s.platforms = { :ios => "11.0" } - s.source = { :git => "https://github.com/github_account/tealium-react-adjust.git", :tag => "#{s.version}" } + s.platforms = { :ios => "12.0" } + s.source = { :git => "https://github.com/Tealium/tealium-react-native.git", :tag => "#{s.version}" } s.source_files = "ios/**/*.{h,c,m,swift}" s.requires_arc = true s.static_framework = true s.dependency "React-Core" - s.dependency "tealium-react-native", "~> 2.2" - s.dependency "tealium-react-native-swift", "~> 2.2" - s.dependency "tealium-swift/Core", "~> 2.6" - s.dependency "TealiumAdjust", "~> 1.1" + s.dependency "tealium-react-native", "~> 2.4" + s.dependency "tealium-react-native-swift", "~> 2.4" + s.dependency "tealium-swift/Core", "~> 2.12" + s.dependency "TealiumAdjust", "~> 1.3" end diff --git a/remotecommands/tealium-react-appsflyer/LICENSE b/remotecommands/tealium-react-appsflyer/LICENSE new file mode 100644 index 000000000..f6f2da35e --- /dev/null +++ b/remotecommands/tealium-react-appsflyer/LICENSE @@ -0,0 +1,41 @@ +License Agreement + +Thank You for Your interest in our Tealium React Native Library (the "Software"), owned and licensed by Tealium Inc. (“Tealium,” "Our," “We,” or “Us”). Please read this license agreement (the "Agreement") carefully, as it contains the terms and conditions that govern Your use of and access to the Software. + +You may not access the Software if You are Our direct competitor, except with Our prior written consent. In addition, You may not access the Software for purposes of monitoring the availability, performance, or functionality, of any of our products and services or for any other benchmarking or competitive purposes. + +BY DOWNLOADING THE SOFTWARE OR BY EXECUTING A TEALIUM PROVIDED ORDER FORM THAT REFERENCES THIS AGREEMENT, YOU AGREE TO BE BOUND BY AND COMPLY WITH THIS AGREEMENT. IF YOU ARE ENTERING INTO THIS AGREEMENT ON BEHALF OF A COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT THAT YOU HAVE THE AUTHORITY TO BIND SUCH ENTITY AND ITS AFFILIATES TO THIS AGREEMENT, IN WHICH CASE THE TERMS "YOU" OR "YOUR" WILL REFER TO SUCH ENTITY AND ITS AFFILIATES. IF YOU DO NOT HAVE SUCH AUTHORITY, OR IF YOU DO NOT AGREE WITH THE TERMS OF THIS AGREEMENT, YOU MUST NOT USE THE SOFTWARE. + +The term of Your license to use the Software (the "Term") will begin when You accept this Agreement as set forth above and will continue until terminated pursuant to the provisions of the "Cancellation and Termination" section below. During the Term, We grant You a non-exclusive, non-transferable, royalty-free, limited license (with no right to sublicense) to use the Software to do the following: + +develop software applications and functionality designed to be used in conjunction with Tealium's products and services; +conduct quality assurance testing to ensure compatibility between your software application and Tealium's products and services; and +conduct support testing to troubleshoot compatibility between your software application and Tealium's products and services. + +During the Term, Tealium further grants to You a non-exclusive, non-transferable, royalty-free, limited world-wide license (with no right to sublicense) to market, reproduce, and distribute applications incorporating the integration You develop under this Agreement, either directly or through multiple levels of distributors, Your end users, but only under an end-user license agreement with terms that are as protective of Tealium's rights as this Agreement. + +We do not grant any other rights to the Software. You may only use the Software during the Term, we reserve all rights not expressly granted under this Agreement, and there are no implied rights or other rights We grant hereunder, whether by estoppel or otherwise. You may not: (i) copy or reproduce the Software (except for reasonable archival purposes); (ii) modify or create any derivative works of the Software; (iii) decompile, disassemble, or reverse engineer the Software (except to the extent expressly permitted under applicable law); or (iv) remove or alter any trademark, logo, copyright or other proprietary notices, legends, symbols or labels in the Software. Further, You may not use the Software for any illegal or unauthorized purpose. + +Tealium will retain all title, ownership, and Intellectual Property Rights in the Software and any derivative works thereof. “Intellectual Property Rights” will mean all patent, copyright, trade secret, trademark and other proprietary and intellectual property rights, including moral rights. The Software is protected by copyright and other intellectual property laws and by international treaties. You agree that We will own all suggestions, enhancements requests, feedback, recommendations, or other input provided by You or any other party relating to the Software. Other than the use licenses expressly granted in this Agreement, neither this Agreement nor its performance transfers from Us to You any Tealium intellectual property. + +General Conditions and Restrictions +Your use of the Software is at Your sole risk. +You agree that Tealium is under no obligation to provide You with support for the Software, or to provide You with updates or error corrections ("Updates") to the Software. If Tealium, at its sole discretion, decides to provide You with Updates, Updates will be considered part of Software, and subject to the terms of this Agreement. +You agree not to reproduce, duplicate, copy, sell, resell, or exploit any portion or feature of the Software or access to the Software without express written permission from Tealium. + +No Warranty +THE SOFTWARE IS PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS, AND TEALIUM EXPRESSLY DISCLAIMS ANY WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, QUIET ENJOYMENT, ACCURACY, OR NON-INFRINGEMENT. WITHOUT LIMITING THE FOREGOING, TEALIUM DOES NOT WARRANT THAT THE SERVICE WILL MEET YOUR SPECIFIC REQUIREMENTS, THAT THE SERVICE WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR-FREE, THAT THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE SOFTWARE WILL BE COMPLETE, ACCURATE, OR RELIABLE, THAT THE QUALITY OF ANY PRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL PURCHASED OR OBTAINED BY YOU THROUGH THE SOFTWARE WILL MEET YOUR EXPECTATIONS, OR THAT ANY ERRORS IN THE SOFTWARE WILL BE CORRECTED. + +Limitation of Liability +YOU EXPRESSLY UNDERSTAND AND AGREE THAT TEALIUM WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA OR OTHER INTANGIBLE LOSSES (EVEN IF TEALIUM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES), INCLUDING ANY SUCH DAMAGES RESULTING FROM THE USE OR THE INABILITY TO USE THE SOFTWARE; THE COST OF PROCUREMENT OF SUBSTITUTE GOODS AND SERVICES RESULTING FROM ANY GOODS, DATA, INFORMATION OR SERVICES PURCHASED OR OBTAINED OR MESSAGES RECEIVED OR TRANSACTIONS ENTERED INTO THROUGH OR FROM THE SOFTWARE; UNAUTHORIZED ACCESS TO OR ALTERATION OF YOUR TRANSMISSIONS OR DATA; STATEMENTS OR CONDUCT OF ANY THIRD PARTY ON THE SOFTWARE; TERMINATION OF YOUR ACCOUNT; OR ANY OTHER MATTER RELATING TO THE SOFTWARE. + +NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, TEALIUM’S LIABILITY TO YOU FOR ANY DAMAGES ARISING FROM OR RELATING TO THE SOFTWARE (FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION) WILL AT ALL TIMES BE LIMITED TO THE GREATER OR EITHER (1) THE AMOUNT YOU PAID TO TEALIUM IN THE SIX (6) MONTHS IMMEDIATELY PRECEDING THE INCIDENT GIVING RISE TO THE CLAIM OR (2) ONE HUNDRED FIFTY DOLLARS (USD 150.00). + +Cancellation and Termination +Tealium, in its sole discretion, may terminate your license, for any reason at any time. +You, in your sole discretion, may terminate this Agreement immediately upon written notice to Tealium. +Upon termination or expiration of this Agreement, You will immediately cease use of and destroy the original and all copies of the Software in Your possession or control. Upon Tealium's written request, You will confirm to Tealium in writing that You have complied with all provisions of this Agreement. +Either party may terminate this Agreement upon written notice to the other party, for any material breach by the other party, if such breach is not cured within thirty (30) days after the non-breaching party provides the allegedly breaching party with written notice of such breach. + +Miscellaneous +This Agreement will be governed by the laws of the State of California without giving effect to any conflicts of laws principles that may require the application of the law of a different jurisdiction. For any dispute or proceeding arising from or relating to this Agreement, You agree to submit to the jurisdiction of, and agree that venue is proper in, the state courts located in San Diego County, California, and in the federal courts located in the Southern District of California. The failure of Tealium to exercise or enforce any right or provision of this Agreement will not constitute a waiver of such right or provision. This Agreement constitutes the entire agreement between You and Tealium and governs Your use of the Service, superseding any prior agreements between You and Tealium (including, but not limited to, any prior versions of the Agreement). \ No newline at end of file diff --git a/remotecommands/tealium-react-appsflyer/android/build.gradle b/remotecommands/tealium-react-appsflyer/android/build.gradle index dbf067e02..9826403d2 100644 --- a/remotecommands/tealium-react-appsflyer/android/build.gradle +++ b/remotecommands/tealium-react-appsflyer/android/build.gradle @@ -54,11 +54,17 @@ android { disable "GradleCompatible" } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } + def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() + if(agpVersion < 8) { + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11 + } + } } repositories { @@ -76,7 +82,7 @@ dependencies { implementation project(":tealium-react-native") implementation 'com.tealium.remotecommands:appsflyer:1.3.0' - implementation 'com.tealium:remotecommands:1.0.1' + implementation 'com.tealium:remotecommands:1.0.2' implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } diff --git a/remotecommands/tealium-react-appsflyer/ios/TealiumReactAppsFlyer.xcodeproj/project.pbxproj b/remotecommands/tealium-react-appsflyer/ios/TealiumReactAppsFlyer.xcodeproj/project.pbxproj index 075c93e91..4c144058f 100644 --- a/remotecommands/tealium-react-appsflyer/ios/TealiumReactAppsFlyer.xcodeproj/project.pbxproj +++ b/remotecommands/tealium-react-appsflyer/ios/TealiumReactAppsFlyer.xcodeproj/project.pbxproj @@ -7,8 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - 5E555C0D2413F4C50049A1A2 /* TealiumReactAppsFlyer.m in Sources */ = {isa = PBXBuildFile; fileRef = B3E7B5891CC2AC0600A0062D /* TealiumReactAppsFlyer.m */; }; - F4FF95D7245B92E800C19C63 /* TealiumReactAppsFlyer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* TealiumReactAppsFlyer.swift */; }; + F4FF95D7245B92E800C19C63 /* TealiumReactAppsFlyer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* TealiumReactAppsFlyer.swift */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -117,7 +116,6 @@ buildActionMask = 2147483647; files = ( F4FF95D7245B92E800C19C63 /* TealiumReactAppsFlyer.swift in Sources */, - B3E7B58A1CC2AC0600A0062D /* TealiumReactAppsFlyer.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -152,7 +150,6 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -203,7 +200,6 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/remotecommands/tealium-react-appsflyer/package.json b/remotecommands/tealium-react-appsflyer/package.json index a1a96d1b3..b7c48614c 100644 --- a/remotecommands/tealium-react-appsflyer/package.json +++ b/remotecommands/tealium-react-appsflyer/package.json @@ -1,7 +1,7 @@ { "name": "tealium-react-appsflyer", "title": "Tealium React AppsFlyer", - "version": "1.0.1", + "version": "1.1.0", "description": "Package to support the Tealium AppsFlyer Remote Command", "main": "index.js", "files": [ @@ -27,7 +27,7 @@ "author": { "name": "Tealium" }, - "license": "MIT", + "license": "Commercial", "licenseFilename": "LICENSE", "readmeFilename": "README.md", "peerDependencies": { diff --git a/remotecommands/tealium-react-appsflyer/tealium-react-appsflyer.podspec b/remotecommands/tealium-react-appsflyer/tealium-react-appsflyer.podspec index 2befd3a8f..61ba472f4 100644 --- a/remotecommands/tealium-react-appsflyer/tealium-react-appsflyer.podspec +++ b/remotecommands/tealium-react-appsflyer/tealium-react-appsflyer.podspec @@ -12,21 +12,18 @@ Pod::Spec.new do |s| tealium-react-appsflyer DESC s.homepage = "https://github.com/Tealium/tealium-react-native/remotecommands/tealium-react-appsflyer" - # brief license entry: - s.license = "MIT" - # optional - use expanded license entry instead: - # s.license = { :type => "MIT", :file => "LICENSE" } + s.license = { :type => "Commercial", :file => "LICENSE" } s.authors = { "Tealium" => "mobile-team@tealium.com" } - s.platforms = { :ios => "11.0" } - s.source = { :git => "https://github.com/tealium-react-native.git", :tag => "#{s.version}" } + s.platforms = { :ios => "12.0" } + s.source = { :git => "https://github.com/Tealium/tealium-react-native.git", :tag => "#{s.version}" } s.source_files = "ios/**/*.{h,c,cc,cpp,m,mm,swift}" s.requires_arc = true s.dependency "React" - s.dependency "tealium-react-native", "~> 2.2" - s.dependency "tealium-react-native-swift", "~> 2.2" - s.dependency "tealium-swift/Core", "~> 2.9" - s.dependency "TealiumAppsFlyer", "~> 2.1" + s.dependency "tealium-react-native", "~> 2.4" + s.dependency "tealium-react-native-swift", "~> 2.4" + s.dependency "tealium-swift/Core", "~> 2.12" + s.dependency "TealiumAppsFlyer", "~> 3.0" end diff --git a/remotecommands/tealium-react-braze/LICENSE b/remotecommands/tealium-react-braze/LICENSE new file mode 100644 index 000000000..f6f2da35e --- /dev/null +++ b/remotecommands/tealium-react-braze/LICENSE @@ -0,0 +1,41 @@ +License Agreement + +Thank You for Your interest in our Tealium React Native Library (the "Software"), owned and licensed by Tealium Inc. (“Tealium,” "Our," “We,” or “Us”). Please read this license agreement (the "Agreement") carefully, as it contains the terms and conditions that govern Your use of and access to the Software. + +You may not access the Software if You are Our direct competitor, except with Our prior written consent. In addition, You may not access the Software for purposes of monitoring the availability, performance, or functionality, of any of our products and services or for any other benchmarking or competitive purposes. + +BY DOWNLOADING THE SOFTWARE OR BY EXECUTING A TEALIUM PROVIDED ORDER FORM THAT REFERENCES THIS AGREEMENT, YOU AGREE TO BE BOUND BY AND COMPLY WITH THIS AGREEMENT. IF YOU ARE ENTERING INTO THIS AGREEMENT ON BEHALF OF A COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT THAT YOU HAVE THE AUTHORITY TO BIND SUCH ENTITY AND ITS AFFILIATES TO THIS AGREEMENT, IN WHICH CASE THE TERMS "YOU" OR "YOUR" WILL REFER TO SUCH ENTITY AND ITS AFFILIATES. IF YOU DO NOT HAVE SUCH AUTHORITY, OR IF YOU DO NOT AGREE WITH THE TERMS OF THIS AGREEMENT, YOU MUST NOT USE THE SOFTWARE. + +The term of Your license to use the Software (the "Term") will begin when You accept this Agreement as set forth above and will continue until terminated pursuant to the provisions of the "Cancellation and Termination" section below. During the Term, We grant You a non-exclusive, non-transferable, royalty-free, limited license (with no right to sublicense) to use the Software to do the following: + +develop software applications and functionality designed to be used in conjunction with Tealium's products and services; +conduct quality assurance testing to ensure compatibility between your software application and Tealium's products and services; and +conduct support testing to troubleshoot compatibility between your software application and Tealium's products and services. + +During the Term, Tealium further grants to You a non-exclusive, non-transferable, royalty-free, limited world-wide license (with no right to sublicense) to market, reproduce, and distribute applications incorporating the integration You develop under this Agreement, either directly or through multiple levels of distributors, Your end users, but only under an end-user license agreement with terms that are as protective of Tealium's rights as this Agreement. + +We do not grant any other rights to the Software. You may only use the Software during the Term, we reserve all rights not expressly granted under this Agreement, and there are no implied rights or other rights We grant hereunder, whether by estoppel or otherwise. You may not: (i) copy or reproduce the Software (except for reasonable archival purposes); (ii) modify or create any derivative works of the Software; (iii) decompile, disassemble, or reverse engineer the Software (except to the extent expressly permitted under applicable law); or (iv) remove or alter any trademark, logo, copyright or other proprietary notices, legends, symbols or labels in the Software. Further, You may not use the Software for any illegal or unauthorized purpose. + +Tealium will retain all title, ownership, and Intellectual Property Rights in the Software and any derivative works thereof. “Intellectual Property Rights” will mean all patent, copyright, trade secret, trademark and other proprietary and intellectual property rights, including moral rights. The Software is protected by copyright and other intellectual property laws and by international treaties. You agree that We will own all suggestions, enhancements requests, feedback, recommendations, or other input provided by You or any other party relating to the Software. Other than the use licenses expressly granted in this Agreement, neither this Agreement nor its performance transfers from Us to You any Tealium intellectual property. + +General Conditions and Restrictions +Your use of the Software is at Your sole risk. +You agree that Tealium is under no obligation to provide You with support for the Software, or to provide You with updates or error corrections ("Updates") to the Software. If Tealium, at its sole discretion, decides to provide You with Updates, Updates will be considered part of Software, and subject to the terms of this Agreement. +You agree not to reproduce, duplicate, copy, sell, resell, or exploit any portion or feature of the Software or access to the Software without express written permission from Tealium. + +No Warranty +THE SOFTWARE IS PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS, AND TEALIUM EXPRESSLY DISCLAIMS ANY WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, QUIET ENJOYMENT, ACCURACY, OR NON-INFRINGEMENT. WITHOUT LIMITING THE FOREGOING, TEALIUM DOES NOT WARRANT THAT THE SERVICE WILL MEET YOUR SPECIFIC REQUIREMENTS, THAT THE SERVICE WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR-FREE, THAT THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE SOFTWARE WILL BE COMPLETE, ACCURATE, OR RELIABLE, THAT THE QUALITY OF ANY PRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL PURCHASED OR OBTAINED BY YOU THROUGH THE SOFTWARE WILL MEET YOUR EXPECTATIONS, OR THAT ANY ERRORS IN THE SOFTWARE WILL BE CORRECTED. + +Limitation of Liability +YOU EXPRESSLY UNDERSTAND AND AGREE THAT TEALIUM WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA OR OTHER INTANGIBLE LOSSES (EVEN IF TEALIUM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES), INCLUDING ANY SUCH DAMAGES RESULTING FROM THE USE OR THE INABILITY TO USE THE SOFTWARE; THE COST OF PROCUREMENT OF SUBSTITUTE GOODS AND SERVICES RESULTING FROM ANY GOODS, DATA, INFORMATION OR SERVICES PURCHASED OR OBTAINED OR MESSAGES RECEIVED OR TRANSACTIONS ENTERED INTO THROUGH OR FROM THE SOFTWARE; UNAUTHORIZED ACCESS TO OR ALTERATION OF YOUR TRANSMISSIONS OR DATA; STATEMENTS OR CONDUCT OF ANY THIRD PARTY ON THE SOFTWARE; TERMINATION OF YOUR ACCOUNT; OR ANY OTHER MATTER RELATING TO THE SOFTWARE. + +NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, TEALIUM’S LIABILITY TO YOU FOR ANY DAMAGES ARISING FROM OR RELATING TO THE SOFTWARE (FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION) WILL AT ALL TIMES BE LIMITED TO THE GREATER OR EITHER (1) THE AMOUNT YOU PAID TO TEALIUM IN THE SIX (6) MONTHS IMMEDIATELY PRECEDING THE INCIDENT GIVING RISE TO THE CLAIM OR (2) ONE HUNDRED FIFTY DOLLARS (USD 150.00). + +Cancellation and Termination +Tealium, in its sole discretion, may terminate your license, for any reason at any time. +You, in your sole discretion, may terminate this Agreement immediately upon written notice to Tealium. +Upon termination or expiration of this Agreement, You will immediately cease use of and destroy the original and all copies of the Software in Your possession or control. Upon Tealium's written request, You will confirm to Tealium in writing that You have complied with all provisions of this Agreement. +Either party may terminate this Agreement upon written notice to the other party, for any material breach by the other party, if such breach is not cured within thirty (30) days after the non-breaching party provides the allegedly breaching party with written notice of such breach. + +Miscellaneous +This Agreement will be governed by the laws of the State of California without giving effect to any conflicts of laws principles that may require the application of the law of a different jurisdiction. For any dispute or proceeding arising from or relating to this Agreement, You agree to submit to the jurisdiction of, and agree that venue is proper in, the state courts located in San Diego County, California, and in the federal courts located in the Southern District of California. The failure of Tealium to exercise or enforce any right or provision of this Agreement will not constitute a waiver of such right or provision. This Agreement constitutes the entire agreement between You and Tealium and governs Your use of the Service, superseding any prior agreements between You and Tealium (including, but not limited to, any prior versions of the Agreement). \ No newline at end of file diff --git a/remotecommands/tealium-react-braze/android/build.gradle b/remotecommands/tealium-react-braze/android/build.gradle index 52e2bfc8e..a5bdfddfe 100644 --- a/remotecommands/tealium-react-braze/android/build.gradle +++ b/remotecommands/tealium-react-braze/android/build.gradle @@ -40,7 +40,7 @@ buildscript { } } -version = "1.0.3" +version = "1.1.0" android { compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION) buildToolsVersion safeExtGet('buildToolsVersion', DEFAULT_BUILD_TOOLS_VERSION) @@ -74,7 +74,6 @@ repositories { maven { url "https://maven.tealiumiq.com/android/releases/" } - maven { url "https://appboy.github.io/appboy-android-sdk/sdk" } google() mavenCentral() } @@ -84,7 +83,6 @@ dependencies { implementation project(':tealium-react-native') implementation 'com.facebook.react:react-native:+' // From node_modules - implementation 'com.tealium:remotecommands:1.0.0' - implementation 'com.tealium.remotecommands:braze:1.1.1' - implementation 'com.appboy:android-sdk-ui:13.1.2' + implementation 'com.tealium:remotecommands:1.0.2' + implementation 'com.tealium.remotecommands:braze:3.0.0' } diff --git a/remotecommands/tealium-react-braze/package.json b/remotecommands/tealium-react-braze/package.json index efdf127f0..213072810 100644 --- a/remotecommands/tealium-react-braze/package.json +++ b/remotecommands/tealium-react-braze/package.json @@ -1,7 +1,7 @@ { "name": "tealium-react-braze", "title": "Tealium React Braze", - "version": "1.0.4", + "version": "1.1.0", "description": "Package to support the Tealium Braze Remote Command integration", "main": "index.js", "files": [ @@ -29,7 +29,7 @@ "Tyler Rister", "James Keith" ], - "license": "MIT", + "license": "Commercial", "licenseFilename": "LICENSE", "readmeFilename": "README.md", "peerDependencies": { diff --git a/remotecommands/tealium-react-braze/tealium-react-braze.podspec b/remotecommands/tealium-react-braze/tealium-react-braze.podspec index a722362f5..107f4da6a 100644 --- a/remotecommands/tealium-react-braze/tealium-react-braze.podspec +++ b/remotecommands/tealium-react-braze/tealium-react-braze.podspec @@ -12,21 +12,18 @@ Pod::Spec.new do |s| tealium-react-braze DESC s.homepage = "https://github.com/Tealium/tealium-react-native/remotecommands/tealium-react-braze" - # brief license entry: - s.license = "MIT" - # optional - use expanded license entry instead: - # s.license = { :type => "MIT", :file => "LICENSE" } + s.license = { :type => "Commercial", :file => "LICENSE" } s.authors = { "Tyler Rister" => "tyler.rister@tealium.com" } - s.platforms = { :ios => "11.0" } - s.source = { :git => "https://github.com/tealium-react-native.git", :tag => "#{s.version}" } + s.platforms = { :ios => "12.0" } + s.source = { :git => "https://github.com/Tealium/tealium-react-native.git", :tag => "#{s.version}" } s.source_files = "ios/**/*.{h,c,cc,cpp,m,mm,swift}" s.requires_arc = true s.dependency "React" - s.dependency "tealium-react-native", "~> 2.2" - s.dependency "tealium-react-native-swift", "~> 2.2" - s.dependency "tealium-swift/Core", "~> 2.6" - s.dependency "TealiumBraze", "~> 3.0" + s.dependency "tealium-react-native", "~> 2.4" + s.dependency "tealium-react-native-swift", "~> 2.4" + s.dependency "tealium-swift/Core", "~> 2.12" + s.dependency "TealiumBraze", "~> 3.2" end diff --git a/remotecommands/tealium-react-firebase/LICENSE b/remotecommands/tealium-react-firebase/LICENSE new file mode 100644 index 000000000..f6f2da35e --- /dev/null +++ b/remotecommands/tealium-react-firebase/LICENSE @@ -0,0 +1,41 @@ +License Agreement + +Thank You for Your interest in our Tealium React Native Library (the "Software"), owned and licensed by Tealium Inc. (“Tealium,” "Our," “We,” or “Us”). Please read this license agreement (the "Agreement") carefully, as it contains the terms and conditions that govern Your use of and access to the Software. + +You may not access the Software if You are Our direct competitor, except with Our prior written consent. In addition, You may not access the Software for purposes of monitoring the availability, performance, or functionality, of any of our products and services or for any other benchmarking or competitive purposes. + +BY DOWNLOADING THE SOFTWARE OR BY EXECUTING A TEALIUM PROVIDED ORDER FORM THAT REFERENCES THIS AGREEMENT, YOU AGREE TO BE BOUND BY AND COMPLY WITH THIS AGREEMENT. IF YOU ARE ENTERING INTO THIS AGREEMENT ON BEHALF OF A COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT THAT YOU HAVE THE AUTHORITY TO BIND SUCH ENTITY AND ITS AFFILIATES TO THIS AGREEMENT, IN WHICH CASE THE TERMS "YOU" OR "YOUR" WILL REFER TO SUCH ENTITY AND ITS AFFILIATES. IF YOU DO NOT HAVE SUCH AUTHORITY, OR IF YOU DO NOT AGREE WITH THE TERMS OF THIS AGREEMENT, YOU MUST NOT USE THE SOFTWARE. + +The term of Your license to use the Software (the "Term") will begin when You accept this Agreement as set forth above and will continue until terminated pursuant to the provisions of the "Cancellation and Termination" section below. During the Term, We grant You a non-exclusive, non-transferable, royalty-free, limited license (with no right to sublicense) to use the Software to do the following: + +develop software applications and functionality designed to be used in conjunction with Tealium's products and services; +conduct quality assurance testing to ensure compatibility between your software application and Tealium's products and services; and +conduct support testing to troubleshoot compatibility between your software application and Tealium's products and services. + +During the Term, Tealium further grants to You a non-exclusive, non-transferable, royalty-free, limited world-wide license (with no right to sublicense) to market, reproduce, and distribute applications incorporating the integration You develop under this Agreement, either directly or through multiple levels of distributors, Your end users, but only under an end-user license agreement with terms that are as protective of Tealium's rights as this Agreement. + +We do not grant any other rights to the Software. You may only use the Software during the Term, we reserve all rights not expressly granted under this Agreement, and there are no implied rights or other rights We grant hereunder, whether by estoppel or otherwise. You may not: (i) copy or reproduce the Software (except for reasonable archival purposes); (ii) modify or create any derivative works of the Software; (iii) decompile, disassemble, or reverse engineer the Software (except to the extent expressly permitted under applicable law); or (iv) remove or alter any trademark, logo, copyright or other proprietary notices, legends, symbols or labels in the Software. Further, You may not use the Software for any illegal or unauthorized purpose. + +Tealium will retain all title, ownership, and Intellectual Property Rights in the Software and any derivative works thereof. “Intellectual Property Rights” will mean all patent, copyright, trade secret, trademark and other proprietary and intellectual property rights, including moral rights. The Software is protected by copyright and other intellectual property laws and by international treaties. You agree that We will own all suggestions, enhancements requests, feedback, recommendations, or other input provided by You or any other party relating to the Software. Other than the use licenses expressly granted in this Agreement, neither this Agreement nor its performance transfers from Us to You any Tealium intellectual property. + +General Conditions and Restrictions +Your use of the Software is at Your sole risk. +You agree that Tealium is under no obligation to provide You with support for the Software, or to provide You with updates or error corrections ("Updates") to the Software. If Tealium, at its sole discretion, decides to provide You with Updates, Updates will be considered part of Software, and subject to the terms of this Agreement. +You agree not to reproduce, duplicate, copy, sell, resell, or exploit any portion or feature of the Software or access to the Software without express written permission from Tealium. + +No Warranty +THE SOFTWARE IS PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS, AND TEALIUM EXPRESSLY DISCLAIMS ANY WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, QUIET ENJOYMENT, ACCURACY, OR NON-INFRINGEMENT. WITHOUT LIMITING THE FOREGOING, TEALIUM DOES NOT WARRANT THAT THE SERVICE WILL MEET YOUR SPECIFIC REQUIREMENTS, THAT THE SERVICE WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR-FREE, THAT THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE SOFTWARE WILL BE COMPLETE, ACCURATE, OR RELIABLE, THAT THE QUALITY OF ANY PRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL PURCHASED OR OBTAINED BY YOU THROUGH THE SOFTWARE WILL MEET YOUR EXPECTATIONS, OR THAT ANY ERRORS IN THE SOFTWARE WILL BE CORRECTED. + +Limitation of Liability +YOU EXPRESSLY UNDERSTAND AND AGREE THAT TEALIUM WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA OR OTHER INTANGIBLE LOSSES (EVEN IF TEALIUM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES), INCLUDING ANY SUCH DAMAGES RESULTING FROM THE USE OR THE INABILITY TO USE THE SOFTWARE; THE COST OF PROCUREMENT OF SUBSTITUTE GOODS AND SERVICES RESULTING FROM ANY GOODS, DATA, INFORMATION OR SERVICES PURCHASED OR OBTAINED OR MESSAGES RECEIVED OR TRANSACTIONS ENTERED INTO THROUGH OR FROM THE SOFTWARE; UNAUTHORIZED ACCESS TO OR ALTERATION OF YOUR TRANSMISSIONS OR DATA; STATEMENTS OR CONDUCT OF ANY THIRD PARTY ON THE SOFTWARE; TERMINATION OF YOUR ACCOUNT; OR ANY OTHER MATTER RELATING TO THE SOFTWARE. + +NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, TEALIUM’S LIABILITY TO YOU FOR ANY DAMAGES ARISING FROM OR RELATING TO THE SOFTWARE (FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION) WILL AT ALL TIMES BE LIMITED TO THE GREATER OR EITHER (1) THE AMOUNT YOU PAID TO TEALIUM IN THE SIX (6) MONTHS IMMEDIATELY PRECEDING THE INCIDENT GIVING RISE TO THE CLAIM OR (2) ONE HUNDRED FIFTY DOLLARS (USD 150.00). + +Cancellation and Termination +Tealium, in its sole discretion, may terminate your license, for any reason at any time. +You, in your sole discretion, may terminate this Agreement immediately upon written notice to Tealium. +Upon termination or expiration of this Agreement, You will immediately cease use of and destroy the original and all copies of the Software in Your possession or control. Upon Tealium's written request, You will confirm to Tealium in writing that You have complied with all provisions of this Agreement. +Either party may terminate this Agreement upon written notice to the other party, for any material breach by the other party, if such breach is not cured within thirty (30) days after the non-breaching party provides the allegedly breaching party with written notice of such breach. + +Miscellaneous +This Agreement will be governed by the laws of the State of California without giving effect to any conflicts of laws principles that may require the application of the law of a different jurisdiction. For any dispute or proceeding arising from or relating to this Agreement, You agree to submit to the jurisdiction of, and agree that venue is proper in, the state courts located in San Diego County, California, and in the federal courts located in the Southern District of California. The failure of Tealium to exercise or enforce any right or provision of this Agreement will not constitute a waiver of such right or provision. This Agreement constitutes the entire agreement between You and Tealium and governs Your use of the Service, superseding any prior agreements between You and Tealium (including, but not limited to, any prior versions of the Agreement). \ No newline at end of file diff --git a/remotecommands/tealium-react-firebase/android/build.gradle b/remotecommands/tealium-react-firebase/android/build.gradle index 436ee197c..7ad302a94 100644 --- a/remotecommands/tealium-react-firebase/android/build.gradle +++ b/remotecommands/tealium-react-firebase/android/build.gradle @@ -40,7 +40,7 @@ buildscript { } } -version = "1.0.4" +version = "1.1.0" android { compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION) buildToolsVersion safeExtGet('buildToolsVersion', DEFAULT_BUILD_TOOLS_VERSION) @@ -83,10 +83,10 @@ dependencies { implementation 'com.facebook.react:react-native:+' // From node_modules implementation project(":tealium-react-native") - implementation 'com.tealium.remotecommands:firebase:1.3.0' - implementation 'com.tealium:remotecommands:1.0.1' + implementation 'com.tealium.remotecommands:firebase:1.5.0' + implementation 'com.tealium:remotecommands:1.0.2' - implementation 'com.google.firebase:firebase-analytics:21.2.0' + implementation 'com.google.firebase:firebase-analytics:21.5.1' implementation 'com.google.firebase:firebase-iid:21.1.0' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${project.ext.kotlinVersion}" diff --git a/remotecommands/tealium-react-firebase/package.json b/remotecommands/tealium-react-firebase/package.json index e60f6dc3d..71f59918e 100644 --- a/remotecommands/tealium-react-firebase/package.json +++ b/remotecommands/tealium-react-firebase/package.json @@ -1,7 +1,7 @@ { "name": "tealium-react-firebase", "title": "Tealium React Firebase", - "version": "1.0.5", + "version": "1.1.0", "description": "Package to support the Tealium Firebase Remote Command integration", "main": "index.js", "files": [ @@ -30,7 +30,7 @@ "James Keith", "Christina Sund" ], - "license": "MIT", + "license": "Commercial", "licenseFilename": "LICENSE", "readmeFilename": "README.md", "peerDependencies": { diff --git a/remotecommands/tealium-react-firebase/tealium-react-firebase.podspec b/remotecommands/tealium-react-firebase/tealium-react-firebase.podspec index 4a57ea34e..f81ceeacf 100644 --- a/remotecommands/tealium-react-firebase/tealium-react-firebase.podspec +++ b/remotecommands/tealium-react-firebase/tealium-react-firebase.podspec @@ -9,23 +9,20 @@ Pod::Spec.new do |s| s.description = <<-DESC tealium-react-firebase DESC - s.homepage = "https://github.com/github_account/tealium-react-firebase" - # brief license entry: - s.license = "MIT" - # optional - use expanded license entry instead: - # s.license = { :type => "MIT", :file => "LICENSE" } + s.homepage = "https://github.com/Tealium/tealium-react-native/remotecommands/tealium-react-firebase" + s.license = { :type => "Commercial", :file => "LICENSE" } s.authors = { "Your Name" => "yourname@email.com" } - s.platforms = { :ios => "11.0" } - s.source = { :git => "https://github.com/github_account/tealium-react-firebase.git", :tag => "#{s.version}" } + s.platforms = { :ios => "12.0" } + s.source = { :git => "https://github.com/Tealium/tealium-react-native.git", :tag => "#{s.version}" } s.source_files = "ios/**/*.{h,c,m,swift}" s.requires_arc = true s.static_framework = true s.dependency "React-Core" - s.dependency "tealium-react-native", "~> 2.2" - s.dependency "tealium-react-native-swift", "~> 2.2" - s.dependency "tealium-swift/Core", "~> 2.8" - s.dependency "TealiumFirebase", "~> 3.0" + s.dependency "tealium-react-native", "~> 2.4" + s.dependency "tealium-react-native-swift", "~> 2.4" + s.dependency "tealium-swift/Core", "~> 2.12" + s.dependency "TealiumFirebase", "~> 3.2" end