react-native-nitro-amplitude 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.watchmanconfig +6 -0
- package/LICENSE +21 -0
- package/README.md +139 -0
- package/android/CMakeLists.txt +34 -0
- package/android/build.gradle +85 -0
- package/android/consumer-rules.pro +35 -0
- package/android/gradle.properties +4 -0
- package/android/src/main/cpp/AndroidAmplitudeAdapterCpp.cpp +126 -0
- package/android/src/main/cpp/AndroidAmplitudeAdapterCpp.hpp +48 -0
- package/android/src/main/cpp/cpp-adapter.cpp +9 -0
- package/android/src/main/java/com/nitroamplitude/AndroidAmplitudeAdapter.kt +147 -0
- package/android/src/main/java/com/nitroamplitude/NitroAmplitudePackage.kt +24 -0
- package/app.plugin.js +36 -0
- package/cpp/bindings/HybridAmplitudeContext.cpp +83 -0
- package/cpp/bindings/HybridAmplitudeContext.hpp +29 -0
- package/cpp/bindings/HybridAmplitudeStorage.cpp +163 -0
- package/cpp/bindings/HybridAmplitudeStorage.hpp +38 -0
- package/cpp/bindings/HybridAmplitudeWorker.cpp +162 -0
- package/cpp/bindings/HybridAmplitudeWorker.hpp +74 -0
- package/cpp/core/NativeAmplitudeAdapter.hpp +44 -0
- package/ios/IOSAmplitudeAdapterCpp.hpp +37 -0
- package/ios/IOSAmplitudeAdapterCpp.mm +155 -0
- package/lib/commonjs/AmplitudeContext.nitro.js +6 -0
- package/lib/commonjs/AmplitudeContext.nitro.js.map +1 -0
- package/lib/commonjs/AmplitudeStorage.nitro.js +6 -0
- package/lib/commonjs/AmplitudeStorage.nitro.js.map +1 -0
- package/lib/commonjs/AmplitudeWorker.nitro.js +6 -0
- package/lib/commonjs/AmplitudeWorker.nitro.js.map +1 -0
- package/lib/commonjs/analytics/campaign/campaign-tracker.js +105 -0
- package/lib/commonjs/analytics/campaign/campaign-tracker.js.map +1 -0
- package/lib/commonjs/analytics/campaign/types.js +6 -0
- package/lib/commonjs/analytics/campaign/types.js.map +1 -0
- package/lib/commonjs/analytics/config.js +283 -0
- package/lib/commonjs/analytics/config.js.map +1 -0
- package/lib/commonjs/analytics/cookie-migration/index.js +59 -0
- package/lib/commonjs/analytics/cookie-migration/index.js.map +1 -0
- package/lib/commonjs/analytics/index.js +95 -0
- package/lib/commonjs/analytics/index.js.map +1 -0
- package/lib/commonjs/analytics/migration/remnant-data-migration.js +177 -0
- package/lib/commonjs/analytics/migration/remnant-data-migration.js.map +1 -0
- package/lib/commonjs/analytics/nitro-transport.js +31 -0
- package/lib/commonjs/analytics/nitro-transport.js.map +1 -0
- package/lib/commonjs/analytics/plugins/context.js +140 -0
- package/lib/commonjs/analytics/plugins/context.js.map +1 -0
- package/lib/commonjs/analytics/react-native-client.js +352 -0
- package/lib/commonjs/analytics/react-native-client.js.map +1 -0
- package/lib/commonjs/analytics/storage/local-storage.js +73 -0
- package/lib/commonjs/analytics/storage/local-storage.js.map +1 -0
- package/lib/commonjs/analytics/types.js +175 -0
- package/lib/commonjs/analytics/types.js.map +1 -0
- package/lib/commonjs/analytics/typings/browser-snippet.d.js +6 -0
- package/lib/commonjs/analytics/typings/browser-snippet.d.js.map +1 -0
- package/lib/commonjs/analytics/typings/ua-parser.d.js +2 -0
- package/lib/commonjs/analytics/typings/ua-parser.d.js.map +1 -0
- package/lib/commonjs/analytics/utils/platform.js +16 -0
- package/lib/commonjs/analytics/utils/platform.js.map +1 -0
- package/lib/commonjs/analytics/version.js +8 -0
- package/lib/commonjs/analytics/version.js.map +1 -0
- package/lib/commonjs/experiment/experimentClient.js +792 -0
- package/lib/commonjs/experiment/experimentClient.js.map +1 -0
- package/lib/commonjs/experiment/factory.js +77 -0
- package/lib/commonjs/experiment/factory.js.map +1 -0
- package/lib/commonjs/experiment/gen/version.js +9 -0
- package/lib/commonjs/experiment/gen/version.js.map +1 -0
- package/lib/commonjs/experiment/index.js +143 -0
- package/lib/commonjs/experiment/index.js.map +1 -0
- package/lib/commonjs/experiment/integration/NativeExperimentReactNativeClient.js +11 -0
- package/lib/commonjs/experiment/integration/NativeExperimentReactNativeClient.js.map +1 -0
- package/lib/commonjs/experiment/integration/connector.js +67 -0
- package/lib/commonjs/experiment/integration/connector.js.map +1 -0
- package/lib/commonjs/experiment/integration/default.js +92 -0
- package/lib/commonjs/experiment/integration/default.js.map +1 -0
- package/lib/commonjs/experiment/logger/ampLogger.js +80 -0
- package/lib/commonjs/experiment/logger/ampLogger.js.map +1 -0
- package/lib/commonjs/experiment/logger/consoleLogger.js +60 -0
- package/lib/commonjs/experiment/logger/consoleLogger.js.map +1 -0
- package/lib/commonjs/experiment/storage/cache.js +197 -0
- package/lib/commonjs/experiment/storage/cache.js.map +1 -0
- package/lib/commonjs/experiment/storage/local-storage.js +25 -0
- package/lib/commonjs/experiment/storage/local-storage.js.map +1 -0
- package/lib/commonjs/experiment/stubClient.js +46 -0
- package/lib/commonjs/experiment/stubClient.js.map +1 -0
- package/lib/commonjs/experiment/transport/http.js +72 -0
- package/lib/commonjs/experiment/transport/http.js.map +1 -0
- package/lib/commonjs/experiment/types/client.js +6 -0
- package/lib/commonjs/experiment/types/client.js.map +1 -0
- package/lib/commonjs/experiment/types/config.js +67 -0
- package/lib/commonjs/experiment/types/config.js.map +1 -0
- package/lib/commonjs/experiment/types/exposure.js +2 -0
- package/lib/commonjs/experiment/types/exposure.js.map +1 -0
- package/lib/commonjs/experiment/types/logger.js +42 -0
- package/lib/commonjs/experiment/types/logger.js.map +1 -0
- package/lib/commonjs/experiment/types/source.js +54 -0
- package/lib/commonjs/experiment/types/source.js.map +1 -0
- package/lib/commonjs/experiment/types/storage.js +2 -0
- package/lib/commonjs/experiment/types/storage.js.map +1 -0
- package/lib/commonjs/experiment/types/transport.js +2 -0
- package/lib/commonjs/experiment/types/transport.js.map +1 -0
- package/lib/commonjs/experiment/types/user.js +2 -0
- package/lib/commonjs/experiment/types/user.js.map +1 -0
- package/lib/commonjs/experiment/types/variant.js +2 -0
- package/lib/commonjs/experiment/types/variant.js.map +1 -0
- package/lib/commonjs/experiment/util/backoff.js +54 -0
- package/lib/commonjs/experiment/util/backoff.js.map +1 -0
- package/lib/commonjs/experiment/util/base64.js +23 -0
- package/lib/commonjs/experiment/util/base64.js.map +1 -0
- package/lib/commonjs/experiment/util/convert.js +78 -0
- package/lib/commonjs/experiment/util/convert.js.map +1 -0
- package/lib/commonjs/experiment/util/index.js +25 -0
- package/lib/commonjs/experiment/util/index.js.map +1 -0
- package/lib/commonjs/experiment/util/platform.js +16 -0
- package/lib/commonjs/experiment/util/platform.js.map +1 -0
- package/lib/commonjs/experiment/util/randomstring.js +16 -0
- package/lib/commonjs/experiment/util/randomstring.js.map +1 -0
- package/lib/commonjs/experiment/util/userSessionExposureTracker.js +40 -0
- package/lib/commonjs/experiment/util/userSessionExposureTracker.js.map +1 -0
- package/lib/commonjs/index.js +298 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/index.web.js +22 -0
- package/lib/commonjs/index.web.js.map +1 -0
- package/lib/commonjs/native/context.js +43 -0
- package/lib/commonjs/native/context.js.map +1 -0
- package/lib/commonjs/native/http.js +62 -0
- package/lib/commonjs/native/http.js.map +1 -0
- package/lib/commonjs/native/hybrid.js +31 -0
- package/lib/commonjs/native/hybrid.js.map +1 -0
- package/lib/commonjs/native/storage.js +93 -0
- package/lib/commonjs/native/storage.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/module/AmplitudeContext.nitro.js +4 -0
- package/lib/module/AmplitudeContext.nitro.js.map +1 -0
- package/lib/module/AmplitudeStorage.nitro.js +4 -0
- package/lib/module/AmplitudeStorage.nitro.js.map +1 -0
- package/lib/module/AmplitudeWorker.nitro.js +4 -0
- package/lib/module/AmplitudeWorker.nitro.js.map +1 -0
- package/lib/module/analytics/campaign/campaign-tracker.js +100 -0
- package/lib/module/analytics/campaign/campaign-tracker.js.map +1 -0
- package/lib/module/analytics/campaign/types.js +4 -0
- package/lib/module/analytics/campaign/types.js.map +1 -0
- package/lib/module/analytics/config.js +272 -0
- package/lib/module/analytics/config.js.map +1 -0
- package/lib/module/analytics/cookie-migration/index.js +51 -0
- package/lib/module/analytics/cookie-migration/index.js.map +1 -0
- package/lib/module/analytics/index.js +34 -0
- package/lib/module/analytics/index.js.map +1 -0
- package/lib/module/analytics/migration/remnant-data-migration.js +172 -0
- package/lib/module/analytics/migration/remnant-data-migration.js.map +1 -0
- package/lib/module/analytics/nitro-transport.js +26 -0
- package/lib/module/analytics/nitro-transport.js.map +1 -0
- package/lib/module/analytics/plugins/context.js +134 -0
- package/lib/module/analytics/plugins/context.js.map +1 -0
- package/lib/module/analytics/react-native-client.js +346 -0
- package/lib/module/analytics/react-native-client.js.map +1 -0
- package/lib/module/analytics/storage/local-storage.js +68 -0
- package/lib/module/analytics/storage/local-storage.js.map +1 -0
- package/lib/module/analytics/types.js +4 -0
- package/lib/module/analytics/types.js.map +1 -0
- package/lib/module/analytics/typings/browser-snippet.d.js +4 -0
- package/lib/module/analytics/typings/browser-snippet.d.js.map +1 -0
- package/lib/module/analytics/typings/ua-parser.d.js +2 -0
- package/lib/module/analytics/typings/ua-parser.d.js.map +1 -0
- package/lib/module/analytics/utils/platform.js +10 -0
- package/lib/module/analytics/utils/platform.js.map +1 -0
- package/lib/module/analytics/version.js +4 -0
- package/lib/module/analytics/version.js.map +1 -0
- package/lib/module/experiment/experimentClient.js +788 -0
- package/lib/module/experiment/experimentClient.js.map +1 -0
- package/lib/module/experiment/factory.js +73 -0
- package/lib/module/experiment/factory.js.map +1 -0
- package/lib/module/experiment/gen/version.js +5 -0
- package/lib/module/experiment/gen/version.js.map +1 -0
- package/lib/module/experiment/index.js +16 -0
- package/lib/module/experiment/index.js.map +1 -0
- package/lib/module/experiment/integration/NativeExperimentReactNativeClient.js +7 -0
- package/lib/module/experiment/integration/NativeExperimentReactNativeClient.js.map +1 -0
- package/lib/module/experiment/integration/connector.js +61 -0
- package/lib/module/experiment/integration/connector.js.map +1 -0
- package/lib/module/experiment/integration/default.js +87 -0
- package/lib/module/experiment/integration/default.js.map +1 -0
- package/lib/module/experiment/logger/ampLogger.js +76 -0
- package/lib/module/experiment/logger/ampLogger.js.map +1 -0
- package/lib/module/experiment/logger/consoleLogger.js +55 -0
- package/lib/module/experiment/logger/consoleLogger.js.map +1 -0
- package/lib/module/experiment/storage/cache.js +187 -0
- package/lib/module/experiment/storage/cache.js.map +1 -0
- package/lib/module/experiment/storage/local-storage.js +19 -0
- package/lib/module/experiment/storage/local-storage.js.map +1 -0
- package/lib/module/experiment/stubClient.js +41 -0
- package/lib/module/experiment/stubClient.js.map +1 -0
- package/lib/module/experiment/transport/http.js +66 -0
- package/lib/module/experiment/transport/http.js.map +1 -0
- package/lib/module/experiment/types/client.js +4 -0
- package/lib/module/experiment/types/client.js.map +1 -0
- package/lib/module/experiment/types/config.js +64 -0
- package/lib/module/experiment/types/config.js.map +1 -0
- package/lib/module/experiment/types/exposure.js +2 -0
- package/lib/module/experiment/types/exposure.js.map +1 -0
- package/lib/module/experiment/types/logger.js +39 -0
- package/lib/module/experiment/types/logger.js.map +1 -0
- package/lib/module/experiment/types/source.js +51 -0
- package/lib/module/experiment/types/source.js.map +1 -0
- package/lib/module/experiment/types/storage.js +2 -0
- package/lib/module/experiment/types/storage.js.map +1 -0
- package/lib/module/experiment/types/transport.js +2 -0
- package/lib/module/experiment/types/transport.js.map +1 -0
- package/lib/module/experiment/types/user.js +2 -0
- package/lib/module/experiment/types/user.js.map +1 -0
- package/lib/module/experiment/types/variant.js +2 -0
- package/lib/module/experiment/types/variant.js.map +1 -0
- package/lib/module/experiment/util/backoff.js +49 -0
- package/lib/module/experiment/util/backoff.js.map +1 -0
- package/lib/module/experiment/util/base64.js +16 -0
- package/lib/module/experiment/util/base64.js.map +1 -0
- package/lib/module/experiment/util/convert.js +71 -0
- package/lib/module/experiment/util/convert.js.map +1 -0
- package/lib/module/experiment/util/index.js +17 -0
- package/lib/module/experiment/util/index.js.map +1 -0
- package/lib/module/experiment/util/platform.js +10 -0
- package/lib/module/experiment/util/platform.js.map +1 -0
- package/lib/module/experiment/util/randomstring.js +11 -0
- package/lib/module/experiment/util/randomstring.js.map +1 -0
- package/lib/module/experiment/util/userSessionExposureTracker.js +35 -0
- package/lib/module/experiment/util/userSessionExposureTracker.js.map +1 -0
- package/lib/module/index.js +50 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/index.web.js +14 -0
- package/lib/module/index.web.js.map +1 -0
- package/lib/module/native/context.js +35 -0
- package/lib/module/native/context.js.map +1 -0
- package/lib/module/native/http.js +57 -0
- package/lib/module/native/http.js.map +1 -0
- package/lib/module/native/hybrid.js +24 -0
- package/lib/module/native/hybrid.js.map +1 -0
- package/lib/module/native/storage.js +86 -0
- package/lib/module/native/storage.js.map +1 -0
- package/lib/typescript/AmplitudeContext.nitro.d.ts +17 -0
- package/lib/typescript/AmplitudeContext.nitro.d.ts.map +1 -0
- package/lib/typescript/AmplitudeStorage.nitro.d.ts +17 -0
- package/lib/typescript/AmplitudeStorage.nitro.d.ts.map +1 -0
- package/lib/typescript/AmplitudeWorker.nitro.d.ts +11 -0
- package/lib/typescript/AmplitudeWorker.nitro.d.ts.map +1 -0
- package/lib/typescript/analytics/campaign/campaign-tracker.d.ts +85 -0
- package/lib/typescript/analytics/campaign/campaign-tracker.d.ts.map +1 -0
- package/lib/typescript/analytics/campaign/types.d.ts +11 -0
- package/lib/typescript/analytics/campaign/types.d.ts.map +1 -0
- package/lib/typescript/analytics/config.d.ts +68 -0
- package/lib/typescript/analytics/config.d.ts.map +1 -0
- package/lib/typescript/analytics/cookie-migration/index.d.ts +6 -0
- package/lib/typescript/analytics/cookie-migration/index.d.ts.map +1 -0
- package/lib/typescript/analytics/index.d.ts +7 -0
- package/lib/typescript/analytics/index.d.ts.map +1 -0
- package/lib/typescript/analytics/migration/remnant-data-migration.d.ts +20 -0
- package/lib/typescript/analytics/migration/remnant-data-migration.d.ts.map +1 -0
- package/lib/typescript/analytics/nitro-transport.d.ts +9 -0
- package/lib/typescript/analytics/nitro-transport.d.ts.map +1 -0
- package/lib/typescript/analytics/plugins/context.d.ts +14 -0
- package/lib/typescript/analytics/plugins/context.d.ts.map +1 -0
- package/lib/typescript/analytics/react-native-client.d.ts +55 -0
- package/lib/typescript/analytics/react-native-client.d.ts.map +1 -0
- package/lib/typescript/analytics/storage/local-storage.d.ts +14 -0
- package/lib/typescript/analytics/storage/local-storage.d.ts.map +1 -0
- package/lib/typescript/analytics/types.d.ts +2 -0
- package/lib/typescript/analytics/types.d.ts.map +1 -0
- package/lib/typescript/analytics/utils/platform.d.ts +3 -0
- package/lib/typescript/analytics/utils/platform.d.ts.map +1 -0
- package/lib/typescript/analytics/version.d.ts +2 -0
- package/lib/typescript/analytics/version.d.ts.map +1 -0
- package/lib/typescript/experiment/experimentClient.d.ts +234 -0
- package/lib/typescript/experiment/experimentClient.d.ts.map +1 -0
- package/lib/typescript/experiment/factory.d.ts +11 -0
- package/lib/typescript/experiment/factory.d.ts.map +1 -0
- package/lib/typescript/experiment/gen/version.d.ts +2 -0
- package/lib/typescript/experiment/gen/version.d.ts.map +1 -0
- package/lib/typescript/experiment/index.d.ts +15 -0
- package/lib/typescript/experiment/index.d.ts.map +1 -0
- package/lib/typescript/experiment/integration/NativeExperimentReactNativeClient.d.ts +16 -0
- package/lib/typescript/experiment/integration/NativeExperimentReactNativeClient.d.ts.map +1 -0
- package/lib/typescript/experiment/integration/connector.d.ts +16 -0
- package/lib/typescript/experiment/integration/connector.d.ts.map +1 -0
- package/lib/typescript/experiment/integration/default.d.ts +20 -0
- package/lib/typescript/experiment/integration/default.d.ts.map +1 -0
- package/lib/typescript/experiment/logger/ampLogger.d.ts +47 -0
- package/lib/typescript/experiment/logger/ampLogger.d.ts.map +1 -0
- package/lib/typescript/experiment/logger/consoleLogger.d.ts +40 -0
- package/lib/typescript/experiment/logger/consoleLogger.d.ts.map +1 -0
- package/lib/typescript/experiment/storage/cache.d.ts +35 -0
- package/lib/typescript/experiment/storage/cache.d.ts.map +1 -0
- package/lib/typescript/experiment/storage/local-storage.d.ts +11 -0
- package/lib/typescript/experiment/storage/local-storage.d.ts.map +1 -0
- package/lib/typescript/experiment/stubClient.d.ts +21 -0
- package/lib/typescript/experiment/stubClient.d.ts.map +1 -0
- package/lib/typescript/experiment/transport/http.d.ts +17 -0
- package/lib/typescript/experiment/transport/http.d.ts.map +1 -0
- package/lib/typescript/experiment/types/client.d.ts +36 -0
- package/lib/typescript/experiment/types/client.d.ts.map +1 -0
- package/lib/typescript/experiment/types/config.d.ts +164 -0
- package/lib/typescript/experiment/types/config.d.ts.map +1 -0
- package/lib/typescript/experiment/types/exposure.d.ts +107 -0
- package/lib/typescript/experiment/types/exposure.d.ts.map +1 -0
- package/lib/typescript/experiment/types/logger.d.ts +67 -0
- package/lib/typescript/experiment/types/logger.d.ts.map +1 -0
- package/lib/typescript/experiment/types/source.d.ts +43 -0
- package/lib/typescript/experiment/types/source.d.ts.map +1 -0
- package/lib/typescript/experiment/types/storage.d.ts +7 -0
- package/lib/typescript/experiment/types/storage.d.ts.map +1 -0
- package/lib/typescript/experiment/types/transport.d.ts +8 -0
- package/lib/typescript/experiment/types/transport.d.ts.map +1 -0
- package/lib/typescript/experiment/types/user.d.ts +106 -0
- package/lib/typescript/experiment/types/user.d.ts.map +1 -0
- package/lib/typescript/experiment/types/variant.d.ts +33 -0
- package/lib/typescript/experiment/types/variant.d.ts.map +1 -0
- package/lib/typescript/experiment/util/backoff.d.ts +14 -0
- package/lib/typescript/experiment/util/backoff.d.ts.map +1 -0
- package/lib/typescript/experiment/util/base64.d.ts +3 -0
- package/lib/typescript/experiment/util/base64.d.ts.map +1 -0
- package/lib/typescript/experiment/util/convert.d.ts +7 -0
- package/lib/typescript/experiment/util/convert.d.ts.map +1 -0
- package/lib/typescript/experiment/util/index.d.ts +6 -0
- package/lib/typescript/experiment/util/index.d.ts.map +1 -0
- package/lib/typescript/experiment/util/platform.d.ts +3 -0
- package/lib/typescript/experiment/util/platform.d.ts.map +1 -0
- package/lib/typescript/experiment/util/randomstring.d.ts +2 -0
- package/lib/typescript/experiment/util/randomstring.d.ts.map +1 -0
- package/lib/typescript/experiment/util/userSessionExposureTracker.d.ts +16 -0
- package/lib/typescript/experiment/util/userSessionExposureTracker.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +31 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/index.web.d.ts +12 -0
- package/lib/typescript/index.web.d.ts.map +1 -0
- package/lib/typescript/native/context.d.ts +29 -0
- package/lib/typescript/native/context.d.ts.map +1 -0
- package/lib/typescript/native/http.d.ts +6 -0
- package/lib/typescript/native/http.d.ts.map +1 -0
- package/lib/typescript/native/hybrid.d.ts +8 -0
- package/lib/typescript/native/hybrid.d.ts.map +1 -0
- package/lib/typescript/native/storage.d.ts +29 -0
- package/lib/typescript/native/storage.d.ts.map +1 -0
- package/nitro.json +33 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/NitroAmplitude+autolinking.cmake +83 -0
- package/nitrogen/generated/android/NitroAmplitude+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroAmplitudeOnLoad.cpp +69 -0
- package/nitrogen/generated/android/NitroAmplitudeOnLoad.hpp +34 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitroamplitude/NitroAmplitudeOnLoad.kt +35 -0
- package/nitrogen/generated/ios/NitroAmplitude+autolinking.rb +62 -0
- package/nitrogen/generated/ios/NitroAmplitude-Swift-Cxx-Bridge.cpp +17 -0
- package/nitrogen/generated/ios/NitroAmplitude-Swift-Cxx-Bridge.hpp +27 -0
- package/nitrogen/generated/ios/NitroAmplitude-Swift-Cxx-Umbrella.hpp +38 -0
- package/nitrogen/generated/ios/NitroAmplitudeAutolinking.mm +55 -0
- package/nitrogen/generated/ios/NitroAmplitudeAutolinking.swift +16 -0
- package/nitrogen/generated/shared/c++/HybridAmplitudeContextSpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridAmplitudeContextSpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridAmplitudeStorageSpec.cpp +30 -0
- package/nitrogen/generated/shared/c++/HybridAmplitudeStorageSpec.hpp +73 -0
- package/nitrogen/generated/shared/c++/HybridAmplitudeWorkerSpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridAmplitudeWorkerSpec.hpp +66 -0
- package/package.json +130 -0
- package/react-native-nitro-amplitude.podspec +36 -0
- package/src/AmplitudeContext.nitro.ts +21 -0
- package/src/AmplitudeStorage.nitro.ts +17 -0
- package/src/AmplitudeWorker.nitro.ts +25 -0
- package/src/analytics/campaign/campaign-tracker.ts +162 -0
- package/src/analytics/campaign/types.ts +18 -0
- package/src/analytics/config.ts +373 -0
- package/src/analytics/cookie-migration/index.ts +69 -0
- package/src/analytics/index.ts +36 -0
- package/src/analytics/migration/remnant-data-migration.ts +206 -0
- package/src/analytics/nitro-transport.ts +35 -0
- package/src/analytics/plugins/context.ts +166 -0
- package/src/analytics/react-native-client.ts +573 -0
- package/src/analytics/storage/local-storage.ts +76 -0
- package/src/analytics/types.ts +30 -0
- package/src/analytics/typings/browser-snippet.d.ts +7 -0
- package/src/analytics/typings/ua-parser.d.ts +4 -0
- package/src/analytics/utils/platform.ts +9 -0
- package/src/analytics/version.ts +1 -0
- package/src/experiment/experimentClient.ts +987 -0
- package/src/experiment/factory.ts +86 -0
- package/src/experiment/gen/version.ts +2 -0
- package/src/experiment/index.ts +14 -0
- package/src/experiment/integration/NativeExperimentReactNativeClient.ts +25 -0
- package/src/experiment/integration/connector.ts +82 -0
- package/src/experiment/integration/default.ts +107 -0
- package/src/experiment/logger/ampLogger.ts +76 -0
- package/src/experiment/logger/consoleLogger.ts +54 -0
- package/src/experiment/storage/cache.ts +271 -0
- package/src/experiment/storage/local-storage.ts +23 -0
- package/src/experiment/stubClient.ts +61 -0
- package/src/experiment/transport/http.ts +105 -0
- package/src/experiment/types/client.ts +38 -0
- package/src/experiment/types/config.ts +210 -0
- package/src/experiment/types/exposure.ts +107 -0
- package/src/experiment/types/logger.ts +71 -0
- package/src/experiment/types/source.ts +52 -0
- package/src/experiment/types/storage.ts +6 -0
- package/src/experiment/types/transport.ts +14 -0
- package/src/experiment/types/user.ts +132 -0
- package/src/experiment/types/variant.ts +36 -0
- package/src/experiment/util/backoff.ts +67 -0
- package/src/experiment/util/base64.ts +20 -0
- package/src/experiment/util/convert.ts +78 -0
- package/src/experiment/util/index.ts +23 -0
- package/src/experiment/util/platform.ts +9 -0
- package/src/experiment/util/randomstring.ts +12 -0
- package/src/experiment/util/userSessionExposureTracker.ts +47 -0
- package/src/index.ts +66 -0
- package/src/index.web.ts +19 -0
- package/src/native/context.ts +73 -0
- package/src/native/http.ts +77 -0
- package/src/native/hybrid.ts +32 -0
- package/src/native/storage.ts +107 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { getOldCookieName } from "@amplitude/analytics-core";
|
|
4
|
+
import { createCookieStorage, getDefaultConfig, getTopLevelDomain } from "../config";
|
|
5
|
+
export const parseOldCookies = async (apiKey, options) => {
|
|
6
|
+
const disableCookies = options?.disableCookies ?? getDefaultConfig().disableCookies;
|
|
7
|
+
const storage = await createCookieStorage({
|
|
8
|
+
...options,
|
|
9
|
+
disableCookies,
|
|
10
|
+
domain: disableCookies ? "" : options?.domain ?? (await getTopLevelDomain())
|
|
11
|
+
});
|
|
12
|
+
const oldCookieName = getOldCookieName(apiKey);
|
|
13
|
+
const cookies = await storage.getRaw(oldCookieName);
|
|
14
|
+
if (!cookies) {
|
|
15
|
+
return {
|
|
16
|
+
optOut: false
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
if (options?.cookieUpgrade ?? getDefaultConfig().cookieUpgrade) {
|
|
20
|
+
await storage.remove(oldCookieName);
|
|
21
|
+
}
|
|
22
|
+
const [deviceId, userId, optOut, sessionId, lastEventTime] = cookies.split(".");
|
|
23
|
+
return {
|
|
24
|
+
deviceId,
|
|
25
|
+
userId: decode(userId ?? ""),
|
|
26
|
+
sessionId: parseTime(sessionId),
|
|
27
|
+
lastEventTime: parseTime(lastEventTime),
|
|
28
|
+
optOut: parseOptOut(optOut)
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export const parseTime = num => {
|
|
32
|
+
const integer = parseInt(num, 32);
|
|
33
|
+
if (isNaN(integer)) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
return integer;
|
|
37
|
+
};
|
|
38
|
+
export const decode = value => {
|
|
39
|
+
if (typeof atob !== "function" || typeof escape !== "function" || !value) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
return decodeURIComponent(escape(atob(value)));
|
|
44
|
+
} catch {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
export const parseOptOut = value => {
|
|
49
|
+
return value === "1" || value === "true";
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getOldCookieName","createCookieStorage","getDefaultConfig","getTopLevelDomain","parseOldCookies","apiKey","options","disableCookies","storage","domain","oldCookieName","cookies","getRaw","optOut","cookieUpgrade","remove","deviceId","userId","sessionId","lastEventTime","split","decode","parseTime","parseOptOut","num","integer","parseInt","isNaN","undefined","value","atob","escape","decodeURIComponent"],"sourceRoot":"../../../../src","sources":["analytics/cookie-migration/index.ts"],"mappings":";;AAAA,SAGEA,gBAAgB,QACX,2BAA2B;AAClC,SACEC,mBAAmB,EACnBC,gBAAgB,EAChBC,iBAAiB,QACZ,WAAW;AAElB,OAAO,MAAMC,eAAe,GAAG,MAAAA,CAC7BC,MAAc,EACdC,OAA4B,KACH;EACzB,MAAMC,cAAc,GAClBD,OAAO,EAAEC,cAAc,IAAIL,gBAAgB,CAAC,CAAC,CAACK,cAAc;EAC9D,MAAMC,OAAO,GAAG,MAAMP,mBAAmB,CAAS;IAChD,GAAGK,OAAO;IACVC,cAAc;IACdE,MAAM,EAAEF,cAAc,GAClB,EAAE,GACDD,OAAO,EAAEG,MAAM,KAAK,MAAMN,iBAAiB,CAAC,CAAC;EACpD,CAAC,CAAC;EACF,MAAMO,aAAa,GAAGV,gBAAgB,CAACK,MAAM,CAAC;EAC9C,MAAMM,OAAO,GAAG,MAAMH,OAAO,CAACI,MAAM,CAACF,aAAa,CAAC;EAEnD,IAAI,CAACC,OAAO,EAAE;IACZ,OAAO;MACLE,MAAM,EAAE;IACV,CAAC;EACH;EAEA,IAAIP,OAAO,EAAEQ,aAAa,IAAIZ,gBAAgB,CAAC,CAAC,CAACY,aAAa,EAAE;IAC9D,MAAMN,OAAO,CAACO,MAAM,CAACL,aAAa,CAAC;EACrC;EACA,MAAM,CAACM,QAAQ,EAAEC,MAAM,EAAEJ,MAAM,EAAEK,SAAS,EAAEC,aAAa,CAAC,GACxDR,OAAO,CAACS,KAAK,CAAC,GAAG,CAAC;EACpB,OAAO;IACLJ,QAAQ;IACRC,MAAM,EAAEI,MAAM,CAACJ,MAAM,IAAI,EAAE,CAAC;IAC5BC,SAAS,EAAEI,SAAS,CAACJ,SAAS,CAAC;IAC/BC,aAAa,EAAEG,SAAS,CAACH,aAAa,CAAC;IACvCN,MAAM,EAAEU,WAAW,CAACV,MAAM;EAC5B,CAAC;AACH,CAAC;AAED,OAAO,MAAMS,SAAS,GAAIE,GAAW,IAAK;EACxC,MAAMC,OAAO,GAAGC,QAAQ,CAACF,GAAG,EAAE,EAAE,CAAC;EACjC,IAAIG,KAAK,CAACF,OAAO,CAAC,EAAE;IAClB,OAAOG,SAAS;EAClB;EACA,OAAOH,OAAO;AAChB,CAAC;AAED,OAAO,MAAMJ,MAAM,GAAIQ,KAAc,IAAyB;EAC5D,IAAI,OAAOC,IAAI,KAAK,UAAU,IAAI,OAAOC,MAAM,KAAK,UAAU,IAAI,CAACF,KAAK,EAAE;IACxE,OAAOD,SAAS;EAClB;EACA,IAAI;IACF,OAAOI,kBAAkB,CAACD,MAAM,CAACD,IAAI,CAACD,KAAK,CAAC,CAAC,CAAC;EAChD,CAAC,CAAC,MAAM;IACN,OAAOD,SAAS;EAClB;AACF,CAAC;AAED,OAAO,MAAML,WAAW,GAAIM,KAAc,IAAc;EACtD,OAAOA,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,MAAM;AAC1C,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import client from "./react-native-client";
|
|
4
|
+
|
|
5
|
+
// Export types to maintain backward compatibility with `analytics-types`.
|
|
6
|
+
// In the next major version, only export customer-facing types to reduce the public API surface.
|
|
7
|
+
import * as Types from "./types";
|
|
8
|
+
export { createInstance } from "./react-native-client";
|
|
9
|
+
export const {
|
|
10
|
+
add,
|
|
11
|
+
flush,
|
|
12
|
+
getDeviceId,
|
|
13
|
+
getSessionId,
|
|
14
|
+
getUserId,
|
|
15
|
+
groupIdentify,
|
|
16
|
+
identify,
|
|
17
|
+
init,
|
|
18
|
+
logEvent,
|
|
19
|
+
remove,
|
|
20
|
+
reset,
|
|
21
|
+
revenue,
|
|
22
|
+
setDeviceId,
|
|
23
|
+
setGroup,
|
|
24
|
+
setOptOut,
|
|
25
|
+
setSessionId,
|
|
26
|
+
setUserId,
|
|
27
|
+
shutdown,
|
|
28
|
+
track,
|
|
29
|
+
extendSession
|
|
30
|
+
} = client;
|
|
31
|
+
export { Revenue, Identify } from "@amplitude/analytics-core";
|
|
32
|
+
export { InMemoryStorage, LocalStorage, MemoryStorage } from "./storage/local-storage";
|
|
33
|
+
export { Types };
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["client","Types","createInstance","add","flush","getDeviceId","getSessionId","getUserId","groupIdentify","identify","init","logEvent","remove","reset","revenue","setDeviceId","setGroup","setOptOut","setSessionId","setUserId","shutdown","track","extendSession","Revenue","Identify","InMemoryStorage","LocalStorage","MemoryStorage"],"sourceRoot":"../../../src","sources":["analytics/index.ts"],"mappings":";;AAAA,OAAOA,MAAM,MAAM,uBAAuB;;AAE1C;AACA;AACA,OAAO,KAAKC,KAAK,MAAM,SAAS;AAChC,SAASC,cAAc,QAAQ,uBAAuB;AACtD,OAAO,MAAM;EACXC,GAAG;EACHC,KAAK;EACLC,WAAW;EACXC,YAAY;EACZC,SAAS;EACTC,aAAa;EACbC,QAAQ;EACRC,IAAI;EACJC,QAAQ;EACRC,MAAM;EACNC,KAAK;EACLC,OAAO;EACPC,WAAW;EACXC,QAAQ;EACRC,SAAS;EACTC,YAAY;EACZC,SAAS;EACTC,QAAQ;EACRC,KAAK;EACLC;AACF,CAAC,GAAGtB,MAAM;AAEV,SAASuB,OAAO,EAAEC,QAAQ,QAAQ,2BAA2B;AAC7D,SACEC,eAAe,EACfC,YAAY,EACZC,aAAa,QACR,yBAAyB;AAChC,SAAS1B,KAAK","ignoreList":[]}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { STORAGE_PREFIX } from "@amplitude/analytics-core";
|
|
4
|
+
import { getLegacyEvents, getLegacySessionData, removeLegacyEvent } from "../../native/context";
|
|
5
|
+
export default class RemnantDataMigration {
|
|
6
|
+
constructor(apiKey, instanceName, storage, firstRunSinceUpgrade, logger) {
|
|
7
|
+
this.apiKey = apiKey;
|
|
8
|
+
this.instanceName = instanceName;
|
|
9
|
+
this.storage = storage;
|
|
10
|
+
this.firstRunSinceUpgrade = firstRunSinceUpgrade;
|
|
11
|
+
this.logger = logger;
|
|
12
|
+
this.eventsStorageKey = `${STORAGE_PREFIX}_${this.apiKey.substring(0, 10)}`;
|
|
13
|
+
}
|
|
14
|
+
async execute() {
|
|
15
|
+
if (this.firstRunSinceUpgrade) {
|
|
16
|
+
await this.moveIdentifies();
|
|
17
|
+
await this.moveInterceptedIdentifies();
|
|
18
|
+
}
|
|
19
|
+
await this.moveEvents();
|
|
20
|
+
return this.callNativeFunction(() => Promise.resolve(getLegacySessionData(this.instanceName ?? ""))).then(sessionData => sessionData ?? {});
|
|
21
|
+
}
|
|
22
|
+
async moveEvents() {
|
|
23
|
+
await this.moveLegacyEvents("event");
|
|
24
|
+
}
|
|
25
|
+
async moveIdentifies() {
|
|
26
|
+
await this.moveLegacyEvents("identify");
|
|
27
|
+
}
|
|
28
|
+
async moveInterceptedIdentifies() {
|
|
29
|
+
await this.moveLegacyEvents("interceptedIdentify");
|
|
30
|
+
}
|
|
31
|
+
async callNativeFunction(action) {
|
|
32
|
+
try {
|
|
33
|
+
return await action();
|
|
34
|
+
} catch (e) {
|
|
35
|
+
this.logger?.error(`can't call native function: ${String(e)}`);
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
callNativeAction(action) {
|
|
40
|
+
try {
|
|
41
|
+
action();
|
|
42
|
+
} catch (e) {
|
|
43
|
+
this.logger?.error(`can't call native function: ${String(e)}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async callStorageFunction(action) {
|
|
47
|
+
try {
|
|
48
|
+
return {
|
|
49
|
+
value: await action()
|
|
50
|
+
};
|
|
51
|
+
} catch (e) {
|
|
52
|
+
this.logger?.error(`can't call storage function: ${String(e)}`);
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async moveLegacyEvents(eventKind) {
|
|
57
|
+
const legacyJsonEvents = await this.callNativeFunction(() => Promise.resolve(getLegacyEvents(this.instanceName ?? "", eventKind)));
|
|
58
|
+
if (!this.storage || !legacyJsonEvents || legacyJsonEvents.length === 0) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const existingEvents = await this.callStorageFunction(async () => {
|
|
62
|
+
return this.storage?.get(this.eventsStorageKey);
|
|
63
|
+
});
|
|
64
|
+
if (!existingEvents) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const events = existingEvents.value ?? [];
|
|
68
|
+
const eventIds = [];
|
|
69
|
+
legacyJsonEvents.forEach(jsonEvent => {
|
|
70
|
+
const event = this.convertLegacyEvent(jsonEvent);
|
|
71
|
+
if (event) {
|
|
72
|
+
events.push(event);
|
|
73
|
+
if (event.event_id !== undefined) {
|
|
74
|
+
eventIds.push(event.event_id);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
const writeSucceeded = await this.callStorageFunction(async () => {
|
|
79
|
+
await this.storage?.set(this.eventsStorageKey, events);
|
|
80
|
+
return true;
|
|
81
|
+
});
|
|
82
|
+
if (!writeSucceeded?.value) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
eventIds.forEach(eventId => this.callNativeAction(() => removeLegacyEvent(this.instanceName ?? "", eventKind, eventId)));
|
|
86
|
+
}
|
|
87
|
+
convertLegacyEvent(legacyJsonEvent) {
|
|
88
|
+
try {
|
|
89
|
+
const event = JSON.parse(legacyJsonEvent);
|
|
90
|
+
const {
|
|
91
|
+
library,
|
|
92
|
+
timestamp,
|
|
93
|
+
uuid,
|
|
94
|
+
api_properties
|
|
95
|
+
} = event;
|
|
96
|
+
if (library !== undefined) {
|
|
97
|
+
event.library = `${library.name}/${library.version}`;
|
|
98
|
+
}
|
|
99
|
+
if (timestamp !== undefined) {
|
|
100
|
+
event.time = timestamp;
|
|
101
|
+
}
|
|
102
|
+
if (uuid !== undefined) {
|
|
103
|
+
event.insert_id = uuid;
|
|
104
|
+
}
|
|
105
|
+
if (api_properties) {
|
|
106
|
+
const {
|
|
107
|
+
androidADID,
|
|
108
|
+
android_app_set_id,
|
|
109
|
+
ios_idfa,
|
|
110
|
+
ios_idfv,
|
|
111
|
+
productId,
|
|
112
|
+
quantity,
|
|
113
|
+
price,
|
|
114
|
+
location
|
|
115
|
+
} = api_properties;
|
|
116
|
+
if (androidADID !== undefined) {
|
|
117
|
+
event.adid = androidADID;
|
|
118
|
+
}
|
|
119
|
+
if (android_app_set_id !== undefined) {
|
|
120
|
+
event.android_app_set_id = android_app_set_id;
|
|
121
|
+
}
|
|
122
|
+
if (ios_idfa !== undefined) {
|
|
123
|
+
event.idfa = ios_idfa;
|
|
124
|
+
}
|
|
125
|
+
if (ios_idfv !== undefined) {
|
|
126
|
+
event.idfv = ios_idfv;
|
|
127
|
+
}
|
|
128
|
+
if (productId !== undefined) {
|
|
129
|
+
event.productId = productId;
|
|
130
|
+
}
|
|
131
|
+
if (quantity !== undefined) {
|
|
132
|
+
event.quantity = quantity;
|
|
133
|
+
}
|
|
134
|
+
if (price !== undefined) {
|
|
135
|
+
event.price = price;
|
|
136
|
+
}
|
|
137
|
+
if (location !== undefined) {
|
|
138
|
+
const {
|
|
139
|
+
lat,
|
|
140
|
+
lng
|
|
141
|
+
} = location;
|
|
142
|
+
event.location_lat = lat;
|
|
143
|
+
event.location_lng = lng;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const {
|
|
147
|
+
$productId: productId,
|
|
148
|
+
$quantity: quantity,
|
|
149
|
+
$price: price,
|
|
150
|
+
$revenueType: revenueType
|
|
151
|
+
} = event;
|
|
152
|
+
if (productId !== undefined) {
|
|
153
|
+
event.productId = productId;
|
|
154
|
+
}
|
|
155
|
+
if (quantity !== undefined) {
|
|
156
|
+
event.quantity = quantity;
|
|
157
|
+
}
|
|
158
|
+
if (price !== undefined) {
|
|
159
|
+
event.price = price;
|
|
160
|
+
}
|
|
161
|
+
if (revenueType !== undefined) {
|
|
162
|
+
event.revenueType = revenueType;
|
|
163
|
+
}
|
|
164
|
+
return event;
|
|
165
|
+
} catch {
|
|
166
|
+
// skip invalid events
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=remnant-data-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["STORAGE_PREFIX","getLegacyEvents","getLegacySessionData","removeLegacyEvent","RemnantDataMigration","constructor","apiKey","instanceName","storage","firstRunSinceUpgrade","logger","eventsStorageKey","substring","execute","moveIdentifies","moveInterceptedIdentifies","moveEvents","callNativeFunction","Promise","resolve","then","sessionData","moveLegacyEvents","action","e","error","String","undefined","callNativeAction","callStorageFunction","value","eventKind","legacyJsonEvents","length","existingEvents","get","events","eventIds","forEach","jsonEvent","event","convertLegacyEvent","push","event_id","writeSucceeded","set","eventId","legacyJsonEvent","JSON","parse","library","timestamp","uuid","api_properties","name","version","time","insert_id","androidADID","android_app_set_id","ios_idfa","ios_idfv","productId","quantity","price","location","adid","idfa","idfv","lat","lng","location_lat","location_lng","$productId","$quantity","$price","$revenueType","revenueType"],"sourceRoot":"../../../../src","sources":["analytics/migration/remnant-data-migration.ts"],"mappings":";;AAAA,SAGEA,cAAc,QAGT,2BAA2B;AAClC,SACEC,eAAe,EACfC,oBAAoB,EACpBC,iBAAiB,QACZ,sBAAsB;AAI7B,eAAe,MAAMC,oBAAoB,CAAC;EAGxCC,WAAWA,CACQC,MAAc,EACdC,YAAgC,EAChCC,OAAqC,EACrCC,oBAA6B,EAC7BC,MAA2B,EAC5C;IAAA,KALiBJ,MAAc,GAAdA,MAAc;IAAA,KACdC,YAAgC,GAAhCA,YAAgC;IAAA,KAChCC,OAAqC,GAArCA,OAAqC;IAAA,KACrCC,oBAA6B,GAA7BA,oBAA6B;IAAA,KAC7BC,MAA2B,GAA3BA,MAA2B;IAE5C,IAAI,CAACC,gBAAgB,GAAG,GAAGX,cAAc,IAAI,IAAI,CAACM,MAAM,CAACM,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;EAC7E;EAEA,MAAMC,OAAOA,CAAA,EAAyC;IACpD,IAAI,IAAI,CAACJ,oBAAoB,EAAE;MAC7B,MAAM,IAAI,CAACK,cAAc,CAAC,CAAC;MAC3B,MAAM,IAAI,CAACC,yBAAyB,CAAC,CAAC;IACxC;IACA,MAAM,IAAI,CAACC,UAAU,CAAC,CAAC;IAEvB,OAAO,IAAI,CAACC,kBAAkB,CAAC,MAC7BC,OAAO,CAACC,OAAO,CAACjB,oBAAoB,CAAC,IAAI,CAACK,YAAY,IAAI,EAAE,CAAC,CAC/D,CAAC,CAACa,IAAI,CAAEC,WAAW,IAAKA,WAAW,IAAI,CAAC,CAAC,CAAC;EAC5C;EAEA,MAAcL,UAAUA,CAAA,EAAG;IACzB,MAAM,IAAI,CAACM,gBAAgB,CAAC,OAAO,CAAC;EACtC;EAEA,MAAcR,cAAcA,CAAA,EAAG;IAC7B,MAAM,IAAI,CAACQ,gBAAgB,CAAC,UAAU,CAAC;EACzC;EAEA,MAAcP,yBAAyBA,CAAA,EAAG;IACxC,MAAM,IAAI,CAACO,gBAAgB,CAAC,qBAAqB,CAAC;EACpD;EAEA,MAAcL,kBAAkBA,CAC9BM,MAAwB,EACA;IACxB,IAAI;MACF,OAAO,MAAMA,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC,OAAOC,CAAC,EAAE;MACV,IAAI,CAACd,MAAM,EAAEe,KAAK,CAAC,+BAA+BC,MAAM,CAACF,CAAC,CAAC,EAAE,CAAC;MAC9D,OAAOG,SAAS;IAClB;EACF;EAEQC,gBAAgBA,CAACL,MAAkB,EAAE;IAC3C,IAAI;MACFA,MAAM,CAAC,CAAC;IACV,CAAC,CAAC,OAAOC,CAAC,EAAE;MACV,IAAI,CAACd,MAAM,EAAEe,KAAK,CAAC,+BAA+BC,MAAM,CAACF,CAAC,CAAC,EAAE,CAAC;IAChE;EACF;EAEA,MAAcK,mBAAmBA,CAC/BN,MAAwB,EACW;IACnC,IAAI;MACF,OAAO;QAAEO,KAAK,EAAE,MAAMP,MAAM,CAAC;MAAE,CAAC;IAClC,CAAC,CAAC,OAAOC,CAAC,EAAE;MACV,IAAI,CAACd,MAAM,EAAEe,KAAK,CAAC,gCAAgCC,MAAM,CAACF,CAAC,CAAC,EAAE,CAAC;MAC/D,OAAOG,SAAS;IAClB;EACF;EAEA,MAAcL,gBAAgBA,CAACS,SAA0B,EAAE;IACzD,MAAMC,gBAAgB,GAAG,MAAM,IAAI,CAACf,kBAAkB,CAAC,MACrDC,OAAO,CAACC,OAAO,CAAClB,eAAe,CAAC,IAAI,CAACM,YAAY,IAAI,EAAE,EAAEwB,SAAS,CAAC,CACrE,CAAC;IACD,IAAI,CAAC,IAAI,CAACvB,OAAO,IAAI,CAACwB,gBAAgB,IAAIA,gBAAgB,CAACC,MAAM,KAAK,CAAC,EAAE;MACvE;IACF;IAEA,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACL,mBAAmB,CACnD,YAAY;MACV,OAAO,IAAI,CAACrB,OAAO,EAAE2B,GAAG,CAAC,IAAI,CAACxB,gBAAgB,CAAC;IACjD,CACF,CAAC;IACD,IAAI,CAACuB,cAAc,EAAE;MACnB;IACF;IACA,MAAME,MAAe,GAAGF,cAAc,CAACJ,KAAK,IAAI,EAAE;IAClD,MAAMO,QAAkB,GAAG,EAAE;IAE7BL,gBAAgB,CAACM,OAAO,CAAEC,SAAS,IAAK;MACtC,MAAMC,KAAK,GAAG,IAAI,CAACC,kBAAkB,CAACF,SAAS,CAAC;MAChD,IAAIC,KAAK,EAAE;QACTJ,MAAM,CAACM,IAAI,CAACF,KAAK,CAAC;QAClB,IAAIA,KAAK,CAACG,QAAQ,KAAKhB,SAAS,EAAE;UAChCU,QAAQ,CAACK,IAAI,CAACF,KAAK,CAACG,QAAQ,CAAC;QAC/B;MACF;IACF,CAAC,CAAC;IAEF,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACf,mBAAmB,CAAC,YAAY;MAChE,MAAM,IAAI,CAACrB,OAAO,EAAEqC,GAAG,CAAC,IAAI,CAAClC,gBAAgB,EAAEyB,MAAM,CAAC;MACtD,OAAO,IAAI;IACb,CAAC,CAAC;IACF,IAAI,CAACQ,cAAc,EAAEd,KAAK,EAAE;MAC1B;IACF;IACAO,QAAQ,CAACC,OAAO,CAAEQ,OAAO,IACvB,IAAI,CAAClB,gBAAgB,CAAC,MACpBzB,iBAAiB,CAAC,IAAI,CAACI,YAAY,IAAI,EAAE,EAAEwB,SAAS,EAAEe,OAAO,CAC/D,CACF,CAAC;EACH;EAEQL,kBAAkBA,CAACM,eAAuB,EAAgB;IAChE,IAAI;MACF,MAAMP,KAAK,GAAGQ,IAAI,CAACC,KAAK,CAACF,eAAe,CAAU;MAElD,MAAM;QAAEG,OAAO;QAAEC,SAAS;QAAEC,IAAI;QAAEC;MAAe,CAAC,GAAGb,KAAY;MACjE,IAAIU,OAAO,KAAKvB,SAAS,EAAE;QACzBa,KAAK,CAACU,OAAO,GAAG,GAAGA,OAAO,CAACI,IAAI,IAAIJ,OAAO,CAACK,OAAO,EAAE;MACtD;MACA,IAAIJ,SAAS,KAAKxB,SAAS,EAAE;QAC3Ba,KAAK,CAACgB,IAAI,GAAGL,SAAS;MACxB;MACA,IAAIC,IAAI,KAAKzB,SAAS,EAAE;QACtBa,KAAK,CAACiB,SAAS,GAAGL,IAAI;MACxB;MAEA,IAAIC,cAAc,EAAE;QAClB,MAAM;UACJK,WAAW;UACXC,kBAAkB;UAClBC,QAAQ;UACRC,QAAQ;UACRC,SAAS;UACTC,QAAQ;UACRC,KAAK;UACLC;QACF,CAAC,GAAGZ,cAAc;QAClB,IAAIK,WAAW,KAAK/B,SAAS,EAAE;UAC7Ba,KAAK,CAAC0B,IAAI,GAAGR,WAAW;QAC1B;QACA,IAAIC,kBAAkB,KAAKhC,SAAS,EAAE;UACpCa,KAAK,CAACmB,kBAAkB,GAAGA,kBAAkB;QAC/C;QACA,IAAIC,QAAQ,KAAKjC,SAAS,EAAE;UAC1Ba,KAAK,CAAC2B,IAAI,GAAGP,QAAQ;QACvB;QACA,IAAIC,QAAQ,KAAKlC,SAAS,EAAE;UAC1Ba,KAAK,CAAC4B,IAAI,GAAGP,QAAQ;QACvB;QACA,IAAIC,SAAS,KAAKnC,SAAS,EAAE;UAC3Ba,KAAK,CAACsB,SAAS,GAAGA,SAAS;QAC7B;QACA,IAAIC,QAAQ,KAAKpC,SAAS,EAAE;UAC1Ba,KAAK,CAACuB,QAAQ,GAAGA,QAAQ;QAC3B;QACA,IAAIC,KAAK,KAAKrC,SAAS,EAAE;UACvBa,KAAK,CAACwB,KAAK,GAAGA,KAAK;QACrB;QACA,IAAIC,QAAQ,KAAKtC,SAAS,EAAE;UAC1B,MAAM;YAAE0C,GAAG;YAAEC;UAAI,CAAC,GAAGL,QAAQ;UAC7BzB,KAAK,CAAC+B,YAAY,GAAGF,GAAG;UACxB7B,KAAK,CAACgC,YAAY,GAAGF,GAAG;QAC1B;MACF;MAEA,MAAM;QACJG,UAAU,EAAEX,SAAS;QACrBY,SAAS,EAAEX,QAAQ;QACnBY,MAAM,EAAEX,KAAK;QACbY,YAAY,EAAEC;MAChB,CAAC,GAAGrC,KAAY;MAChB,IAAIsB,SAAS,KAAKnC,SAAS,EAAE;QAC3Ba,KAAK,CAACsB,SAAS,GAAGA,SAAS;MAC7B;MACA,IAAIC,QAAQ,KAAKpC,SAAS,EAAE;QAC1Ba,KAAK,CAACuB,QAAQ,GAAGA,QAAQ;MAC3B;MACA,IAAIC,KAAK,KAAKrC,SAAS,EAAE;QACvBa,KAAK,CAACwB,KAAK,GAAGA,KAAK;MACrB;MACA,IAAIa,WAAW,KAAKlD,SAAS,EAAE;QAC7Ba,KAAK,CAACqC,WAAW,GAAGA,WAAW;MACjC;MAEA,OAAOrC,KAAK;IACd,CAAC,CAAC,MAAM;MACN;MACA,OAAO,IAAI;IACb;EACF;EACA;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { BaseTransport } from "@amplitude/analytics-core";
|
|
4
|
+
import { nitroHttpClient } from "../native/http";
|
|
5
|
+
export class NitroTransport extends BaseTransport {
|
|
6
|
+
constructor(customHeaders = {}) {
|
|
7
|
+
super();
|
|
8
|
+
this.customHeaders = customHeaders;
|
|
9
|
+
}
|
|
10
|
+
async send(serverUrl, payload) {
|
|
11
|
+
const response = await nitroHttpClient.request(serverUrl, "POST", {
|
|
12
|
+
"Content-Type": "application/json",
|
|
13
|
+
Accept: "*/*",
|
|
14
|
+
...this.customHeaders
|
|
15
|
+
}, JSON.stringify(payload), 30000);
|
|
16
|
+
try {
|
|
17
|
+
return this.buildResponse(JSON.parse(response.body));
|
|
18
|
+
} catch {
|
|
19
|
+
return this.buildResponse({
|
|
20
|
+
code: response.status
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export const nitroTransport = new NitroTransport();
|
|
26
|
+
//# sourceMappingURL=nitro-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BaseTransport","nitroHttpClient","NitroTransport","constructor","customHeaders","send","serverUrl","payload","response","request","Accept","JSON","stringify","buildResponse","parse","body","code","status","nitroTransport"],"sourceRoot":"../../../src","sources":["analytics/nitro-transport.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,2BAA2B;AAEzD,SAASC,eAAe,QAAQ,gBAAgB;AAEhD,OAAO,MAAMC,cAAc,SAASF,aAAa,CAAsB;EAGrEG,WAAWA,CAACC,aAAqC,GAAG,CAAC,CAAC,EAAE;IACtD,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,aAAa,GAAGA,aAAa;EACpC;EAEA,MAAMC,IAAIA,CAACC,SAAiB,EAAEC,OAAgB,EAA4B;IACxE,MAAMC,QAAQ,GAAG,MAAMP,eAAe,CAACQ,OAAO,CAC5CH,SAAS,EACT,MAAM,EACN;MACE,cAAc,EAAE,kBAAkB;MAClCI,MAAM,EAAE,KAAK;MACb,GAAG,IAAI,CAACN;IACV,CAAC,EACDO,IAAI,CAACC,SAAS,CAACL,OAAO,CAAC,EACvB,KACF,CAAC;IACD,IAAI;MACF,OAAO,IAAI,CAACM,aAAa,CACvBF,IAAI,CAACG,KAAK,CAACN,QAAQ,CAACO,IAAI,CAC1B,CAAC;IACH,CAAC,CAAC,MAAM;MACN,OAAO,IAAI,CAACF,aAAa,CAAC;QAAEG,IAAI,EAAER,QAAQ,CAACS;MAAO,CAAC,CAAC;IACtD;EACF;AACF;AAEA,OAAO,MAAMC,cAAc,GAAG,IAAIhB,cAAc,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { UUID, getLanguage } from "@amplitude/analytics-core";
|
|
4
|
+
import UAParser from "@amplitude/ua-parser-js";
|
|
5
|
+
import { VERSION } from "../version";
|
|
6
|
+
import { Platform } from "react-native";
|
|
7
|
+
import { getNativeApplicationContext } from "../../native/context";
|
|
8
|
+
const BROWSER_PLATFORM = "Web";
|
|
9
|
+
const IP_ADDRESS = "$remote";
|
|
10
|
+
const ReactNativePlatform = Platform;
|
|
11
|
+
function getPlatformOS() {
|
|
12
|
+
try {
|
|
13
|
+
return ReactNativePlatform?.OS;
|
|
14
|
+
} catch {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function getNativePlatformName(platformOS = getPlatformOS()) {
|
|
19
|
+
switch (platformOS) {
|
|
20
|
+
case "ios":
|
|
21
|
+
return "iOS";
|
|
22
|
+
case "android":
|
|
23
|
+
return "Android";
|
|
24
|
+
default:
|
|
25
|
+
return BROWSER_PLATFORM;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class Context {
|
|
29
|
+
name = "@amplitude/plugin-context-react-native";
|
|
30
|
+
type = "before";
|
|
31
|
+
|
|
32
|
+
// this.config is defined in setup() which will always be called first
|
|
33
|
+
|
|
34
|
+
// @ts-ignore
|
|
35
|
+
|
|
36
|
+
library = `amplitude-nitro-ts/${VERSION}`;
|
|
37
|
+
constructor() {
|
|
38
|
+
let agent;
|
|
39
|
+
/* istanbul ignore else */
|
|
40
|
+
if (typeof navigator !== "undefined") {
|
|
41
|
+
agent = navigator.userAgent;
|
|
42
|
+
}
|
|
43
|
+
this.uaResult = new UAParser(agent).getResult();
|
|
44
|
+
}
|
|
45
|
+
setup(config) {
|
|
46
|
+
this.config = config;
|
|
47
|
+
return Promise.resolve(undefined);
|
|
48
|
+
}
|
|
49
|
+
getNativeContext() {
|
|
50
|
+
try {
|
|
51
|
+
return getNativeApplicationContext(this.config.trackingOptions);
|
|
52
|
+
} catch (error) {
|
|
53
|
+
this.config.loggerProvider?.error(`Failed to load native application context: ${String(error)}`);
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async execute(context) {
|
|
58
|
+
const time = new Date().getTime();
|
|
59
|
+
const platformOS = getPlatformOS();
|
|
60
|
+
const nativeContext = this.getNativeContext();
|
|
61
|
+
const isWebPlatform = platformOS === "web";
|
|
62
|
+
const fallbackPlatform = getNativePlatformName(platformOS);
|
|
63
|
+
const appVersion = this.config.appVersion || nativeContext?.version;
|
|
64
|
+
const platform = nativeContext?.platform || fallbackPlatform;
|
|
65
|
+
const osName = nativeContext?.osName || (isWebPlatform ? this.uaResult.browser.name : fallbackPlatform);
|
|
66
|
+
const osVersion = nativeContext?.osVersion || (isWebPlatform ? this.uaResult.browser.version : undefined);
|
|
67
|
+
const deviceVendor = nativeContext?.deviceManufacturer || (isWebPlatform ? this.uaResult.device.vendor : undefined);
|
|
68
|
+
const deviceModel = nativeContext?.deviceModel || (isWebPlatform ? this.uaResult.device.model || this.uaResult.os.name : undefined);
|
|
69
|
+
const language = nativeContext?.language || getLanguage();
|
|
70
|
+
const country = nativeContext?.country;
|
|
71
|
+
const carrier = nativeContext?.carrier;
|
|
72
|
+
const adid = nativeContext?.adid;
|
|
73
|
+
const appSetId = nativeContext?.appSetId;
|
|
74
|
+
const idfv = nativeContext?.idfv;
|
|
75
|
+
const event = {
|
|
76
|
+
user_id: this.config.userId,
|
|
77
|
+
device_id: this.config.deviceId,
|
|
78
|
+
session_id: this.config.sessionId,
|
|
79
|
+
time,
|
|
80
|
+
...(appVersion && {
|
|
81
|
+
app_version: appVersion
|
|
82
|
+
}),
|
|
83
|
+
...(this.config.trackingOptions.platform && {
|
|
84
|
+
platform: platform
|
|
85
|
+
}),
|
|
86
|
+
...(this.config.trackingOptions.osName && {
|
|
87
|
+
os_name: osName
|
|
88
|
+
}),
|
|
89
|
+
...(this.config.trackingOptions.osVersion && {
|
|
90
|
+
os_version: osVersion
|
|
91
|
+
}),
|
|
92
|
+
...(this.config.trackingOptions.deviceManufacturer && {
|
|
93
|
+
device_manufacturer: deviceVendor
|
|
94
|
+
}),
|
|
95
|
+
...(this.config.trackingOptions.deviceModel && {
|
|
96
|
+
device_model: deviceModel
|
|
97
|
+
}),
|
|
98
|
+
...(this.config.trackingOptions.language && {
|
|
99
|
+
language: language
|
|
100
|
+
}),
|
|
101
|
+
...(this.config.trackingOptions.country && {
|
|
102
|
+
country: country
|
|
103
|
+
}),
|
|
104
|
+
...(this.config.trackingOptions.carrier && {
|
|
105
|
+
carrier: carrier
|
|
106
|
+
}),
|
|
107
|
+
...(this.config.trackingOptions.ipAddress && {
|
|
108
|
+
ip: IP_ADDRESS
|
|
109
|
+
}),
|
|
110
|
+
...(this.config.trackingOptions.adid && {
|
|
111
|
+
adid: adid
|
|
112
|
+
}),
|
|
113
|
+
...(this.config.trackingOptions.appSetId && {
|
|
114
|
+
android_app_set_id: appSetId
|
|
115
|
+
}),
|
|
116
|
+
...(this.config.trackingOptions.idfv && {
|
|
117
|
+
idfv: idfv
|
|
118
|
+
}),
|
|
119
|
+
insert_id: UUID(),
|
|
120
|
+
partner_id: this.config.partnerId,
|
|
121
|
+
plan: this.config.plan,
|
|
122
|
+
...(this.config.ingestionMetadata && {
|
|
123
|
+
ingestion_metadata: {
|
|
124
|
+
source_name: this.config.ingestionMetadata.sourceName,
|
|
125
|
+
source_version: this.config.ingestionMetadata.sourceVersion
|
|
126
|
+
}
|
|
127
|
+
}),
|
|
128
|
+
...context,
|
|
129
|
+
library: this.library
|
|
130
|
+
};
|
|
131
|
+
return event;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UUID","getLanguage","UAParser","VERSION","Platform","getNativeApplicationContext","BROWSER_PLATFORM","IP_ADDRESS","ReactNativePlatform","getPlatformOS","OS","undefined","getNativePlatformName","platformOS","Context","name","type","library","constructor","agent","navigator","userAgent","uaResult","getResult","setup","config","Promise","resolve","getNativeContext","trackingOptions","error","loggerProvider","String","execute","context","time","Date","getTime","nativeContext","isWebPlatform","fallbackPlatform","appVersion","version","platform","osName","browser","osVersion","deviceVendor","deviceManufacturer","device","vendor","deviceModel","model","os","language","country","carrier","adid","appSetId","idfv","event","user_id","userId","device_id","deviceId","session_id","sessionId","app_version","os_name","os_version","device_manufacturer","device_model","ipAddress","ip","android_app_set_id","insert_id","partner_id","partnerId","plan","ingestionMetadata","ingestion_metadata","source_name","sourceName","source_version","sourceVersion"],"sourceRoot":"../../../../src","sources":["analytics/plugins/context.ts"],"mappings":"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","ignoreList":[]}
|