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 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/storage.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface SimpleResponse {
|
|
2
|
+
status: number;
|
|
3
|
+
body: string;
|
|
4
|
+
}
|
|
5
|
+
export interface HttpClient {
|
|
6
|
+
request(requestUrl: string, method: string, headers: Record<string, string>, data: string | null, timeoutMillis?: number): Promise<SimpleResponse>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/transport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a user context for evaluation.
|
|
3
|
+
* `device_id` and `user_id` are used for identity resolution.
|
|
4
|
+
* All other predefined fields and user properties are used for
|
|
5
|
+
* rule based user targeting.
|
|
6
|
+
* @category Types
|
|
7
|
+
*/
|
|
8
|
+
export type ExperimentUser = {
|
|
9
|
+
/**
|
|
10
|
+
* Device ID for associating with an identity in Amplitude
|
|
11
|
+
*/
|
|
12
|
+
device_id?: string;
|
|
13
|
+
/**
|
|
14
|
+
* User ID for associating with an identity in Amplitude
|
|
15
|
+
*/
|
|
16
|
+
user_id?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Predefined field, can be manually provided
|
|
19
|
+
*/
|
|
20
|
+
country?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Predefined field, can be manually provided
|
|
23
|
+
*/
|
|
24
|
+
city?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Predefined field, can be manually provided
|
|
27
|
+
*/
|
|
28
|
+
region?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Predefined field, can be manually provided
|
|
31
|
+
*/
|
|
32
|
+
dma?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Predefined field, auto populated via a ExperimentUserProvider
|
|
35
|
+
* or can be manually provided
|
|
36
|
+
*/
|
|
37
|
+
language?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Predefined field, auto populated via a ExperimentUserProvider
|
|
40
|
+
* or can be manually provided
|
|
41
|
+
*/
|
|
42
|
+
platform?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Predefined field, auto populated via a ExperimentUserProvider
|
|
45
|
+
* or can be manually provided
|
|
46
|
+
*/
|
|
47
|
+
version?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Predefined field, auto populated via a ExperimentUserProvider
|
|
50
|
+
* or can be manually provided
|
|
51
|
+
*/
|
|
52
|
+
os?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Predefined field, auto populated via a ExperimentUserProvider
|
|
55
|
+
* or can be manually provided
|
|
56
|
+
*/
|
|
57
|
+
device_model?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Predefined field, auto populated via a ExperimentUserProvider
|
|
60
|
+
* or can be manually provided
|
|
61
|
+
*/
|
|
62
|
+
device_brand?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Predefined field, auto populated via a ExperimentUserProvider
|
|
65
|
+
* or can be manually provided
|
|
66
|
+
*/
|
|
67
|
+
device_manufacturer?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Predefined field, can be manually provided
|
|
70
|
+
*/
|
|
71
|
+
carrier?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Predefined field, auto populated, can be manually overridden
|
|
74
|
+
*/
|
|
75
|
+
library?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Predefined field, can be manually provided
|
|
78
|
+
*/
|
|
79
|
+
ip_address?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Custom user properties
|
|
82
|
+
*/
|
|
83
|
+
user_properties?: {
|
|
84
|
+
[propertyName: string]: string | number | boolean | (string | number | boolean)[];
|
|
85
|
+
};
|
|
86
|
+
groups?: {
|
|
87
|
+
[groupType: string]: string[];
|
|
88
|
+
};
|
|
89
|
+
group_properties?: {
|
|
90
|
+
[groupType: string]: {
|
|
91
|
+
[groupName: string]: {
|
|
92
|
+
[propertyName: string]: string | number | boolean | (string | number | boolean)[];
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* An ExperimentUserProvider injects information into the {@link ExperimentUser}
|
|
99
|
+
* object before sending a request to the server. This can be used to pass
|
|
100
|
+
* identity (deviceId and userId), or other platform specific context.
|
|
101
|
+
* @category Provider
|
|
102
|
+
*/
|
|
103
|
+
export interface ExperimentUserProvider {
|
|
104
|
+
getUser(): Promise<ExperimentUser>;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/user.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE;QAChB,CAAC,YAAY,EAAE,MAAM,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;KACnC,CAAC;IAEF,MAAM,CAAC,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC/B,CAAC;IAEF,gBAAgB,CAAC,EAAE;QACjB,CAAC,SAAS,EAAE,MAAM,GAAG;YACnB,CAAC,SAAS,EAAE,MAAM,GAAG;gBACnB,CAAC,YAAY,EAAE,MAAM,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;aACnC,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @category Types
|
|
3
|
+
*/
|
|
4
|
+
export type Variant = {
|
|
5
|
+
/**
|
|
6
|
+
* The key of the variant.
|
|
7
|
+
*/
|
|
8
|
+
key?: string;
|
|
9
|
+
/**
|
|
10
|
+
* The value of the variant.
|
|
11
|
+
*/
|
|
12
|
+
value?: string;
|
|
13
|
+
/**
|
|
14
|
+
* The attached payload, if any.
|
|
15
|
+
*/
|
|
16
|
+
payload?: any;
|
|
17
|
+
/**
|
|
18
|
+
* The experiment key. Used to distinguish two experiments associated with the same flag.
|
|
19
|
+
*/
|
|
20
|
+
expKey?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Flag, segment, and variant metadata produced as a result of
|
|
23
|
+
* evaluation for the user. Used for system purposes.
|
|
24
|
+
*/
|
|
25
|
+
metadata?: Record<string, unknown>;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* @category Types
|
|
29
|
+
*/
|
|
30
|
+
export type Variants = {
|
|
31
|
+
[key: string]: Variant;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=variant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variant.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/variant.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare class Backoff {
|
|
2
|
+
private readonly attempts;
|
|
3
|
+
private readonly min;
|
|
4
|
+
private readonly max;
|
|
5
|
+
private readonly scalar;
|
|
6
|
+
private started;
|
|
7
|
+
private done;
|
|
8
|
+
private timeoutHandle;
|
|
9
|
+
constructor(attempts: number, min: number, max: number, scalar: number);
|
|
10
|
+
start(fn: () => Promise<void>): void;
|
|
11
|
+
cancel(): void;
|
|
12
|
+
private backoff;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=backoff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backoff.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/backoff.ts"],"names":[],"mappings":"AAEA,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,aAAa,CAAuD;gBAG1E,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM;IAQT,KAAK,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IASpC,MAAM,IAAI,IAAI;IAQrB,OAAO,CAAC,OAAO;CAwBhB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/base64.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,KAAG,MAAM,EAOnD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,GAAG,MAAM,KAAG,MAQ/C,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { EvaluationVariant } from "@amplitude/experiment-core";
|
|
2
|
+
import { ExperimentUser } from "../types/user";
|
|
3
|
+
import { Variant } from "../types/variant";
|
|
4
|
+
export declare const convertUserToContext: (user: ExperimentUser | undefined) => Record<string, unknown>;
|
|
5
|
+
export declare const convertVariant: (value: string | Variant | undefined) => Variant;
|
|
6
|
+
export declare const convertEvaluationVariantToVariant: (evaluationVariant: EvaluationVariant) => Variant;
|
|
7
|
+
//# sourceMappingURL=convert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,eAAO,MAAM,oBAAoB,GAC/B,MAAM,cAAc,GAAG,SAAS,KAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CA+BxB,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,GAAG,OAAO,GAAG,SAAS,KAClC,OAYF,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC5C,mBAAmB,iBAAiB,KACnC,OAmBF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EvaluationFlag } from "@amplitude/experiment-core";
|
|
2
|
+
export declare const isNullOrUndefined: (value: unknown) => boolean;
|
|
3
|
+
export declare const isNullUndefinedOrEmpty: (value: unknown) => boolean;
|
|
4
|
+
export declare const isLocalEvaluationMode: (flag: EvaluationFlag | undefined) => boolean;
|
|
5
|
+
export declare const isRemoteEvaluationMode: (flag: EvaluationFlag | undefined) => boolean;
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,OAElD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,OAIvD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,MAAM,cAAc,GAAG,SAAS,KAC/B,OAEF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,MAAM,cAAc,GAAG,SAAS,KAC/B,OAEF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/platform.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,QAAO,OAExB,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,OAE3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"randomstring.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/randomstring.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,WAAU,MAAc,KACvB,MAMF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Exposure, ExposureTrackingProvider } from "../types/exposure";
|
|
2
|
+
import { ExperimentUser } from "../types/user";
|
|
3
|
+
/**
|
|
4
|
+
* A wrapper for an exposure tracking provider which only sends one exposure event per
|
|
5
|
+
* flag, per variant, per user session. When the user identity (userId or deviceId) changes,
|
|
6
|
+
* the tracking cache is reset to ensure exposures are tracked for the new user session.
|
|
7
|
+
*/
|
|
8
|
+
export declare class UserSessionExposureTracker {
|
|
9
|
+
private readonly exposureTrackingProvider;
|
|
10
|
+
private tracked;
|
|
11
|
+
private identity;
|
|
12
|
+
constructor(exposureTrackingProvider: ExposureTrackingProvider);
|
|
13
|
+
track(exposure: Exposure, user?: ExperimentUser): void;
|
|
14
|
+
private identityEquals;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=userSessionExposureTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userSessionExposureTracker.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/userSessionExposureTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAO/C;;;;GAIG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA2B;IACpE,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,wBAAwB,EAAE,wBAAwB;IAI9D,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI;IAqBtD,OAAO,CAAC,cAAc;CAGvB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createInstance } from "./analytics/react-native-client";
|
|
2
|
+
import { prefetchNativeContext } from "./native/context";
|
|
3
|
+
import * as AnalyticsTypes from "./analytics/types";
|
|
4
|
+
export { createInstance };
|
|
5
|
+
export declare const add: (plugin: AnalyticsTypes.Plugin<AnalyticsTypes.ReactNativeClient, AnalyticsTypes.ReactNativeConfig>) => AnalyticsTypes.AmplitudeReturn<void>, flush: () => AnalyticsTypes.AmplitudeReturn<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: AnalyticsTypes.IIdentify, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, identify: (identify: AnalyticsTypes.IIdentify, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, init: (apiKey: string, userId?: string, options?: AnalyticsTypes.ReactNativeOptions) => AnalyticsTypes.AmplitudeReturn<void>, logEvent: (eventInput: AnalyticsTypes.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, remove: (pluginName: string) => AnalyticsTypes.AmplitudeReturn<void>, reset: () => void, revenue: (revenue: AnalyticsTypes.IRevenue, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setUserId: (userId: string | undefined) => void, shutdown: () => void, track: (eventInput: AnalyticsTypes.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, extendSession: () => void;
|
|
6
|
+
export { Revenue, Identify } from "@amplitude/analytics-core";
|
|
7
|
+
export { InMemoryStorage, LocalStorage, MemoryStorage, } from "./analytics/storage/local-storage";
|
|
8
|
+
export { NitroAnalyticsStorage, NitroMemoryStorage } from "./native/storage";
|
|
9
|
+
export { nitroHttpClient } from "./native/http";
|
|
10
|
+
export { nitroTransport } from "./analytics/nitro-transport";
|
|
11
|
+
export { prefetchNativeContext };
|
|
12
|
+
export { AnalyticsTypes as Types };
|
|
13
|
+
export * from "./experiment/types/config";
|
|
14
|
+
export { Experiment } from "./experiment/factory";
|
|
15
|
+
export { StubExperimentClient } from "./experiment/stubClient";
|
|
16
|
+
export { ExperimentClient } from "./experiment/experimentClient";
|
|
17
|
+
export * from "./experiment/types/client";
|
|
18
|
+
export { Source } from "./experiment/types/source";
|
|
19
|
+
export * from "./experiment/types/user";
|
|
20
|
+
export * from "./experiment/types/variant";
|
|
21
|
+
export * from "./experiment/types/exposure";
|
|
22
|
+
export * from "./experiment/types/storage";
|
|
23
|
+
export { LogLevel } from "./experiment/types/logger";
|
|
24
|
+
export type { Logger } from "./experiment/types/logger";
|
|
25
|
+
export { ConsoleLogger } from "./experiment/logger/consoleLogger";
|
|
26
|
+
export { LocalStorage as ExperimentLocalStorage, MemoryStorage as ExperimentMemoryStorage, } from "./experiment/storage/local-storage";
|
|
27
|
+
export type { AmplitudeContext } from "./AmplitudeContext.nitro";
|
|
28
|
+
export type { AmplitudeStorage } from "./AmplitudeStorage.nitro";
|
|
29
|
+
export type { AmplitudeWorker } from "./AmplitudeWorker.nitro";
|
|
30
|
+
export declare const VERSION = "0.1.0";
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAwB,EACtB,cAAc,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAO,MACL,GAAG,+IACH,KAAK,8CACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,8LACb,QAAQ,6IACR,IAAI,0HACJ,QAAQ,+LACR,MAAM,gEACN,KAAK,cACL,OAAO,2IACP,WAAW,8BACX,QAAQ,0JACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,QAAQ,cACR,KAAK,+LACL,aAAa,YACI,CAAC;AAEpB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,CAAC;AAEnC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,YAAY,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EACL,YAAY,IAAI,sBAAsB,EACtC,aAAa,IAAI,uBAAuB,GACzC,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const init: () => never;
|
|
2
|
+
export declare const track: () => never;
|
|
3
|
+
export declare const identify: () => never;
|
|
4
|
+
export declare const createInstance: () => never;
|
|
5
|
+
export declare const Experiment: {
|
|
6
|
+
initialize: () => never;
|
|
7
|
+
initializeWithAmplitudeAnalytics: () => never;
|
|
8
|
+
};
|
|
9
|
+
export type { AmplitudeContext } from "./AmplitudeContext.nitro";
|
|
10
|
+
export type { AmplitudeStorage } from "./AmplitudeStorage.nitro";
|
|
11
|
+
export type { AmplitudeWorker } from "./AmplitudeWorker.nitro";
|
|
12
|
+
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/index.web.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,IAAI,aAA4B,CAAC;AAC9C,eAAO,MAAM,KAAK,aAA6B,CAAC;AAChD,eAAO,MAAM,QAAQ,aAAgC,CAAC;AACtD,eAAO,MAAM,cAAc,aAAsC,CAAC;AAClE,eAAO,MAAM,UAAU;;;CAItB,CAAC;AAEF,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ReactNativeTrackingOptions } from "@amplitude/analytics-core";
|
|
2
|
+
export type NativeApplicationContext = {
|
|
3
|
+
version?: string;
|
|
4
|
+
platform?: string;
|
|
5
|
+
language?: string;
|
|
6
|
+
country?: string;
|
|
7
|
+
osName?: string;
|
|
8
|
+
osVersion?: string;
|
|
9
|
+
deviceBrand?: string;
|
|
10
|
+
deviceManufacturer?: string;
|
|
11
|
+
deviceModel?: string;
|
|
12
|
+
carrier?: string;
|
|
13
|
+
adid?: string;
|
|
14
|
+
appSetId?: string;
|
|
15
|
+
idfv?: string;
|
|
16
|
+
};
|
|
17
|
+
export type LegacySessionData = {
|
|
18
|
+
deviceId?: string;
|
|
19
|
+
userId?: string;
|
|
20
|
+
sessionId?: number;
|
|
21
|
+
lastEventTime?: number;
|
|
22
|
+
lastEventId?: number;
|
|
23
|
+
};
|
|
24
|
+
export declare function prefetchNativeContext(): void;
|
|
25
|
+
export declare function getNativeApplicationContext(options: ReactNativeTrackingOptions): NativeApplicationContext;
|
|
26
|
+
export declare function getLegacySessionData(instanceName: string): LegacySessionData;
|
|
27
|
+
export declare function getLegacyEvents(instanceName: string, eventKind: string): string[];
|
|
28
|
+
export declare function removeLegacyEvent(instanceName: string, eventKind: string, eventId: number): void;
|
|
29
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/native/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAG5E,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,0BAA0B,GAClC,wBAAwB,CAY1B;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,CAU5E;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CAEV;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,IAAI,CAEN"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { HttpClient, SimpleResponse } from "../experiment/types/transport";
|
|
2
|
+
export declare class NitroHttpClient implements HttpClient {
|
|
3
|
+
request(requestUrl: string, method: string, headers: Record<string, string>, data: string | null, timeoutMillis?: number): Promise<SimpleResponse>;
|
|
4
|
+
}
|
|
5
|
+
export declare const nitroHttpClient: NitroHttpClient;
|
|
6
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/native/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAuChF,qBAAa,eAAgB,YAAW,UAAU;IAC1C,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,aAAa,SAAQ,GACpB,OAAO,CAAC,cAAc,CAAC;CA4B3B;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AmplitudeContext } from "../AmplitudeContext.nitro";
|
|
2
|
+
import type { AmplitudeStorage } from "../AmplitudeStorage.nitro";
|
|
3
|
+
import type { AmplitudeWorker } from "../AmplitudeWorker.nitro";
|
|
4
|
+
export declare function getAmplitudeContext(): AmplitudeContext;
|
|
5
|
+
export declare function getAmplitudeStorage(): AmplitudeStorage;
|
|
6
|
+
export declare function getAmplitudeWorker(): AmplitudeWorker;
|
|
7
|
+
export declare function resetHybridInstancesForTests(): void;
|
|
8
|
+
//# sourceMappingURL=hybrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../../src/native/hybrid.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAMhE,wBAAgB,mBAAmB,IAAI,gBAAgB,CAItD;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAItD;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAIpD;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAInD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Storage as AnalyticsStorage } from "@amplitude/analytics-core";
|
|
2
|
+
import type { Storage as ExperimentStorage } from "../experiment/types/storage";
|
|
3
|
+
export declare class NitroAnalyticsStorage<T> implements AnalyticsStorage<T> {
|
|
4
|
+
private readonly namespace;
|
|
5
|
+
constructor(namespace: string);
|
|
6
|
+
isEnabled(): Promise<boolean>;
|
|
7
|
+
get(key: string): Promise<T | undefined>;
|
|
8
|
+
getRaw(key: string): Promise<string | undefined>;
|
|
9
|
+
set(key: string, value: T): Promise<void>;
|
|
10
|
+
remove(key: string): Promise<void>;
|
|
11
|
+
reset(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export declare class NitroExperimentStorage implements ExperimentStorage {
|
|
14
|
+
private readonly namespace;
|
|
15
|
+
constructor(namespace: string);
|
|
16
|
+
get(key: string): Promise<string | null>;
|
|
17
|
+
put(key: string, value: string): Promise<void>;
|
|
18
|
+
delete(key: string): Promise<void>;
|
|
19
|
+
reset(): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export declare class NitroMemoryStorage implements ExperimentStorage {
|
|
22
|
+
private readonly namespace;
|
|
23
|
+
constructor(namespace: string);
|
|
24
|
+
get(key: string): Promise<string | null>;
|
|
25
|
+
put(key: string, value: string): Promise<void>;
|
|
26
|
+
delete(key: string): Promise<void>;
|
|
27
|
+
reset(): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/native/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAOhF,qBAAa,qBAAqB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAYxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B;AAED,qBAAa,sBAAuB,YAAW,iBAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B;AAED,qBAAa,kBAAmB,YAAW,iBAAiB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
|
package/nitro.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://nitro.margelo.com/nitro.schema.json",
|
|
3
|
+
"cxxNamespace": ["NitroAmplitude"],
|
|
4
|
+
"ios": {
|
|
5
|
+
"iosModuleName": "NitroAmplitude"
|
|
6
|
+
},
|
|
7
|
+
"android": {
|
|
8
|
+
"androidNamespace": ["com", "nitroamplitude"],
|
|
9
|
+
"androidCxxLibName": "NitroAmplitude"
|
|
10
|
+
},
|
|
11
|
+
"autolinking": {
|
|
12
|
+
"AmplitudeContext": {
|
|
13
|
+
"all": {
|
|
14
|
+
"language": "c++",
|
|
15
|
+
"implementationClassName": "HybridAmplitudeContext"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"AmplitudeStorage": {
|
|
19
|
+
"all": {
|
|
20
|
+
"language": "c++",
|
|
21
|
+
"implementationClassName": "HybridAmplitudeStorage"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"AmplitudeWorker": {
|
|
25
|
+
"all": {
|
|
26
|
+
"language": "c++",
|
|
27
|
+
"implementationClassName": "HybridAmplitudeWorker"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"ignorePaths": ["**/node_modules"],
|
|
32
|
+
"gitAttributesGeneratedFlag": true
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
** linguist-generated=true
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#
|
|
2
|
+
# NitroAmplitude+autolinking.cmake
|
|
3
|
+
# This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
# https://github.com/mrousavy/nitro
|
|
5
|
+
# Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
#
|
|
7
|
+
|
|
8
|
+
# This is a CMake file that adds all files generated by Nitrogen
|
|
9
|
+
# to the current CMake project.
|
|
10
|
+
#
|
|
11
|
+
# To use it, add this to your CMakeLists.txt:
|
|
12
|
+
# ```cmake
|
|
13
|
+
# include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/NitroAmplitude+autolinking.cmake)
|
|
14
|
+
# ```
|
|
15
|
+
|
|
16
|
+
# Define a flag to check if we are building properly
|
|
17
|
+
add_definitions(-DBUILDING_NITROAMPLITUDE_WITH_GENERATED_CMAKE_PROJECT)
|
|
18
|
+
|
|
19
|
+
# Enable Raw Props parsing in react-native (for Nitro Views)
|
|
20
|
+
add_definitions(-DRN_SERIALIZABLE_STATE)
|
|
21
|
+
|
|
22
|
+
# Add all headers that were generated by Nitrogen
|
|
23
|
+
include_directories(
|
|
24
|
+
"../nitrogen/generated/shared/c++"
|
|
25
|
+
"../nitrogen/generated/android/c++"
|
|
26
|
+
"../nitrogen/generated/android/"
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
# Add all .cpp sources that were generated by Nitrogen
|
|
30
|
+
target_sources(
|
|
31
|
+
# CMake project name (Android C++ library name)
|
|
32
|
+
NitroAmplitude PRIVATE
|
|
33
|
+
# Autolinking Setup
|
|
34
|
+
../nitrogen/generated/android/NitroAmplitudeOnLoad.cpp
|
|
35
|
+
# Shared Nitrogen C++ sources
|
|
36
|
+
../nitrogen/generated/shared/c++/HybridAmplitudeContextSpec.cpp
|
|
37
|
+
../nitrogen/generated/shared/c++/HybridAmplitudeStorageSpec.cpp
|
|
38
|
+
../nitrogen/generated/shared/c++/HybridAmplitudeWorkerSpec.cpp
|
|
39
|
+
# Android-specific Nitrogen C++ sources
|
|
40
|
+
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
# From node_modules/react-native/ReactAndroid/cmake-utils/folly-flags.cmake
|
|
44
|
+
# Used in node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake
|
|
45
|
+
target_compile_definitions(
|
|
46
|
+
NitroAmplitude PRIVATE
|
|
47
|
+
-DFOLLY_NO_CONFIG=1
|
|
48
|
+
-DFOLLY_HAVE_CLOCK_GETTIME=1
|
|
49
|
+
-DFOLLY_USE_LIBCPP=1
|
|
50
|
+
-DFOLLY_CFG_NO_COROUTINES=1
|
|
51
|
+
-DFOLLY_MOBILE=1
|
|
52
|
+
-DFOLLY_HAVE_RECVMMSG=1
|
|
53
|
+
-DFOLLY_HAVE_PTHREAD=1
|
|
54
|
+
# Once we target android-23 above, we can comment
|
|
55
|
+
# the following line. NDK uses GNU style stderror_r() after API 23.
|
|
56
|
+
-DFOLLY_HAVE_XSI_STRERROR_R=1
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
# Add all libraries required by the generated specs
|
|
60
|
+
find_package(fbjni REQUIRED) # <-- Used for communication between Java <-> C++
|
|
61
|
+
find_package(ReactAndroid REQUIRED) # <-- Used to set up React Native bindings (e.g. CallInvoker/TurboModule)
|
|
62
|
+
find_package(react-native-nitro-modules REQUIRED) # <-- Used to create all HybridObjects and use the Nitro core library
|
|
63
|
+
|
|
64
|
+
# Link all libraries together
|
|
65
|
+
target_link_libraries(
|
|
66
|
+
NitroAmplitude
|
|
67
|
+
fbjni::fbjni # <-- Facebook C++ JNI helpers
|
|
68
|
+
ReactAndroid::jsi # <-- RN: JSI
|
|
69
|
+
react-native-nitro-modules::NitroModules # <-- NitroModules Core :)
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
# Link react-native (different prefab between RN 0.75 and RN 0.76)
|
|
73
|
+
if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
|
|
74
|
+
target_link_libraries(
|
|
75
|
+
NitroAmplitude
|
|
76
|
+
ReactAndroid::reactnative # <-- RN: Native Modules umbrella prefab
|
|
77
|
+
)
|
|
78
|
+
else()
|
|
79
|
+
target_link_libraries(
|
|
80
|
+
NitroAmplitude
|
|
81
|
+
ReactAndroid::react_nativemodule_core # <-- RN: TurboModules Core
|
|
82
|
+
)
|
|
83
|
+
endif()
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// NitroAmplitude+autolinking.gradle
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
/// This is a Gradle file that adds all files generated by Nitrogen
|
|
9
|
+
/// to the current Gradle project.
|
|
10
|
+
///
|
|
11
|
+
/// To use it, add this to your build.gradle:
|
|
12
|
+
/// ```gradle
|
|
13
|
+
/// apply from: '../nitrogen/generated/android/NitroAmplitude+autolinking.gradle'
|
|
14
|
+
/// ```
|
|
15
|
+
|
|
16
|
+
logger.warn("[NitroModules] 🔥 NitroAmplitude is boosted by nitro!")
|
|
17
|
+
|
|
18
|
+
android {
|
|
19
|
+
sourceSets {
|
|
20
|
+
main {
|
|
21
|
+
java.srcDirs += [
|
|
22
|
+
// Nitrogen files
|
|
23
|
+
"${project.projectDir}/../nitrogen/generated/android/kotlin"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// NitroAmplitudeOnLoad.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#ifndef BUILDING_NITROAMPLITUDE_WITH_GENERATED_CMAKE_PROJECT
|
|
9
|
+
#error NitroAmplitudeOnLoad.cpp is not being built with the autogenerated CMakeLists.txt project. Is a different CMakeLists.txt building this?
|
|
10
|
+
#endif
|
|
11
|
+
|
|
12
|
+
#include "NitroAmplitudeOnLoad.hpp"
|
|
13
|
+
|
|
14
|
+
#include <jni.h>
|
|
15
|
+
#include <fbjni/fbjni.h>
|
|
16
|
+
#include <NitroModules/HybridObjectRegistry.hpp>
|
|
17
|
+
|
|
18
|
+
#include "HybridAmplitudeContext.hpp"
|
|
19
|
+
#include "HybridAmplitudeStorage.hpp"
|
|
20
|
+
#include "HybridAmplitudeWorker.hpp"
|
|
21
|
+
|
|
22
|
+
namespace margelo::nitro::NitroAmplitude {
|
|
23
|
+
|
|
24
|
+
int initialize(JavaVM* vm) {
|
|
25
|
+
return facebook::jni::initialize(vm, []() {
|
|
26
|
+
::margelo::nitro::NitroAmplitude::registerAllNatives();
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
void registerAllNatives() {
|
|
33
|
+
using namespace margelo::nitro;
|
|
34
|
+
using namespace margelo::nitro::NitroAmplitude;
|
|
35
|
+
|
|
36
|
+
// Register native JNI methods
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
// Register Nitro Hybrid Objects
|
|
40
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
41
|
+
"AmplitudeContext",
|
|
42
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
43
|
+
static_assert(std::is_default_constructible_v<HybridAmplitudeContext>,
|
|
44
|
+
"The HybridObject \"HybridAmplitudeContext\" is not default-constructible! "
|
|
45
|
+
"Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
|
|
46
|
+
return std::make_shared<HybridAmplitudeContext>();
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
50
|
+
"AmplitudeStorage",
|
|
51
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
52
|
+
static_assert(std::is_default_constructible_v<HybridAmplitudeStorage>,
|
|
53
|
+
"The HybridObject \"HybridAmplitudeStorage\" is not default-constructible! "
|
|
54
|
+
"Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
|
|
55
|
+
return std::make_shared<HybridAmplitudeStorage>();
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
59
|
+
"AmplitudeWorker",
|
|
60
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
61
|
+
static_assert(std::is_default_constructible_v<HybridAmplitudeWorker>,
|
|
62
|
+
"The HybridObject \"HybridAmplitudeWorker\" is not default-constructible! "
|
|
63
|
+
"Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
|
|
64
|
+
return std::make_shared<HybridAmplitudeWorker>();
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
} // namespace margelo::nitro::NitroAmplitude
|