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,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformVariantFromStorage = exports.getVariantsOptionsStorage = exports.getVariantStorage = exports.getFlagStorage = exports.SingleValueStoreCache = exports.LoadStoreCache = void 0;
|
|
7
|
+
const getVariantStorage = (deploymentKey, instanceName, storage) => {
|
|
8
|
+
const namespace = getNamespace(deploymentKey, instanceName);
|
|
9
|
+
const legacyNamespace = getLegacyNamespace(deploymentKey, instanceName);
|
|
10
|
+
return new LoadStoreCache(namespace, storage, transformVariantFromStorage, [legacyNamespace]);
|
|
11
|
+
};
|
|
12
|
+
exports.getVariantStorage = getVariantStorage;
|
|
13
|
+
const getFlagStorage = (deploymentKey, instanceName, storage) => {
|
|
14
|
+
const namespace = `${getNamespace(deploymentKey, instanceName)}-flags`;
|
|
15
|
+
const legacyNamespace = `${getLegacyNamespace(deploymentKey, instanceName)}-flags`;
|
|
16
|
+
return new LoadStoreCache(namespace, storage, undefined, [legacyNamespace]);
|
|
17
|
+
};
|
|
18
|
+
exports.getFlagStorage = getFlagStorage;
|
|
19
|
+
const getVariantsOptionsStorage = (deploymentKey, instanceName, storage) => {
|
|
20
|
+
const namespace = `${getNamespace(deploymentKey, instanceName)}-variants-options`;
|
|
21
|
+
const legacyNamespace = `${getLegacyNamespace(deploymentKey, instanceName)}-variants-options`;
|
|
22
|
+
return new SingleValueStoreCache(namespace, storage, [legacyNamespace]);
|
|
23
|
+
};
|
|
24
|
+
exports.getVariantsOptionsStorage = getVariantsOptionsStorage;
|
|
25
|
+
const getNamespace = (deploymentKey, instanceName) => {
|
|
26
|
+
return `amp-exp-${instanceName}-${hashString(deploymentKey)}`;
|
|
27
|
+
};
|
|
28
|
+
const getLegacyNamespace = (deploymentKey, instanceName) => {
|
|
29
|
+
const truncatedDeployment = deploymentKey.substring(deploymentKey.length - 6);
|
|
30
|
+
return `amp-exp-${instanceName}-${truncatedDeployment}`;
|
|
31
|
+
};
|
|
32
|
+
const hashString = value => {
|
|
33
|
+
let hash = 2166136261;
|
|
34
|
+
for (let i = 0; i < value.length; i++) {
|
|
35
|
+
hash ^= value.charCodeAt(i);
|
|
36
|
+
hash = Math.imul(hash, 16777619);
|
|
37
|
+
}
|
|
38
|
+
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
39
|
+
};
|
|
40
|
+
class SingleValueStoreCache {
|
|
41
|
+
constructor(namespace, storage, legacyNamespaces = []) {
|
|
42
|
+
this.namespace = namespace;
|
|
43
|
+
this.legacyNamespaces = legacyNamespaces;
|
|
44
|
+
this.storage = storage;
|
|
45
|
+
this.value = this.get();
|
|
46
|
+
}
|
|
47
|
+
get() {
|
|
48
|
+
return this.value;
|
|
49
|
+
}
|
|
50
|
+
put(value) {
|
|
51
|
+
this.value = value;
|
|
52
|
+
}
|
|
53
|
+
async load() {
|
|
54
|
+
let value = await this.storage.get(this.namespace);
|
|
55
|
+
for (const legacyNamespace of this.legacyNamespaces) {
|
|
56
|
+
if (value) {
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
value = await this.storage.get(legacyNamespace);
|
|
60
|
+
}
|
|
61
|
+
if (value) {
|
|
62
|
+
try {
|
|
63
|
+
this.value = JSON.parse(value);
|
|
64
|
+
} catch {
|
|
65
|
+
this.value = undefined;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async store() {
|
|
70
|
+
if (this.value === undefined) {
|
|
71
|
+
// Delete the key if the value is undefined
|
|
72
|
+
await this.storage.delete(this.namespace);
|
|
73
|
+
} else {
|
|
74
|
+
// Also store false or null values
|
|
75
|
+
await this.storage.put(this.namespace, JSON.stringify(this.value));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.SingleValueStoreCache = SingleValueStoreCache;
|
|
80
|
+
class LoadStoreCache {
|
|
81
|
+
cache = {};
|
|
82
|
+
constructor(namespace, storage, transformer, legacyNamespaces = []) {
|
|
83
|
+
this.namespace = namespace;
|
|
84
|
+
this.legacyNamespaces = legacyNamespaces;
|
|
85
|
+
this.storage = storage;
|
|
86
|
+
this.transformer = transformer;
|
|
87
|
+
}
|
|
88
|
+
get(key) {
|
|
89
|
+
return this.cache[key];
|
|
90
|
+
}
|
|
91
|
+
getAll() {
|
|
92
|
+
return {
|
|
93
|
+
...this.cache
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
put(key, value) {
|
|
97
|
+
this.cache[key] = value;
|
|
98
|
+
}
|
|
99
|
+
putAll(values) {
|
|
100
|
+
for (const key of Object.keys(values)) {
|
|
101
|
+
this.cache[key] = values[key];
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
remove(key) {
|
|
105
|
+
delete this.cache[key];
|
|
106
|
+
}
|
|
107
|
+
clear() {
|
|
108
|
+
this.cache = {};
|
|
109
|
+
}
|
|
110
|
+
async load(initialValues) {
|
|
111
|
+
let rawValues = await this.storage.get(this.namespace);
|
|
112
|
+
for (const legacyNamespace of this.legacyNamespaces) {
|
|
113
|
+
if (rawValues) {
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
rawValues = await this.storage.get(legacyNamespace);
|
|
117
|
+
}
|
|
118
|
+
let jsonValues = {};
|
|
119
|
+
if (!rawValues) {
|
|
120
|
+
this.clear();
|
|
121
|
+
if (initialValues) {
|
|
122
|
+
this.putAll(initialValues);
|
|
123
|
+
}
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
try {
|
|
127
|
+
jsonValues = JSON.parse(rawValues) || {};
|
|
128
|
+
} catch {
|
|
129
|
+
this.clear();
|
|
130
|
+
if (initialValues) {
|
|
131
|
+
this.putAll(initialValues);
|
|
132
|
+
}
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const values = {};
|
|
136
|
+
for (const key of Object.keys(jsonValues)) {
|
|
137
|
+
try {
|
|
138
|
+
const value = this.transformer ? this.transformer(jsonValues[key]) : jsonValues[key];
|
|
139
|
+
if (value !== undefined) {
|
|
140
|
+
values[key] = value;
|
|
141
|
+
}
|
|
142
|
+
} catch {
|
|
143
|
+
// Do nothing
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
this.clear();
|
|
147
|
+
if (initialValues) {
|
|
148
|
+
this.putAll(initialValues);
|
|
149
|
+
}
|
|
150
|
+
this.putAll(values);
|
|
151
|
+
}
|
|
152
|
+
async store(values = this.cache) {
|
|
153
|
+
await this.storage.put(this.namespace, JSON.stringify(values));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
exports.LoadStoreCache = LoadStoreCache;
|
|
157
|
+
const transformVariantFromStorage = storageValue => {
|
|
158
|
+
if (typeof storageValue === "string") {
|
|
159
|
+
// From v0 string format
|
|
160
|
+
return {
|
|
161
|
+
key: storageValue,
|
|
162
|
+
value: storageValue
|
|
163
|
+
};
|
|
164
|
+
} else if (typeof storageValue === "object" && storageValue !== null) {
|
|
165
|
+
// From v1 or v2 object format
|
|
166
|
+
const variantRecord = storageValue;
|
|
167
|
+
const key = variantRecord.key;
|
|
168
|
+
const value = variantRecord.value;
|
|
169
|
+
const payload = variantRecord.payload;
|
|
170
|
+
const rawMetadata = variantRecord.metadata;
|
|
171
|
+
let metadata = rawMetadata && typeof rawMetadata === "object" ? {
|
|
172
|
+
...rawMetadata
|
|
173
|
+
} : undefined;
|
|
174
|
+
let experimentKey = typeof variantRecord.expKey === "string" ? variantRecord.expKey : undefined;
|
|
175
|
+
const metadataExperimentKey = metadata && typeof metadata.experimentKey === "string" ? metadata.experimentKey : undefined;
|
|
176
|
+
if (metadataExperimentKey) {
|
|
177
|
+
experimentKey = metadataExperimentKey;
|
|
178
|
+
} else if (experimentKey) {
|
|
179
|
+
metadata = metadata || {};
|
|
180
|
+
metadata.experimentKey = experimentKey;
|
|
181
|
+
}
|
|
182
|
+
const variant = {};
|
|
183
|
+
if (typeof key === "string") {
|
|
184
|
+
variant.key = key;
|
|
185
|
+
} else if (typeof value === "string") {
|
|
186
|
+
variant.key = value;
|
|
187
|
+
}
|
|
188
|
+
if (typeof value === "string") variant.value = value;
|
|
189
|
+
if (metadata) variant.metadata = metadata;
|
|
190
|
+
if (payload) variant.payload = payload;
|
|
191
|
+
if (experimentKey) variant.expKey = experimentKey;
|
|
192
|
+
return variant;
|
|
193
|
+
}
|
|
194
|
+
return undefined;
|
|
195
|
+
};
|
|
196
|
+
exports.transformVariantFromStorage = transformVariantFromStorage;
|
|
197
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getVariantStorage","deploymentKey","instanceName","storage","namespace","getNamespace","legacyNamespace","getLegacyNamespace","LoadStoreCache","transformVariantFromStorage","exports","getFlagStorage","undefined","getVariantsOptionsStorage","SingleValueStoreCache","hashString","truncatedDeployment","substring","length","value","hash","i","charCodeAt","Math","imul","toString","padStart","constructor","legacyNamespaces","get","put","load","JSON","parse","store","delete","stringify","cache","transformer","key","getAll","putAll","values","Object","keys","remove","clear","initialValues","rawValues","jsonValues","storageValue","variantRecord","payload","rawMetadata","metadata","experimentKey","expKey","metadataExperimentKey","variant"],"sourceRoot":"../../../../src","sources":["experiment/storage/cache.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MemoryStorage = exports.LocalStorage = void 0;
|
|
7
|
+
class MemoryStorage {
|
|
8
|
+
static memoryStorage = new Map();
|
|
9
|
+
async get(key) {
|
|
10
|
+
return MemoryStorage.memoryStorage.get(key) ?? null;
|
|
11
|
+
}
|
|
12
|
+
async put(key, value) {
|
|
13
|
+
MemoryStorage.memoryStorage.set(key, value);
|
|
14
|
+
}
|
|
15
|
+
async delete(key) {
|
|
16
|
+
MemoryStorage.memoryStorage.delete(key);
|
|
17
|
+
}
|
|
18
|
+
async reset() {
|
|
19
|
+
MemoryStorage.memoryStorage.clear();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.MemoryStorage = MemoryStorage;
|
|
23
|
+
class LocalStorage extends MemoryStorage {}
|
|
24
|
+
exports.LocalStorage = LocalStorage;
|
|
25
|
+
//# sourceMappingURL=local-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MemoryStorage","memoryStorage","Map","get","key","put","value","set","delete","reset","clear","exports","LocalStorage"],"sourceRoot":"../../../../src","sources":["experiment/storage/local-storage.ts"],"mappings":";;;;;;AAEO,MAAMA,aAAa,CAAoB;EAC5C,OAAwBC,aAAa,GAAG,IAAIC,GAAG,CAAiB,CAAC;EAEjE,MAAMC,GAAGA,CAACC,GAAW,EAA0B;IAC7C,OAAOJ,aAAa,CAACC,aAAa,CAACE,GAAG,CAACC,GAAG,CAAC,IAAI,IAAI;EACrD;EAEA,MAAMC,GAAGA,CAACD,GAAW,EAAEE,KAAa,EAAiB;IACnDN,aAAa,CAACC,aAAa,CAACM,GAAG,CAACH,GAAG,EAAEE,KAAK,CAAC;EAC7C;EAEA,MAAME,MAAMA,CAACJ,GAAW,EAAiB;IACvCJ,aAAa,CAACC,aAAa,CAACO,MAAM,CAACJ,GAAG,CAAC;EACzC;EAEA,MAAMK,KAAKA,CAAA,EAAkB;IAC3BT,aAAa,CAACC,aAAa,CAACS,KAAK,CAAC,CAAC;EACrC;AACF;AAACC,OAAA,CAAAX,aAAA,GAAAA,aAAA;AAEM,MAAMY,YAAY,SAASZ,aAAa,CAAC;AAAEW,OAAA,CAAAC,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StubExperimentClient = void 0;
|
|
7
|
+
var _config = require("./types/config");
|
|
8
|
+
/**
|
|
9
|
+
* A stub {@link Client} implementation that does nothing for all methods
|
|
10
|
+
*/
|
|
11
|
+
class StubExperimentClient {
|
|
12
|
+
getUser() {
|
|
13
|
+
return {};
|
|
14
|
+
}
|
|
15
|
+
async start(_user) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
stop() {}
|
|
19
|
+
setUser(_user) {}
|
|
20
|
+
async fetch(_user, _options) {
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
async fetchOrThrow(_user, _options) {
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
getUserProvider() {
|
|
27
|
+
return {
|
|
28
|
+
async getUser() {
|
|
29
|
+
return {};
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
setUserProvider(_userProvider) {
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
variant(_key, _fallback) {
|
|
37
|
+
return _config.Defaults.fallbackVariant ?? {};
|
|
38
|
+
}
|
|
39
|
+
all() {
|
|
40
|
+
return {};
|
|
41
|
+
}
|
|
42
|
+
clear() {}
|
|
43
|
+
exposure(_key) {}
|
|
44
|
+
}
|
|
45
|
+
exports.StubExperimentClient = StubExperimentClient;
|
|
46
|
+
//# sourceMappingURL=stubClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_config","require","StubExperimentClient","getUser","start","_user","stop","setUser","fetch","_options","fetchOrThrow","getUserProvider","setUserProvider","_userProvider","variant","_key","_fallback","Defaults","fallbackVariant","all","clear","exposure","exports"],"sourceRoot":"../../../src","sources":["experiment/stubClient.ts"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACO,MAAMC,oBAAoB,CAAmB;EAC3CC,OAAOA,CAAA,EAAmB;IAC/B,OAAO,CAAC,CAAC;EACX;EAEA,MAAaC,KAAKA,CAACC,KAAsB,EAAiB;IACxD;EACF;EAEOC,IAAIA,CAAA,EAAS,CAAC;EAEdC,OAAOA,CAACF,KAAqB,EAAQ,CAAC;EAE7C,MAAaG,KAAKA,CAChBH,KAAsB,EACtBI,QAAuB,EACQ;IAC/B,OAAO,IAAI;EACb;EAEA,MAAaC,YAAYA,CACvBL,KAAsB,EACtBI,QAAuB,EACQ;IAC/B,OAAO,IAAI;EACb;EAEOE,eAAeA,CAAA,EAA2B;IAC/C,OAAO;MACL,MAAMR,OAAOA,CAAA,EAA4B;QACvC,OAAO,CAAC,CAAC;MACX;IACF,CAAC;EACH;EAEOS,eAAeA,CACpBC,aAAqC,EACf;IACtB,OAAO,IAAI;EACb;EAEOC,OAAOA,CAACC,IAAY,EAAEC,SAA4B,EAAW;IAClE,OAAOC,gBAAQ,CAACC,eAAe,IAAI,CAAC,CAAC;EACvC;EAEOC,GAAGA,CAAA,EAAa;IACrB,OAAO,CAAC,CAAC;EACX;EAEOC,KAAKA,CAAA,EAAS,CAAC;EAEfC,QAAQA,CAACN,IAAY,EAAQ,CAAC;AACvC;AAACO,OAAA,CAAApB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.WrapperClient = exports.FetchHttpClient = void 0;
|
|
7
|
+
var _experimentCore = require("@amplitude/experiment-core");
|
|
8
|
+
var _unfetch = _interopRequireDefault(require("unfetch"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/**
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const getFetch = () => _experimentCore.safeGlobal.fetch || _unfetch.default;
|
|
16
|
+
const getAbortController = () => {
|
|
17
|
+
const scope = _experimentCore.safeGlobal;
|
|
18
|
+
return typeof scope.AbortController === "function" ? new scope.AbortController() : undefined;
|
|
19
|
+
};
|
|
20
|
+
const timeout = (promise, timeoutMillis, abortController) => {
|
|
21
|
+
if (timeoutMillis == null || timeoutMillis <= 0) {
|
|
22
|
+
return promise;
|
|
23
|
+
}
|
|
24
|
+
return new Promise(function (resolve, reject) {
|
|
25
|
+
const timeoutHandle = _experimentCore.safeGlobal.setTimeout(function () {
|
|
26
|
+
abortController?.abort();
|
|
27
|
+
reject(Error("Request timeout after " + timeoutMillis + " milliseconds"));
|
|
28
|
+
}, timeoutMillis);
|
|
29
|
+
promise.then(value => {
|
|
30
|
+
_experimentCore.safeGlobal.clearTimeout(timeoutHandle);
|
|
31
|
+
resolve(value);
|
|
32
|
+
}, error => {
|
|
33
|
+
_experimentCore.safeGlobal.clearTimeout(timeoutHandle);
|
|
34
|
+
reject(error);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
const _request = (requestUrl, method, headers, data, timeoutMillis) => {
|
|
39
|
+
const abortController = getAbortController();
|
|
40
|
+
const call = async () => {
|
|
41
|
+
const response = await getFetch()(requestUrl, {
|
|
42
|
+
method: method,
|
|
43
|
+
headers: headers,
|
|
44
|
+
body: data,
|
|
45
|
+
signal: abortController?.signal
|
|
46
|
+
});
|
|
47
|
+
const simpleResponse = {
|
|
48
|
+
status: response.status,
|
|
49
|
+
body: await response.text()
|
|
50
|
+
};
|
|
51
|
+
return simpleResponse;
|
|
52
|
+
};
|
|
53
|
+
return timeout(call(), timeoutMillis, abortController);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Wrap the exposed HttpClient in a CoreClient implementation to work with
|
|
58
|
+
* FlagsApi and EvaluationApi.
|
|
59
|
+
*/
|
|
60
|
+
class WrapperClient {
|
|
61
|
+
constructor(client) {
|
|
62
|
+
this.client = client;
|
|
63
|
+
}
|
|
64
|
+
async request(request) {
|
|
65
|
+
return await this.client.request(request.requestUrl, request.method, request.headers, null, request.timeoutMillis);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.WrapperClient = WrapperClient;
|
|
69
|
+
const FetchHttpClient = exports.FetchHttpClient = {
|
|
70
|
+
request: _request
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_experimentCore","require","_unfetch","_interopRequireDefault","e","__esModule","default","getFetch","safeGlobal","fetch","unfetch","getAbortController","scope","AbortController","undefined","timeout","promise","timeoutMillis","abortController","Promise","resolve","reject","timeoutHandle","setTimeout","abort","Error","then","value","clearTimeout","error","_request","requestUrl","method","headers","data","call","response","body","signal","simpleResponse","status","text","WrapperClient","constructor","client","request","exports","FetchHttpClient"],"sourceRoot":"../../../../src","sources":["experiment/transport/http.ts"],"mappings":";;;;;;AAKA,IAAAA,eAAA,GAAAC,OAAA;AAMA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA8B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAX9B;AACA;AACA;AACA;;AAYA,MAAMG,QAAQ,GAAGA,CAAA,KAAMC,0BAAU,CAACC,KAAK,IAAIC,gBAAO;AAWlD,MAAMC,kBAAkB,GAAGA,CAAA,KAAuC;EAChE,MAAMC,KAAK,GAAGJ,0BAA4C;EAC1D,OAAO,OAAOI,KAAK,CAACC,eAAe,KAAK,UAAU,GAC9C,IAAID,KAAK,CAACC,eAAe,CAAC,CAAC,GAC3BC,SAAS;AACf,CAAC;AAED,MAAMC,OAAO,GAAGA,CACdC,OAAgC,EAChCC,aAAsB,EACtBC,eAAqC,KACT;EAC5B,IAAID,aAAa,IAAI,IAAI,IAAIA,aAAa,IAAI,CAAC,EAAE;IAC/C,OAAOD,OAAO;EAChB;EACA,OAAO,IAAIG,OAAO,CAAC,UAAUC,OAAO,EAAEC,MAAM,EAAE;IAC5C,MAAMC,aAAa,GAAGd,0BAAU,CAACe,UAAU,CAAC,YAAY;MACtDL,eAAe,EAAEM,KAAK,CAAC,CAAC;MACxBH,MAAM,CAACI,KAAK,CAAC,wBAAwB,GAAGR,aAAa,GAAG,eAAe,CAAC,CAAC;IAC3E,CAAC,EAAEA,aAAa,CAAC;IACjBD,OAAO,CAACU,IAAI,CACTC,KAAK,IAAK;MACTnB,0BAAU,CAACoB,YAAY,CAACN,aAAa,CAAC;MACtCF,OAAO,CAACO,KAAK,CAAC;IAChB,CAAC,EACAE,KAAK,IAAK;MACTrB,0BAAU,CAACoB,YAAY,CAACN,aAAa,CAAC;MACtCD,MAAM,CAACQ,KAAK,CAAC;IACf,CACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAMC,QAAQ,GAAGA,CACfC,UAAkB,EAClBC,MAAc,EACdC,OAA+B,EAC/BC,IAAY,EACZjB,aAAsB,KACM;EAC5B,MAAMC,eAAe,GAAGP,kBAAkB,CAAC,CAAC;EAC5C,MAAMwB,IAAI,GAAG,MAAAA,CAAA,KAAY;IACvB,MAAMC,QAAQ,GAAG,MAAM7B,QAAQ,CAAC,CAAC,CAACwB,UAAU,EAAE;MAC5CC,MAAM,EAAEA,MAAM;MACdC,OAAO,EAAEA,OAAO;MAChBI,IAAI,EAAEH,IAAI;MACVI,MAAM,EAAEpB,eAAe,EAAEoB;IAC3B,CAAC,CAAC;IACF,MAAMC,cAA8B,GAAG;MACrCC,MAAM,EAAEJ,QAAQ,CAACI,MAAM;MACvBH,IAAI,EAAE,MAAMD,QAAQ,CAACK,IAAI,CAAC;IAC5B,CAAC;IACD,OAAOF,cAAc;EACvB,CAAC;EACD,OAAOxB,OAAO,CAACoB,IAAI,CAAC,CAAC,EAAElB,aAAa,EAAEC,eAAe,CAAC;AACxD,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMwB,aAAa,CAA2B;EAEnDC,WAAWA,CAACC,MAAkB,EAAE;IAC9B,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;EAEA,MAAMC,OAAOA,CAACA,OAAoB,EAAyB;IACzD,OAAO,MAAM,IAAI,CAACD,MAAM,CAACC,OAAO,CAC9BA,OAAO,CAACd,UAAU,EAClBc,OAAO,CAACb,MAAM,EACda,OAAO,CAACZ,OAAO,EACf,IAAI,EACJY,OAAO,CAAC5B,aACV,CAAC;EACH;AACF;AAAC6B,OAAA,CAAAJ,aAAA,GAAAA,aAAA;AAEM,MAAMK,eAA2B,GAAAD,OAAA,CAAAC,eAAA,GAAG;EAAEF,OAAO,EAAEf;AAAS,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/client.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Defaults = void 0;
|
|
7
|
+
var _http = require("../../native/http");
|
|
8
|
+
var _storage = require("../../native/storage");
|
|
9
|
+
var _logger = require("./logger");
|
|
10
|
+
var _source = require("./source");
|
|
11
|
+
/**
|
|
12
|
+
* @category Configuration
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
Defaults for Experiment Config options
|
|
17
|
+
|
|
18
|
+
| **Option** | **Default** |
|
|
19
|
+
|------------------|-----------------------------------|
|
|
20
|
+
| **debug** | `false` |
|
|
21
|
+
| **logLevel** | `LogLevel.Error` |
|
|
22
|
+
| **logger** | `null` (ConsoleLogger will be used) |
|
|
23
|
+
| **instanceName** | `$default_instance` |
|
|
24
|
+
| **fallbackVariant** | `null` |
|
|
25
|
+
| **initialVariants** | `null` |
|
|
26
|
+
| **initialFlags** | `undefined` |
|
|
27
|
+
| **source** | `Source.LocalStorage` |
|
|
28
|
+
| **serverUrl** | `"https://api.lab.amplitude.com"` |
|
|
29
|
+
| **flagsServerUrl** | `"https://flag.lab.amplitude.com"` |
|
|
30
|
+
| **serverZone** | `"US"` |
|
|
31
|
+
| **assignmentTimeoutMillis** | `10000` |
|
|
32
|
+
| **retryFailedAssignment** | `true` |
|
|
33
|
+
| **automaticExposureTracking** | `true` |
|
|
34
|
+
| **pollOnStart** | `true` |
|
|
35
|
+
| **fetchOnStart** | `true` |
|
|
36
|
+
| **automaticFetchOnAmplitudeIdentityChange** | `false` |
|
|
37
|
+
| **userProvider** | `null` |
|
|
38
|
+
| **analyticsProvider** | `null` |
|
|
39
|
+
| **exposureTrackingProvider** | `null` |
|
|
40
|
+
|
|
41
|
+
*
|
|
42
|
+
* @category Configuration
|
|
43
|
+
*/
|
|
44
|
+
const Defaults = exports.Defaults = {
|
|
45
|
+
debug: false,
|
|
46
|
+
logLevel: _logger.LogLevel.Error,
|
|
47
|
+
loggerProvider: null,
|
|
48
|
+
instanceName: "$default_instance",
|
|
49
|
+
fallbackVariant: {},
|
|
50
|
+
initialVariants: {},
|
|
51
|
+
initialFlags: undefined,
|
|
52
|
+
source: _source.Source.LocalStorage,
|
|
53
|
+
serverUrl: "https://api.lab.amplitude.com",
|
|
54
|
+
flagsServerUrl: "https://flag.lab.amplitude.com",
|
|
55
|
+
serverZone: "US",
|
|
56
|
+
fetchTimeoutMillis: 10000,
|
|
57
|
+
retryFetchOnFailure: true,
|
|
58
|
+
automaticExposureTracking: true,
|
|
59
|
+
pollOnStart: true,
|
|
60
|
+
fetchOnStart: true,
|
|
61
|
+
automaticFetchOnAmplitudeIdentityChange: false,
|
|
62
|
+
userProvider: null,
|
|
63
|
+
exposureTrackingProvider: null,
|
|
64
|
+
httpClient: _http.nitroHttpClient,
|
|
65
|
+
storage: new _storage.NitroMemoryStorage("experiment")
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_http","require","_storage","_logger","_source","Defaults","exports","debug","logLevel","LogLevel","Error","loggerProvider","instanceName","fallbackVariant","initialVariants","initialFlags","undefined","source","Source","LocalStorage","serverUrl","flagsServerUrl","serverZone","fetchTimeoutMillis","retryFetchOnFailure","automaticExposureTracking","pollOnStart","fetchOnStart","automaticFetchOnAmplitudeIdentityChange","userProvider","exposureTrackingProvider","httpClient","nitroHttpClient","storage","NitroMemoryStorage"],"sourceRoot":"../../../../src","sources":["experiment/types/config.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAGA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAMA;AACA;AACA;;AAiJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,QAA0B,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACxCE,KAAK,EAAE,KAAK;EACZC,QAAQ,EAAEC,gBAAQ,CAACC,KAAK;EACxBC,cAAc,EAAE,IAAI;EACpBC,YAAY,EAAE,mBAAmB;EACjCC,eAAe,EAAE,CAAC,CAAC;EACnBC,eAAe,EAAE,CAAC,CAAC;EACnBC,YAAY,EAAEC,SAAS;EACvBC,MAAM,EAAEC,cAAM,CAACC,YAAY;EAC3BC,SAAS,EAAE,+BAA+B;EAC1CC,cAAc,EAAE,gCAAgC;EAChDC,UAAU,EAAE,IAAI;EAChBC,kBAAkB,EAAE,KAAK;EACzBC,mBAAmB,EAAE,IAAI;EACzBC,yBAAyB,EAAE,IAAI;EAC/BC,WAAW,EAAE,IAAI;EACjBC,YAAY,EAAE,IAAI;EAClBC,uCAAuC,EAAE,KAAK;EAC9CC,YAAY,EAAE,IAAI;EAClBC,wBAAwB,EAAE,IAAI;EAC9BC,UAAU,EAAEC,qBAAe;EAC3BC,OAAO,EAAE,IAAIC,2BAAkB,CAAC,YAAY;AAC9C,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/exposure.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LogLevel = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Log level enumeration for controlling logging verbosity.
|
|
9
|
+
* @category Logging
|
|
10
|
+
*/
|
|
11
|
+
let LogLevel = exports.LogLevel = /*#__PURE__*/function (LogLevel) {
|
|
12
|
+
/**
|
|
13
|
+
* Disable all logging
|
|
14
|
+
*/
|
|
15
|
+
LogLevel[LogLevel["Disable"] = 0] = "Disable";
|
|
16
|
+
/**
|
|
17
|
+
* Error level logging - only critical errors
|
|
18
|
+
*/
|
|
19
|
+
LogLevel[LogLevel["Error"] = 1] = "Error";
|
|
20
|
+
/**
|
|
21
|
+
* Warning level logging - errors and warnings
|
|
22
|
+
*/
|
|
23
|
+
LogLevel[LogLevel["Warn"] = 2] = "Warn";
|
|
24
|
+
/**
|
|
25
|
+
* Info level logging - errors, warnings, and informational messages
|
|
26
|
+
*/
|
|
27
|
+
LogLevel[LogLevel["Info"] = 3] = "Info";
|
|
28
|
+
/**
|
|
29
|
+
* Debug level logging - errors, warnings, info, and debug messages
|
|
30
|
+
*/
|
|
31
|
+
LogLevel[LogLevel["Debug"] = 4] = "Debug";
|
|
32
|
+
/**
|
|
33
|
+
* Verbose level logging - all messages including verbose details
|
|
34
|
+
*/
|
|
35
|
+
LogLevel[LogLevel["Verbose"] = 5] = "Verbose";
|
|
36
|
+
return LogLevel;
|
|
37
|
+
}({});
|
|
38
|
+
/**
|
|
39
|
+
* Logger interface that can be implemented to provide custom logging.
|
|
40
|
+
* @category Logging
|
|
41
|
+
*/
|
|
42
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LogLevel","exports"],"sourceRoot":"../../../../src","sources":["experiment/types/logger.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AAHA,IAIYA,QAAQ,GAAAC,OAAA,CAAAD,QAAA,0BAARA,QAAQ;EAClB;AACF;AACA;EAHYA,QAAQ,CAARA,QAAQ;EAKlB;AACF;AACA;EAPYA,QAAQ,CAARA,QAAQ;EASlB;AACF;AACA;EAXYA,QAAQ,CAARA,QAAQ;EAalB;AACF;AACA;EAfYA,QAAQ,CAARA,QAAQ;EAiBlB;AACF;AACA;EAnBYA,QAAQ,CAARA,QAAQ;EAqBlB;AACF;AACA;EAvBYA,QAAQ,CAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AA2BpB;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isFallback = exports.VariantSource = exports.Source = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Determines the primary source of variants before falling back.
|
|
9
|
+
*
|
|
10
|
+
* @category Source
|
|
11
|
+
*/
|
|
12
|
+
let Source = exports.Source = /*#__PURE__*/function (Source) {
|
|
13
|
+
/**
|
|
14
|
+
* The default way to source variants within your application. Before the
|
|
15
|
+
* assignments are fetched, `getVariant(s)` will fallback to local storage
|
|
16
|
+
* first, then `initialVariants` if local storage is empty. This option
|
|
17
|
+
* effectively falls back to an assignment fetched previously.
|
|
18
|
+
*/
|
|
19
|
+
Source["LocalStorage"] = "localStorage";
|
|
20
|
+
/**
|
|
21
|
+
* This bootstrap option is used primarily for servers-side rendering using an
|
|
22
|
+
* Experiment server SDK. This bootstrap option always prefers the config
|
|
23
|
+
* `initialVariants` over data in local storage, even if variants are fetched
|
|
24
|
+
* successfully and stored locally.
|
|
25
|
+
*/
|
|
26
|
+
Source["InitialVariants"] = "initialVariants";
|
|
27
|
+
return Source;
|
|
28
|
+
}({});
|
|
29
|
+
/**
|
|
30
|
+
* Indicates from which source the variant() function determines the variant
|
|
31
|
+
*
|
|
32
|
+
* @category Source
|
|
33
|
+
*/
|
|
34
|
+
let VariantSource = exports.VariantSource = /*#__PURE__*/function (VariantSource) {
|
|
35
|
+
VariantSource["LocalStorage"] = "storage";
|
|
36
|
+
VariantSource["InitialVariants"] = "initial";
|
|
37
|
+
VariantSource["SecondaryLocalStorage"] = "secondary-storage";
|
|
38
|
+
VariantSource["SecondaryInitialVariants"] = "secondary-initial";
|
|
39
|
+
VariantSource["FallbackInline"] = "fallback-inline";
|
|
40
|
+
VariantSource["FallbackConfig"] = "fallback-config";
|
|
41
|
+
VariantSource["LocalEvaluation"] = "local-evaluation";
|
|
42
|
+
return VariantSource;
|
|
43
|
+
}({});
|
|
44
|
+
/**
|
|
45
|
+
* Returns true if the VariantSource is one of the fallbacks (inline or config)
|
|
46
|
+
*
|
|
47
|
+
* @param source a {@link VariantSource}
|
|
48
|
+
* @returns true if source is {@link VariantSource.FallbackInline} or {@link VariantSource.FallbackConfig}
|
|
49
|
+
*/
|
|
50
|
+
const isFallback = source => {
|
|
51
|
+
return !source || source === VariantSource.FallbackInline || source === VariantSource.FallbackConfig || source === VariantSource.SecondaryInitialVariants;
|
|
52
|
+
};
|
|
53
|
+
exports.isFallback = isFallback;
|
|
54
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Source","exports","VariantSource","isFallback","source","FallbackInline","FallbackConfig","SecondaryInitialVariants"],"sourceRoot":"../../../../src","sources":["experiment/types/source.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AAJA,IAKYA,MAAM,GAAAC,OAAA,CAAAD,MAAA,0BAANA,MAAM;EAChB;AACF;AACA;AACA;AACA;AACA;EANYA,MAAM;EAShB;AACF;AACA;AACA;AACA;AACA;EAdYA,MAAM;EAAA,OAANA,MAAM;AAAA;AAkBlB;AACA;AACA;AACA;AACA;AAJA,IAKYE,aAAa,GAAAD,OAAA,CAAAC,aAAA,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAUzB;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,UAAU,GAAIC,MAAiC,IAAc;EACxE,OACE,CAACA,MAAM,IACPA,MAAM,KAAKF,aAAa,CAACG,cAAc,IACvCD,MAAM,KAAKF,aAAa,CAACI,cAAc,IACvCF,MAAM,KAAKF,aAAa,CAACK,wBAAwB;AAErD,CAAC;AAACN,OAAA,CAAAE,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/storage.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/transport.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/user.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/variant.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Backoff = void 0;
|
|
7
|
+
var _experimentCore = require("@amplitude/experiment-core");
|
|
8
|
+
class Backoff {
|
|
9
|
+
started = false;
|
|
10
|
+
done = false;
|
|
11
|
+
constructor(attempts, min, max, scalar) {
|
|
12
|
+
this.attempts = attempts;
|
|
13
|
+
this.min = min;
|
|
14
|
+
this.max = max;
|
|
15
|
+
this.scalar = scalar;
|
|
16
|
+
}
|
|
17
|
+
start(fn) {
|
|
18
|
+
if (!this.started) {
|
|
19
|
+
this.started = true;
|
|
20
|
+
} else {
|
|
21
|
+
throw Error("Backoff already started");
|
|
22
|
+
}
|
|
23
|
+
this.backoff(fn, 0, this.min);
|
|
24
|
+
}
|
|
25
|
+
cancel() {
|
|
26
|
+
this.done = true;
|
|
27
|
+
if (this.timeoutHandle != null) {
|
|
28
|
+
_experimentCore.safeGlobal.clearTimeout(this.timeoutHandle);
|
|
29
|
+
this.timeoutHandle = undefined;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
backoff(fn, attempt, delay) {
|
|
33
|
+
if (this.done) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.timeoutHandle = _experimentCore.safeGlobal.setTimeout(async () => {
|
|
37
|
+
try {
|
|
38
|
+
this.timeoutHandle = undefined;
|
|
39
|
+
await fn();
|
|
40
|
+
this.done = true;
|
|
41
|
+
} catch (e) {
|
|
42
|
+
const nextAttempt = attempt + 1;
|
|
43
|
+
if (!this.done && nextAttempt < this.attempts) {
|
|
44
|
+
const nextDelay = Math.min(delay * this.scalar, this.max);
|
|
45
|
+
this.backoff(fn, nextAttempt, nextDelay);
|
|
46
|
+
} else {
|
|
47
|
+
this.done = true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}, delay);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.Backoff = Backoff;
|
|
54
|
+
//# sourceMappingURL=backoff.js.map
|