@splitsoftware/splitio-commons 2.4.2-rc.3 → 11.5.0-rc.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/CHANGES.txt +895 -152
- package/CONTRIBUTORS-GUIDE.md +26 -16
- package/README.md +43 -5
- package/cjs/factory/browser.js +73 -0
- package/cjs/factory/node.js +79 -0
- package/cjs/factory/package.json +4 -0
- package/cjs/index.js +3 -16
- package/cjs/{utils/MinEvents.js → platform/EventEmitter.js} +153 -27
- package/cjs/platform/browser.js +15 -0
- package/cjs/platform/filter/bloomFilter.js +32 -0
- package/cjs/platform/getEventSource/browser.js +7 -0
- package/cjs/platform/getEventSource/eventsource.js +480 -0
- package/cjs/platform/getEventSource/node.js +25 -0
- package/cjs/platform/getEventSource/package.json +4 -0
- package/cjs/platform/getFetch/browser.js +9 -0
- package/cjs/platform/getFetch/node.js +26 -0
- package/cjs/platform/getFetch/package.json +4 -0
- package/cjs/platform/getOptions/node.js +25 -0
- package/cjs/platform/node.js +18 -0
- package/cjs/platform/package.json +4 -0
- package/cjs/settings/browser.js +21 -0
- package/cjs/settings/defaults/browser.js +21 -0
- package/cjs/settings/defaults/node.js +23 -0
- package/cjs/{listeners/types.js → settings/defaults/version.js} +2 -0
- package/cjs/settings/integrations/browser.js +9 -0
- package/cjs/settings/node.js +22 -0
- package/cjs/settings/package.json +4 -0
- package/cjs/settings/runtime/node.js +22 -0
- package/cjs/settings/storage/browser.js +35 -0
- package/cjs/settings/storage/node.js +67 -0
- package/cjs/sync/offline/LocalhostFromFile.js +8 -0
- package/cjs/sync/offline/splitsParserFromFile.js +148 -0
- package/cjs/umd.js +5 -0
- package/cjs/utils/ip.js +114 -0
- package/client/package.json +5 -0
- package/esm/factory/browser.js +69 -0
- package/esm/factory/node.js +75 -0
- package/esm/factory/package.json +4 -0
- package/esm/index.js +1 -10
- package/esm/{utils/MinEvents.js → platform/EventEmitter.js} +143 -17
- package/esm/platform/browser.js +12 -0
- package/esm/platform/filter/bloomFilter.js +28 -0
- package/esm/platform/getEventSource/browser.js +3 -0
- package/esm/platform/getEventSource/eventsource.js +480 -0
- package/esm/platform/getEventSource/node.js +19 -0
- package/esm/platform/getEventSource/package.json +4 -0
- package/esm/platform/getFetch/browser.js +4 -0
- package/esm/platform/getFetch/node.js +21 -0
- package/esm/platform/getFetch/package.json +4 -0
- package/esm/platform/getOptions/node.js +20 -0
- package/esm/platform/node.js +14 -0
- package/esm/platform/package.json +4 -0
- package/esm/settings/browser.js +17 -0
- package/esm/settings/defaults/browser.js +18 -0
- package/esm/settings/defaults/node.js +20 -0
- package/esm/settings/defaults/version.js +1 -0
- package/esm/settings/integrations/browser.js +5 -0
- package/esm/settings/node.js +18 -0
- package/esm/settings/package.json +4 -0
- package/esm/settings/runtime/node.js +17 -0
- package/esm/settings/storage/browser.js +31 -0
- package/esm/settings/storage/node.js +63 -0
- package/esm/sync/offline/LocalhostFromFile.js +5 -0
- package/esm/sync/offline/splitsParserFromFile.js +143 -0
- package/esm/umd.js +3 -0
- package/esm/utils/ip.js +109 -0
- package/package.json +99 -58
- package/server/package.json +5 -0
- package/src/factory/browser.js +85 -0
- package/src/factory/node.js +92 -0
- package/src/factory/package.json +4 -0
- package/src/index.js +1 -0
- package/src/{utils/MinEvents.ts → platform/EventEmitter.js} +164 -19
- package/src/platform/browser.js +14 -0
- package/src/platform/filter/bloomFilter.js +33 -0
- package/src/platform/getEventSource/browser.js +3 -0
- package/src/platform/getEventSource/eventsource.js +519 -0
- package/src/platform/getEventSource/node.js +20 -0
- package/src/platform/getEventSource/package.json +4 -0
- package/src/platform/getFetch/browser.js +5 -0
- package/src/platform/getFetch/node.js +24 -0
- package/src/platform/getFetch/package.json +4 -0
- package/src/platform/getOptions/node.js +23 -0
- package/src/platform/node.js +16 -0
- package/src/platform/package.json +4 -0
- package/src/settings/browser.js +20 -0
- package/src/settings/defaults/browser.js +21 -0
- package/src/settings/defaults/node.js +23 -0
- package/src/settings/defaults/version.js +1 -0
- package/src/settings/integrations/browser.js +6 -0
- package/src/settings/node.js +21 -0
- package/src/settings/package.json +4 -0
- package/src/settings/runtime/node.js +21 -0
- package/src/settings/storage/browser.js +47 -0
- package/src/settings/storage/node.js +84 -0
- package/src/sync/offline/LocalhostFromFile.js +6 -0
- package/src/sync/offline/splitsParserFromFile.js +173 -0
- package/src/umd.js +4 -0
- package/src/utils/ip.js +123 -0
- package/types/client/index.d.ts +15 -0
- package/types/index.d.ts +24 -1
- package/types/server/index.d.ts +21 -0
- package/types/splitio.d.ts +2 -2083
- package/cjs/consent/index.js +0 -10
- package/cjs/consent/sdkUserConsent.js +0 -60
- package/cjs/dtos/types.js +0 -2
- package/cjs/evaluator/Engine.js +0 -58
- package/cjs/evaluator/combiners/and.js +0 -25
- package/cjs/evaluator/combiners/ifelseif.js +0 -48
- package/cjs/evaluator/condition/engineUtils.js +0 -29
- package/cjs/evaluator/condition/index.js +0 -41
- package/cjs/evaluator/convertions/index.js +0 -11
- package/cjs/evaluator/index.js +0 -134
- package/cjs/evaluator/matchers/all.js +0 -9
- package/cjs/evaluator/matchers/between.js +0 -10
- package/cjs/evaluator/matchers/boolean.js +0 -10
- package/cjs/evaluator/matchers/cont_all.js +0 -23
- package/cjs/evaluator/matchers/cont_any.js +0 -18
- package/cjs/evaluator/matchers/cont_str.js +0 -11
- package/cjs/evaluator/matchers/dependency.js +0 -28
- package/cjs/evaluator/matchers/eq.js +0 -10
- package/cjs/evaluator/matchers/eq_set.js +0 -20
- package/cjs/evaluator/matchers/ew.js +0 -11
- package/cjs/evaluator/matchers/gte.js +0 -10
- package/cjs/evaluator/matchers/index.js +0 -66
- package/cjs/evaluator/matchers/large_segment.js +0 -10
- package/cjs/evaluator/matchers/lte.js +0 -10
- package/cjs/evaluator/matchers/matcherTypes.js +0 -46
- package/cjs/evaluator/matchers/part_of.js +0 -20
- package/cjs/evaluator/matchers/prerequisites.js +0 -22
- package/cjs/evaluator/matchers/rbsegment.js +0 -56
- package/cjs/evaluator/matchers/segment.js +0 -10
- package/cjs/evaluator/matchers/semver_between.js +0 -14
- package/cjs/evaluator/matchers/semver_eq.js +0 -13
- package/cjs/evaluator/matchers/semver_gte.js +0 -13
- package/cjs/evaluator/matchers/semver_inlist.js +0 -16
- package/cjs/evaluator/matchers/semver_lte.js +0 -13
- package/cjs/evaluator/matchers/string.js +0 -11
- package/cjs/evaluator/matchers/sw.js +0 -11
- package/cjs/evaluator/matchers/whitelist.js +0 -11
- package/cjs/evaluator/matchersTransform/index.js +0 -104
- package/cjs/evaluator/matchersTransform/segment.js +0 -12
- package/cjs/evaluator/matchersTransform/unaryNumeric.js +0 -10
- package/cjs/evaluator/matchersTransform/whitelist.js +0 -10
- package/cjs/evaluator/parser/index.js +0 -61
- package/cjs/evaluator/treatments/index.js +0 -42
- package/cjs/evaluator/types.js +0 -2
- package/cjs/evaluator/value/index.js +0 -37
- package/cjs/evaluator/value/sanitize.js +0 -94
- package/cjs/integrations/pluggable.js +0 -35
- package/cjs/integrations/types.js +0 -2
- package/cjs/listeners/browser.js +0 -121
- package/cjs/listeners/node.js +0 -68
- package/cjs/logger/browser/DebugLogger.js +0 -9
- package/cjs/logger/browser/ErrorLogger.js +0 -9
- package/cjs/logger/browser/InfoLogger.js +0 -9
- package/cjs/logger/browser/WarnLogger.js +0 -9
- package/cjs/logger/constants.js +0 -140
- package/cjs/logger/index.js +0 -100
- package/cjs/logger/messages/debug.js +0 -36
- package/cjs/logger/messages/error.js +0 -42
- package/cjs/logger/messages/info.js +0 -37
- package/cjs/logger/messages/warn.js +0 -42
- package/cjs/logger/sdkLogger.js +0 -45
- package/cjs/logger/types.js +0 -2
- package/cjs/readiness/constants.js +0 -13
- package/cjs/readiness/readinessManager.js +0 -154
- package/cjs/readiness/sdkReadinessManager.js +0 -104
- package/cjs/readiness/types.js +0 -2
- package/cjs/sdkClient/client.js +0 -183
- package/cjs/sdkClient/clientAttributesDecoration.js +0 -122
- package/cjs/sdkClient/clientCS.js +0 -30
- package/cjs/sdkClient/clientInputValidation.js +0 -147
- package/cjs/sdkClient/identity.js +0 -7
- package/cjs/sdkClient/sdkClient.js +0 -64
- package/cjs/sdkClient/sdkClientMethod.js +0 -22
- package/cjs/sdkClient/sdkClientMethodCS.js +0 -66
- package/cjs/sdkFactory/index.js +0 -108
- package/cjs/sdkFactory/types.js +0 -2
- package/cjs/sdkManager/index.js +0 -96
- package/cjs/services/decorateHeaders.js +0 -40
- package/cjs/services/splitApi.js +0 -131
- package/cjs/services/splitHttpClient.js +0 -82
- package/cjs/services/types.js +0 -2
- package/cjs/storages/AbstractMySegmentsCacheSync.js +0 -60
- package/cjs/storages/AbstractSplitsCacheAsync.js +0 -51
- package/cjs/storages/AbstractSplitsCacheSync.js +0 -75
- package/cjs/storages/KeyBuilder.js +0 -68
- package/cjs/storages/KeyBuilderCS.js +0 -65
- package/cjs/storages/KeyBuilderSS.js +0 -60
- package/cjs/storages/dataLoader.js +0 -50
- package/cjs/storages/findLatencyIndex.js +0 -18
- package/cjs/storages/inLocalStorage/MySegmentsCacheInLocal.js +0 -81
- package/cjs/storages/inLocalStorage/RBSegmentsCacheInLocal.js +0 -117
- package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +0 -204
- package/cjs/storages/inLocalStorage/constants.js +0 -5
- package/cjs/storages/inLocalStorage/index.js +0 -91
- package/cjs/storages/inLocalStorage/storageAdapter.js +0 -54
- package/cjs/storages/inLocalStorage/validateCache.js +0 -85
- package/cjs/storages/inMemory/AttributesCacheInMemory.js +0 -70
- package/cjs/storages/inMemory/EventsCacheInMemory.js +0 -63
- package/cjs/storages/inMemory/ImpressionCountsCacheInMemory.js +0 -65
- package/cjs/storages/inMemory/ImpressionsCacheInMemory.js +0 -51
- package/cjs/storages/inMemory/InMemoryStorage.js +0 -46
- package/cjs/storages/inMemory/InMemoryStorageCS.js +0 -63
- package/cjs/storages/inMemory/MySegmentsCacheInMemory.js +0 -46
- package/cjs/storages/inMemory/RBSegmentsCacheInMemory.js +0 -61
- package/cjs/storages/inMemory/SegmentsCacheInMemory.js +0 -61
- package/cjs/storages/inMemory/SplitsCacheInMemory.js +0 -121
- package/cjs/storages/inMemory/TelemetryCacheInMemory.js +0 -207
- package/cjs/storages/inMemory/UniqueKeysCacheInMemory.js +0 -72
- package/cjs/storages/inMemory/UniqueKeysCacheInMemoryCS.js +0 -71
- package/cjs/storages/inRedis/EventsCacheInRedis.js +0 -60
- package/cjs/storages/inRedis/ImpressionCountsCacheInRedis.js +0 -85
- package/cjs/storages/inRedis/ImpressionsCacheInRedis.js +0 -45
- package/cjs/storages/inRedis/RBSegmentsCacheInRedis.js +0 -64
- package/cjs/storages/inRedis/RedisAdapter.js +0 -195
- package/cjs/storages/inRedis/SegmentsCacheInRedis.js +0 -57
- package/cjs/storages/inRedis/SplitsCacheInRedis.js +0 -243
- package/cjs/storages/inRedis/TelemetryCacheInRedis.js +0 -124
- package/cjs/storages/inRedis/UniqueKeysCacheInRedis.js +0 -69
- package/cjs/storages/inRedis/constants.js +0 -7
- package/cjs/storages/inRedis/index.js +0 -73
- package/cjs/storages/pluggable/EventsCachePluggable.js +0 -64
- package/cjs/storages/pluggable/ImpressionCountsCachePluggable.js +0 -81
- package/cjs/storages/pluggable/ImpressionsCachePluggable.js +0 -48
- package/cjs/storages/pluggable/RBSegmentsCachePluggable.js +0 -64
- package/cjs/storages/pluggable/SegmentsCachePluggable.js +0 -80
- package/cjs/storages/pluggable/SplitsCachePluggable.js +0 -212
- package/cjs/storages/pluggable/TelemetryCachePluggable.js +0 -141
- package/cjs/storages/pluggable/UniqueKeysCachePluggable.js +0 -62
- package/cjs/storages/pluggable/constants.js +0 -4
- package/cjs/storages/pluggable/inMemoryWrapper.js +0 -141
- package/cjs/storages/pluggable/index.js +0 -135
- package/cjs/storages/pluggable/wrapperAdapter.js +0 -53
- package/cjs/storages/types.js +0 -2
- package/cjs/storages/utils.js +0 -74
- package/cjs/sync/offline/LocalhostFromObject.js +0 -8
- package/cjs/sync/offline/splitsParser/parseCondition.js +0 -55
- package/cjs/sync/offline/splitsParser/splitsParserFromSettings.js +0 -62
- package/cjs/sync/offline/splitsParser/types.js +0 -2
- package/cjs/sync/offline/syncManagerOffline.js +0 -52
- package/cjs/sync/offline/syncTasks/fromObjectSyncTask.js +0 -71
- package/cjs/sync/polling/fetchers/mySegmentsFetcher.js +0 -18
- package/cjs/sync/polling/fetchers/segmentChangesFetcher.js +0 -34
- package/cjs/sync/polling/fetchers/splitChangesFetcher.js +0 -68
- package/cjs/sync/polling/fetchers/types.js +0 -2
- package/cjs/sync/polling/pollingManagerCS.js +0 -100
- package/cjs/sync/polling/pollingManagerSS.js +0 -49
- package/cjs/sync/polling/syncTasks/mySegmentsSyncTask.js +0 -13
- package/cjs/sync/polling/syncTasks/segmentsSyncTask.js +0 -13
- package/cjs/sync/polling/syncTasks/splitsSyncTask.js +0 -13
- package/cjs/sync/polling/types.js +0 -2
- package/cjs/sync/polling/updaters/mySegmentsUpdater.js +0 -83
- package/cjs/sync/polling/updaters/segmentChangesUpdater.js +0 -80
- package/cjs/sync/polling/updaters/splitChangesUpdater.js +0 -190
- package/cjs/sync/streaming/AuthClient/index.js +0 -43
- package/cjs/sync/streaming/AuthClient/types.js +0 -2
- package/cjs/sync/streaming/SSEClient/index.js +0 -86
- package/cjs/sync/streaming/SSEClient/types.js +0 -2
- package/cjs/sync/streaming/SSEHandler/NotificationKeeper.js +0 -98
- package/cjs/sync/streaming/SSEHandler/NotificationParser.js +0 -41
- package/cjs/sync/streaming/SSEHandler/index.js +0 -97
- package/cjs/sync/streaming/SSEHandler/types.js +0 -16
- package/cjs/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +0 -124
- package/cjs/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +0 -92
- package/cjs/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +0 -136
- package/cjs/sync/streaming/UpdateWorkers/constants.js +0 -6
- package/cjs/sync/streaming/UpdateWorkers/types.js +0 -2
- package/cjs/sync/streaming/constants.js +0 -43
- package/cjs/sync/streaming/parseUtils.js +0 -98
- package/cjs/sync/streaming/pushManager.js +0 -317
- package/cjs/sync/streaming/types.js +0 -2
- package/cjs/sync/submitters/eventsSubmitter.js +0 -28
- package/cjs/sync/submitters/impressionCountsSubmitter.js +0 -36
- package/cjs/sync/submitters/impressionsSubmitter.js +0 -54
- package/cjs/sync/submitters/submitter.js +0 -66
- package/cjs/sync/submitters/submitterManager.js +0 -46
- package/cjs/sync/submitters/telemetrySubmitter.js +0 -125
- package/cjs/sync/submitters/types.js +0 -2
- package/cjs/sync/submitters/uniqueKeysSubmitter.js +0 -27
- package/cjs/sync/syncManagerOnline.js +0 -176
- package/cjs/sync/syncTask.js +0 -84
- package/cjs/sync/types.js +0 -2
- package/cjs/trackers/eventTracker.js +0 -62
- package/cjs/trackers/impressionObserver/ImpressionObserver.js +0 -18
- package/cjs/trackers/impressionObserver/buildKey.js +0 -7
- package/cjs/trackers/impressionObserver/impressionObserverCS.js +0 -15
- package/cjs/trackers/impressionObserver/impressionObserverSS.js +0 -15
- package/cjs/trackers/impressionObserver/types.js +0 -2
- package/cjs/trackers/impressionsTracker.js +0 -78
- package/cjs/trackers/strategy/strategyDebug.js +0 -20
- package/cjs/trackers/strategy/strategyNone.js +0 -24
- package/cjs/trackers/strategy/strategyOptimized.js +0 -28
- package/cjs/trackers/telemetryTracker.js +0 -75
- package/cjs/trackers/types.js +0 -2
- package/cjs/trackers/uniqueKeysTracker.js +0 -40
- package/cjs/types.js +0 -2
- package/cjs/utils/Backoff.js +0 -41
- package/cjs/utils/LRUCache/LinkedList.js +0 -114
- package/cjs/utils/LRUCache/index.js +0 -42
- package/cjs/utils/MinEventEmitter.js +0 -100
- package/cjs/utils/Semver.js +0 -103
- package/cjs/utils/base64/index.js +0 -75
- package/cjs/utils/constants/index.js +0 -100
- package/cjs/utils/decompress/index.js +0 -427
- package/cjs/utils/env/isLocalStorageAvailable.js +0 -39
- package/cjs/utils/env/isNode.js +0 -9
- package/cjs/utils/inputValidation/apiKey.js +0 -54
- package/cjs/utils/inputValidation/attribute.js +0 -20
- package/cjs/utils/inputValidation/attributes.js +0 -25
- package/cjs/utils/inputValidation/event.js +0 -28
- package/cjs/utils/inputValidation/eventProperties.js +0 -74
- package/cjs/utils/inputValidation/eventValue.js +0 -12
- package/cjs/utils/inputValidation/index.js +0 -34
- package/cjs/utils/inputValidation/isOperational.js +0 -18
- package/cjs/utils/inputValidation/key.js +0 -51
- package/cjs/utils/inputValidation/preloadedData.js +0 -59
- package/cjs/utils/inputValidation/split.js +0 -30
- package/cjs/utils/inputValidation/splitExistence.js +0 -19
- package/cjs/utils/inputValidation/splits.js +0 -25
- package/cjs/utils/inputValidation/trafficType.js +0 -29
- package/cjs/utils/inputValidation/trafficTypeExistence.js +0 -31
- package/cjs/utils/jwt/index.js +0 -17
- package/cjs/utils/jwt/types.js +0 -2
- package/cjs/utils/key/index.js +0 -36
- package/cjs/utils/labels/index.js +0 -12
- package/cjs/utils/lang/binarySearch.js +0 -42
- package/cjs/utils/lang/getFnName.js +0 -12
- package/cjs/utils/lang/getGlobal.js +0 -18
- package/cjs/utils/lang/index.js +0 -281
- package/cjs/utils/lang/objectAssign.js +0 -20
- package/cjs/utils/lang/sets.js +0 -23
- package/cjs/utils/murmur3/common.js +0 -46
- package/cjs/utils/murmur3/legacy.js +0 -44
- package/cjs/utils/murmur3/murmur3.js +0 -62
- package/cjs/utils/murmur3/murmur3_128.js +0 -219
- package/cjs/utils/murmur3/murmur3_128_x86.js +0 -154
- package/cjs/utils/murmur3/murmur3_64.js +0 -36
- package/cjs/utils/murmur3/utfx.js +0 -108
- package/cjs/utils/promise/thenable.js +0 -8
- package/cjs/utils/promise/timeout.js +0 -20
- package/cjs/utils/promise/wrapper.js +0 -58
- package/cjs/utils/settingsValidation/consent.js +0 -16
- package/cjs/utils/settingsValidation/impressionsMode.js +0 -14
- package/cjs/utils/settingsValidation/index.js +0 -184
- package/cjs/utils/settingsValidation/integrations/common.js +0 -27
- package/cjs/utils/settingsValidation/integrations/configurable.js +0 -18
- package/cjs/utils/settingsValidation/integrations/pluggable.js +0 -15
- package/cjs/utils/settingsValidation/logger/builtinLogger.js +0 -46
- package/cjs/utils/settingsValidation/logger/commons.js +0 -28
- package/cjs/utils/settingsValidation/logger/pluggableLogger.js +0 -32
- package/cjs/utils/settingsValidation/mode.js +0 -20
- package/cjs/utils/settingsValidation/runtime.js +0 -11
- package/cjs/utils/settingsValidation/splitFilters.js +0 -188
- package/cjs/utils/settingsValidation/storage/storageCS.js +0 -49
- package/cjs/utils/settingsValidation/types.js +0 -2
- package/cjs/utils/settingsValidation/url.js +0 -31
- package/cjs/utils/time/index.js +0 -11
- package/cjs/utils/timeTracker/now/browser.js +0 -15
- package/cjs/utils/timeTracker/now/node.js +0 -9
- package/cjs/utils/timeTracker/timer.js +0 -10
- package/esm/consent/index.js +0 -6
- package/esm/consent/sdkUserConsent.js +0 -56
- package/esm/dtos/types.js +0 -1
- package/esm/evaluator/Engine.js +0 -54
- package/esm/evaluator/combiners/and.js +0 -21
- package/esm/evaluator/combiners/ifelseif.js +0 -44
- package/esm/evaluator/condition/engineUtils.js +0 -24
- package/esm/evaluator/condition/index.js +0 -37
- package/esm/evaluator/convertions/index.js +0 -6
- package/esm/evaluator/index.js +0 -128
- package/esm/evaluator/matchers/all.js +0 -5
- package/esm/evaluator/matchers/between.js +0 -6
- package/esm/evaluator/matchers/boolean.js +0 -6
- package/esm/evaluator/matchers/cont_all.js +0 -19
- package/esm/evaluator/matchers/cont_any.js +0 -14
- package/esm/evaluator/matchers/cont_str.js +0 -7
- package/esm/evaluator/matchers/dependency.js +0 -24
- package/esm/evaluator/matchers/eq.js +0 -6
- package/esm/evaluator/matchers/eq_set.js +0 -16
- package/esm/evaluator/matchers/ew.js +0 -7
- package/esm/evaluator/matchers/gte.js +0 -6
- package/esm/evaluator/matchers/index.js +0 -62
- package/esm/evaluator/matchers/large_segment.js +0 -6
- package/esm/evaluator/matchers/lte.js +0 -6
- package/esm/evaluator/matchers/matcherTypes.js +0 -42
- package/esm/evaluator/matchers/part_of.js +0 -16
- package/esm/evaluator/matchers/prerequisites.js +0 -18
- package/esm/evaluator/matchers/rbsegment.js +0 -52
- package/esm/evaluator/matchers/segment.js +0 -6
- package/esm/evaluator/matchers/semver_between.js +0 -10
- package/esm/evaluator/matchers/semver_eq.js +0 -9
- package/esm/evaluator/matchers/semver_gte.js +0 -9
- package/esm/evaluator/matchers/semver_inlist.js +0 -12
- package/esm/evaluator/matchers/semver_lte.js +0 -9
- package/esm/evaluator/matchers/string.js +0 -7
- package/esm/evaluator/matchers/sw.js +0 -7
- package/esm/evaluator/matchers/whitelist.js +0 -7
- package/esm/evaluator/matchersTransform/index.js +0 -100
- package/esm/evaluator/matchersTransform/segment.js +0 -8
- package/esm/evaluator/matchersTransform/unaryNumeric.js +0 -6
- package/esm/evaluator/matchersTransform/whitelist.js +0 -6
- package/esm/evaluator/parser/index.js +0 -57
- package/esm/evaluator/treatments/index.js +0 -39
- package/esm/evaluator/types.js +0 -1
- package/esm/evaluator/value/index.js +0 -33
- package/esm/evaluator/value/sanitize.js +0 -90
- package/esm/integrations/pluggable.js +0 -31
- package/esm/integrations/types.js +0 -1
- package/esm/listeners/browser.js +0 -118
- package/esm/listeners/node.js +0 -65
- package/esm/listeners/types.js +0 -1
- package/esm/logger/browser/DebugLogger.js +0 -5
- package/esm/logger/browser/ErrorLogger.js +0 -5
- package/esm/logger/browser/InfoLogger.js +0 -5
- package/esm/logger/browser/WarnLogger.js +0 -5
- package/esm/logger/constants.js +0 -135
- package/esm/logger/index.js +0 -95
- package/esm/logger/messages/debug.js +0 -32
- package/esm/logger/messages/error.js +0 -38
- package/esm/logger/messages/info.js +0 -33
- package/esm/logger/messages/warn.js +0 -38
- package/esm/logger/sdkLogger.js +0 -41
- package/esm/logger/types.js +0 -1
- package/esm/readiness/constants.js +0 -10
- package/esm/readiness/readinessManager.js +0 -150
- package/esm/readiness/sdkReadinessManager.js +0 -100
- package/esm/readiness/types.js +0 -1
- package/esm/sdkClient/client.js +0 -179
- package/esm/sdkClient/clientAttributesDecoration.js +0 -118
- package/esm/sdkClient/clientCS.js +0 -26
- package/esm/sdkClient/clientInputValidation.js +0 -143
- package/esm/sdkClient/identity.js +0 -3
- package/esm/sdkClient/sdkClient.js +0 -60
- package/esm/sdkClient/sdkClientMethod.js +0 -18
- package/esm/sdkClient/sdkClientMethodCS.js +0 -62
- package/esm/sdkFactory/index.js +0 -104
- package/esm/sdkFactory/types.js +0 -1
- package/esm/sdkManager/index.js +0 -92
- package/esm/services/decorateHeaders.js +0 -35
- package/esm/services/splitApi.js +0 -127
- package/esm/services/splitHttpClient.js +0 -78
- package/esm/services/types.js +0 -1
- package/esm/storages/AbstractMySegmentsCacheSync.js +0 -57
- package/esm/storages/AbstractSplitsCacheAsync.js +0 -48
- package/esm/storages/AbstractSplitsCacheSync.js +0 -70
- package/esm/storages/KeyBuilder.js +0 -63
- package/esm/storages/KeyBuilderCS.js +0 -61
- package/esm/storages/KeyBuilderSS.js +0 -57
- package/esm/storages/dataLoader.js +0 -46
- package/esm/storages/findLatencyIndex.js +0 -14
- package/esm/storages/inLocalStorage/MySegmentsCacheInLocal.js +0 -78
- package/esm/storages/inLocalStorage/RBSegmentsCacheInLocal.js +0 -114
- package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +0 -201
- package/esm/storages/inLocalStorage/constants.js +0 -2
- package/esm/storages/inLocalStorage/index.js +0 -87
- package/esm/storages/inLocalStorage/storageAdapter.js +0 -50
- package/esm/storages/inLocalStorage/validateCache.js +0 -81
- package/esm/storages/inMemory/AttributesCacheInMemory.js +0 -67
- package/esm/storages/inMemory/EventsCacheInMemory.js +0 -60
- package/esm/storages/inMemory/ImpressionCountsCacheInMemory.js +0 -62
- package/esm/storages/inMemory/ImpressionsCacheInMemory.js +0 -48
- package/esm/storages/inMemory/InMemoryStorage.js +0 -42
- package/esm/storages/inMemory/InMemoryStorageCS.js +0 -59
- package/esm/storages/inMemory/MySegmentsCacheInMemory.js +0 -43
- package/esm/storages/inMemory/RBSegmentsCacheInMemory.js +0 -58
- package/esm/storages/inMemory/SegmentsCacheInMemory.js +0 -58
- package/esm/storages/inMemory/SplitsCacheInMemory.js +0 -118
- package/esm/storages/inMemory/TelemetryCacheInMemory.js +0 -202
- package/esm/storages/inMemory/UniqueKeysCacheInMemory.js +0 -68
- package/esm/storages/inMemory/UniqueKeysCacheInMemoryCS.js +0 -68
- package/esm/storages/inRedis/EventsCacheInRedis.js +0 -57
- package/esm/storages/inRedis/ImpressionCountsCacheInRedis.js +0 -82
- package/esm/storages/inRedis/ImpressionsCacheInRedis.js +0 -42
- package/esm/storages/inRedis/RBSegmentsCacheInRedis.js +0 -61
- package/esm/storages/inRedis/RedisAdapter.js +0 -192
- package/esm/storages/inRedis/SegmentsCacheInRedis.js +0 -54
- package/esm/storages/inRedis/SplitsCacheInRedis.js +0 -240
- package/esm/storages/inRedis/TelemetryCacheInRedis.js +0 -121
- package/esm/storages/inRedis/UniqueKeysCacheInRedis.js +0 -66
- package/esm/storages/inRedis/constants.js +0 -4
- package/esm/storages/inRedis/index.js +0 -69
- package/esm/storages/pluggable/EventsCachePluggable.js +0 -61
- package/esm/storages/pluggable/ImpressionCountsCachePluggable.js +0 -78
- package/esm/storages/pluggable/ImpressionsCachePluggable.js +0 -45
- package/esm/storages/pluggable/RBSegmentsCachePluggable.js +0 -61
- package/esm/storages/pluggable/SegmentsCachePluggable.js +0 -77
- package/esm/storages/pluggable/SplitsCachePluggable.js +0 -209
- package/esm/storages/pluggable/TelemetryCachePluggable.js +0 -138
- package/esm/storages/pluggable/UniqueKeysCachePluggable.js +0 -59
- package/esm/storages/pluggable/constants.js +0 -1
- package/esm/storages/pluggable/inMemoryWrapper.js +0 -137
- package/esm/storages/pluggable/index.js +0 -131
- package/esm/storages/pluggable/wrapperAdapter.js +0 -49
- package/esm/storages/types.js +0 -1
- package/esm/storages/utils.js +0 -66
- package/esm/sync/offline/LocalhostFromObject.js +0 -5
- package/esm/sync/offline/splitsParser/parseCondition.js +0 -51
- package/esm/sync/offline/splitsParser/splitsParserFromSettings.js +0 -58
- package/esm/sync/offline/splitsParser/types.js +0 -1
- package/esm/sync/offline/syncManagerOffline.js +0 -48
- package/esm/sync/offline/syncTasks/fromObjectSyncTask.js +0 -66
- package/esm/sync/polling/fetchers/mySegmentsFetcher.js +0 -14
- package/esm/sync/polling/fetchers/segmentChangesFetcher.js +0 -30
- package/esm/sync/polling/fetchers/splitChangesFetcher.js +0 -64
- package/esm/sync/polling/fetchers/types.js +0 -1
- package/esm/sync/polling/pollingManagerCS.js +0 -96
- package/esm/sync/polling/pollingManagerSS.js +0 -45
- package/esm/sync/polling/syncTasks/mySegmentsSyncTask.js +0 -9
- package/esm/sync/polling/syncTasks/segmentsSyncTask.js +0 -9
- package/esm/sync/polling/syncTasks/splitsSyncTask.js +0 -9
- package/esm/sync/polling/types.js +0 -1
- package/esm/sync/polling/updaters/mySegmentsUpdater.js +0 -79
- package/esm/sync/polling/updaters/segmentChangesUpdater.js +0 -76
- package/esm/sync/polling/updaters/splitChangesUpdater.js +0 -184
- package/esm/sync/streaming/AuthClient/index.js +0 -38
- package/esm/sync/streaming/AuthClient/types.js +0 -1
- package/esm/sync/streaming/SSEClient/index.js +0 -83
- package/esm/sync/streaming/SSEClient/types.js +0 -1
- package/esm/sync/streaming/SSEHandler/NotificationKeeper.js +0 -94
- package/esm/sync/streaming/SSEHandler/NotificationParser.js +0 -36
- package/esm/sync/streaming/SSEHandler/index.js +0 -93
- package/esm/sync/streaming/SSEHandler/types.js +0 -13
- package/esm/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +0 -120
- package/esm/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +0 -88
- package/esm/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +0 -132
- package/esm/sync/streaming/UpdateWorkers/constants.js +0 -3
- package/esm/sync/streaming/UpdateWorkers/types.js +0 -1
- package/esm/sync/streaming/constants.js +0 -40
- package/esm/sync/streaming/parseUtils.js +0 -90
- package/esm/sync/streaming/pushManager.js +0 -313
- package/esm/sync/streaming/types.js +0 -1
- package/esm/sync/submitters/eventsSubmitter.js +0 -24
- package/esm/sync/submitters/impressionCountsSubmitter.js +0 -31
- package/esm/sync/submitters/impressionsSubmitter.js +0 -49
- package/esm/sync/submitters/submitter.js +0 -61
- package/esm/sync/submitters/submitterManager.js +0 -42
- package/esm/sync/submitters/telemetrySubmitter.js +0 -119
- package/esm/sync/submitters/types.js +0 -1
- package/esm/sync/submitters/uniqueKeysSubmitter.js +0 -23
- package/esm/sync/syncManagerOnline.js +0 -172
- package/esm/sync/syncTask.js +0 -80
- package/esm/sync/types.js +0 -1
- package/esm/trackers/eventTracker.js +0 -58
- package/esm/trackers/impressionObserver/ImpressionObserver.js +0 -15
- package/esm/trackers/impressionObserver/buildKey.js +0 -3
- package/esm/trackers/impressionObserver/impressionObserverCS.js +0 -10
- package/esm/trackers/impressionObserver/impressionObserverSS.js +0 -10
- package/esm/trackers/impressionObserver/types.js +0 -1
- package/esm/trackers/impressionsTracker.js +0 -74
- package/esm/trackers/strategy/strategyDebug.js +0 -16
- package/esm/trackers/strategy/strategyNone.js +0 -20
- package/esm/trackers/strategy/strategyOptimized.js +0 -24
- package/esm/trackers/telemetryTracker.js +0 -71
- package/esm/trackers/types.js +0 -1
- package/esm/trackers/uniqueKeysTracker.js +0 -36
- package/esm/types.js +0 -1
- package/esm/utils/Backoff.js +0 -38
- package/esm/utils/LRUCache/LinkedList.js +0 -111
- package/esm/utils/LRUCache/index.js +0 -39
- package/esm/utils/MinEventEmitter.js +0 -97
- package/esm/utils/Semver.js +0 -100
- package/esm/utils/base64/index.js +0 -70
- package/esm/utils/constants/index.js +0 -96
- package/esm/utils/decompress/index.js +0 -424
- package/esm/utils/env/isLocalStorageAvailable.js +0 -33
- package/esm/utils/env/isNode.js +0 -6
- package/esm/utils/inputValidation/apiKey.js +0 -48
- package/esm/utils/inputValidation/attribute.js +0 -16
- package/esm/utils/inputValidation/attributes.js +0 -20
- package/esm/utils/inputValidation/event.js +0 -24
- package/esm/utils/inputValidation/eventProperties.js +0 -69
- package/esm/utils/inputValidation/eventValue.js +0 -8
- package/esm/utils/inputValidation/index.js +0 -14
- package/esm/utils/inputValidation/isOperational.js +0 -13
- package/esm/utils/inputValidation/key.js +0 -47
- package/esm/utils/inputValidation/preloadedData.js +0 -55
- package/esm/utils/inputValidation/split.js +0 -26
- package/esm/utils/inputValidation/splitExistence.js +0 -15
- package/esm/utils/inputValidation/splits.js +0 -21
- package/esm/utils/inputValidation/trafficType.js +0 -25
- package/esm/utils/inputValidation/trafficTypeExistence.js +0 -27
- package/esm/utils/jwt/index.js +0 -13
- package/esm/utils/jwt/types.js +0 -1
- package/esm/utils/key/index.js +0 -30
- package/esm/utils/labels/index.js +0 -9
- package/esm/utils/lang/binarySearch.js +0 -38
- package/esm/utils/lang/getFnName.js +0 -8
- package/esm/utils/lang/getGlobal.js +0 -14
- package/esm/utils/lang/index.js +0 -258
- package/esm/utils/lang/objectAssign.js +0 -17
- package/esm/utils/lang/sets.js +0 -17
- package/esm/utils/murmur3/common.js +0 -39
- package/esm/utils/murmur3/legacy.js +0 -39
- package/esm/utils/murmur3/murmur3.js +0 -57
- package/esm/utils/murmur3/murmur3_128.js +0 -215
- package/esm/utils/murmur3/murmur3_128_x86.js +0 -150
- package/esm/utils/murmur3/murmur3_64.js +0 -32
- package/esm/utils/murmur3/utfx.js +0 -102
- package/esm/utils/promise/thenable.js +0 -4
- package/esm/utils/promise/timeout.js +0 -16
- package/esm/utils/promise/wrapper.js +0 -54
- package/esm/utils/settingsValidation/consent.js +0 -12
- package/esm/utils/settingsValidation/impressionsMode.js +0 -10
- package/esm/utils/settingsValidation/index.js +0 -180
- package/esm/utils/settingsValidation/integrations/common.js +0 -23
- package/esm/utils/settingsValidation/integrations/configurable.js +0 -14
- package/esm/utils/settingsValidation/integrations/pluggable.js +0 -11
- package/esm/utils/settingsValidation/logger/builtinLogger.js +0 -42
- package/esm/utils/settingsValidation/logger/commons.js +0 -24
- package/esm/utils/settingsValidation/logger/pluggableLogger.js +0 -28
- package/esm/utils/settingsValidation/mode.js +0 -15
- package/esm/utils/settingsValidation/runtime.js +0 -7
- package/esm/utils/settingsValidation/splitFilters.js +0 -183
- package/esm/utils/settingsValidation/storage/storageCS.js +0 -44
- package/esm/utils/settingsValidation/types.js +0 -1
- package/esm/utils/settingsValidation/url.js +0 -27
- package/esm/utils/time/index.js +0 -7
- package/esm/utils/timeTracker/now/browser.js +0 -12
- package/esm/utils/timeTracker/now/node.js +0 -5
- package/esm/utils/timeTracker/timer.js +0 -6
- package/src/consent/index.ts +0 -8
- package/src/consent/sdkUserConsent.ts +0 -60
- package/src/dtos/types.ts +0 -294
- package/src/evaluator/Engine.ts +0 -73
- package/src/evaluator/combiners/and.ts +0 -29
- package/src/evaluator/combiners/ifelseif.ts +0 -56
- package/src/evaluator/condition/engineUtils.ts +0 -31
- package/src/evaluator/condition/index.ts +0 -50
- package/src/evaluator/convertions/index.ts +0 -7
- package/src/evaluator/index.ts +0 -199
- package/src/evaluator/matchers/all.ts +0 -6
- package/src/evaluator/matchers/between.ts +0 -10
- package/src/evaluator/matchers/boolean.ts +0 -8
- package/src/evaluator/matchers/cont_all.ts +0 -18
- package/src/evaluator/matchers/cont_any.ts +0 -13
- package/src/evaluator/matchers/cont_str.ts +0 -9
- package/src/evaluator/matchers/dependency.ts +0 -32
- package/src/evaluator/matchers/eq.ts +0 -8
- package/src/evaluator/matchers/eq_set.ts +0 -15
- package/src/evaluator/matchers/ew.ts +0 -9
- package/src/evaluator/matchers/gte.ts +0 -8
- package/src/evaluator/matchers/index.ts +0 -70
- package/src/evaluator/matchers/large_segment.ts +0 -11
- package/src/evaluator/matchers/lte.ts +0 -8
- package/src/evaluator/matchers/matcherTypes.ts +0 -42
- package/src/evaluator/matchers/part_of.ts +0 -15
- package/src/evaluator/matchers/prerequisites.ts +0 -24
- package/src/evaluator/matchers/rbsegment.ts +0 -74
- package/src/evaluator/matchers/segment.ts +0 -11
- package/src/evaluator/matchers/semver_between.ts +0 -15
- package/src/evaluator/matchers/semver_eq.ts +0 -13
- package/src/evaluator/matchers/semver_gte.ts +0 -13
- package/src/evaluator/matchers/semver_inlist.ts +0 -16
- package/src/evaluator/matchers/semver_lte.ts +0 -13
- package/src/evaluator/matchers/string.ts +0 -9
- package/src/evaluator/matchers/sw.ts +0 -9
- package/src/evaluator/matchers/whitelist.ts +0 -9
- package/src/evaluator/matchersTransform/index.ts +0 -118
- package/src/evaluator/matchersTransform/segment.ts +0 -10
- package/src/evaluator/matchersTransform/unaryNumeric.ts +0 -8
- package/src/evaluator/matchersTransform/whitelist.ts +0 -8
- package/src/evaluator/parser/index.ts +0 -82
- package/src/evaluator/treatments/index.ts +0 -53
- package/src/evaluator/types.ts +0 -34
- package/src/evaluator/value/index.ts +0 -37
- package/src/evaluator/value/sanitize.ts +0 -106
- package/src/index.ts +0 -14
- package/src/integrations/pluggable.ts +0 -39
- package/src/integrations/types.ts +0 -21
- package/src/listeners/browser.ts +0 -138
- package/src/listeners/node.ts +0 -81
- package/src/listeners/types.ts +0 -4
- package/src/logger/browser/DebugLogger.ts +0 -6
- package/src/logger/browser/ErrorLogger.ts +0 -6
- package/src/logger/browser/InfoLogger.ts +0 -6
- package/src/logger/browser/WarnLogger.ts +0 -6
- package/src/logger/constants.ts +0 -139
- package/src/logger/index.ts +0 -110
- package/src/logger/messages/debug.ts +0 -33
- package/src/logger/messages/error.ts +0 -39
- package/src/logger/messages/info.ts +0 -36
- package/src/logger/messages/warn.ts +0 -40
- package/src/logger/sdkLogger.ts +0 -46
- package/src/logger/types.ts +0 -21
- package/src/readiness/constants.ts +0 -12
- package/src/readiness/readinessManager.ts +0 -170
- package/src/readiness/sdkReadinessManager.ts +0 -121
- package/src/readiness/types.ts +0 -85
- package/src/sdkClient/client.ts +0 -217
- package/src/sdkClient/clientAttributesDecoration.ts +0 -139
- package/src/sdkClient/clientCS.ts +0 -34
- package/src/sdkClient/clientInputValidation.ts +0 -178
- package/src/sdkClient/identity.ts +0 -5
- package/src/sdkClient/sdkClient.ts +0 -77
- package/src/sdkClient/sdkClientMethod.ts +0 -24
- package/src/sdkClient/sdkClientMethodCS.ts +0 -85
- package/src/sdkFactory/index.ts +0 -131
- package/src/sdkFactory/types.ts +0 -119
- package/src/sdkManager/index.ts +0 -114
- package/src/services/decorateHeaders.ts +0 -37
- package/src/services/splitApi.ts +0 -148
- package/src/services/splitHttpClient.ts +0 -84
- package/src/services/types.ts +0 -86
- package/src/storages/AbstractMySegmentsCacheSync.ts +0 -94
- package/src/storages/AbstractSplitsCacheAsync.ts +0 -63
- package/src/storages/AbstractSplitsCacheSync.ts +0 -94
- package/src/storages/KeyBuilder.ts +0 -81
- package/src/storages/KeyBuilderCS.ts +0 -79
- package/src/storages/KeyBuilderSS.ts +0 -74
- package/src/storages/dataLoader.ts +0 -55
- package/src/storages/findLatencyIndex.ts +0 -16
- package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +0 -87
- package/src/storages/inLocalStorage/RBSegmentsCacheInLocal.ts +0 -137
- package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +0 -241
- package/src/storages/inLocalStorage/constants.ts +0 -2
- package/src/storages/inLocalStorage/index.ts +0 -104
- package/src/storages/inLocalStorage/storageAdapter.ts +0 -62
- package/src/storages/inLocalStorage/validateCache.ts +0 -99
- package/src/storages/inMemory/AttributesCacheInMemory.ts +0 -74
- package/src/storages/inMemory/EventsCacheInMemory.ts +0 -76
- package/src/storages/inMemory/ImpressionCountsCacheInMemory.ts +0 -69
- package/src/storages/inMemory/ImpressionsCacheInMemory.ts +0 -58
- package/src/storages/inMemory/InMemoryStorage.ts +0 -50
- package/src/storages/inMemory/InMemoryStorageCS.ts +0 -69
- package/src/storages/inMemory/MySegmentsCacheInMemory.ts +0 -49
- package/src/storages/inMemory/RBSegmentsCacheInMemory.ts +0 -68
- package/src/storages/inMemory/SegmentsCacheInMemory.ts +0 -74
- package/src/storages/inMemory/SplitsCacheInMemory.ts +0 -130
- package/src/storages/inMemory/TelemetryCacheInMemory.ts +0 -263
- package/src/storages/inMemory/UniqueKeysCacheInMemory.ts +0 -79
- package/src/storages/inMemory/UniqueKeysCacheInMemoryCS.ts +0 -80
- package/src/storages/inRedis/EventsCacheInRedis.ts +0 -75
- package/src/storages/inRedis/ImpressionCountsCacheInRedis.ts +0 -95
- package/src/storages/inRedis/ImpressionsCacheInRedis.ts +0 -61
- package/src/storages/inRedis/RBSegmentsCacheInRedis.ts +0 -79
- package/src/storages/inRedis/RedisAdapter.ts +0 -209
- package/src/storages/inRedis/SegmentsCacheInRedis.ts +0 -70
- package/src/storages/inRedis/SplitsCacheInRedis.ts +0 -268
- package/src/storages/inRedis/TelemetryCacheInRedis.ts +0 -144
- package/src/storages/inRedis/UniqueKeysCacheInRedis.ts +0 -75
- package/src/storages/inRedis/constants.ts +0 -4
- package/src/storages/inRedis/index.ts +0 -85
- package/src/storages/package.json +0 -3
- package/src/storages/pluggable/EventsCachePluggable.ts +0 -79
- package/src/storages/pluggable/ImpressionCountsCachePluggable.ts +0 -92
- package/src/storages/pluggable/ImpressionsCachePluggable.ts +0 -63
- package/src/storages/pluggable/RBSegmentsCachePluggable.ts +0 -76
- package/src/storages/pluggable/SegmentsCachePluggable.ts +0 -90
- package/src/storages/pluggable/SplitsCachePluggable.ts +0 -230
- package/src/storages/pluggable/TelemetryCachePluggable.ts +0 -159
- package/src/storages/pluggable/UniqueKeysCachePluggable.ts +0 -67
- package/src/storages/pluggable/constants.ts +0 -1
- package/src/storages/pluggable/inMemoryWrapper.ts +0 -130
- package/src/storages/pluggable/index.ts +0 -152
- package/src/storages/pluggable/wrapperAdapter.ts +0 -58
- package/src/storages/types.ts +0 -538
- package/src/storages/utils.ts +0 -80
- package/src/sync/offline/LocalhostFromObject.ts +0 -6
- package/src/sync/offline/splitsParser/parseCondition.ts +0 -59
- package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +0 -72
- package/src/sync/offline/splitsParser/types.ts +0 -5
- package/src/sync/offline/syncManagerOffline.ts +0 -66
- package/src/sync/offline/syncTasks/fromObjectSyncTask.ts +0 -97
- package/src/sync/polling/fetchers/mySegmentsFetcher.ts +0 -25
- package/src/sync/polling/fetchers/segmentChangesFetcher.ts +0 -41
- package/src/sync/polling/fetchers/splitChangesFetcher.ts +0 -85
- package/src/sync/polling/fetchers/types.ts +0 -25
- package/src/sync/polling/pollingManagerCS.ts +0 -116
- package/src/sync/polling/pollingManagerSS.ts +0 -56
- package/src/sync/polling/syncTasks/mySegmentsSyncTask.ts +0 -34
- package/src/sync/polling/syncTasks/segmentsSyncTask.ts +0 -30
- package/src/sync/polling/syncTasks/splitsSyncTask.ts +0 -35
- package/src/sync/polling/types.ts +0 -33
- package/src/sync/polling/updaters/mySegmentsUpdater.ts +0 -104
- package/src/sync/polling/updaters/segmentChangesUpdater.ts +0 -92
- package/src/sync/polling/updaters/splitChangesUpdater.ts +0 -220
- package/src/sync/streaming/AuthClient/index.ts +0 -42
- package/src/sync/streaming/AuthClient/types.ts +0 -20
- package/src/sync/streaming/SSEClient/index.ts +0 -103
- package/src/sync/streaming/SSEClient/types.ts +0 -13
- package/src/sync/streaming/SSEHandler/NotificationKeeper.ts +0 -107
- package/src/sync/streaming/SSEHandler/NotificationParser.ts +0 -40
- package/src/sync/streaming/SSEHandler/index.ts +0 -105
- package/src/sync/streaming/SSEHandler/types.ts +0 -73
- package/src/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.ts +0 -134
- package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +0 -99
- package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +0 -145
- package/src/sync/streaming/UpdateWorkers/constants.ts +0 -3
- package/src/sync/streaming/UpdateWorkers/types.ts +0 -4
- package/src/sync/streaming/constants.ts +0 -44
- package/src/sync/streaming/parseUtils.ts +0 -100
- package/src/sync/streaming/pushManager.ts +0 -358
- package/src/sync/streaming/types.ts +0 -51
- package/src/sync/submitters/eventsSubmitter.ts +0 -35
- package/src/sync/submitters/impressionCountsSubmitter.ts +0 -44
- package/src/sync/submitters/impressionsSubmitter.ts +0 -66
- package/src/sync/submitters/submitter.ts +0 -76
- package/src/sync/submitters/submitterManager.ts +0 -48
- package/src/sync/submitters/telemetrySubmitter.ts +0 -148
- package/src/sync/submitters/types.ts +0 -241
- package/src/sync/submitters/uniqueKeysSubmitter.ts +0 -35
- package/src/sync/syncManagerOnline.ts +0 -195
- package/src/sync/syncTask.ts +0 -83
- package/src/sync/types.ts +0 -48
- package/src/trackers/eventTracker.ts +0 -72
- package/src/trackers/impressionObserver/ImpressionObserver.ts +0 -20
- package/src/trackers/impressionObserver/buildKey.ts +0 -5
- package/src/trackers/impressionObserver/impressionObserverCS.ts +0 -14
- package/src/trackers/impressionObserver/impressionObserverSS.ts +0 -14
- package/src/trackers/impressionObserver/types.ts +0 -5
- package/src/trackers/impressionsTracker.ts +0 -87
- package/src/trackers/strategy/strategyDebug.ts +0 -23
- package/src/trackers/strategy/strategyNone.ts +0 -28
- package/src/trackers/strategy/strategyOptimized.ts +0 -35
- package/src/trackers/telemetryTracker.ts +0 -73
- package/src/trackers/types.ts +0 -86
- package/src/trackers/uniqueKeysTracker.ts +0 -50
- package/src/types.ts +0 -79
- package/src/utils/Backoff.ts +0 -51
- package/src/utils/LRUCache/LinkedList.ts +0 -130
- package/src/utils/LRUCache/index.ts +0 -43
- package/src/utils/MinEventEmitter.ts +0 -102
- package/src/utils/Semver.ts +0 -111
- package/src/utils/base64/index.ts +0 -74
- package/src/utils/constants/index.ts +0 -116
- package/src/utils/decompress/index.ts +0 -429
- package/src/utils/env/isLocalStorageAvailable.ts +0 -32
- package/src/utils/env/isNode.ts +0 -6
- package/src/utils/inputValidation/apiKey.ts +0 -52
- package/src/utils/inputValidation/attribute.ts +0 -21
- package/src/utils/inputValidation/attributes.ts +0 -26
- package/src/utils/inputValidation/event.ts +0 -24
- package/src/utils/inputValidation/eventProperties.ts +0 -78
- package/src/utils/inputValidation/eventValue.ts +0 -11
- package/src/utils/inputValidation/index.ts +0 -14
- package/src/utils/inputValidation/isOperational.ts +0 -17
- package/src/utils/inputValidation/key.ts +0 -51
- package/src/utils/inputValidation/preloadedData.ts +0 -57
- package/src/utils/inputValidation/split.ts +0 -27
- package/src/utils/inputValidation/splitExistence.ts +0 -19
- package/src/utils/inputValidation/splits.ts +0 -21
- package/src/utils/inputValidation/trafficType.ts +0 -27
- package/src/utils/inputValidation/trafficTypeExistence.ts +0 -33
- package/src/utils/jwt/index.ts +0 -16
- package/src/utils/jwt/types.ts +0 -10
- package/src/utils/key/index.ts +0 -34
- package/src/utils/labels/index.ts +0 -9
- package/src/utils/lang/binarySearch.ts +0 -41
- package/src/utils/lang/getFnName.ts +0 -8
- package/src/utils/lang/getGlobal.ts +0 -17
- package/src/utils/lang/index.ts +0 -279
- package/src/utils/lang/objectAssign.ts +0 -25
- package/src/utils/lang/sets.ts +0 -17
- package/src/utils/murmur3/common.ts +0 -54
- package/src/utils/murmur3/legacy.ts +0 -48
- package/src/utils/murmur3/murmur3.ts +0 -74
- package/src/utils/murmur3/murmur3_128.ts +0 -273
- package/src/utils/murmur3/murmur3_128_x86.ts +0 -188
- package/src/utils/murmur3/murmur3_64.ts +0 -36
- package/src/utils/murmur3/utfx.ts +0 -109
- package/src/utils/promise/thenable.ts +0 -4
- package/src/utils/promise/timeout.ts +0 -17
- package/src/utils/promise/wrapper.ts +0 -60
- package/src/utils/settingsValidation/consent.ts +0 -16
- package/src/utils/settingsValidation/impressionsMode.ts +0 -14
- package/src/utils/settingsValidation/index.ts +0 -207
- package/src/utils/settingsValidation/integrations/common.ts +0 -27
- package/src/utils/settingsValidation/integrations/configurable.ts +0 -20
- package/src/utils/settingsValidation/integrations/pluggable.ts +0 -19
- package/src/utils/settingsValidation/logger/builtinLogger.ts +0 -54
- package/src/utils/settingsValidation/logger/commons.ts +0 -24
- package/src/utils/settingsValidation/logger/pluggableLogger.ts +0 -35
- package/src/utils/settingsValidation/mode.ts +0 -17
- package/src/utils/settingsValidation/runtime.ts +0 -9
- package/src/utils/settingsValidation/splitFilters.ts +0 -197
- package/src/utils/settingsValidation/storage/storageCS.ts +0 -52
- package/src/utils/settingsValidation/types.ts +0 -27
- package/src/utils/settingsValidation/url.ts +0 -30
- package/src/utils/time/index.ts +0 -8
- package/src/utils/timeTracker/now/browser.ts +0 -12
- package/src/utils/timeTracker/now/node.ts +0 -6
- package/src/utils/timeTracker/timer.ts +0 -7
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _a, _b, _c;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.telemetrySubmitterFactory = exports.telemetryCacheConfigAdapter = exports.getTelemetryConfigStats = void 0;
|
|
5
|
-
var submitter_1 = require("./submitter");
|
|
6
|
-
var constants_1 = require("../../utils/constants");
|
|
7
|
-
var constants_2 = require("../../readiness/constants");
|
|
8
|
-
var settingsValidation_1 = require("../../utils/settingsValidation");
|
|
9
|
-
var apiKey_1 = require("../../utils/inputValidation/apiKey");
|
|
10
|
-
var timer_1 = require("../../utils/timeTracker/timer");
|
|
11
|
-
var objectAssign_1 = require("../../utils/lang/objectAssign");
|
|
12
|
-
var OPERATION_MODE_MAP = (_a = {},
|
|
13
|
-
_a[constants_1.STANDALONE_MODE] = constants_1.STANDALONE_ENUM,
|
|
14
|
-
_a[constants_1.CONSUMER_MODE] = constants_1.CONSUMER_ENUM,
|
|
15
|
-
_a[constants_1.CONSUMER_PARTIAL_MODE] = constants_1.CONSUMER_PARTIAL_ENUM,
|
|
16
|
-
_a);
|
|
17
|
-
var IMPRESSIONS_MODE_MAP = (_b = {},
|
|
18
|
-
_b[constants_1.OPTIMIZED] = constants_1.OPTIMIZED_ENUM,
|
|
19
|
-
_b[constants_1.DEBUG] = constants_1.DEBUG_ENUM,
|
|
20
|
-
_b[constants_1.NONE] = constants_1.NONE_ENUM,
|
|
21
|
-
_b);
|
|
22
|
-
var USER_CONSENT_MAP = (_c = {},
|
|
23
|
-
_c[constants_1.CONSENT_UNKNOWN] = 1,
|
|
24
|
-
_c[constants_1.CONSENT_GRANTED] = 2,
|
|
25
|
-
_c[constants_1.CONSENT_DECLINED] = 3,
|
|
26
|
-
_c);
|
|
27
|
-
function getActiveFactories() {
|
|
28
|
-
return Object.keys(apiKey_1.usedKeysMap).length;
|
|
29
|
-
}
|
|
30
|
-
function getRedundantActiveFactories() {
|
|
31
|
-
return Object.keys(apiKey_1.usedKeysMap).reduce(function (acum, sdkKey) {
|
|
32
|
-
return acum + apiKey_1.usedKeysMap[sdkKey] - 1;
|
|
33
|
-
}, 0);
|
|
34
|
-
}
|
|
35
|
-
function getTelemetryFlagSetsStats(splitFiltersValidation) {
|
|
36
|
-
// Group every configured flag set in an unique array called originalSets
|
|
37
|
-
var flagSetsTotal = 0;
|
|
38
|
-
splitFiltersValidation.validFilters.forEach(function (filter) {
|
|
39
|
-
if (filter.type === 'bySet')
|
|
40
|
-
flagSetsTotal += filter.values.length;
|
|
41
|
-
});
|
|
42
|
-
var flagSetsValid = splitFiltersValidation.groupedFilters.bySet.length;
|
|
43
|
-
var flagSetsIgnored = flagSetsTotal - flagSetsValid;
|
|
44
|
-
return { flagSetsTotal: flagSetsTotal, flagSetsIgnored: flagSetsIgnored };
|
|
45
|
-
}
|
|
46
|
-
function getTelemetryConfigStats(mode, storageType) {
|
|
47
|
-
return {
|
|
48
|
-
oM: OPERATION_MODE_MAP[mode],
|
|
49
|
-
st: storageType.toLowerCase(),
|
|
50
|
-
aF: getActiveFactories(),
|
|
51
|
-
rF: getRedundantActiveFactories(),
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
exports.getTelemetryConfigStats = getTelemetryConfigStats;
|
|
55
|
-
/**
|
|
56
|
-
* Converts data from telemetry cache and settings into /metrics/config request payload.
|
|
57
|
-
*/
|
|
58
|
-
function telemetryCacheConfigAdapter(telemetry, settings) {
|
|
59
|
-
return {
|
|
60
|
-
isEmpty: function () { return false; },
|
|
61
|
-
clear: function () { },
|
|
62
|
-
pop: function () {
|
|
63
|
-
var urls = settings.urls, scheduler = settings.scheduler;
|
|
64
|
-
var isClientSide = settings.core.key !== undefined;
|
|
65
|
-
var _a = getTelemetryFlagSetsStats(settings.sync.__splitFiltersValidation), flagSetsTotal = _a.flagSetsTotal, flagSetsIgnored = _a.flagSetsIgnored;
|
|
66
|
-
return (0, objectAssign_1.objectAssign)(getTelemetryConfigStats(settings.mode, settings.storage.type), {
|
|
67
|
-
sE: settings.streamingEnabled,
|
|
68
|
-
rR: {
|
|
69
|
-
sp: scheduler.featuresRefreshRate / 1000,
|
|
70
|
-
se: isClientSide ? undefined : scheduler.segmentsRefreshRate / 1000,
|
|
71
|
-
ms: isClientSide ? scheduler.segmentsRefreshRate / 1000 : undefined,
|
|
72
|
-
im: scheduler.impressionsRefreshRate / 1000,
|
|
73
|
-
ev: scheduler.eventsPushRate / 1000,
|
|
74
|
-
te: scheduler.telemetryRefreshRate / 1000,
|
|
75
|
-
},
|
|
76
|
-
uO: {
|
|
77
|
-
s: urls.sdk !== settingsValidation_1.base.urls.sdk,
|
|
78
|
-
e: urls.events !== settingsValidation_1.base.urls.events,
|
|
79
|
-
a: urls.auth !== settingsValidation_1.base.urls.auth,
|
|
80
|
-
st: urls.streaming !== settingsValidation_1.base.urls.streaming,
|
|
81
|
-
t: urls.telemetry !== settingsValidation_1.base.urls.telemetry,
|
|
82
|
-
},
|
|
83
|
-
iQ: scheduler.impressionsQueueSize,
|
|
84
|
-
eQ: scheduler.eventsQueueSize,
|
|
85
|
-
iM: IMPRESSIONS_MODE_MAP[settings.sync.impressionsMode],
|
|
86
|
-
iL: settings.impressionListener ? true : false,
|
|
87
|
-
hP: false,
|
|
88
|
-
tR: telemetry.getTimeUntilReady(),
|
|
89
|
-
tC: telemetry.getTimeUntilReadyFromCache(),
|
|
90
|
-
nR: telemetry.getNonReadyUsage(),
|
|
91
|
-
t: telemetry.popTags(),
|
|
92
|
-
i: settings.integrations && settings.integrations.map(function (int) { return int.type; }),
|
|
93
|
-
uC: settings.userConsent ? USER_CONSENT_MAP[settings.userConsent] : 0,
|
|
94
|
-
fsT: flagSetsTotal,
|
|
95
|
-
fsI: flagSetsIgnored
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
exports.telemetryCacheConfigAdapter = telemetryCacheConfigAdapter;
|
|
101
|
-
/**
|
|
102
|
-
* Submitter that periodically posts telemetry data
|
|
103
|
-
*/
|
|
104
|
-
function telemetrySubmitterFactory(params) {
|
|
105
|
-
var telemetry = params.storage.telemetry, now = params.platform.now;
|
|
106
|
-
if (!telemetry || !now)
|
|
107
|
-
return; // No submitter created if telemetry cache is not defined
|
|
108
|
-
var settings = params.settings, _a = params.settings, log = _a.log, telemetryRefreshRate = _a.scheduler.telemetryRefreshRate, splitApi = params.splitApi, readiness = params.readiness, sdkReadinessManager = params.sdkReadinessManager;
|
|
109
|
-
var startTime = (0, timer_1.timer)(now);
|
|
110
|
-
var submitter = (0, submitter_1.firstPushWindowDecorator)((0, submitter_1.submitterFactory)(log, splitApi.postMetricsUsage, telemetry, telemetryRefreshRate, 'telemetry stats', undefined, 0, true), telemetryRefreshRate);
|
|
111
|
-
readiness.gate.once(constants_2.SDK_READY_FROM_CACHE, function () {
|
|
112
|
-
telemetry.recordTimeUntilReadyFromCache(startTime());
|
|
113
|
-
});
|
|
114
|
-
sdkReadinessManager.incInternalReadyCbCount();
|
|
115
|
-
readiness.gate.once(constants_2.SDK_READY, function () {
|
|
116
|
-
telemetry.recordTimeUntilReady(startTime());
|
|
117
|
-
// Post config data when the SDK is ready and if the telemetry submitter was started
|
|
118
|
-
if (submitter.isRunning()) {
|
|
119
|
-
var postMetricsConfigTask = (0, submitter_1.submitterFactory)(log, splitApi.postMetricsConfig, telemetryCacheConfigAdapter(telemetry, settings), 0, 'telemetry config', undefined, 0, true);
|
|
120
|
-
postMetricsConfigTask.execute();
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
return submitter;
|
|
124
|
-
}
|
|
125
|
-
exports.telemetrySubmitterFactory = telemetrySubmitterFactory;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uniqueKeysSubmitterFactory = void 0;
|
|
4
|
-
var constants_1 = require("../../logger/constants");
|
|
5
|
-
var submitter_1 = require("./submitter");
|
|
6
|
-
var DATA_NAME = 'unique keys';
|
|
7
|
-
var UNIQUE_KEYS_RATE = 900000; // 15 minutes
|
|
8
|
-
/**
|
|
9
|
-
* Submitter that periodically posts impression counts
|
|
10
|
-
*/
|
|
11
|
-
function uniqueKeysSubmitterFactory(params) {
|
|
12
|
-
var _a = params.settings, log = _a.log, key = _a.core.key, _b = params.splitApi, postUniqueKeysBulkCs = _b.postUniqueKeysBulkCs, postUniqueKeysBulkSs = _b.postUniqueKeysBulkSs, uniqueKeys = params.storage.uniqueKeys;
|
|
13
|
-
var isClientSide = key !== undefined;
|
|
14
|
-
var postUniqueKeysBulk = isClientSide ? postUniqueKeysBulkCs : postUniqueKeysBulkSs;
|
|
15
|
-
var syncTask = (0, submitter_1.submitterFactory)(log, postUniqueKeysBulk, uniqueKeys, UNIQUE_KEYS_RATE, DATA_NAME);
|
|
16
|
-
// register unique keys submitter to be executed when uniqueKeys cache is full
|
|
17
|
-
uniqueKeys.setOnFullQueueCb(function () {
|
|
18
|
-
if (syncTask.isRunning()) {
|
|
19
|
-
log.info(constants_1.SUBMITTERS_PUSH_FULL_QUEUE, [DATA_NAME]);
|
|
20
|
-
syncTask.execute();
|
|
21
|
-
}
|
|
22
|
-
// If submitter is stopped (e.g., user consent declined or unknown, or app state offline), we don't send the data.
|
|
23
|
-
// Data will be sent when submitter is resumed.
|
|
24
|
-
});
|
|
25
|
-
return syncTask;
|
|
26
|
-
}
|
|
27
|
-
exports.uniqueKeysSubmitterFactory = uniqueKeysSubmitterFactory;
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.syncManagerOnlineFactory = void 0;
|
|
4
|
-
var submitterManager_1 = require("./submitters/submitterManager");
|
|
5
|
-
var constants_1 = require("./streaming/constants");
|
|
6
|
-
var constants_2 = require("../logger/constants");
|
|
7
|
-
var consent_1 = require("../consent");
|
|
8
|
-
var constants_3 = require("../utils/constants");
|
|
9
|
-
var constants_4 = require("../readiness/constants");
|
|
10
|
-
var AbstractSplitsCacheSync_1 = require("../storages/AbstractSplitsCacheSync");
|
|
11
|
-
/**
|
|
12
|
-
* Online SyncManager factory.
|
|
13
|
-
* Can be used for server-side API, and client-side API with or without multiple clients.
|
|
14
|
-
*
|
|
15
|
-
* @param pollingManagerFactory - allows to specialize the SyncManager for server-side or client-side API by passing
|
|
16
|
-
* `pollingManagerSSFactory` or `pollingManagerCSFactory` respectively.
|
|
17
|
-
* @param pushManagerFactory - optional to build a SyncManager with or without streaming support
|
|
18
|
-
*/
|
|
19
|
-
function syncManagerOnlineFactory(pollingManagerFactory, pushManagerFactory) {
|
|
20
|
-
/**
|
|
21
|
-
* SyncManager factory for modular SDK
|
|
22
|
-
*/
|
|
23
|
-
return function (params) {
|
|
24
|
-
var settings = params.settings, _a = params.settings, log = _a.log, streamingEnabled = _a.streamingEnabled, syncEnabled = _a.sync.enabled, telemetryTracker = params.telemetryTracker, storage = params.storage, readiness = params.readiness;
|
|
25
|
-
/** Polling Manager */
|
|
26
|
-
var pollingManager = pollingManagerFactory && pollingManagerFactory(params);
|
|
27
|
-
/** Push Manager */
|
|
28
|
-
var pushManager = syncEnabled && streamingEnabled && pollingManager && pushManagerFactory ?
|
|
29
|
-
pushManagerFactory(params, pollingManager) :
|
|
30
|
-
undefined;
|
|
31
|
-
/** Submitter Manager */
|
|
32
|
-
// It is not inyected as push and polling managers, because at the moment it is required
|
|
33
|
-
var submitterManager = (0, submitterManager_1.submitterManagerFactory)(params);
|
|
34
|
-
/** Sync Manager logic */
|
|
35
|
-
function startPolling() {
|
|
36
|
-
if (pollingManager.isRunning()) {
|
|
37
|
-
log.info(constants_2.SYNC_CONTINUE_POLLING);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
log.info(constants_2.SYNC_START_POLLING);
|
|
41
|
-
pollingManager.start();
|
|
42
|
-
telemetryTracker.streamingEvent(constants_3.SYNC_MODE_UPDATE, constants_3.POLLING);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function stopPollingAndSyncAll() {
|
|
46
|
-
log.info(constants_2.SYNC_STOP_POLLING);
|
|
47
|
-
// if polling, stop
|
|
48
|
-
if (pollingManager.isRunning()) {
|
|
49
|
-
pollingManager.stop();
|
|
50
|
-
telemetryTracker.streamingEvent(constants_3.SYNC_MODE_UPDATE, constants_3.STREAMING);
|
|
51
|
-
}
|
|
52
|
-
// fetch splits and segments. There is no need to catch this promise (it is always resolved)
|
|
53
|
-
pollingManager.syncAll();
|
|
54
|
-
}
|
|
55
|
-
if (pushManager) {
|
|
56
|
-
pushManager.on(constants_1.PUSH_SUBSYSTEM_UP, stopPollingAndSyncAll);
|
|
57
|
-
pushManager.on(constants_1.PUSH_SUBSYSTEM_DOWN, startPolling);
|
|
58
|
-
}
|
|
59
|
-
var running = false; // flag that indicates whether the syncManager has been started (true) or stopped (false)
|
|
60
|
-
var startFirstTime = true; // flag to distinguish calling the `start` method for the first time, to support pausing and resuming the synchronization
|
|
61
|
-
return {
|
|
62
|
-
// Exposed for fine-grained control of synchronization.
|
|
63
|
-
// E.g.: user consent, app state changes (Page hide, Foreground/Background, Online/Offline).
|
|
64
|
-
pollingManager: pollingManager,
|
|
65
|
-
pushManager: pushManager,
|
|
66
|
-
submitterManager: submitterManager,
|
|
67
|
-
/**
|
|
68
|
-
* Method used to start the syncManager for the first time, or resume it after being stopped.
|
|
69
|
-
*/
|
|
70
|
-
start: function () {
|
|
71
|
-
running = true;
|
|
72
|
-
// @TODO once event, impression and telemetry storages support persistence, call when `validateCache` promise is resolved
|
|
73
|
-
submitterManager.start(!(0, consent_1.isConsentGranted)(settings));
|
|
74
|
-
return Promise.resolve(storage.validateCache ? storage.validateCache() : false).then(function (isCacheLoaded) {
|
|
75
|
-
if (!running)
|
|
76
|
-
return;
|
|
77
|
-
if (startFirstTime) {
|
|
78
|
-
// Emits SDK_READY_FROM_CACHE
|
|
79
|
-
if (isCacheLoaded)
|
|
80
|
-
readiness.splits.emit(constants_4.SDK_SPLITS_CACHE_LOADED);
|
|
81
|
-
}
|
|
82
|
-
// start syncing splits and segments
|
|
83
|
-
if (pollingManager) {
|
|
84
|
-
// If synchronization is disabled pushManager and pollingManager should not start
|
|
85
|
-
if (syncEnabled) {
|
|
86
|
-
if (pushManager) {
|
|
87
|
-
// Doesn't call `syncAll` when the syncManager is resuming
|
|
88
|
-
if (startFirstTime) {
|
|
89
|
-
pollingManager.syncAll();
|
|
90
|
-
}
|
|
91
|
-
pushManager.start();
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
pollingManager.start();
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
if (startFirstTime) {
|
|
99
|
-
pollingManager.syncAll();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
startFirstTime = false;
|
|
104
|
-
});
|
|
105
|
-
},
|
|
106
|
-
/**
|
|
107
|
-
* Method used to stop/pause the syncManager.
|
|
108
|
-
*/
|
|
109
|
-
stop: function () {
|
|
110
|
-
running = false;
|
|
111
|
-
// stop syncing
|
|
112
|
-
if (pushManager)
|
|
113
|
-
pushManager.stop();
|
|
114
|
-
if (pollingManager && pollingManager.isRunning())
|
|
115
|
-
pollingManager.stop();
|
|
116
|
-
// stop periodic data recording (events, impressions, telemetry).
|
|
117
|
-
submitterManager.stop();
|
|
118
|
-
},
|
|
119
|
-
isRunning: function () {
|
|
120
|
-
return running;
|
|
121
|
-
},
|
|
122
|
-
flush: function () {
|
|
123
|
-
return submitterManager.execute(!(0, consent_1.isConsentGranted)(settings));
|
|
124
|
-
},
|
|
125
|
-
// [Only used for client-side]
|
|
126
|
-
// If polling and push managers are defined (standalone mode), they implement the interfaces for client-side
|
|
127
|
-
shared: function (matchingKey, readinessManager, storage) {
|
|
128
|
-
if (!pollingManager)
|
|
129
|
-
return;
|
|
130
|
-
var mySegmentsSyncTask = pollingManager.add(matchingKey, readinessManager, storage);
|
|
131
|
-
if (syncEnabled && pushManager)
|
|
132
|
-
pushManager.add(matchingKey, mySegmentsSyncTask);
|
|
133
|
-
if (running) {
|
|
134
|
-
if (syncEnabled) {
|
|
135
|
-
if (pushManager) {
|
|
136
|
-
if (pollingManager.isRunning()) {
|
|
137
|
-
// if doing polling, we must start the periodic fetch of data
|
|
138
|
-
if ((0, AbstractSplitsCacheSync_1.usesSegmentsSync)(storage))
|
|
139
|
-
mySegmentsSyncTask.start();
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
// if not polling, we must execute the sync task for the initial fetch
|
|
143
|
-
// of segments since `syncAll` was already executed when starting the main client
|
|
144
|
-
mySegmentsSyncTask.execute();
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
if ((0, AbstractSplitsCacheSync_1.usesSegmentsSync)(storage))
|
|
149
|
-
mySegmentsSyncTask.start();
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
if (!readinessManager.isReady())
|
|
154
|
-
mySegmentsSyncTask.execute();
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return {
|
|
158
|
-
stop: function () {
|
|
159
|
-
// check in case `client.destroy()` has been invoked more than once for the same client
|
|
160
|
-
var mySegmentsSyncTask = pollingManager.get(matchingKey);
|
|
161
|
-
if (mySegmentsSyncTask) {
|
|
162
|
-
// stop syncing
|
|
163
|
-
if (pushManager)
|
|
164
|
-
pushManager.remove(matchingKey);
|
|
165
|
-
if (mySegmentsSyncTask.isRunning())
|
|
166
|
-
mySegmentsSyncTask.stop();
|
|
167
|
-
pollingManager.remove(matchingKey);
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
flush: function () { return Promise.resolve(); }
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
};
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
exports.syncManagerOnlineFactory = syncManagerOnlineFactory;
|
package/cjs/sync/syncTask.js
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.syncTaskFactory = void 0;
|
|
4
|
-
var constants_1 = require("../logger/constants");
|
|
5
|
-
/**
|
|
6
|
-
* Creates an object that handles the periodic execution of a given task via "start" and "stop" methods.
|
|
7
|
-
* The task can be also executed by calling the "execute" method. Multiple calls run sequentially to avoid race conditions (e.g., submitters executed on SDK destroy or full queue, while periodic execution is pending).
|
|
8
|
-
*
|
|
9
|
-
* @param log - Logger instance.
|
|
10
|
-
* @param task - Task to execute that returns a promise that NEVER REJECTS. Otherwise, periodic execution can result in Unhandled Promise Rejections.
|
|
11
|
-
* @param period - Period in milliseconds to execute the task.
|
|
12
|
-
* @param taskName - Optional task name for logging.
|
|
13
|
-
* @returns A sync task that wraps the given task.
|
|
14
|
-
*/
|
|
15
|
-
function syncTaskFactory(log, task, period, taskName) {
|
|
16
|
-
if (taskName === void 0) { taskName = 'task'; }
|
|
17
|
-
// Flag that indicates if the task is executing
|
|
18
|
-
var executing = 0;
|
|
19
|
-
// Promise chain to resolve tasks sequentially
|
|
20
|
-
var promiseChain;
|
|
21
|
-
// flag that indicates if the task periodic execution has been started/stopped.
|
|
22
|
-
var running = false;
|
|
23
|
-
// Auxiliar counter used to avoid race condition when calling `start` & `stop` intermittently
|
|
24
|
-
var runningId = 0;
|
|
25
|
-
// Params passed to `task` when called periodically
|
|
26
|
-
var runningArgs;
|
|
27
|
-
// Id of the periodic call timeout
|
|
28
|
-
var timeoutID;
|
|
29
|
-
function execute() {
|
|
30
|
-
var args = [];
|
|
31
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
32
|
-
args[_i] = arguments[_i];
|
|
33
|
-
}
|
|
34
|
-
executing++;
|
|
35
|
-
log.debug(constants_1.SYNC_TASK_EXECUTE, [taskName]);
|
|
36
|
-
// Update `promiseChain` with last promise, to run tasks serially
|
|
37
|
-
promiseChain = (promiseChain ? promiseChain.then(function () { return task.apply(void 0, args); }) : task.apply(void 0, args))
|
|
38
|
-
.then(function (result) {
|
|
39
|
-
executing--;
|
|
40
|
-
return result;
|
|
41
|
-
});
|
|
42
|
-
return promiseChain;
|
|
43
|
-
}
|
|
44
|
-
function periodicExecute(currentRunningId) {
|
|
45
|
-
return execute.apply(void 0, runningArgs).then(function (result) {
|
|
46
|
-
// Call `setTimeout` if periodic execution was started and `currentRunningId === runningId`
|
|
47
|
-
// to avoid a race condition when calling `start`, `stop` and `start` again
|
|
48
|
-
if (running && currentRunningId === runningId)
|
|
49
|
-
timeoutID = setTimeout(periodicExecute, period, currentRunningId);
|
|
50
|
-
return result;
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
return {
|
|
54
|
-
execute: execute,
|
|
55
|
-
isExecuting: function () {
|
|
56
|
-
return executing > 0;
|
|
57
|
-
},
|
|
58
|
-
start: function () {
|
|
59
|
-
var args = [];
|
|
60
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
61
|
-
args[_i] = arguments[_i];
|
|
62
|
-
}
|
|
63
|
-
if (!running) {
|
|
64
|
-
running = true;
|
|
65
|
-
runningId++;
|
|
66
|
-
runningArgs = args;
|
|
67
|
-
log.debug(constants_1.SYNC_TASK_START, [taskName, period]);
|
|
68
|
-
return periodicExecute(runningId);
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
stop: function () {
|
|
72
|
-
if (running) {
|
|
73
|
-
running = false;
|
|
74
|
-
log.debug(constants_1.SYNC_TASK_STOP, [taskName]);
|
|
75
|
-
clearTimeout(timeoutID);
|
|
76
|
-
timeoutID = undefined;
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
isRunning: function () {
|
|
80
|
-
return running;
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
exports.syncTaskFactory = syncTaskFactory;
|
package/cjs/sync/types.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.eventTrackerFactory = void 0;
|
|
4
|
-
var objectAssign_1 = require("../utils/lang/objectAssign");
|
|
5
|
-
var thenable_1 = require("../utils/promise/thenable");
|
|
6
|
-
var constants_1 = require("../logger/constants");
|
|
7
|
-
var constants_2 = require("../utils/constants");
|
|
8
|
-
var mode_1 = require("../utils/settingsValidation/mode");
|
|
9
|
-
/**
|
|
10
|
-
* Event tracker stores events in cache and pass them to the integrations manager if provided.
|
|
11
|
-
*
|
|
12
|
-
* @param eventsCache - cache to save events
|
|
13
|
-
* @param integrationsManager - optional event handler used for integrations
|
|
14
|
-
*/
|
|
15
|
-
function eventTrackerFactory(settings, eventsCache, whenInit, integrationsManager, telemetryCache) {
|
|
16
|
-
var log = settings.log, mode = settings.mode;
|
|
17
|
-
var isAsync = (0, mode_1.isConsumerMode)(mode);
|
|
18
|
-
function queueEventsCallback(eventData, tracked) {
|
|
19
|
-
var eventTypeId = eventData.eventTypeId, trafficTypeName = eventData.trafficTypeName, key = eventData.key, value = eventData.value, timestamp = eventData.timestamp, properties = eventData.properties;
|
|
20
|
-
// Logging every prop would be too much.
|
|
21
|
-
var msg = "event of type \"" + eventTypeId + "\" for traffic type \"" + trafficTypeName + "\". Key: " + key + ". Value: " + value + ". Timestamp: " + timestamp + ". " + (properties ? 'With properties.' : 'With no properties.');
|
|
22
|
-
if (tracked) {
|
|
23
|
-
log.info(constants_1.EVENTS_TRACKER_SUCCESS, [msg]);
|
|
24
|
-
if (integrationsManager) {
|
|
25
|
-
whenInit(function () {
|
|
26
|
-
// Wrap in a timeout because we don't want it to be blocking.
|
|
27
|
-
setTimeout(function () {
|
|
28
|
-
// copy of event, to avoid unexpected behavior if modified by integrations
|
|
29
|
-
var eventDataCopy = (0, objectAssign_1.objectAssign)({}, eventData);
|
|
30
|
-
if (properties)
|
|
31
|
-
eventDataCopy.properties = (0, objectAssign_1.objectAssign)({}, properties);
|
|
32
|
-
// integrationsManager does not throw errors (they are internally handled by each integration module)
|
|
33
|
-
integrationsManager.handleEvent(eventDataCopy);
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
log.error(constants_1.ERROR_EVENTS_TRACKER, [msg]);
|
|
40
|
-
}
|
|
41
|
-
return tracked;
|
|
42
|
-
}
|
|
43
|
-
return {
|
|
44
|
-
track: function (eventData, size) {
|
|
45
|
-
if (settings.userConsent === constants_2.CONSENT_DECLINED) {
|
|
46
|
-
return isAsync ? Promise.resolve(false) : false;
|
|
47
|
-
}
|
|
48
|
-
var tracked = eventsCache.track(eventData, size);
|
|
49
|
-
if ((0, thenable_1.thenable)(tracked)) {
|
|
50
|
-
return tracked.then(queueEventsCallback.bind(null, eventData));
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
// Record when eventsCache is sync only (standalone mode)
|
|
54
|
-
// @TODO we are not dropping events on full queue yet, so `tracked` is always true ATM
|
|
55
|
-
if (telemetryCache)
|
|
56
|
-
telemetryCache.recordEventStats(tracked ? constants_2.QUEUED : constants_2.DROPPED, 1);
|
|
57
|
-
return queueEventsCallback(eventData, tracked);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
exports.eventTrackerFactory = eventTrackerFactory;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ImpressionObserver = void 0;
|
|
4
|
-
var LRUCache_1 = require("../../utils/LRUCache");
|
|
5
|
-
var ImpressionObserver = /** @class */ (function () {
|
|
6
|
-
function ImpressionObserver(size, hasher) {
|
|
7
|
-
this.cache = new LRUCache_1.LRUCache(size);
|
|
8
|
-
this.hasher = hasher;
|
|
9
|
-
}
|
|
10
|
-
ImpressionObserver.prototype.testAndSet = function (impression) {
|
|
11
|
-
var hash = this.hasher(impression);
|
|
12
|
-
var previous = this.cache.get(hash);
|
|
13
|
-
this.cache.set(hash, impression.time);
|
|
14
|
-
return previous;
|
|
15
|
-
};
|
|
16
|
-
return ImpressionObserver;
|
|
17
|
-
}());
|
|
18
|
-
exports.ImpressionObserver = ImpressionObserver;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildKey = void 0;
|
|
4
|
-
function buildKey(impression) {
|
|
5
|
-
return impression.keyName + ":" + impression.feature + ":" + impression.treatment + ":" + impression.label + ":" + impression.changeNumber;
|
|
6
|
-
}
|
|
7
|
-
exports.buildKey = buildKey;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.impressionObserverCSFactory = exports.hashImpression32 = void 0;
|
|
4
|
-
var ImpressionObserver_1 = require("./ImpressionObserver");
|
|
5
|
-
var murmur3_1 = require("../../utils/murmur3/murmur3");
|
|
6
|
-
var buildKey_1 = require("./buildKey");
|
|
7
|
-
function hashImpression32(impression) {
|
|
8
|
-
return (0, murmur3_1.hash)((0, buildKey_1.buildKey)(impression));
|
|
9
|
-
}
|
|
10
|
-
exports.hashImpression32 = hashImpression32;
|
|
11
|
-
var LAST_SEEN_CACHE_SIZE = 500; // cache up to 500 impression hashes
|
|
12
|
-
function impressionObserverCSFactory() {
|
|
13
|
-
return new ImpressionObserver_1.ImpressionObserver(LAST_SEEN_CACHE_SIZE, hashImpression32);
|
|
14
|
-
}
|
|
15
|
-
exports.impressionObserverCSFactory = impressionObserverCSFactory;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.impressionObserverSSFactory = exports.hashImpression128 = void 0;
|
|
4
|
-
var ImpressionObserver_1 = require("./ImpressionObserver");
|
|
5
|
-
var murmur3_128_x86_1 = require("../../utils/murmur3/murmur3_128_x86");
|
|
6
|
-
var buildKey_1 = require("./buildKey");
|
|
7
|
-
function hashImpression128(impression) {
|
|
8
|
-
return (0, murmur3_128_x86_1.hash128)((0, buildKey_1.buildKey)(impression));
|
|
9
|
-
}
|
|
10
|
-
exports.hashImpression128 = hashImpression128;
|
|
11
|
-
var LAST_SEEN_CACHE_SIZE = 500000; // cache up to 500k impression hashes
|
|
12
|
-
function impressionObserverSSFactory() {
|
|
13
|
-
return new ImpressionObserver_1.ImpressionObserver(LAST_SEEN_CACHE_SIZE, hashImpression128);
|
|
14
|
-
}
|
|
15
|
-
exports.impressionObserverSSFactory = impressionObserverSSFactory;
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.impressionsTrackerFactory = void 0;
|
|
4
|
-
var objectAssign_1 = require("../utils/lang/objectAssign");
|
|
5
|
-
var thenable_1 = require("../utils/promise/thenable");
|
|
6
|
-
var constants_1 = require("../logger/constants");
|
|
7
|
-
var constants_2 = require("../utils/constants");
|
|
8
|
-
/**
|
|
9
|
-
* Impressions tracker stores impressions in cache and pass them to the listener and integrations manager if provided.
|
|
10
|
-
*/
|
|
11
|
-
function impressionsTrackerFactory(settings, impressionsCache, noneStrategy, strategy, whenInit, integrationsManager, telemetryCache) {
|
|
12
|
-
var log = settings.log, impressionListener = settings.impressionListener, _a = settings.runtime, ip = _a.ip, hostname = _a.hostname, version = settings.version;
|
|
13
|
-
return {
|
|
14
|
-
track: function (impressions, attributes) {
|
|
15
|
-
if (settings.userConsent === constants_2.CONSENT_DECLINED)
|
|
16
|
-
return;
|
|
17
|
-
var impressionsToStore = impressions.filter(function (_a) {
|
|
18
|
-
var imp = _a.imp, disabled = _a.disabled;
|
|
19
|
-
return disabled ?
|
|
20
|
-
noneStrategy.process(imp) :
|
|
21
|
-
strategy.process(imp);
|
|
22
|
-
});
|
|
23
|
-
var impressionsLength = impressions.length;
|
|
24
|
-
var impressionsToStoreLength = impressionsToStore.length;
|
|
25
|
-
if (impressionsToStoreLength) {
|
|
26
|
-
var res = impressionsCache.track(impressionsToStore.map(function (item) { return item.imp; }));
|
|
27
|
-
// If we're on an async storage, handle error and log it.
|
|
28
|
-
if ((0, thenable_1.thenable)(res)) {
|
|
29
|
-
res.then(function () {
|
|
30
|
-
log.info(constants_1.IMPRESSIONS_TRACKER_SUCCESS, [impressionsLength]);
|
|
31
|
-
}).catch(function (err) {
|
|
32
|
-
log.error(constants_1.ERROR_IMPRESSIONS_TRACKER, [impressionsLength, err]);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
// Record when impressionsCache is sync only (standalone mode)
|
|
37
|
-
// @TODO we are not dropping impressions on full queue yet, so DROPPED stats are not recorded
|
|
38
|
-
if (telemetryCache) {
|
|
39
|
-
telemetryCache.recordImpressionStats(constants_2.QUEUED, impressionsToStoreLength);
|
|
40
|
-
telemetryCache.recordImpressionStats(constants_2.DEDUPED, impressionsLength - impressionsToStoreLength);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
// @TODO next block might be handled by the integration manager. In that case, the metadata object doesn't need to be passed in the constructor
|
|
45
|
-
if (impressionListener || integrationsManager) {
|
|
46
|
-
var _loop_1 = function (i) {
|
|
47
|
-
var impressionData = {
|
|
48
|
-
// copy of impression, to avoid unexpected behavior if modified by integrations or impressionListener
|
|
49
|
-
impression: (0, objectAssign_1.objectAssign)({}, impressions[i].imp),
|
|
50
|
-
attributes: attributes,
|
|
51
|
-
ip: ip,
|
|
52
|
-
hostname: hostname,
|
|
53
|
-
sdkLanguageVersion: version
|
|
54
|
-
};
|
|
55
|
-
whenInit(function () {
|
|
56
|
-
// Wrap in a timeout because we don't want it to be blocking.
|
|
57
|
-
setTimeout(function () {
|
|
58
|
-
// integrationsManager.handleImpression does not throw errors
|
|
59
|
-
if (integrationsManager)
|
|
60
|
-
integrationsManager.handleImpression(impressionData);
|
|
61
|
-
try { // @ts-ignore. An exception on the listeners should not break the SDK.
|
|
62
|
-
if (impressionListener)
|
|
63
|
-
impressionListener.logImpression(impressionData);
|
|
64
|
-
}
|
|
65
|
-
catch (err) {
|
|
66
|
-
log.error(constants_1.ERROR_IMPRESSIONS_LISTENER, [err]);
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
};
|
|
71
|
-
for (var i = 0; i < impressionsLength; i++) {
|
|
72
|
-
_loop_1(i);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
exports.impressionsTrackerFactory = impressionsTrackerFactory;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.strategyDebugFactory = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Debug strategy for impressions tracker. Wraps impressions to store and adds previousTime if it corresponds
|
|
6
|
-
*
|
|
7
|
-
* @param impressionsObserver - impression observer. Previous time (pt property) is included in impression instances
|
|
8
|
-
* @returns Debug strategy
|
|
9
|
-
*/
|
|
10
|
-
function strategyDebugFactory(impressionsObserver) {
|
|
11
|
-
return {
|
|
12
|
-
process: function (impression) {
|
|
13
|
-
if (impression.properties)
|
|
14
|
-
return true;
|
|
15
|
-
impression.pt = impressionsObserver.testAndSet(impression);
|
|
16
|
-
return true;
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
exports.strategyDebugFactory = strategyDebugFactory;
|