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,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.nitroHttpClient = exports.NitroHttpClient = void 0;
|
|
7
|
+
var _hybrid = require("./hybrid");
|
|
8
|
+
const pendingRequests = new Map();
|
|
9
|
+
let listenerInstalled = false;
|
|
10
|
+
function ensureListener() {
|
|
11
|
+
if (listenerInstalled) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
listenerInstalled = true;
|
|
15
|
+
(0, _hybrid.getAmplitudeWorker)().addOnComplete((requestId, statusCode, body, error) => {
|
|
16
|
+
const pending = pendingRequests.get(requestId);
|
|
17
|
+
if (!pending) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
pendingRequests.delete(requestId);
|
|
21
|
+
clearTimeout(pending.timeoutId);
|
|
22
|
+
if (error) {
|
|
23
|
+
pending.reject(new Error(error));
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
pending.resolve({
|
|
27
|
+
status: statusCode,
|
|
28
|
+
body
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function createRequestId() {
|
|
33
|
+
return `req_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`;
|
|
34
|
+
}
|
|
35
|
+
class NitroHttpClient {
|
|
36
|
+
async request(requestUrl, method, headers, data, timeoutMillis = 10000) {
|
|
37
|
+
ensureListener();
|
|
38
|
+
const requestId = createRequestId();
|
|
39
|
+
return new Promise((resolve, reject) => {
|
|
40
|
+
const timeoutId = setTimeout(() => {
|
|
41
|
+
pendingRequests.delete(requestId);
|
|
42
|
+
(0, _hybrid.getAmplitudeWorker)().cancel(requestId);
|
|
43
|
+
reject(new Error(`Request timed out after ${timeoutMillis}ms`));
|
|
44
|
+
}, timeoutMillis + 250);
|
|
45
|
+
pendingRequests.set(requestId, {
|
|
46
|
+
resolve,
|
|
47
|
+
reject,
|
|
48
|
+
timeoutId
|
|
49
|
+
});
|
|
50
|
+
try {
|
|
51
|
+
(0, _hybrid.getAmplitudeWorker)().enqueue(requestId, requestUrl, method, JSON.stringify(headers), data ?? "", timeoutMillis);
|
|
52
|
+
} catch (error) {
|
|
53
|
+
pendingRequests.delete(requestId);
|
|
54
|
+
clearTimeout(timeoutId);
|
|
55
|
+
reject(error instanceof Error ? error : new Error(String(error)));
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.NitroHttpClient = NitroHttpClient;
|
|
61
|
+
const nitroHttpClient = exports.nitroHttpClient = new NitroHttpClient();
|
|
62
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_hybrid","require","pendingRequests","Map","listenerInstalled","ensureListener","getAmplitudeWorker","addOnComplete","requestId","statusCode","body","error","pending","get","delete","clearTimeout","timeoutId","reject","Error","resolve","status","createRequestId","Date","now","Math","random","toString","slice","NitroHttpClient","request","requestUrl","method","headers","data","timeoutMillis","Promise","setTimeout","cancel","set","enqueue","JSON","stringify","String","exports","nitroHttpClient"],"sourceRoot":"../../../src","sources":["native/http.ts"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAQA,MAAMC,eAAe,GAAG,IAAIC,GAAG,CAAyB,CAAC;AACzD,IAAIC,iBAAiB,GAAG,KAAK;AAE7B,SAASC,cAAcA,CAAA,EAAS;EAC9B,IAAID,iBAAiB,EAAE;IACrB;EACF;EACAA,iBAAiB,GAAG,IAAI;EACxB,IAAAE,0BAAkB,EAAC,CAAC,CAACC,aAAa,CAAC,CAACC,SAAS,EAAEC,UAAU,EAAEC,IAAI,EAAEC,KAAK,KAAK;IACzE,MAAMC,OAAO,GAAGV,eAAe,CAACW,GAAG,CAACL,SAAS,CAAC;IAC9C,IAAI,CAACI,OAAO,EAAE;MACZ;IACF;IACAV,eAAe,CAACY,MAAM,CAACN,SAAS,CAAC;IACjCO,YAAY,CAACH,OAAO,CAACI,SAAS,CAAC;IAC/B,IAAIL,KAAK,EAAE;MACTC,OAAO,CAACK,MAAM,CAAC,IAAIC,KAAK,CAACP,KAAK,CAAC,CAAC;MAChC;IACF;IACAC,OAAO,CAACO,OAAO,CAAC;MACdC,MAAM,EAAEX,UAAU;MAClBC;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,SAASW,eAAeA,CAAA,EAAW;EACjC,OAAO,OAAOC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACvE;AAEO,MAAMC,eAAe,CAAuB;EACjD,MAAMC,OAAOA,CACXC,UAAkB,EAClBC,MAAc,EACdC,OAA+B,EAC/BC,IAAmB,EACnBC,aAAa,GAAG,KAAK,EACI;IACzB7B,cAAc,CAAC,CAAC;IAChB,MAAMG,SAAS,GAAGa,eAAe,CAAC,CAAC;IACnC,OAAO,IAAIc,OAAO,CAAiB,CAAChB,OAAO,EAAEF,MAAM,KAAK;MACtD,MAAMD,SAAS,GAAGoB,UAAU,CAAC,MAAM;QACjClC,eAAe,CAACY,MAAM,CAACN,SAAS,CAAC;QACjC,IAAAF,0BAAkB,EAAC,CAAC,CAAC+B,MAAM,CAAC7B,SAAS,CAAC;QACtCS,MAAM,CAAC,IAAIC,KAAK,CAAC,2BAA2BgB,aAAa,IAAI,CAAC,CAAC;MACjE,CAAC,EAAEA,aAAa,GAAG,GAAG,CAAC;MAEvBhC,eAAe,CAACoC,GAAG,CAAC9B,SAAS,EAAE;QAAEW,OAAO;QAAEF,MAAM;QAAED;MAAU,CAAC,CAAC;MAE9D,IAAI;QACF,IAAAV,0BAAkB,EAAC,CAAC,CAACiC,OAAO,CAC1B/B,SAAS,EACTsB,UAAU,EACVC,MAAM,EACNS,IAAI,CAACC,SAAS,CAACT,OAAO,CAAC,EACvBC,IAAI,IAAI,EAAE,EACVC,aACF,CAAC;MACH,CAAC,CAAC,OAAOvB,KAAK,EAAE;QACdT,eAAe,CAACY,MAAM,CAACN,SAAS,CAAC;QACjCO,YAAY,CAACC,SAAS,CAAC;QACvBC,MAAM,CAACN,KAAK,YAAYO,KAAK,GAAGP,KAAK,GAAG,IAAIO,KAAK,CAACwB,MAAM,CAAC/B,KAAK,CAAC,CAAC,CAAC;MACnE;IACF,CAAC,CAAC;EACJ;AACF;AAACgC,OAAA,CAAAf,eAAA,GAAAA,eAAA;AAEM,MAAMgB,eAAe,GAAAD,OAAA,CAAAC,eAAA,GAAG,IAAIhB,eAAe,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getAmplitudeContext = getAmplitudeContext;
|
|
7
|
+
exports.getAmplitudeStorage = getAmplitudeStorage;
|
|
8
|
+
exports.getAmplitudeWorker = getAmplitudeWorker;
|
|
9
|
+
exports.resetHybridInstancesForTests = resetHybridInstancesForTests;
|
|
10
|
+
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
11
|
+
let contextInstance;
|
|
12
|
+
let storageInstance;
|
|
13
|
+
let workerInstance;
|
|
14
|
+
function getAmplitudeContext() {
|
|
15
|
+
contextInstance ??= _reactNativeNitroModules.NitroModules.createHybridObject("AmplitudeContext");
|
|
16
|
+
return contextInstance;
|
|
17
|
+
}
|
|
18
|
+
function getAmplitudeStorage() {
|
|
19
|
+
storageInstance ??= _reactNativeNitroModules.NitroModules.createHybridObject("AmplitudeStorage");
|
|
20
|
+
return storageInstance;
|
|
21
|
+
}
|
|
22
|
+
function getAmplitudeWorker() {
|
|
23
|
+
workerInstance ??= _reactNativeNitroModules.NitroModules.createHybridObject("AmplitudeWorker");
|
|
24
|
+
return workerInstance;
|
|
25
|
+
}
|
|
26
|
+
function resetHybridInstancesForTests() {
|
|
27
|
+
contextInstance = undefined;
|
|
28
|
+
storageInstance = undefined;
|
|
29
|
+
workerInstance = undefined;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=hybrid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","contextInstance","storageInstance","workerInstance","getAmplitudeContext","NitroModules","createHybridObject","getAmplitudeStorage","getAmplitudeWorker","resetHybridInstancesForTests","undefined"],"sourceRoot":"../../../src","sources":["native/hybrid.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAKA,IAAIC,eAA6C;AACjD,IAAIC,eAA6C;AACjD,IAAIC,cAA2C;AAExC,SAASC,mBAAmBA,CAAA,EAAqB;EACtDH,eAAe,KACbI,qCAAY,CAACC,kBAAkB,CAAmB,kBAAkB,CAAC;EACvE,OAAOL,eAAe;AACxB;AAEO,SAASM,mBAAmBA,CAAA,EAAqB;EACtDL,eAAe,KACbG,qCAAY,CAACC,kBAAkB,CAAmB,kBAAkB,CAAC;EACvE,OAAOJ,eAAe;AACxB;AAEO,SAASM,kBAAkBA,CAAA,EAAoB;EACpDL,cAAc,KACZE,qCAAY,CAACC,kBAAkB,CAAkB,iBAAiB,CAAC;EACrE,OAAOH,cAAc;AACvB;AAEO,SAASM,4BAA4BA,CAAA,EAAS;EACnDR,eAAe,GAAGS,SAAS;EAC3BR,eAAe,GAAGQ,SAAS;EAC3BP,cAAc,GAAGO,SAAS;AAC5B","ignoreList":[]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.NitroMemoryStorage = exports.NitroExperimentStorage = exports.NitroAnalyticsStorage = void 0;
|
|
7
|
+
var _hybrid = require("./hybrid");
|
|
8
|
+
function namespaceKey(namespace, key) {
|
|
9
|
+
return `${namespace}::${key}`;
|
|
10
|
+
}
|
|
11
|
+
class NitroAnalyticsStorage {
|
|
12
|
+
constructor(namespace) {
|
|
13
|
+
this.namespace = namespace;
|
|
14
|
+
}
|
|
15
|
+
async isEnabled() {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
async get(key) {
|
|
19
|
+
const raw = await this.getRaw(key);
|
|
20
|
+
if (!raw) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
return JSON.parse(raw);
|
|
25
|
+
} catch {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async getRaw(key) {
|
|
30
|
+
return (0, _hybrid.getAmplitudeStorage)().get(namespaceKey(this.namespace, key), true);
|
|
31
|
+
}
|
|
32
|
+
async set(key, value) {
|
|
33
|
+
(0, _hybrid.getAmplitudeStorage)().set(namespaceKey(this.namespace, key), JSON.stringify(value), true);
|
|
34
|
+
}
|
|
35
|
+
async remove(key) {
|
|
36
|
+
(0, _hybrid.getAmplitudeStorage)().remove(namespaceKey(this.namespace, key), true);
|
|
37
|
+
}
|
|
38
|
+
async reset() {
|
|
39
|
+
const prefix = `${this.namespace}::`;
|
|
40
|
+
const keys = (0, _hybrid.getAmplitudeStorage)().getKeysByPrefix(prefix, true);
|
|
41
|
+
if (keys.length > 0) {
|
|
42
|
+
(0, _hybrid.getAmplitudeStorage)().removeBatch(keys, true);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.NitroAnalyticsStorage = NitroAnalyticsStorage;
|
|
47
|
+
class NitroExperimentStorage {
|
|
48
|
+
constructor(namespace) {
|
|
49
|
+
this.namespace = namespace;
|
|
50
|
+
}
|
|
51
|
+
async get(key) {
|
|
52
|
+
const value = (0, _hybrid.getAmplitudeStorage)().get(namespaceKey(this.namespace, key), true);
|
|
53
|
+
return value ?? null;
|
|
54
|
+
}
|
|
55
|
+
async put(key, value) {
|
|
56
|
+
(0, _hybrid.getAmplitudeStorage)().set(namespaceKey(this.namespace, key), value, true);
|
|
57
|
+
}
|
|
58
|
+
async delete(key) {
|
|
59
|
+
(0, _hybrid.getAmplitudeStorage)().remove(namespaceKey(this.namespace, key), true);
|
|
60
|
+
}
|
|
61
|
+
async reset() {
|
|
62
|
+
const prefix = `${this.namespace}::`;
|
|
63
|
+
const keys = (0, _hybrid.getAmplitudeStorage)().getKeysByPrefix(prefix, true);
|
|
64
|
+
if (keys.length > 0) {
|
|
65
|
+
(0, _hybrid.getAmplitudeStorage)().removeBatch(keys, true);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.NitroExperimentStorage = NitroExperimentStorage;
|
|
70
|
+
class NitroMemoryStorage {
|
|
71
|
+
constructor(namespace) {
|
|
72
|
+
this.namespace = namespace;
|
|
73
|
+
}
|
|
74
|
+
async get(key) {
|
|
75
|
+
const value = (0, _hybrid.getAmplitudeStorage)().get(namespaceKey(this.namespace, key), false);
|
|
76
|
+
return value ?? null;
|
|
77
|
+
}
|
|
78
|
+
async put(key, value) {
|
|
79
|
+
(0, _hybrid.getAmplitudeStorage)().set(namespaceKey(this.namespace, key), value, false);
|
|
80
|
+
}
|
|
81
|
+
async delete(key) {
|
|
82
|
+
(0, _hybrid.getAmplitudeStorage)().remove(namespaceKey(this.namespace, key), false);
|
|
83
|
+
}
|
|
84
|
+
async reset() {
|
|
85
|
+
const prefix = `${this.namespace}::`;
|
|
86
|
+
const keys = (0, _hybrid.getAmplitudeStorage)().getKeysByPrefix(prefix, false);
|
|
87
|
+
if (keys.length > 0) {
|
|
88
|
+
(0, _hybrid.getAmplitudeStorage)().removeBatch(keys, false);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.NitroMemoryStorage = NitroMemoryStorage;
|
|
93
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_hybrid","require","namespaceKey","namespace","key","NitroAnalyticsStorage","constructor","isEnabled","get","raw","getRaw","undefined","JSON","parse","getAmplitudeStorage","set","value","stringify","remove","reset","prefix","keys","getKeysByPrefix","length","removeBatch","exports","NitroExperimentStorage","put","delete","NitroMemoryStorage"],"sourceRoot":"../../../src","sources":["native/storage.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["AmplitudeContext.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["AmplitudeStorage.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["AmplitudeWorker.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createIdentifyEvent, Identify, getCookieName as getStorageKey, BASE_CAMPAIGN, EMPTY_VALUE, MKTG, CampaignParser } from "@amplitude/analytics-core";
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated
|
|
6
|
+
* Campaign tracker has mixed logic from built-in and plugin web attribution
|
|
7
|
+
* features. Do not add more features here. The plan moving foward is to consolidate logic
|
|
8
|
+
* in @amplitude/plugin-web-attribution-browser with backward compatibility.
|
|
9
|
+
*/
|
|
10
|
+
export class CampaignTracker {
|
|
11
|
+
constructor(apiKey, options) {
|
|
12
|
+
this.storage = options.storage;
|
|
13
|
+
this.storageKey = getStorageKey(apiKey, MKTG);
|
|
14
|
+
this.parser = new CampaignParser();
|
|
15
|
+
this.track = options.track;
|
|
16
|
+
this.onNewCampaign = options.onNewCampaign;
|
|
17
|
+
this.disabled = Boolean(options.disabled);
|
|
18
|
+
this.trackNewCampaigns = Boolean(options.trackNewCampaigns);
|
|
19
|
+
this.trackPageViews = Boolean(options.trackPageViews);
|
|
20
|
+
this.excludeReferrers = options.excludeReferrers ?? [];
|
|
21
|
+
if (typeof location !== "undefined") {
|
|
22
|
+
this.excludeReferrers.unshift(location.hostname);
|
|
23
|
+
}
|
|
24
|
+
this.initialEmptyValue = options.initialEmptyValue ?? EMPTY_VALUE;
|
|
25
|
+
}
|
|
26
|
+
isNewCampaign(current, previous, ignoreSubdomainInReferrer = false) {
|
|
27
|
+
const {
|
|
28
|
+
referrer,
|
|
29
|
+
referring_domain,
|
|
30
|
+
...currentCampaign
|
|
31
|
+
} = current;
|
|
32
|
+
const {
|
|
33
|
+
referrer: _previous_referrer,
|
|
34
|
+
referring_domain: prevReferringDomain,
|
|
35
|
+
...previousCampaign
|
|
36
|
+
} = previous || {};
|
|
37
|
+
if (current.referring_domain && this.excludeReferrers.includes(current.referring_domain)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
const hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);
|
|
41
|
+
const hasNewDomain = ignoreSubdomainInReferrer ? domainWithoutSubdomain(referring_domain || "") !== domainWithoutSubdomain(prevReferringDomain || "") : referring_domain !== prevReferringDomain;
|
|
42
|
+
return !previous || hasNewCampaign || hasNewDomain;
|
|
43
|
+
}
|
|
44
|
+
async saveCampaignToStorage(campaign) {
|
|
45
|
+
await this.storage.set(this.storageKey, campaign);
|
|
46
|
+
}
|
|
47
|
+
async getCampaignFromStorage() {
|
|
48
|
+
return await this.storage.get(this.storageKey);
|
|
49
|
+
}
|
|
50
|
+
createCampaignEvent(campaign) {
|
|
51
|
+
const campaignParameters = {
|
|
52
|
+
// This object definition allows undefined keys to be iterated on
|
|
53
|
+
// in .reduce() to build indentify object
|
|
54
|
+
...BASE_CAMPAIGN,
|
|
55
|
+
...campaign
|
|
56
|
+
};
|
|
57
|
+
const identifyEvent = Object.entries(campaignParameters).reduce((identify, [key, value]) => {
|
|
58
|
+
identify.setOnce(`initial_${key}`, value || this.initialEmptyValue);
|
|
59
|
+
if (value) {
|
|
60
|
+
return identify.set(key, value);
|
|
61
|
+
}
|
|
62
|
+
return identify.unset(key);
|
|
63
|
+
}, new Identify());
|
|
64
|
+
const pageViewEvent = {
|
|
65
|
+
event_type: "Page View",
|
|
66
|
+
event_properties: {
|
|
67
|
+
page_title: /* istanbul ignore next */typeof document !== "undefined" && document.title || "",
|
|
68
|
+
page_location: /* istanbul ignore next */typeof location !== "undefined" && location.href || "",
|
|
69
|
+
page_path: /* istanbul ignore next */typeof location !== "undefined" && location.pathname || ""
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
...createIdentifyEvent(identifyEvent),
|
|
74
|
+
...(this.trackPageViews && pageViewEvent)
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
async send(isNewSession) {
|
|
78
|
+
if (this.disabled) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const currentCampaign = await this.parser.parse();
|
|
82
|
+
const previousCampaign = await this.getCampaignFromStorage();
|
|
83
|
+
if (!isNewSession) {
|
|
84
|
+
if (!this.trackNewCampaigns || !this.isNewCampaign(currentCampaign, previousCampaign)) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.onNewCampaign(currentCampaign);
|
|
88
|
+
}
|
|
89
|
+
await this.track(this.createCampaignEvent(currentCampaign));
|
|
90
|
+
await this.saveCampaignToStorage(currentCampaign);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const domainWithoutSubdomain = domain => {
|
|
94
|
+
const parts = domain.split(".");
|
|
95
|
+
if (parts.length <= 2) {
|
|
96
|
+
return domain;
|
|
97
|
+
}
|
|
98
|
+
return parts.slice(parts.length - 2, parts.length).join(".");
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=campaign-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createIdentifyEvent","Identify","getCookieName","getStorageKey","BASE_CAMPAIGN","EMPTY_VALUE","MKTG","CampaignParser","CampaignTracker","constructor","apiKey","options","storage","storageKey","parser","track","onNewCampaign","disabled","Boolean","trackNewCampaigns","trackPageViews","excludeReferrers","location","unshift","hostname","initialEmptyValue","isNewCampaign","current","previous","ignoreSubdomainInReferrer","referrer","referring_domain","currentCampaign","_previous_referrer","prevReferringDomain","previousCampaign","includes","hasNewCampaign","JSON","stringify","hasNewDomain","domainWithoutSubdomain","saveCampaignToStorage","campaign","set","getCampaignFromStorage","get","createCampaignEvent","campaignParameters","identifyEvent","Object","entries","reduce","identify","key","value","setOnce","unset","pageViewEvent","event_type","event_properties","page_title","document","title","page_location","href","page_path","pathname","send","isNewSession","parse","domain","parts","split","length","slice","join"],"sourceRoot":"../../../../src","sources":["analytics/campaign/campaign-tracker.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["analytics/campaign/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Config, MemoryStorage, UUID, CookieStorage, getCookieName, getQueryParams, FetchTransport } from "@amplitude/analytics-core";
|
|
4
|
+
import { LocalStorage } from "./storage/local-storage";
|
|
5
|
+
import RemnantDataMigration from "./migration/remnant-data-migration";
|
|
6
|
+
import { NitroAnalyticsStorage } from "../native/storage";
|
|
7
|
+
import { nitroTransport } from "./nitro-transport";
|
|
8
|
+
export const getDefaultConfig = () => {
|
|
9
|
+
const cookieStorage = new MemoryStorage();
|
|
10
|
+
const trackingOptions = {
|
|
11
|
+
adid: true,
|
|
12
|
+
carrier: true,
|
|
13
|
+
deviceManufacturer: true,
|
|
14
|
+
deviceModel: true,
|
|
15
|
+
ipAddress: true,
|
|
16
|
+
language: true,
|
|
17
|
+
osName: true,
|
|
18
|
+
osVersion: true,
|
|
19
|
+
platform: true,
|
|
20
|
+
appSetId: true,
|
|
21
|
+
idfv: true,
|
|
22
|
+
country: false // NOTE: tracking country information would disable server-side IP address lookup to fill other information like region, city, dma, etc.
|
|
23
|
+
};
|
|
24
|
+
return {
|
|
25
|
+
cookieExpiration: 365,
|
|
26
|
+
cookieSameSite: "Lax",
|
|
27
|
+
cookieSecure: false,
|
|
28
|
+
cookieStorage,
|
|
29
|
+
cookieUpgrade: true,
|
|
30
|
+
disableCookies: true,
|
|
31
|
+
domain: "",
|
|
32
|
+
sessionTimeout: 5 * 60 * 1000,
|
|
33
|
+
storageProvider: new NitroAnalyticsStorage("analytics-events"),
|
|
34
|
+
trackingSessionEvents: false,
|
|
35
|
+
trackingOptions,
|
|
36
|
+
transportProvider: nitroTransport
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export class ReactNativeConfig extends Config {
|
|
40
|
+
// NOTE: These protected properties cache user session values in the configured session storage
|
|
41
|
+
|
|
42
|
+
_optOut = false;
|
|
43
|
+
constructor(apiKey, options) {
|
|
44
|
+
const defaultConfig = getDefaultConfig();
|
|
45
|
+
super({
|
|
46
|
+
flushIntervalMillis: 1000,
|
|
47
|
+
flushMaxRetries: 5,
|
|
48
|
+
flushQueueSize: 30,
|
|
49
|
+
transportProvider: defaultConfig.transportProvider,
|
|
50
|
+
...options,
|
|
51
|
+
apiKey
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// NOTE: Define `cookieStorage` first to persist user session
|
|
55
|
+
// user session properties expect `cookieStorage` to be defined
|
|
56
|
+
this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;
|
|
57
|
+
this.deviceId = options?.deviceId;
|
|
58
|
+
this.lastEventTime = options?.lastEventTime;
|
|
59
|
+
this.optOut = Boolean(options?.optOut);
|
|
60
|
+
this.sessionId = options?.sessionId;
|
|
61
|
+
this.userId = options?.userId;
|
|
62
|
+
this.appVersion = options?.appVersion;
|
|
63
|
+
this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;
|
|
64
|
+
this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;
|
|
65
|
+
this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;
|
|
66
|
+
this.cookieUpgrade = options?.cookieUpgrade ?? defaultConfig.cookieUpgrade;
|
|
67
|
+
this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;
|
|
68
|
+
this.domain = options?.domain ?? defaultConfig.domain;
|
|
69
|
+
this.partnerId = options?.partnerId;
|
|
70
|
+
this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;
|
|
71
|
+
this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;
|
|
72
|
+
this.trackingSessionEvents = options?.trackingSessionEvents ?? defaultConfig.trackingSessionEvents;
|
|
73
|
+
}
|
|
74
|
+
get deviceId() {
|
|
75
|
+
return this._deviceId;
|
|
76
|
+
}
|
|
77
|
+
set deviceId(deviceId) {
|
|
78
|
+
if (this._deviceId !== deviceId) {
|
|
79
|
+
this._deviceId = deviceId;
|
|
80
|
+
this.updateStorage();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
get userId() {
|
|
84
|
+
return this._userId;
|
|
85
|
+
}
|
|
86
|
+
set userId(userId) {
|
|
87
|
+
if (this._userId !== userId) {
|
|
88
|
+
this._userId = userId;
|
|
89
|
+
this.updateStorage();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
get sessionId() {
|
|
93
|
+
return this._sessionId;
|
|
94
|
+
}
|
|
95
|
+
set sessionId(sessionId) {
|
|
96
|
+
if (this._sessionId !== sessionId) {
|
|
97
|
+
this._sessionId = sessionId;
|
|
98
|
+
this.updateStorage();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
get optOut() {
|
|
102
|
+
return this._optOut;
|
|
103
|
+
}
|
|
104
|
+
set optOut(optOut) {
|
|
105
|
+
if (this._optOut !== optOut) {
|
|
106
|
+
this._optOut = optOut;
|
|
107
|
+
this.updateStorage();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
get lastEventTime() {
|
|
111
|
+
return this._lastEventTime;
|
|
112
|
+
}
|
|
113
|
+
set lastEventTime(lastEventTime) {
|
|
114
|
+
if (this._lastEventTime !== lastEventTime) {
|
|
115
|
+
this._lastEventTime = lastEventTime;
|
|
116
|
+
this.updateStorage();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
get lastEventId() {
|
|
120
|
+
return this._lastEventId;
|
|
121
|
+
}
|
|
122
|
+
set lastEventId(lastEventId) {
|
|
123
|
+
if (this._lastEventId !== lastEventId) {
|
|
124
|
+
this._lastEventId = lastEventId;
|
|
125
|
+
this.updateStorage();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
updateStorage() {
|
|
129
|
+
const cache = {
|
|
130
|
+
deviceId: this._deviceId,
|
|
131
|
+
userId: this._userId,
|
|
132
|
+
sessionId: this._sessionId,
|
|
133
|
+
optOut: this._optOut,
|
|
134
|
+
lastEventTime: this._lastEventTime,
|
|
135
|
+
lastEventId: this._lastEventId
|
|
136
|
+
};
|
|
137
|
+
try {
|
|
138
|
+
void this.cookieStorage?.set(getCookieName(this.apiKey), cache).catch(error => {
|
|
139
|
+
this.loggerProvider?.error(`Failed to persist user session: ${String(error)}`);
|
|
140
|
+
});
|
|
141
|
+
} catch (error) {
|
|
142
|
+
this.loggerProvider?.error(`Failed to persist user session: ${String(error)}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
export const useReactNativeConfig = async (apiKey, options) => {
|
|
147
|
+
const defaultConfig = getDefaultConfig();
|
|
148
|
+
|
|
149
|
+
// create cookie storage
|
|
150
|
+
const disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;
|
|
151
|
+
const domain = disableCookies ? "" : options?.domain ?? (await getTopLevelDomain());
|
|
152
|
+
const cookieStorage = await createCookieStorage({
|
|
153
|
+
...options,
|
|
154
|
+
disableCookies,
|
|
155
|
+
domain
|
|
156
|
+
});
|
|
157
|
+
const previousCookies = await cookieStorage.get(getCookieName(apiKey));
|
|
158
|
+
const queryParams = getQueryParams();
|
|
159
|
+
|
|
160
|
+
// reconcile user session
|
|
161
|
+
let deviceId = options?.deviceId ?? queryParams.deviceId ?? previousCookies?.deviceId;
|
|
162
|
+
let lastEventTime = options?.lastEventTime ?? previousCookies?.lastEventTime;
|
|
163
|
+
const optOut = options?.optOut ?? Boolean(previousCookies?.optOut);
|
|
164
|
+
let sessionId = options?.sessionId ?? previousCookies?.sessionId;
|
|
165
|
+
let userId = options?.userId ?? previousCookies?.userId;
|
|
166
|
+
let lastEventId = previousCookies?.lastEventId;
|
|
167
|
+
const storageProvider = options?.storageProvider ?? (await createEventsStorage(options));
|
|
168
|
+
if (options?.migrateLegacyData !== false) {
|
|
169
|
+
const legacySessionData = await new RemnantDataMigration(apiKey, options?.instanceName, storageProvider, previousCookies?.lastEventTime === undefined, options?.loggerProvider).execute();
|
|
170
|
+
deviceId = deviceId ?? legacySessionData.deviceId;
|
|
171
|
+
userId = userId ?? legacySessionData.userId;
|
|
172
|
+
sessionId = sessionId ?? legacySessionData.sessionId;
|
|
173
|
+
lastEventTime = lastEventTime ?? legacySessionData.lastEventTime;
|
|
174
|
+
lastEventId = lastEventId ?? legacySessionData.lastEventId;
|
|
175
|
+
}
|
|
176
|
+
const config = new ReactNativeConfig(apiKey, {
|
|
177
|
+
...options,
|
|
178
|
+
cookieStorage,
|
|
179
|
+
deviceId: deviceId ?? UUID(),
|
|
180
|
+
domain,
|
|
181
|
+
lastEventTime,
|
|
182
|
+
optOut,
|
|
183
|
+
sessionId,
|
|
184
|
+
storageProvider,
|
|
185
|
+
trackingOptions: {
|
|
186
|
+
...defaultConfig.trackingOptions,
|
|
187
|
+
...options?.trackingOptions
|
|
188
|
+
},
|
|
189
|
+
transportProvider: options?.transportProvider ?? new FetchTransport(),
|
|
190
|
+
userId
|
|
191
|
+
});
|
|
192
|
+
config.lastEventId = lastEventId;
|
|
193
|
+
config.loggerProvider?.log(`Init: storage=${cookieStorage.constructor.name} restoredSessionId = ${previousCookies?.sessionId ?? "undefined"}, optionsSessionId = ${options?.sessionId ?? "undefined"}`);
|
|
194
|
+
return config;
|
|
195
|
+
};
|
|
196
|
+
export const createCookieStorage = async (overrides, baseConfig = getDefaultConfig()) => {
|
|
197
|
+
const options = {
|
|
198
|
+
...baseConfig,
|
|
199
|
+
...overrides
|
|
200
|
+
};
|
|
201
|
+
const cookieStorage = overrides?.cookieStorage;
|
|
202
|
+
if (!cookieStorage || !(await cookieStorage.isEnabled())) {
|
|
203
|
+
return createFlexibleStorage(options);
|
|
204
|
+
}
|
|
205
|
+
return cookieStorage;
|
|
206
|
+
};
|
|
207
|
+
const createFlexibleStorage = async options => {
|
|
208
|
+
let storage;
|
|
209
|
+
if (options.disableCookies) {
|
|
210
|
+
storage = new LocalStorage();
|
|
211
|
+
if (!(await storage.isEnabled())) {
|
|
212
|
+
storage = new MemoryStorage();
|
|
213
|
+
}
|
|
214
|
+
return storage;
|
|
215
|
+
}
|
|
216
|
+
storage = new CookieStorage({
|
|
217
|
+
domain: options.domain,
|
|
218
|
+
expirationDays: options.cookieExpiration,
|
|
219
|
+
sameSite: options.cookieSameSite,
|
|
220
|
+
secure: options.cookieSecure
|
|
221
|
+
});
|
|
222
|
+
if (!(await storage.isEnabled())) {
|
|
223
|
+
storage = new LocalStorage();
|
|
224
|
+
if (!(await storage.isEnabled())) {
|
|
225
|
+
storage = new MemoryStorage();
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return storage;
|
|
229
|
+
};
|
|
230
|
+
export const createEventsStorage = async overrides => {
|
|
231
|
+
const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, "storageProvider");
|
|
232
|
+
// If storageProperty is explicitly undefined like `{ storageProperty: undefined }`
|
|
233
|
+
// then storageProvider is undefined
|
|
234
|
+
// If storageProvider is implicitly undefined like `{ }`
|
|
235
|
+
// then storageProvider uses the built-in memory storage
|
|
236
|
+
// Otherwise storageProvider is overriden
|
|
237
|
+
if (!hasStorageProviderProperty || overrides.storageProvider) {
|
|
238
|
+
for (const storage of [overrides?.storageProvider, new LocalStorage()]) {
|
|
239
|
+
if (storage && (await storage.isEnabled())) {
|
|
240
|
+
return storage;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return undefined;
|
|
245
|
+
};
|
|
246
|
+
export const getTopLevelDomain = async url => {
|
|
247
|
+
if (!(await new CookieStorage().isEnabled()) || !url && (typeof location === "undefined" || !location.hostname)) {
|
|
248
|
+
return "";
|
|
249
|
+
}
|
|
250
|
+
const host = url ?? location.hostname;
|
|
251
|
+
const parts = host.split(".");
|
|
252
|
+
const levels = [];
|
|
253
|
+
const storageKey = "AMP_TLDTEST";
|
|
254
|
+
for (let i = parts.length - 2; i >= 0; --i) {
|
|
255
|
+
levels.push(parts.slice(i).join("."));
|
|
256
|
+
}
|
|
257
|
+
for (let i = 0; i < levels.length; i++) {
|
|
258
|
+
const domain = levels[i];
|
|
259
|
+
const options = {
|
|
260
|
+
domain: "." + domain
|
|
261
|
+
};
|
|
262
|
+
const storage = new CookieStorage(options);
|
|
263
|
+
await storage.set(storageKey, 1);
|
|
264
|
+
const value = await storage.get(storageKey);
|
|
265
|
+
if (value) {
|
|
266
|
+
await storage.remove(storageKey);
|
|
267
|
+
return "." + domain;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return "";
|
|
271
|
+
};
|
|
272
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Config","MemoryStorage","UUID","CookieStorage","getCookieName","getQueryParams","FetchTransport","LocalStorage","RemnantDataMigration","NitroAnalyticsStorage","nitroTransport","getDefaultConfig","cookieStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","appSetId","idfv","country","cookieExpiration","cookieSameSite","cookieSecure","cookieUpgrade","disableCookies","domain","sessionTimeout","storageProvider","trackingSessionEvents","transportProvider","ReactNativeConfig","_optOut","constructor","apiKey","options","defaultConfig","flushIntervalMillis","flushMaxRetries","flushQueueSize","deviceId","lastEventTime","optOut","Boolean","sessionId","userId","appVersion","partnerId","_deviceId","updateStorage","_userId","_sessionId","_lastEventTime","lastEventId","_lastEventId","cache","set","catch","error","loggerProvider","String","useReactNativeConfig","getTopLevelDomain","createCookieStorage","previousCookies","get","queryParams","createEventsStorage","migrateLegacyData","legacySessionData","instanceName","undefined","execute","config","log","name","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","expirationDays","sameSite","secure","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","url","location","hostname","host","parts","split","levels","storageKey","i","length","push","slice","join","value","remove"],"sourceRoot":"../../../src","sources":["analytics/config.ts"],"mappings":"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","ignoreList":[]}
|