@featbit/js-client-sdk 4.2.11 → 4.2.12
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/dist/cjs/Configuration.js +183 -0
- package/dist/cjs/Configuration.js.map +1 -0
- package/dist/cjs/Context.js +49 -0
- package/dist/cjs/Context.js.map +1 -0
- package/dist/cjs/FbClientBuilder.js +151 -0
- package/dist/cjs/FbClientBuilder.js.map +1 -0
- package/dist/cjs/FbClientCore.js +334 -0
- package/dist/cjs/FbClientCore.js.map +1 -0
- package/dist/cjs/IContextProperty.js +3 -0
- package/dist/cjs/IContextProperty.js.map +1 -0
- package/dist/cjs/IDataKind.js +3 -0
- package/dist/cjs/IDataKind.js.map +1 -0
- package/dist/cjs/IFbClient.js +3 -0
- package/dist/cjs/IFbClient.js.map +1 -0
- package/dist/cjs/IFbClientCore.js +3 -0
- package/dist/cjs/IFbClientCore.js.map +1 -0
- package/dist/cjs/IVersionedData.js +3 -0
- package/dist/cjs/IVersionedData.js.map +1 -0
- package/dist/cjs/bootstrap/IBootstrapProvider.js +3 -0
- package/dist/cjs/bootstrap/IBootstrapProvider.js.map +1 -0
- package/dist/cjs/bootstrap/JsonBootstrapProvider.js +30 -0
- package/dist/cjs/bootstrap/JsonBootstrapProvider.js.map +1 -0
- package/dist/cjs/bootstrap/NullBootstrapProvider.js +19 -0
- package/dist/cjs/bootstrap/NullBootstrapProvider.js.map +1 -0
- package/dist/cjs/bootstrap/index.js +20 -0
- package/dist/cjs/bootstrap/index.js.map +1 -0
- package/dist/cjs/constants.js +6 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/data-sources/DataSourceUpdates.js +125 -0
- package/dist/cjs/data-sources/DataSourceUpdates.js.map +1 -0
- package/dist/cjs/data-sources/createStreamListeners.js +49 -0
- package/dist/cjs/data-sources/createStreamListeners.js.map +1 -0
- package/dist/cjs/data-sources/index.js +19 -0
- package/dist/cjs/data-sources/index.js.map +1 -0
- package/dist/cjs/data-sync/DataSyncMode.js +9 -0
- package/dist/cjs/data-sync/DataSyncMode.js.map +1 -0
- package/dist/cjs/data-sync/IDataSynchronizer.js +3 -0
- package/dist/cjs/data-sync/IDataSynchronizer.js.map +1 -0
- package/dist/cjs/data-sync/IRequestor.js +3 -0
- package/dist/cjs/data-sync/IRequestor.js.map +1 -0
- package/dist/cjs/data-sync/NullDataSynchronizer.js +26 -0
- package/dist/cjs/data-sync/NullDataSynchronizer.js.map +1 -0
- package/dist/cjs/data-sync/PollingDataSynchronizer.js +115 -0
- package/dist/cjs/data-sync/PollingDataSynchronizer.js.map +1 -0
- package/dist/cjs/data-sync/Requestor.js +56 -0
- package/dist/cjs/data-sync/Requestor.js.map +1 -0
- package/dist/cjs/data-sync/WebSocketDataSynchronizer.js +77 -0
- package/dist/cjs/data-sync/WebSocketDataSynchronizer.js.map +1 -0
- package/dist/cjs/data-sync/index.js +26 -0
- package/dist/cjs/data-sync/index.js.map +1 -0
- package/dist/cjs/data-sync/types.js +9 -0
- package/dist/cjs/data-sync/types.js.map +1 -0
- package/dist/cjs/data-sync/utils.js +33 -0
- package/dist/cjs/data-sync/utils.js.map +1 -0
- package/dist/cjs/errors.js +51 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/evaluation/EvalResult.js +33 -0
- package/dist/cjs/evaluation/EvalResult.js.map +1 -0
- package/dist/cjs/evaluation/Evaluator.js +28 -0
- package/dist/cjs/evaluation/Evaluator.js.map +1 -0
- package/dist/cjs/evaluation/IEvalDetail.js +3 -0
- package/dist/cjs/evaluation/IEvalDetail.js.map +1 -0
- package/dist/cjs/evaluation/ReasonKinds.js +15 -0
- package/dist/cjs/evaluation/ReasonKinds.js.map +1 -0
- package/dist/cjs/evaluation/data/IFlag.js +12 -0
- package/dist/cjs/evaluation/data/IFlag.js.map +1 -0
- package/dist/cjs/evaluation/data/index.js +18 -0
- package/dist/cjs/evaluation/data/index.js.map +1 -0
- package/dist/cjs/evaluation/index.js +22 -0
- package/dist/cjs/evaluation/index.js.map +1 -0
- package/dist/cjs/events/DefaultEventProcessor.js +79 -0
- package/dist/cjs/events/DefaultEventProcessor.js.map +1 -0
- package/dist/cjs/events/DefaultEventQueue.js +42 -0
- package/dist/cjs/events/DefaultEventQueue.js.map +1 -0
- package/dist/cjs/events/DefaultEventSender.js +67 -0
- package/dist/cjs/events/DefaultEventSender.js.map +1 -0
- package/dist/cjs/events/DefaultEventSerializer.js +14 -0
- package/dist/cjs/events/DefaultEventSerializer.js.map +1 -0
- package/dist/cjs/events/EventDispatcher.js +127 -0
- package/dist/cjs/events/EventDispatcher.js.map +1 -0
- package/dist/cjs/events/EventSerializer.js +3 -0
- package/dist/cjs/events/EventSerializer.js.map +1 -0
- package/dist/cjs/events/IEventProcessor.js +3 -0
- package/dist/cjs/events/IEventProcessor.js.map +1 -0
- package/dist/cjs/events/IEventQueue.js +3 -0
- package/dist/cjs/events/IEventQueue.js.map +1 -0
- package/dist/cjs/events/IEventSender.js +10 -0
- package/dist/cjs/events/IEventSender.js.map +1 -0
- package/dist/cjs/events/NullEventProcessor.js +16 -0
- package/dist/cjs/events/NullEventProcessor.js.map +1 -0
- package/dist/cjs/events/event.js +115 -0
- package/dist/cjs/events/event.js.map +1 -0
- package/dist/cjs/events/index.js +28 -0
- package/dist/cjs/events/index.js.map +1 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/integrations/TestLogger.js +25 -0
- package/dist/cjs/integrations/TestLogger.js.map +1 -0
- package/dist/cjs/integrations/index.js +21 -0
- package/dist/cjs/integrations/index.js.map +1 -0
- package/dist/cjs/integrations/test_data/FlagBuilder.js +67 -0
- package/dist/cjs/integrations/test_data/FlagBuilder.js.map +1 -0
- package/dist/cjs/integrations/test_data/TestData.js +38 -0
- package/dist/cjs/integrations/test_data/TestData.js.map +1 -0
- package/dist/cjs/integrations/test_data/TestDataSynchronizer.js +52 -0
- package/dist/cjs/integrations/test_data/TestDataSynchronizer.js.map +1 -0
- package/dist/cjs/integrations/test_data/index.js +13 -0
- package/dist/cjs/integrations/test_data/index.js.map +1 -0
- package/dist/cjs/logging/BasicLogger.js +101 -0
- package/dist/cjs/logging/BasicLogger.js.map +1 -0
- package/dist/cjs/logging/IBasicLoggerOptions.js +3 -0
- package/dist/cjs/logging/IBasicLoggerOptions.js.map +1 -0
- package/dist/cjs/logging/ILogger.js +3 -0
- package/dist/cjs/logging/ILogger.js.map +1 -0
- package/dist/cjs/logging/LogLevel.js +3 -0
- package/dist/cjs/logging/LogLevel.js.map +1 -0
- package/dist/cjs/logging/SafeLogger.js +64 -0
- package/dist/cjs/logging/SafeLogger.js.map +1 -0
- package/dist/cjs/logging/format.js +156 -0
- package/dist/cjs/logging/format.js.map +1 -0
- package/dist/cjs/logging/index.js +23 -0
- package/dist/cjs/logging/index.js.map +1 -0
- package/dist/cjs/options/ClientContext.js +21 -0
- package/dist/cjs/options/ClientContext.js.map +1 -0
- package/dist/cjs/options/IClientContext.js +3 -0
- package/dist/cjs/options/IClientContext.js.map +1 -0
- package/dist/cjs/options/IOptions.js +3 -0
- package/dist/cjs/options/IOptions.js.map +1 -0
- package/dist/cjs/options/IUser.js +3 -0
- package/dist/cjs/options/IUser.js.map +1 -0
- package/dist/cjs/options/IValidatedOptions.js +3 -0
- package/dist/cjs/options/IValidatedOptions.js.map +1 -0
- package/dist/cjs/options/OptionMessages.js +33 -0
- package/dist/cjs/options/OptionMessages.js.map +1 -0
- package/dist/cjs/options/UserBuilder.js +35 -0
- package/dist/cjs/options/UserBuilder.js.map +1 -0
- package/dist/cjs/options/Validators.js +249 -0
- package/dist/cjs/options/Validators.js.map +1 -0
- package/dist/cjs/options/index.js +25 -0
- package/dist/cjs/options/index.js.map +1 -0
- package/dist/cjs/platform/IInfo.js +3 -0
- package/dist/cjs/platform/IInfo.js.map +1 -0
- package/dist/cjs/platform/IPlatform.js +3 -0
- package/dist/cjs/platform/IPlatform.js.map +1 -0
- package/dist/cjs/platform/IStore.js +3 -0
- package/dist/cjs/platform/IStore.js.map +1 -0
- package/dist/cjs/platform/IWebSocket.js +3 -0
- package/dist/cjs/platform/IWebSocket.js.map +1 -0
- package/dist/cjs/platform/browser/BrowserInfo.js +24 -0
- package/dist/cjs/platform/browser/BrowserInfo.js.map +1 -0
- package/dist/cjs/platform/browser/BrowserPlatform.js +18 -0
- package/dist/cjs/platform/browser/BrowserPlatform.js.map +1 -0
- package/dist/cjs/platform/browser/BrowserRequests.js +10 -0
- package/dist/cjs/platform/browser/BrowserRequests.js.map +1 -0
- package/dist/cjs/platform/browser/BrowserWebSocket.js +136 -0
- package/dist/cjs/platform/browser/BrowserWebSocket.js.map +1 -0
- package/dist/cjs/platform/browser/FbClient.js +62 -0
- package/dist/cjs/platform/browser/FbClient.js.map +1 -0
- package/dist/cjs/platform/browser/LocalStorageStore.js +67 -0
- package/dist/cjs/platform/browser/LocalStorageStore.js.map +1 -0
- package/dist/cjs/platform/index.js +29 -0
- package/dist/cjs/platform/index.js.map +1 -0
- package/dist/cjs/platform/requests.js +7 -0
- package/dist/cjs/platform/requests.js.map +1 -0
- package/dist/cjs/store/BaseStore.js +127 -0
- package/dist/cjs/store/BaseStore.js.map +1 -0
- package/dist/cjs/store/DataKinds.js +9 -0
- package/dist/cjs/store/DataKinds.js.map +1 -0
- package/dist/cjs/store/IDataSourceUpdates.js +3 -0
- package/dist/cjs/store/IDataSourceUpdates.js.map +1 -0
- package/dist/cjs/store/InMemoryStore.js +49 -0
- package/dist/cjs/store/InMemoryStore.js.map +1 -0
- package/dist/cjs/store/index.js +23 -0
- package/dist/cjs/store/index.js.map +1 -0
- package/dist/cjs/store/serialization.js +37 -0
- package/dist/cjs/store/serialization.js.map +1 -0
- package/dist/cjs/store/store.js +11 -0
- package/dist/cjs/store/store.js.map +1 -0
- package/dist/cjs/utils/Emits.js +64 -0
- package/dist/cjs/utils/Emits.js.map +1 -0
- package/dist/cjs/utils/EventEmitter.js +108 -0
- package/dist/cjs/utils/EventEmitter.js.map +1 -0
- package/dist/cjs/utils/IEventEmitter.js +3 -0
- package/dist/cjs/utils/IEventEmitter.js.map +1 -0
- package/dist/cjs/utils/Regex.js +22 -0
- package/dist/cjs/utils/Regex.js.map +1 -0
- package/dist/cjs/utils/ValueConverters.js +46 -0
- package/dist/cjs/utils/ValueConverters.js.map +1 -0
- package/dist/cjs/utils/VoidFunction.js +3 -0
- package/dist/cjs/utils/VoidFunction.js.map +1 -0
- package/dist/cjs/utils/canonicalizeUri.js +9 -0
- package/dist/cjs/utils/canonicalizeUri.js.map +1 -0
- package/dist/cjs/utils/debounce.js +34 -0
- package/dist/cjs/utils/debounce.js.map +1 -0
- package/dist/cjs/utils/deepCopy.js +8 -0
- package/dist/cjs/utils/deepCopy.js.map +1 -0
- package/dist/cjs/utils/http.js +27 -0
- package/dist/cjs/utils/http.js.map +1 -0
- package/dist/cjs/utils/index.js +24 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/isNullOrUndefined.js +8 -0
- package/dist/cjs/utils/isNullOrUndefined.js.map +1 -0
- package/dist/cjs/utils/serializeUser.js +48 -0
- package/dist/cjs/utils/serializeUser.js.map +1 -0
- package/dist/cjs/utils/sleep.js +18 -0
- package/dist/cjs/utils/sleep.js.map +1 -0
- package/dist/cjs/version.js +6 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/Configuration.js +56 -63
- package/dist/esm/Configuration.js.map +1 -1
- package/dist/esm/Context.js +1 -4
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/FbClientBuilder.js +3 -10
- package/dist/esm/FbClientBuilder.js.map +1 -1
- package/dist/esm/FbClientCore.js +67 -74
- package/dist/esm/FbClientCore.js.map +1 -1
- package/dist/esm/IContextProperty.js +1 -2
- package/dist/esm/IDataKind.js +1 -2
- package/dist/esm/IFbClient.js +1 -2
- package/dist/esm/IFbClientCore.js +1 -2
- package/dist/esm/IVersionedData.js +1 -2
- package/dist/esm/bootstrap/IBootstrapProvider.js +1 -2
- package/dist/esm/bootstrap/JsonBootstrapProvider.js +7 -11
- package/dist/esm/bootstrap/JsonBootstrapProvider.js.map +1 -1
- package/dist/esm/bootstrap/NullBootstrapProvider.js +1 -5
- package/dist/esm/bootstrap/NullBootstrapProvider.js.map +1 -1
- package/dist/esm/bootstrap/index.js +3 -19
- package/dist/esm/bootstrap/index.js.map +1 -1
- package/dist/esm/constants.js +2 -5
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/data-sources/DataSourceUpdates.js +6 -12
- package/dist/esm/data-sources/DataSourceUpdates.js.map +1 -1
- package/dist/esm/data-sources/createStreamListeners.js +4 -8
- package/dist/esm/data-sources/createStreamListeners.js.map +1 -1
- package/dist/esm/data-sources/index.js +2 -18
- package/dist/esm/data-sources/index.js.map +1 -1
- package/dist/esm/data-sync/DataSyncMode.js +2 -5
- package/dist/esm/data-sync/DataSyncMode.js.map +1 -1
- package/dist/esm/data-sync/IDataSynchronizer.js +1 -2
- package/dist/esm/data-sync/IRequestor.js +1 -2
- package/dist/esm/data-sync/NullDataSynchronizer.js +1 -5
- package/dist/esm/data-sync/NullDataSynchronizer.js.map +1 -1
- package/dist/esm/data-sync/PollingDataSynchronizer.js +12 -15
- package/dist/esm/data-sync/PollingDataSynchronizer.js.map +1 -1
- package/dist/esm/data-sync/Requestor.js +5 -8
- package/dist/esm/data-sync/Requestor.js.map +1 -1
- package/dist/esm/data-sync/WebSocketDataSynchronizer.js +3 -5
- package/dist/esm/data-sync/WebSocketDataSynchronizer.js.map +1 -1
- package/dist/esm/data-sync/index.js +9 -25
- package/dist/esm/data-sync/index.js.map +1 -1
- package/dist/esm/data-sync/types.js +2 -5
- package/dist/esm/data-sync/types.js.map +1 -1
- package/dist/esm/data-sync/utils.js +1 -5
- package/dist/esm/data-sync/utils.js.map +1 -1
- package/dist/esm/errors.js +6 -15
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/evaluation/EvalResult.js +7 -10
- package/dist/esm/evaluation/EvalResult.js.map +1 -1
- package/dist/esm/evaluation/Evaluator.js +6 -12
- package/dist/esm/evaluation/Evaluator.js.map +1 -1
- package/dist/esm/evaluation/IEvalDetail.js +1 -2
- package/dist/esm/evaluation/ReasonKinds.js +2 -5
- package/dist/esm/evaluation/ReasonKinds.js.map +1 -1
- package/dist/esm/evaluation/data/IFlag.js +2 -5
- package/dist/esm/evaluation/data/IFlag.js.map +1 -1
- package/dist/esm/evaluation/data/index.js +1 -17
- package/dist/esm/evaluation/data/index.js.map +1 -1
- package/dist/esm/evaluation/index.js +5 -21
- package/dist/esm/evaluation/index.js.map +1 -1
- package/dist/esm/events/DefaultEventProcessor.js +11 -15
- package/dist/esm/events/DefaultEventProcessor.js.map +1 -1
- package/dist/esm/events/DefaultEventQueue.js +1 -5
- package/dist/esm/events/DefaultEventQueue.js.map +1 -1
- package/dist/esm/events/DefaultEventSender.js +12 -19
- package/dist/esm/events/DefaultEventSender.js.map +1 -1
- package/dist/esm/events/DefaultEventSerializer.js +3 -7
- package/dist/esm/events/DefaultEventSerializer.js.map +1 -1
- package/dist/esm/events/EventDispatcher.js +15 -22
- package/dist/esm/events/EventDispatcher.js.map +1 -1
- package/dist/esm/events/EventSerializer.js +1 -2
- package/dist/esm/events/IEventProcessor.js +1 -2
- package/dist/esm/events/IEventQueue.js +1 -2
- package/dist/esm/events/IEventSender.js +2 -5
- package/dist/esm/events/IEventSender.js.map +1 -1
- package/dist/esm/events/NullEventProcessor.js +1 -5
- package/dist/esm/events/NullEventProcessor.js.map +1 -1
- package/dist/esm/events/event.js +6 -15
- package/dist/esm/events/event.js.map +1 -1
- package/dist/esm/events/index.js +11 -27
- package/dist/esm/events/index.js.map +1 -1
- package/dist/esm/index.js +20 -36
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/integrations/TestLogger.js +1 -5
- package/dist/esm/integrations/TestLogger.js.map +1 -1
- package/dist/esm/integrations/index.js +2 -20
- package/dist/esm/integrations/index.js.map +1 -1
- package/dist/esm/integrations/test_data/FlagBuilder.js +3 -7
- package/dist/esm/integrations/test_data/FlagBuilder.js.map +1 -1
- package/dist/esm/integrations/test_data/TestData.js +8 -14
- package/dist/esm/integrations/test_data/TestData.js.map +1 -1
- package/dist/esm/integrations/test_data/TestDataSynchronizer.js +1 -4
- package/dist/esm/integrations/test_data/TestDataSynchronizer.js.map +1 -1
- package/dist/esm/integrations/test_data/index.js +4 -12
- package/dist/esm/integrations/test_data/index.js.map +1 -1
- package/dist/esm/logging/BasicLogger.js +4 -11
- package/dist/esm/logging/BasicLogger.js.map +1 -1
- package/dist/esm/logging/IBasicLoggerOptions.js +1 -2
- package/dist/esm/logging/ILogger.js +1 -2
- package/dist/esm/logging/LogLevel.js +1 -2
- package/dist/esm/logging/SafeLogger.js +6 -10
- package/dist/esm/logging/SafeLogger.js.map +1 -1
- package/dist/esm/logging/format.js +3 -6
- package/dist/esm/logging/format.js.map +1 -1
- package/dist/esm/logging/index.js +6 -22
- package/dist/esm/logging/index.js.map +1 -1
- package/dist/esm/options/ClientContext.js +1 -4
- package/dist/esm/options/ClientContext.js.map +1 -1
- package/dist/esm/options/IClientContext.js +1 -2
- package/dist/esm/options/IOptions.js +1 -2
- package/dist/esm/options/IUser.js +1 -2
- package/dist/esm/options/IValidatedOptions.js +1 -2
- package/dist/esm/options/OptionMessages.js +1 -4
- package/dist/esm/options/OptionMessages.js.map +1 -1
- package/dist/esm/options/UserBuilder.js +1 -5
- package/dist/esm/options/UserBuilder.js.map +1 -1
- package/dist/esm/options/Validators.js +21 -39
- package/dist/esm/options/Validators.js.map +1 -1
- package/dist/esm/options/index.js +8 -24
- package/dist/esm/options/index.js.map +1 -1
- package/dist/esm/platform/IInfo.js +1 -2
- package/dist/esm/platform/IPlatform.js +1 -2
- package/dist/esm/platform/IStore.js +1 -2
- package/dist/esm/platform/IWebSocket.js +1 -2
- package/dist/esm/platform/browser/BrowserInfo.js +5 -8
- package/dist/esm/platform/browser/BrowserInfo.js.map +1 -1
- package/dist/esm/platform/browser/BrowserPlatform.js +7 -14
- package/dist/esm/platform/browser/BrowserPlatform.js.map +1 -1
- package/dist/esm/platform/browser/BrowserRequests.js +1 -5
- package/dist/esm/platform/browser/BrowserRequests.js.map +1 -1
- package/dist/esm/platform/browser/BrowserWebSocket.js +9 -11
- package/dist/esm/platform/browser/BrowserWebSocket.js.map +1 -1
- package/dist/esm/platform/browser/FbClient.js +15 -20
- package/dist/esm/platform/browser/FbClient.js.map +1 -1
- package/dist/esm/platform/browser/LocalStorageStore.js +9 -12
- package/dist/esm/platform/browser/LocalStorageStore.js.map +1 -1
- package/dist/esm/platform/index.js +8 -28
- package/dist/esm/platform/index.js.map +1 -1
- package/dist/esm/platform/requests.js +1 -2
- package/dist/esm/platform/requests.js.map +1 -1
- package/dist/esm/store/BaseStore.js +1 -5
- package/dist/esm/store/BaseStore.js.map +1 -1
- package/dist/esm/store/DataKinds.js +1 -3
- package/dist/esm/store/DataKinds.js.map +1 -1
- package/dist/esm/store/IDataSourceUpdates.js +1 -2
- package/dist/esm/store/InMemoryStore.js +10 -13
- package/dist/esm/store/InMemoryStore.js.map +1 -1
- package/dist/esm/store/index.js +6 -22
- package/dist/esm/store/index.js.map +1 -1
- package/dist/esm/store/serialization.js +6 -14
- package/dist/esm/store/serialization.js.map +1 -1
- package/dist/esm/store/store.js +4 -7
- package/dist/esm/store/store.js.map +1 -1
- package/dist/esm/utils/Emits.js +1 -5
- package/dist/esm/utils/Emits.js.map +1 -1
- package/dist/esm/utils/EventEmitter.js +1 -5
- package/dist/esm/utils/EventEmitter.js.map +1 -1
- package/dist/esm/utils/IEventEmitter.js +1 -2
- package/dist/esm/utils/Regex.js +3 -7
- package/dist/esm/utils/Regex.js.map +1 -1
- package/dist/esm/utils/ValueConverters.js +1 -5
- package/dist/esm/utils/ValueConverters.js.map +1 -1
- package/dist/esm/utils/VoidFunction.js +1 -2
- package/dist/esm/utils/canonicalizeUri.js +1 -5
- package/dist/esm/utils/canonicalizeUri.js.map +1 -1
- package/dist/esm/utils/debounce.js +1 -5
- package/dist/esm/utils/debounce.js.map +1 -1
- package/dist/esm/utils/deepCopy.js +1 -5
- package/dist/esm/utils/deepCopy.js.map +1 -1
- package/dist/esm/utils/http.js +2 -7
- package/dist/esm/utils/http.js.map +1 -1
- package/dist/esm/utils/index.js +7 -23
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/isNullOrUndefined.js +1 -5
- package/dist/esm/utils/isNullOrUndefined.js.map +1 -1
- package/dist/esm/utils/serializeUser.js +2 -7
- package/dist/esm/utils/serializeUser.js.map +1 -1
- package/dist/esm/utils/sleep.js +1 -3
- package/dist/esm/utils/sleep.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +2 -5
- package/dist/esm/version.js.map +1 -1
- package/dist/umd/featbit-js-client-sdk-4.2.12.js +2 -0
- package/dist/umd/featbit-js-client-sdk-4.2.12.js.map +1 -0
- package/dist/umd/featbit-js-client-sdk.js +1 -1
- package/dist/umd/featbit-js-client-sdk.js.map +1 -1
- package/package.json +11 -3
- package/src/version.ts +1 -1
- package/dist/umd/featbit-js-client-sdk-4.2.11.js +0 -2
- package/dist/umd/featbit-js-client-sdk-4.2.11.js.map +0 -1
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const isNullOrUndefined_1 = require("./utils/isNullOrUndefined");
|
|
11
|
-
const canonicalizeUri_1 = require("./utils/canonicalizeUri");
|
|
12
|
-
const NullBootstrapProvider_1 = require("./bootstrap/NullBootstrapProvider");
|
|
13
|
-
const constants_1 = require("./constants");
|
|
14
|
-
const DataSyncMode_1 = require("./data-sync/DataSyncMode");
|
|
15
|
-
const bootstrap_1 = require("./bootstrap");
|
|
1
|
+
import { NumberWithMinimum, TypeValidators, UserValidator } from "./options/Validators";
|
|
2
|
+
import OptionMessages from "./options/OptionMessages";
|
|
3
|
+
import InMemoryStore from "./store/InMemoryStore";
|
|
4
|
+
import { isNullOrUndefined } from "./utils/isNullOrUndefined";
|
|
5
|
+
import { canonicalizeUri } from "./utils/canonicalizeUri";
|
|
6
|
+
import { NullBootstrapProvider } from "./bootstrap/NullBootstrapProvider";
|
|
7
|
+
import { EmptyString } from "./constants";
|
|
8
|
+
import { DataSyncModeEnum } from "./data-sync/DataSyncMode";
|
|
9
|
+
import { JsonBootstrapProvider } from "./bootstrap";
|
|
16
10
|
// Once things are internal to the implementation of the SDK we can depend on
|
|
17
11
|
// types. Calls to the SDK could contain anything without any regard to typing.
|
|
18
12
|
// So, data we take from external sources must be normalized into something
|
|
@@ -22,35 +16,35 @@ const bootstrap_1 = require("./bootstrap");
|
|
|
22
16
|
* and these should allow for conditional construction.
|
|
23
17
|
*/
|
|
24
18
|
const validations = {
|
|
25
|
-
startWaitTime:
|
|
26
|
-
sdkKey:
|
|
27
|
-
pollingUri:
|
|
28
|
-
streamingUri:
|
|
29
|
-
eventsUri:
|
|
30
|
-
webSocketPingInterval:
|
|
31
|
-
logger:
|
|
32
|
-
logLevel:
|
|
33
|
-
store:
|
|
34
|
-
dataSynchronizer:
|
|
35
|
-
flushInterval:
|
|
36
|
-
maxEventsInQueue:
|
|
37
|
-
disableEvents:
|
|
38
|
-
pollingInterval:
|
|
39
|
-
offline:
|
|
40
|
-
dataSyncMode:
|
|
41
|
-
bootstrap:
|
|
42
|
-
user:
|
|
19
|
+
startWaitTime: TypeValidators.Number,
|
|
20
|
+
sdkKey: TypeValidators.String,
|
|
21
|
+
pollingUri: TypeValidators.String,
|
|
22
|
+
streamingUri: TypeValidators.String,
|
|
23
|
+
eventsUri: TypeValidators.String,
|
|
24
|
+
webSocketPingInterval: TypeValidators.Number,
|
|
25
|
+
logger: TypeValidators.Object,
|
|
26
|
+
logLevel: TypeValidators.String,
|
|
27
|
+
store: TypeValidators.ObjectOrFactory,
|
|
28
|
+
dataSynchronizer: TypeValidators.ObjectOrFactory,
|
|
29
|
+
flushInterval: TypeValidators.Number,
|
|
30
|
+
maxEventsInQueue: TypeValidators.Number,
|
|
31
|
+
disableEvents: TypeValidators.Boolean,
|
|
32
|
+
pollingInterval: TypeValidators.Number,
|
|
33
|
+
offline: TypeValidators.Boolean,
|
|
34
|
+
dataSyncMode: TypeValidators.String,
|
|
35
|
+
bootstrap: TypeValidators.Bootstrap,
|
|
36
|
+
user: TypeValidators.User
|
|
43
37
|
};
|
|
44
38
|
/**
|
|
45
39
|
* @internal
|
|
46
40
|
*/
|
|
47
|
-
|
|
41
|
+
export const defaultValues = {
|
|
48
42
|
startWaitTime: 5000,
|
|
49
43
|
sdkKey: '',
|
|
50
44
|
pollingUri: '',
|
|
51
45
|
streamingUri: '',
|
|
52
46
|
eventsUri: '',
|
|
53
|
-
dataSyncMode:
|
|
47
|
+
dataSyncMode: DataSyncModeEnum.STREAMING,
|
|
54
48
|
sendEvents: true,
|
|
55
49
|
webSocketPingInterval: 18 * 1000,
|
|
56
50
|
flushInterval: 2000,
|
|
@@ -58,13 +52,13 @@ exports.defaultValues = {
|
|
|
58
52
|
disableEvents: false,
|
|
59
53
|
pollingInterval: 30000,
|
|
60
54
|
offline: false,
|
|
61
|
-
store: (options) => new
|
|
55
|
+
store: (options) => new InMemoryStore(),
|
|
62
56
|
bootstrap: undefined,
|
|
63
57
|
user: undefined,
|
|
64
58
|
};
|
|
65
59
|
function validateTypesAndNames(options) {
|
|
66
60
|
let errors = [];
|
|
67
|
-
const validatedOptions = Object.assign({},
|
|
61
|
+
const validatedOptions = Object.assign({}, defaultValues);
|
|
68
62
|
Object.keys(options).forEach((optionName) => {
|
|
69
63
|
var _a;
|
|
70
64
|
// We need to tell typescript it doesn't actually know what options are.
|
|
@@ -74,22 +68,22 @@ function validateTypesAndNames(options) {
|
|
|
74
68
|
if (validator) {
|
|
75
69
|
if (!validator.is(optionValue)) {
|
|
76
70
|
if (validator.getType() === 'boolean') {
|
|
77
|
-
errors.push(
|
|
71
|
+
errors.push(OptionMessages.wrongOptionTypeBoolean(optionName, typeof optionValue));
|
|
78
72
|
validatedOptions[optionName] = !!optionValue;
|
|
79
73
|
}
|
|
80
|
-
else if (validator instanceof
|
|
81
|
-
|
|
74
|
+
else if (validator instanceof NumberWithMinimum &&
|
|
75
|
+
TypeValidators.Number.is(optionValue)) {
|
|
82
76
|
const { min } = validator;
|
|
83
|
-
errors.push(
|
|
77
|
+
errors.push(OptionMessages.optionBelowMinimum(optionName, optionValue, min));
|
|
84
78
|
validatedOptions[optionName] = min;
|
|
85
79
|
}
|
|
86
|
-
else if (validator instanceof
|
|
80
|
+
else if (validator instanceof UserValidator) {
|
|
87
81
|
errors = [...errors, ...validator.messages];
|
|
88
|
-
validatedOptions[optionName] =
|
|
82
|
+
validatedOptions[optionName] = defaultValues[optionName];
|
|
89
83
|
}
|
|
90
84
|
else {
|
|
91
|
-
errors.push(
|
|
92
|
-
validatedOptions[optionName] =
|
|
85
|
+
errors.push(OptionMessages.wrongOptionType(optionName, validator.getType(), typeof optionValue));
|
|
86
|
+
validatedOptions[optionName] = defaultValues[optionName];
|
|
93
87
|
}
|
|
94
88
|
}
|
|
95
89
|
else {
|
|
@@ -97,7 +91,7 @@ function validateTypesAndNames(options) {
|
|
|
97
91
|
}
|
|
98
92
|
}
|
|
99
93
|
else {
|
|
100
|
-
(_a = options.logger) === null || _a === void 0 ? void 0 : _a.warn(
|
|
94
|
+
(_a = options.logger) === null || _a === void 0 ? void 0 : _a.warn(OptionMessages.unknownOption(optionName));
|
|
101
95
|
}
|
|
102
96
|
});
|
|
103
97
|
return { errors, validatedOptions };
|
|
@@ -105,25 +99,25 @@ function validateTypesAndNames(options) {
|
|
|
105
99
|
function validateEndpoints(options, validatedOptions) {
|
|
106
100
|
var _a, _b, _c;
|
|
107
101
|
const { streamingUri, pollingUri, eventsUri } = options;
|
|
108
|
-
const streamingUriMissing =
|
|
109
|
-
const pollingUriMissing =
|
|
110
|
-
const eventsUriMissing =
|
|
102
|
+
const streamingUriMissing = isNullOrUndefined(streamingUri) || streamingUri === EmptyString;
|
|
103
|
+
const pollingUriMissing = isNullOrUndefined(pollingUri) || pollingUri === EmptyString;
|
|
104
|
+
const eventsUriMissing = isNullOrUndefined(eventsUri) || eventsUri === EmptyString;
|
|
111
105
|
if (!validatedOptions.offline && (eventsUriMissing || (streamingUriMissing && pollingUriMissing))) {
|
|
112
106
|
if (eventsUriMissing) {
|
|
113
|
-
(_a = validatedOptions.logger) === null || _a === void 0 ? void 0 : _a.error(
|
|
107
|
+
(_a = validatedOptions.logger) === null || _a === void 0 ? void 0 : _a.error(OptionMessages.partialEndpoint('eventsUri'));
|
|
114
108
|
}
|
|
115
|
-
if (validatedOptions.dataSyncMode ===
|
|
116
|
-
(_b = validatedOptions.logger) === null || _b === void 0 ? void 0 : _b.error(
|
|
109
|
+
if (validatedOptions.dataSyncMode === DataSyncModeEnum.STREAMING && streamingUriMissing) {
|
|
110
|
+
(_b = validatedOptions.logger) === null || _b === void 0 ? void 0 : _b.error(OptionMessages.partialEndpoint('streamingUri'));
|
|
117
111
|
}
|
|
118
|
-
if (validatedOptions.dataSyncMode ===
|
|
119
|
-
(_c = validatedOptions.logger) === null || _c === void 0 ? void 0 : _c.error(
|
|
112
|
+
if (validatedOptions.dataSyncMode === DataSyncModeEnum.POLLING && pollingUriMissing) {
|
|
113
|
+
(_c = validatedOptions.logger) === null || _c === void 0 ? void 0 : _c.error(OptionMessages.partialEndpoint('pollingUri'));
|
|
120
114
|
}
|
|
121
115
|
}
|
|
122
116
|
}
|
|
123
|
-
class Configuration {
|
|
117
|
+
export default class Configuration {
|
|
124
118
|
constructor(options = {}) {
|
|
125
119
|
var _a, _b;
|
|
126
|
-
this.bootstrapProvider = new
|
|
120
|
+
this.bootstrapProvider = new NullBootstrapProvider();
|
|
127
121
|
// The default will handle undefined, but not null.
|
|
128
122
|
// Because we can be called from JS we need to be extra defensive.
|
|
129
123
|
options = options || {};
|
|
@@ -136,9 +130,9 @@ class Configuration {
|
|
|
136
130
|
});
|
|
137
131
|
this.user = validatedOptions.user;
|
|
138
132
|
validateEndpoints(options, validatedOptions);
|
|
139
|
-
this.streamingUri = `${
|
|
140
|
-
this.pollingUri = `${
|
|
141
|
-
this.eventsUri = `${
|
|
133
|
+
this.streamingUri = `${canonicalizeUri(validatedOptions.streamingUri)}/streaming`;
|
|
134
|
+
this.pollingUri = `${canonicalizeUri(validatedOptions.pollingUri)}/api/public/sdk/client/latest-all`;
|
|
135
|
+
this.eventsUri = `${canonicalizeUri(validatedOptions.eventsUri)}/api/public/insight/track`;
|
|
142
136
|
this.startWaitTime = validatedOptions.startWaitTime;
|
|
143
137
|
this.sdkKey = validatedOptions.sdkKey;
|
|
144
138
|
this.webSocketPingInterval = validatedOptions.webSocketPingInterval;
|
|
@@ -149,7 +143,7 @@ class Configuration {
|
|
|
149
143
|
this.offline = validatedOptions.offline;
|
|
150
144
|
if (validatedOptions.bootstrap && validatedOptions.bootstrap.length > 0) {
|
|
151
145
|
try {
|
|
152
|
-
this.bootstrapProvider = new
|
|
146
|
+
this.bootstrapProvider = new JsonBootstrapProvider(validatedOptions.bootstrap);
|
|
153
147
|
}
|
|
154
148
|
catch (_) {
|
|
155
149
|
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.error('Failed to parse bootstrap JSON, use NullBootstrapProvider.');
|
|
@@ -159,7 +153,7 @@ class Configuration {
|
|
|
159
153
|
(_b = this.logger) === null || _b === void 0 ? void 0 : _b.info('Offline mode enabled. No data synchronization with the FeatBit server will occur.');
|
|
160
154
|
}
|
|
161
155
|
this.dataSyncMode = validatedOptions.dataSyncMode;
|
|
162
|
-
if (
|
|
156
|
+
if (TypeValidators.Function.is(validatedOptions.dataSynchronizer)) {
|
|
163
157
|
// @ts-ignore
|
|
164
158
|
this.dataSynchronizerFactory = validatedOptions.dataSynchronizer;
|
|
165
159
|
}
|
|
@@ -168,7 +162,7 @@ class Configuration {
|
|
|
168
162
|
// @ts-ignore
|
|
169
163
|
this.dataSynchronizerFactory = () => validatedOptions.dataSynchronizer;
|
|
170
164
|
}
|
|
171
|
-
if (
|
|
165
|
+
if (TypeValidators.Function.is(validatedOptions.store)) {
|
|
172
166
|
// @ts-ignore
|
|
173
167
|
this.storeFactory = validatedOptions.store;
|
|
174
168
|
}
|
|
@@ -179,5 +173,4 @@ class Configuration {
|
|
|
179
173
|
}
|
|
180
174
|
}
|
|
181
175
|
}
|
|
182
|
-
exports.default = Configuration;
|
|
183
176
|
//# sourceMappingURL=Configuration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../src/Configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../src/Configuration.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Context.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class Context {
|
|
1
|
+
export default class Context {
|
|
4
2
|
/**
|
|
5
3
|
* Contexts should be created using the static factory method {@link Context.fromUser}.
|
|
6
4
|
*
|
|
@@ -45,5 +43,4 @@ class Context {
|
|
|
45
43
|
return new Context(false, message);
|
|
46
44
|
}
|
|
47
45
|
}
|
|
48
|
-
exports.default = Context;
|
|
49
46
|
//# sourceMappingURL=Context.js.map
|
package/dist/esm/Context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../src/Context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../src/Context.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,OAAO;IAU1B;;;;;OAKG;IACH,YAAoB,KAAc,EAAE,OAAgB;QAClD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAW;QAChC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;SACrD;QAED,MAAM,EAAC,KAAK,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC;QAE3B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAChE,OAAO,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;SACpD;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QAErB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAgB;;QACpB,IAAI,QAAQ,KAAK,OAAO,EAAE;YACxB,OAAO,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,CAAC;SAC1B;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;YAC9B,OAAO,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,CAAC;SACzB;aAAM;YACL,OAAO,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,oBAAoB,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,0CAAE,KAAK,CAAC;SAChF;IACH,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,OAAe;QAC5C,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.FbClientBuilder = void 0;
|
|
7
|
-
const FbClient_1 = __importDefault(require("./platform/browser/FbClient"));
|
|
1
|
+
import FbClient from "./platform/browser/FbClient";
|
|
8
2
|
/**
|
|
9
3
|
* Creates an instance of the FeatBit client.
|
|
10
4
|
*
|
|
@@ -20,7 +14,7 @@ const FbClient_1 = __importDefault(require("./platform/browser/FbClient"));
|
|
|
20
14
|
* @return
|
|
21
15
|
* The new {@link IFbClient} instance.
|
|
22
16
|
*/
|
|
23
|
-
class FbClientBuilder {
|
|
17
|
+
export class FbClientBuilder {
|
|
24
18
|
constructor(options) {
|
|
25
19
|
this._options = options !== null && options !== void 0 ? options : {};
|
|
26
20
|
}
|
|
@@ -28,7 +22,7 @@ class FbClientBuilder {
|
|
|
28
22
|
* Creates a new instance of the FeatBit client.
|
|
29
23
|
*/
|
|
30
24
|
build() {
|
|
31
|
-
return new
|
|
25
|
+
return new FbClient(this._options, this._platform);
|
|
32
26
|
}
|
|
33
27
|
platform(platform) {
|
|
34
28
|
this._platform = platform;
|
|
@@ -147,5 +141,4 @@ class FbClientBuilder {
|
|
|
147
141
|
return this;
|
|
148
142
|
}
|
|
149
143
|
}
|
|
150
|
-
exports.FbClientBuilder = FbClientBuilder;
|
|
151
144
|
//# sourceMappingURL=FbClientBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FbClientBuilder.js","sourceRoot":"","sources":["../../src/FbClientBuilder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FbClientBuilder.js","sourceRoot":"","sources":["../../src/FbClientBuilder.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/FbClientCore.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,39 +7,34 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const event_1 = require("./events/event");
|
|
33
|
-
const DataSyncMode_1 = require("./data-sync/DataSyncMode");
|
|
34
|
-
const Validators_1 = require("./options/Validators");
|
|
35
|
-
const evaluation_1 = require("./evaluation");
|
|
36
|
-
const store_1 = require("./store");
|
|
10
|
+
import Configuration from "./Configuration";
|
|
11
|
+
import ClientContext from "./options/ClientContext";
|
|
12
|
+
import DataSourceUpdates from "./data-sources/DataSourceUpdates";
|
|
13
|
+
import { createStreamListeners } from "./data-sources/createStreamListeners";
|
|
14
|
+
import WebSocketDataSynchronizer from "./data-sync/WebSocketDataSynchronizer";
|
|
15
|
+
import PollingDataSynchronizer from "./data-sync/PollingDataSynchronizer";
|
|
16
|
+
import Requestor from "./data-sync/Requestor";
|
|
17
|
+
import DataKinds from "./store/DataKinds";
|
|
18
|
+
import Evaluator from "./evaluation/Evaluator";
|
|
19
|
+
import { ReasonKinds } from "./evaluation/ReasonKinds";
|
|
20
|
+
import { ClientError, TimeoutError } from "./errors";
|
|
21
|
+
import Context from "./Context";
|
|
22
|
+
import { ValueConverters } from "./utils/ValueConverters";
|
|
23
|
+
import { NullDataSynchronizer } from "./data-sync/NullDataSynchronizer";
|
|
24
|
+
import { NullEventProcessor } from "./events/NullEventProcessor";
|
|
25
|
+
import { DefaultEventProcessor } from "./events/DefaultEventProcessor";
|
|
26
|
+
import { MetricEvent } from "./events/event";
|
|
27
|
+
import { DataSyncModeEnum } from "./data-sync/DataSyncMode";
|
|
28
|
+
import { UserValidator } from "./options/Validators";
|
|
29
|
+
import { VariationDataType } from "./evaluation";
|
|
30
|
+
import { StoreItemOriginEnum } from "./store";
|
|
37
31
|
var ClientState;
|
|
38
32
|
(function (ClientState) {
|
|
39
33
|
ClientState[ClientState["Initializing"] = 0] = "Initializing";
|
|
40
34
|
ClientState[ClientState["Initialized"] = 1] = "Initialized";
|
|
41
35
|
ClientState[ClientState["Failed"] = 2] = "Failed";
|
|
42
36
|
})(ClientState || (ClientState = {}));
|
|
43
|
-
class FbClientCore {
|
|
37
|
+
export class FbClientCore {
|
|
44
38
|
constructor(options, platform, callbacks) {
|
|
45
39
|
this.options = options;
|
|
46
40
|
this.platform = platform;
|
|
@@ -49,7 +43,7 @@ class FbClientCore {
|
|
|
49
43
|
this.onFailed = callbacks.onFailed;
|
|
50
44
|
this.onReady = callbacks.onReady;
|
|
51
45
|
const { onUpdate, hasEventListeners } = callbacks;
|
|
52
|
-
const config = new
|
|
46
|
+
const config = new Configuration(options);
|
|
53
47
|
if (!config.sdkKey && !config.offline) {
|
|
54
48
|
throw new Error('You must configure the client with an SDK key');
|
|
55
49
|
}
|
|
@@ -63,32 +57,32 @@ class FbClientCore {
|
|
|
63
57
|
init(onUpdate, hasEventListeners) {
|
|
64
58
|
var _a, _b, _c;
|
|
65
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
-
const clientContext = new
|
|
60
|
+
const clientContext = new ClientContext(this.config.sdkKey, this.config, this.platform);
|
|
67
61
|
this.store = this.config.storeFactory(clientContext);
|
|
68
62
|
yield this.store.identify(this.config.user);
|
|
69
|
-
this.dataSourceUpdates = new
|
|
70
|
-
this.evaluator = new
|
|
63
|
+
this.dataSourceUpdates = new DataSourceUpdates(this.store, hasEventListeners, onUpdate);
|
|
64
|
+
this.evaluator = new Evaluator(this.store);
|
|
71
65
|
// use bootstrap provider to populate store
|
|
72
66
|
yield this.config.bootstrapProvider.populate(this.config.user.keyId, this.dataSourceUpdates);
|
|
73
67
|
if (this.config.offline) {
|
|
74
|
-
this.eventProcessor = new
|
|
75
|
-
this.dataSynchronizer = new
|
|
68
|
+
this.eventProcessor = new NullEventProcessor();
|
|
69
|
+
this.dataSynchronizer = new NullDataSynchronizer();
|
|
76
70
|
this.initSuccess();
|
|
77
71
|
}
|
|
78
72
|
else {
|
|
79
73
|
if (this.config.disableEvents) {
|
|
80
|
-
this.eventProcessor = new
|
|
74
|
+
this.eventProcessor = new NullEventProcessor();
|
|
81
75
|
}
|
|
82
76
|
else {
|
|
83
|
-
this.eventProcessor = new
|
|
77
|
+
this.eventProcessor = new DefaultEventProcessor(clientContext);
|
|
84
78
|
}
|
|
85
|
-
const listeners =
|
|
79
|
+
const listeners = createStreamListeners(this.dataSourceUpdates, this.logger, {
|
|
86
80
|
put: () => this.initSuccess(),
|
|
87
81
|
patch: () => this.initSuccess()
|
|
88
82
|
});
|
|
89
|
-
const dataSynchronizer = this.config.dataSyncMode ===
|
|
90
|
-
? new
|
|
91
|
-
: new
|
|
83
|
+
const dataSynchronizer = this.config.dataSyncMode === DataSyncModeEnum.STREAMING
|
|
84
|
+
? new WebSocketDataSynchronizer(this.config.sdkKey, this.config.user, clientContext, this.platform.webSocket, () => this.store.version, listeners, this.config.webSocketPingInterval)
|
|
85
|
+
: new PollingDataSynchronizer(this.config, new Requestor(this.config.sdkKey, this.config, this.platform.info, this.platform.requests), () => this.store.version, listeners, (e) => this.dataSourceErrorHandler(e));
|
|
92
86
|
this.dataSynchronizer = (_c = (_b = (_a = this.config).dataSynchronizerFactory) === null || _b === void 0 ? void 0 : _b.call(_a, clientContext, this.store, this.dataSourceUpdates, () => this.initSuccess(), (e) => this.dataSourceErrorHandler(e))) !== null && _c !== void 0 ? _c : dataSynchronizer;
|
|
93
87
|
}
|
|
94
88
|
this.start();
|
|
@@ -97,7 +91,7 @@ class FbClientCore {
|
|
|
97
91
|
identify(user) {
|
|
98
92
|
var _a, _b;
|
|
99
93
|
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
-
const validator = new
|
|
94
|
+
const validator = new UserValidator();
|
|
101
95
|
if (!validator.is(user)) {
|
|
102
96
|
validator.messages.forEach((error) => {
|
|
103
97
|
var _a;
|
|
@@ -105,7 +99,7 @@ class FbClientCore {
|
|
|
105
99
|
});
|
|
106
100
|
return;
|
|
107
101
|
}
|
|
108
|
-
const [oldFlags, oldVersion] = this.store.all(
|
|
102
|
+
const [oldFlags, oldVersion] = this.store.all(DataKinds.Flags);
|
|
109
103
|
const oldData = {
|
|
110
104
|
flags: Object.assign({}, oldFlags),
|
|
111
105
|
version: oldVersion
|
|
@@ -118,7 +112,7 @@ class FbClientCore {
|
|
|
118
112
|
catch (_) {
|
|
119
113
|
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.error('dataSynchronizer unable to identify user.');
|
|
120
114
|
}
|
|
121
|
-
const [newFlags, newVersion] = this.store.all(
|
|
115
|
+
const [newFlags, newVersion] = this.store.all(DataKinds.Flags);
|
|
122
116
|
const newData = {
|
|
123
117
|
flags: Object.assign({}, newFlags),
|
|
124
118
|
version: newVersion
|
|
@@ -144,7 +138,7 @@ class FbClientCore {
|
|
|
144
138
|
'Please double-check your sdkKey and streamingUri/pollingUri configuration. ' +
|
|
145
139
|
'We will continue to initialize the FbClient, it still have a chance to get to work ' +
|
|
146
140
|
'if it\'s a temporary network issue';
|
|
147
|
-
const error = new
|
|
141
|
+
const error = new TimeoutError(msg);
|
|
148
142
|
this.state = ClientState.Failed;
|
|
149
143
|
this.rejectionReason = error;
|
|
150
144
|
(_a = this.initReject) === null || _a === void 0 ? void 0 : _a.call(this, error);
|
|
@@ -185,28 +179,28 @@ class FbClientCore {
|
|
|
185
179
|
return this.initializedPromise;
|
|
186
180
|
}
|
|
187
181
|
boolVariation(key, defaultValue) {
|
|
188
|
-
return this.evaluateCore(key, defaultValue,
|
|
182
|
+
return this.evaluateCore(key, defaultValue, ValueConverters.bool).value;
|
|
189
183
|
}
|
|
190
184
|
boolVariationDetail(key, defaultValue) {
|
|
191
|
-
return this.evaluateCore(key, defaultValue,
|
|
185
|
+
return this.evaluateCore(key, defaultValue, ValueConverters.bool);
|
|
192
186
|
}
|
|
193
187
|
jsonVariation(key, defaultValue) {
|
|
194
|
-
return this.evaluateCore(key, defaultValue,
|
|
188
|
+
return this.evaluateCore(key, defaultValue, ValueConverters.json).value;
|
|
195
189
|
}
|
|
196
190
|
jsonVariationDetail(key, defaultValue) {
|
|
197
|
-
return this.evaluateCore(key, defaultValue,
|
|
191
|
+
return this.evaluateCore(key, defaultValue, ValueConverters.json);
|
|
198
192
|
}
|
|
199
193
|
numberVariation(key, defaultValue) {
|
|
200
|
-
return this.evaluateCore(key, defaultValue,
|
|
194
|
+
return this.evaluateCore(key, defaultValue, ValueConverters.number).value;
|
|
201
195
|
}
|
|
202
196
|
numberVariationDetail(key, defaultValue) {
|
|
203
|
-
return this.evaluateCore(key, defaultValue,
|
|
197
|
+
return this.evaluateCore(key, defaultValue, ValueConverters.number);
|
|
204
198
|
}
|
|
205
199
|
stringVariation(key, defaultValue) {
|
|
206
|
-
return this.evaluateCore(key, defaultValue,
|
|
200
|
+
return this.evaluateCore(key, defaultValue, ValueConverters.string).value;
|
|
207
201
|
}
|
|
208
202
|
stringVariationDetail(key, defaultValue) {
|
|
209
|
-
return this.evaluateCore(key, defaultValue,
|
|
203
|
+
return this.evaluateCore(key, defaultValue, ValueConverters.string);
|
|
210
204
|
}
|
|
211
205
|
variation(key, defaultValue) {
|
|
212
206
|
return this.evaluateCore(key, defaultValue).value;
|
|
@@ -216,13 +210,13 @@ class FbClientCore {
|
|
|
216
210
|
}
|
|
217
211
|
getAllVariations() {
|
|
218
212
|
var _a;
|
|
219
|
-
const context =
|
|
213
|
+
const context = Context.fromUser(this.config.user);
|
|
220
214
|
if (!context.valid) {
|
|
221
|
-
const error = new
|
|
215
|
+
const error = new ClientError(`${(_a = context.message) !== null && _a !== void 0 ? _a : 'User not valid;'} returning default value.`);
|
|
222
216
|
this.onError(error);
|
|
223
217
|
return Promise.resolve([]);
|
|
224
218
|
}
|
|
225
|
-
const [flags, _] = this.store.all(
|
|
219
|
+
const [flags, _] = this.store.all(DataKinds.Flags);
|
|
226
220
|
const result = Object.keys(flags).map(flagKey => {
|
|
227
221
|
var _a;
|
|
228
222
|
const evalResult = this.evaluator.evaluate(flagKey);
|
|
@@ -239,7 +233,7 @@ class FbClientCore {
|
|
|
239
233
|
});
|
|
240
234
|
}
|
|
241
235
|
track(eventName, metricValue) {
|
|
242
|
-
const metricEvent = new
|
|
236
|
+
const metricEvent = new MetricEvent(this.config.user, eventName, this.platform.info.appType, metricValue !== null && metricValue !== void 0 ? metricValue : 1);
|
|
243
237
|
this.eventProcessor.record(metricEvent);
|
|
244
238
|
return;
|
|
245
239
|
}
|
|
@@ -258,16 +252,16 @@ class FbClientCore {
|
|
|
258
252
|
}
|
|
259
253
|
evaluateCore(flagKey, defaultValue, typeConverter) {
|
|
260
254
|
var _a, _b, _c;
|
|
261
|
-
const context =
|
|
255
|
+
const context = Context.fromUser(this.config.user);
|
|
262
256
|
if (!context.valid) {
|
|
263
|
-
const error = new
|
|
257
|
+
const error = new ClientError(`${(_a = context.message) !== null && _a !== void 0 ? _a : 'User not valid;'} returning default value.`);
|
|
264
258
|
this.onError(error);
|
|
265
|
-
return { flagKey, kind:
|
|
259
|
+
return { flagKey, kind: ReasonKinds.Error, reason: error.message, value: defaultValue };
|
|
266
260
|
}
|
|
267
261
|
const evalResult = this.evaluator.evaluate(flagKey);
|
|
268
|
-
if (evalResult.kind ===
|
|
262
|
+
if (evalResult.kind === ReasonKinds.FlagNotFound) {
|
|
269
263
|
// flag not found, return default value
|
|
270
|
-
const error = new
|
|
264
|
+
const error = new ClientError(evalResult.reason);
|
|
271
265
|
this.onError(error);
|
|
272
266
|
return { flagKey, kind: evalResult.kind, reason: evalResult.reason, value: defaultValue };
|
|
273
267
|
}
|
|
@@ -277,28 +271,28 @@ class FbClientCore {
|
|
|
277
271
|
}
|
|
278
272
|
else {
|
|
279
273
|
// send event
|
|
280
|
-
const flag = (_c = this.store) === null || _c === void 0 ? void 0 : _c.get(
|
|
281
|
-
if ((flag === null || flag === void 0 ? void 0 : flag.origin) ===
|
|
274
|
+
const flag = (_c = this.store) === null || _c === void 0 ? void 0 : _c.get(DataKinds.Flags, flagKey);
|
|
275
|
+
if ((flag === null || flag === void 0 ? void 0 : flag.origin) === StoreItemOriginEnum.Remote) {
|
|
282
276
|
this.eventProcessor.record(evalResult.toEvalEvent(this.config.user));
|
|
283
277
|
}
|
|
284
278
|
}
|
|
285
279
|
let converter;
|
|
286
280
|
if (!typeConverter) {
|
|
287
281
|
switch (evalResult.value.variationType) {
|
|
288
|
-
case
|
|
289
|
-
converter =
|
|
282
|
+
case VariationDataType.boolean:
|
|
283
|
+
converter = ValueConverters.bool;
|
|
290
284
|
break;
|
|
291
|
-
case
|
|
292
|
-
converter =
|
|
285
|
+
case VariationDataType.number:
|
|
286
|
+
converter = ValueConverters.number;
|
|
293
287
|
break;
|
|
294
|
-
case
|
|
295
|
-
converter =
|
|
288
|
+
case VariationDataType.json:
|
|
289
|
+
converter = ValueConverters.json;
|
|
296
290
|
break;
|
|
297
|
-
case
|
|
298
|
-
converter =
|
|
291
|
+
case VariationDataType.string:
|
|
292
|
+
converter = ValueConverters.string;
|
|
299
293
|
break;
|
|
300
294
|
default:
|
|
301
|
-
converter =
|
|
295
|
+
converter = ValueConverters.string;
|
|
302
296
|
}
|
|
303
297
|
}
|
|
304
298
|
else {
|
|
@@ -307,7 +301,7 @@ class FbClientCore {
|
|
|
307
301
|
const { isSucceeded, value } = converter(evalResult.value.variation);
|
|
308
302
|
return isSucceeded
|
|
309
303
|
? { flagKey, kind: evalResult.kind, reason: evalResult.reason, value }
|
|
310
|
-
: { flagKey, kind:
|
|
304
|
+
: { flagKey, kind: ReasonKinds.WrongType, reason: 'type mismatch', value: defaultValue };
|
|
311
305
|
}
|
|
312
306
|
dataSourceErrorHandler(e) {
|
|
313
307
|
var _a;
|
|
@@ -330,5 +324,4 @@ class FbClientCore {
|
|
|
330
324
|
}
|
|
331
325
|
}
|
|
332
326
|
}
|
|
333
|
-
exports.FbClientCore = FbClientCore;
|
|
334
327
|
//# sourceMappingURL=FbClientCore.js.map
|