@splitsoftware/splitio 10.17.3-rc.1 → 10.17.3-rc.4
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 +3 -0
- package/es/client/attributesDecoration.js +116 -0
- package/es/client/browser.js +39 -0
- package/es/client/client.js +155 -0
- package/es/client/inputValidation.js +117 -0
- package/es/client/node.js +6 -0
- package/es/{factory → client}/package.json +0 -0
- package/es/engine/combiners/and.js +54 -0
- package/es/engine/combiners/ifelseif.js +73 -0
- package/es/engine/condition/index.js +62 -0
- package/es/engine/convertions/index.js +29 -0
- package/es/engine/engine/index.js +60 -0
- package/es/engine/engine/legacy.js +77 -0
- package/es/engine/engine/murmur3/common.js +40 -0
- package/es/engine/engine/murmur3/murmur3.js +83 -0
- package/es/engine/engine/murmur3/murmur3_128.js +250 -0
- package/es/engine/engine/murmur3/murmur3_128_x86.js +183 -0
- package/es/engine/engine/murmur3/murmur3_64.js +52 -0
- package/es/engine/engine/murmur3/utfx.js +112 -0
- package/es/engine/evaluator/index.js +111 -0
- package/es/engine/index.js +112 -0
- package/es/engine/matchers/all.js +32 -0
- package/es/engine/matchers/between.js +35 -0
- package/es/engine/matchers/boolean.js +35 -0
- package/es/engine/matchers/cont_all.js +51 -0
- package/es/engine/matchers/cont_any.js +47 -0
- package/es/engine/matchers/cont_str.js +38 -0
- package/es/engine/matchers/dependency.js +50 -0
- package/es/engine/matchers/eq.js +35 -0
- package/es/engine/matchers/eq_set.js +49 -0
- package/es/engine/matchers/ew.js +38 -0
- package/es/engine/matchers/gte.js +35 -0
- package/es/engine/matchers/index.js +65 -0
- package/es/engine/matchers/lte.js +35 -0
- package/es/engine/matchers/part_of.js +49 -0
- package/es/engine/matchers/segment.js +39 -0
- package/es/engine/matchers/string.js +44 -0
- package/es/engine/matchers/sw.js +38 -0
- package/es/engine/matchers/types.js +48 -0
- package/es/engine/matchers/whitelist.js +36 -0
- package/es/engine/parser/index.js +69 -0
- package/es/engine/parser/segments.js +22 -0
- package/es/engine/transforms/matcherGroup.js +43 -0
- package/es/engine/transforms/matchers.js +109 -0
- package/es/engine/transforms/segment.js +28 -0
- package/es/engine/transforms/set.js +20 -0
- package/es/engine/transforms/unaryNumeric.js +20 -0
- package/es/engine/transforms/whitelist.js +22 -0
- package/es/engine/treatments/index.js +67 -0
- package/es/engine/value/index.js +54 -0
- package/es/engine/value/sanitize.js +125 -0
- package/es/events/index.js +65 -0
- package/es/factory/offline.js +50 -0
- package/es/factory/online.js +113 -0
- package/es/impressions/counter.js +52 -0
- package/es/impressions/hasher/buildKey.js +3 -0
- package/es/impressions/hasher/hashImpression128.js +5 -0
- package/es/impressions/hasher/hashImpression32.js +5 -0
- package/es/impressions/observer/browser.js +9 -0
- package/es/impressions/observer/node.js +9 -0
- package/es/impressions/observer/observer.js +21 -0
- package/es/{platform/getEventSource → impressions/observer}/package.json +0 -0
- package/es/index.js +132 -1
- package/es/integrations/browser.js +62 -0
- package/es/integrations/ga/GaToSplit.js +246 -0
- package/es/integrations/ga/SplitToGa.js +127 -0
- package/es/integrations/node.js +3 -0
- package/es/{platform/getFetch → integrations}/package.json +0 -0
- package/es/listeners/browser.js +157 -0
- package/es/listeners/node.js +65 -0
- package/es/{platform → listeners}/package.json +0 -0
- package/es/manager/index.js +104 -0
- package/es/metrics/Collectors.js +100 -0
- package/es/metrics/index.js +157 -0
- package/es/producer/browser/Partial.js +103 -0
- package/es/producer/browser.js +70 -0
- package/es/producer/fetcher/MySegments.js +47 -0
- package/es/producer/fetcher/SegmentChanges.js +52 -0
- package/es/producer/fetcher/SplitChanges.js +46 -0
- package/es/producer/node.js +130 -0
- package/es/producer/offline/browser.js +26 -0
- package/es/producer/offline/node.js +26 -0
- package/es/{settings → producer/offline}/package.json +0 -0
- package/{lib/factory → es/producer}/package.json +0 -0
- package/es/producer/task.js +50 -0
- package/es/producer/updater/MySegments.js +108 -0
- package/es/producer/updater/SegmentChanges.js +135 -0
- package/es/producer/updater/SplitChanges.js +131 -0
- package/es/producer/updater/SplitChangesFromFeatures.js +21 -0
- package/es/producer/updater/SplitChangesFromFileSystem.js +21 -0
- package/es/producer/updater/SplitChangesFromObject.js +73 -0
- package/es/readiness/index.js +123 -0
- package/es/readiness/statusManager.js +114 -0
- package/es/services/auth/auth.js +25 -0
- package/es/services/auth/index.js +2 -0
- package/es/services/events/bulk.js +22 -0
- package/es/services/events/index.js +17 -0
- package/{src/platform → es/services}/getEventSource/browser.js +2 -2
- package/es/{platform → services}/getEventSource/node.js +1 -1
- package/{lib/platform → es/services}/getEventSource/package.json +0 -0
- package/es/{platform → services}/getFetch/browser.js +1 -1
- package/es/{platform → services}/getFetch/node.js +1 -1
- package/{lib/platform → es/services}/getFetch/package.json +0 -0
- package/es/services/impressions/bulk.js +26 -0
- package/es/services/impressions/count.js +7 -0
- package/es/services/impressions/dto.js +73 -0
- package/es/services/impressions/index.js +17 -0
- package/es/services/impressions/post.js +22 -0
- package/es/services/metrics/counters.js +24 -0
- package/es/services/metrics/dto.js +38 -0
- package/es/services/metrics/index.js +17 -0
- package/es/services/metrics/times.js +24 -0
- package/es/services/mySegments/get.js +26 -0
- package/es/services/mySegments/index.js +17 -0
- package/es/services/request/index.js +43 -0
- package/es/services/request/options/browser.js +18 -0
- package/es/{platform → services}/request/options/node.js +2 -2
- package/{lib/platform → es/services/request/options}/package.json +0 -0
- package/es/services/segmentChanges/get.js +21 -0
- package/es/services/segmentChanges/index.js +17 -0
- package/es/services/splitChanges/get.js +19 -0
- package/es/services/splitChanges/index.js +17 -0
- package/es/services/splitChanges/offline/browser.js +63 -0
- package/es/services/splitChanges/offline/node.js +176 -0
- package/{lib/settings → es/services/splitChanges/offline}/package.json +0 -0
- package/es/services/splitChanges/offline/parseCondition.js +43 -0
- package/es/services/transport/index.js +51 -0
- package/es/storage/AttributesCache/InMemory.js +85 -0
- package/es/storage/BaseMetricsAsyncCache.js +23 -0
- package/es/storage/CountCache/InMemory.js +48 -0
- package/es/storage/CountCache/InRedis.js +42 -0
- package/es/storage/EventsCache/InMemory.js +109 -0
- package/es/storage/EventsCache/InRedis.js +65 -0
- package/es/storage/ImpressionsCache/InMemory.js +71 -0
- package/es/storage/ImpressionsCache/InRedis.js +73 -0
- package/es/storage/Keys.js +125 -0
- package/es/storage/KeysLocalStorage.js +58 -0
- package/es/storage/LatencyCache/InMemory.js +56 -0
- package/es/storage/LatencyCache/InRedis.js +44 -0
- package/es/storage/LatencyCache/findIndex.js +2 -0
- package/es/storage/Meta.js +7 -0
- package/es/storage/RedisAdapter.js +198 -0
- package/es/storage/SegmentCache/InLocalStorage/index.js +162 -0
- package/es/storage/SegmentCache/InMemory/browser.js +107 -0
- package/es/storage/SegmentCache/InMemory/node.js +82 -0
- package/{src/factory → es/storage/SegmentCache/InMemory}/package.json +0 -0
- package/es/storage/SegmentCache/InRedis/index.js +81 -0
- package/es/storage/SplitCache/InLocalStorage.js +332 -0
- package/es/storage/SplitCache/InMemory.js +162 -0
- package/es/storage/SplitCache/InRedis.js +214 -0
- package/es/storage/SplitCache/killLocally.js +35 -0
- package/es/storage/browser.js +101 -0
- package/es/storage/node.js +81 -0
- package/{src/platform/getEventSource → es/storage}/package.json +0 -0
- package/es/sync/AuthClient/index.js +34 -0
- package/es/sync/PushManager/index.js +315 -0
- package/es/sync/PushManager/mySegmentsV2utils.js +76 -0
- package/es/sync/PushManager/pushRequirements/browser.js +23 -0
- package/es/sync/PushManager/pushRequirements/node.js +18 -0
- package/{src/platform/getFetch → es/sync/PushManager/pushRequirements}/package.json +0 -0
- package/es/sync/SSEClient/index.js +93 -0
- package/es/sync/SSEHandler/NotificationKeeper.js +97 -0
- package/es/sync/SSEHandler/NotificationParser.js +31 -0
- package/es/sync/SSEHandler/index.js +110 -0
- package/es/sync/SegmentUpdateWorker/browser.js +74 -0
- package/es/sync/SegmentUpdateWorker/node.js +79 -0
- package/{src/platform → es/sync/SegmentUpdateWorker}/package.json +0 -0
- package/es/sync/SplitUpdateWorker/index.js +86 -0
- package/es/sync/browser.js +125 -0
- package/es/sync/constants.js +42 -0
- package/es/sync/node.js +60 -0
- package/{src/settings → es/sync}/package.json +0 -0
- package/es/trackers/event.js +53 -0
- package/es/trackers/impressions.js +132 -0
- package/es/umd.js +1 -2
- package/es/utils/backoff/index.js +51 -0
- package/es/utils/base64/browser.js +19 -0
- package/es/utils/base64/node.js +19 -0
- package/es/utils/base64/package.json +4 -0
- package/es/utils/binarySearch/index.js +50 -0
- package/es/utils/constants/index.js +38 -0
- package/es/utils/context/constants.js +30 -0
- package/es/utils/context/index.js +101 -0
- package/es/utils/decompress/index.js +476 -0
- package/es/utils/fn/repeat.js +58 -0
- package/es/utils/inputValidation/apiKey.js +39 -0
- package/es/utils/inputValidation/attribute.js +22 -0
- package/es/utils/inputValidation/attributes.js +19 -0
- package/es/utils/inputValidation/event.js +23 -0
- package/es/utils/inputValidation/eventProperties.js +69 -0
- package/es/utils/inputValidation/eventValue.js +9 -0
- package/es/utils/inputValidation/index.js +11 -0
- package/es/utils/inputValidation/isOperational.js +14 -0
- package/es/utils/inputValidation/key.js +50 -0
- package/es/utils/inputValidation/split.js +47 -0
- package/es/utils/inputValidation/splitFilters.js +121 -0
- package/es/utils/inputValidation/splits.js +27 -0
- package/es/utils/inputValidation/trafficType.js +55 -0
- package/es/utils/jwt/hashUserKey.js +11 -0
- package/es/utils/jwt/index.js +14 -0
- package/es/utils/key/factory.js +38 -0
- package/es/utils/key/parser.js +34 -0
- package/es/utils/labels/index.js +7 -0
- package/es/utils/lang/Errors.js +41 -0
- package/es/utils/lang/Sets.js +114 -0
- package/es/utils/lang/index.js +305 -0
- package/es/utils/localstorage/isAvailable.js +26 -0
- package/es/utils/logger/LoggerFactory.js +86 -0
- package/es/utils/logger/index.js +97 -0
- package/es/utils/lrucache/linkedlist.js +122 -0
- package/es/utils/lrucache/lru.spec.js +24 -0
- package/es/utils/lrucache/lrucache.js +80 -0
- package/es/utils/now/browser.js +27 -0
- package/es/utils/now/node.js +19 -0
- package/es/utils/now/package.json +4 -0
- package/es/utils/promise/thenable.js +3 -0
- package/es/utils/promise/timeout.js +34 -0
- package/es/utils/promise/wrapper.js +58 -0
- package/es/{settings → utils/settings}/defaults/browser.js +2 -5
- package/es/{settings → utils/settings}/defaults/node.js +2 -5
- package/es/utils/settings/defaults/package.json +4 -0
- package/es/utils/settings/impressionsMode.js +16 -0
- package/es/utils/settings/index.js +194 -0
- package/es/utils/settings/integrations/browser.js +8 -0
- package/es/utils/settings/integrations/common.js +30 -0
- package/es/utils/settings/integrations/node.js +7 -0
- package/es/utils/settings/integrations/package.json +4 -0
- package/es/utils/settings/language/browser.js +16 -0
- package/es/utils/settings/language/node.js +16 -0
- package/es/utils/settings/language/package.json +4 -0
- package/es/utils/settings/mode.js +10 -0
- package/es/utils/settings/runtime/browser.js +21 -0
- package/es/{settings → utils/settings}/runtime/node.js +4 -6
- package/es/utils/settings/runtime/package.json +4 -0
- package/es/{settings → utils/settings}/storage/browser.js +17 -16
- package/es/{settings → utils/settings}/storage/node.js +16 -25
- package/es/utils/settings/storage/package.json +4 -0
- package/es/utils/splits/usesSegments.js +21 -0
- package/es/utils/time/index.js +8 -0
- package/es/utils/timeTracker/index.js +216 -0
- package/es/utils/timeTracker/timer.js +25 -0
- package/lib/client/attributesDecoration.js +128 -0
- package/lib/client/browser.js +50 -0
- package/lib/client/client.js +174 -0
- package/lib/client/inputValidation.js +129 -0
- package/lib/client/node.js +14 -0
- package/lib/client/package.json +4 -0
- package/lib/engine/combiners/and.js +65 -0
- package/lib/engine/combiners/ifelseif.js +88 -0
- package/lib/engine/condition/index.js +76 -0
- package/lib/engine/convertions/index.js +36 -0
- package/lib/engine/engine/index.js +71 -0
- package/lib/engine/engine/legacy.js +83 -0
- package/lib/engine/engine/murmur3/common.js +52 -0
- package/lib/engine/engine/murmur3/murmur3.js +90 -0
- package/lib/engine/engine/murmur3/murmur3_128.js +256 -0
- package/lib/engine/engine/murmur3/murmur3_128_x86.js +189 -0
- package/lib/engine/engine/murmur3/murmur3_64.js +57 -0
- package/lib/engine/engine/murmur3/utfx.js +121 -0
- package/lib/engine/evaluator/index.js +129 -0
- package/lib/engine/index.js +128 -0
- package/lib/engine/matchers/all.js +41 -0
- package/lib/engine/matchers/between.js +44 -0
- package/lib/engine/matchers/boolean.js +44 -0
- package/lib/engine/matchers/cont_all.js +61 -0
- package/lib/engine/matchers/cont_any.js +57 -0
- package/lib/engine/matchers/cont_str.js +48 -0
- package/lib/engine/matchers/dependency.js +60 -0
- package/lib/engine/matchers/eq.js +44 -0
- package/lib/engine/matchers/eq_set.js +59 -0
- package/lib/engine/matchers/ew.js +48 -0
- package/lib/engine/matchers/gte.js +44 -0
- package/lib/engine/matchers/index.js +90 -0
- package/lib/engine/matchers/lte.js +44 -0
- package/lib/engine/matchers/part_of.js +59 -0
- package/lib/engine/matchers/segment.js +49 -0
- package/lib/engine/matchers/string.js +53 -0
- package/lib/engine/matchers/sw.js +48 -0
- package/lib/engine/matchers/types.js +57 -0
- package/lib/engine/matchers/whitelist.js +46 -0
- package/lib/engine/parser/index.js +84 -0
- package/lib/engine/parser/segments.js +28 -0
- package/lib/engine/transforms/matcherGroup.js +54 -0
- package/lib/engine/transforms/matchers.js +124 -0
- package/lib/engine/transforms/segment.js +34 -0
- package/lib/engine/transforms/set.js +26 -0
- package/lib/engine/transforms/unaryNumeric.js +26 -0
- package/lib/engine/transforms/whitelist.js +28 -0
- package/lib/engine/treatments/index.js +73 -0
- package/lib/engine/value/index.js +64 -0
- package/lib/engine/value/sanitize.js +137 -0
- package/lib/events/index.js +80 -0
- package/lib/factory/offline.js +62 -0
- package/lib/factory/online.js +129 -0
- package/lib/impressions/counter.js +61 -0
- package/lib/impressions/hasher/buildKey.js +8 -0
- package/lib/impressions/hasher/hashImpression128.js +12 -0
- package/lib/impressions/hasher/hashImpression32.js +14 -0
- package/lib/impressions/observer/browser.js +19 -0
- package/lib/impressions/observer/node.js +19 -0
- package/lib/impressions/observer/observer.js +29 -0
- package/lib/impressions/observer/package.json +4 -0
- package/lib/index.js +151 -3
- package/lib/integrations/browser.js +72 -0
- package/lib/integrations/ga/GaToSplit.js +267 -0
- package/lib/integrations/ga/SplitToGa.js +138 -0
- package/lib/integrations/node.js +9 -0
- package/lib/integrations/package.json +4 -0
- package/lib/listeners/browser.js +173 -0
- package/lib/listeners/node.js +74 -0
- package/lib/listeners/package.json +4 -0
- package/lib/manager/index.js +115 -0
- package/lib/metrics/Collectors.js +118 -0
- package/lib/metrics/index.js +182 -0
- package/lib/producer/browser/Partial.js +114 -0
- package/lib/producer/browser.js +82 -0
- package/lib/producer/fetcher/MySegments.js +59 -0
- package/lib/producer/fetcher/SegmentChanges.js +62 -0
- package/lib/producer/fetcher/SplitChanges.js +58 -0
- package/lib/producer/node.js +142 -0
- package/lib/producer/offline/browser.js +35 -0
- package/lib/producer/offline/node.js +35 -0
- package/lib/producer/offline/package.json +4 -0
- package/lib/producer/package.json +4 -0
- package/lib/producer/task.js +61 -0
- package/lib/producer/updater/MySegments.js +119 -0
- package/lib/producer/updater/SegmentChanges.js +148 -0
- package/lib/producer/updater/SplitChanges.js +145 -0
- package/lib/producer/updater/SplitChangesFromFeatures.js +30 -0
- package/lib/producer/updater/SplitChangesFromFileSystem.js +30 -0
- package/lib/producer/updater/SplitChangesFromObject.js +84 -0
- package/lib/readiness/index.js +132 -0
- package/lib/readiness/statusManager.js +124 -0
- package/lib/services/auth/auth.js +32 -0
- package/lib/services/auth/index.js +11 -0
- package/lib/services/events/bulk.js +31 -0
- package/lib/services/events/index.js +26 -0
- package/lib/{platform → services}/getEventSource/browser.js +1 -1
- package/lib/{platform → services}/getEventSource/node.js +1 -1
- package/lib/services/getEventSource/package.json +4 -0
- package/lib/{platform → services}/getFetch/browser.js +1 -1
- package/lib/{platform → services}/getFetch/node.js +1 -1
- package/lib/services/getFetch/package.json +4 -0
- package/lib/services/impressions/bulk.js +36 -0
- package/lib/services/impressions/count.js +16 -0
- package/lib/services/impressions/dto.js +81 -0
- package/lib/services/impressions/index.js +26 -0
- package/lib/services/impressions/post.js +31 -0
- package/lib/services/metrics/counters.js +33 -0
- package/lib/services/metrics/dto.js +46 -0
- package/lib/services/metrics/index.js +26 -0
- package/lib/services/metrics/times.js +33 -0
- package/lib/services/mySegments/get.js +35 -0
- package/lib/services/mySegments/index.js +26 -0
- package/lib/services/request/index.js +53 -0
- package/lib/services/request/options/browser.js +23 -0
- package/lib/{platform → services}/request/options/node.js +2 -2
- package/lib/services/request/options/package.json +4 -0
- package/lib/services/segmentChanges/get.js +29 -0
- package/lib/services/segmentChanges/index.js +26 -0
- package/lib/services/splitChanges/get.js +27 -0
- package/lib/services/splitChanges/index.js +26 -0
- package/lib/services/splitChanges/offline/browser.js +71 -0
- package/lib/services/splitChanges/offline/node.js +189 -0
- package/lib/services/splitChanges/offline/package.json +4 -0
- package/lib/services/splitChanges/offline/parseCondition.js +49 -0
- package/lib/services/transport/index.js +62 -0
- package/lib/storage/AttributesCache/InMemory.js +93 -0
- package/lib/storage/BaseMetricsAsyncCache.js +28 -0
- package/lib/storage/CountCache/InMemory.js +54 -0
- package/lib/storage/CountCache/InRedis.js +50 -0
- package/lib/storage/EventsCache/InMemory.js +118 -0
- package/lib/storage/EventsCache/InRedis.js +74 -0
- package/lib/storage/ImpressionsCache/InMemory.js +77 -0
- package/lib/storage/ImpressionsCache/InRedis.js +79 -0
- package/lib/storage/Keys.js +132 -0
- package/lib/storage/KeysLocalStorage.js +69 -0
- package/lib/storage/LatencyCache/InMemory.js +64 -0
- package/lib/storage/LatencyCache/InRedis.js +53 -0
- package/lib/storage/LatencyCache/findIndex.js +12 -0
- package/lib/storage/Meta.js +12 -0
- package/lib/storage/RedisAdapter.js +212 -0
- package/lib/storage/SegmentCache/InLocalStorage/index.js +171 -0
- package/lib/storage/SegmentCache/InMemory/browser.js +113 -0
- package/lib/storage/SegmentCache/InMemory/node.js +89 -0
- package/lib/storage/SegmentCache/InMemory/package.json +4 -0
- package/lib/storage/SegmentCache/InRedis/index.js +87 -0
- package/lib/storage/SplitCache/InLocalStorage.js +344 -0
- package/lib/storage/SplitCache/InMemory.js +172 -0
- package/lib/storage/SplitCache/InRedis.js +224 -0
- package/lib/storage/SplitCache/killLocally.js +42 -0
- package/lib/storage/browser.js +122 -0
- package/lib/storage/node.js +104 -0
- package/lib/storage/package.json +4 -0
- package/lib/sync/AuthClient/index.js +44 -0
- package/lib/sync/PushManager/index.js +340 -0
- package/lib/sync/PushManager/mySegmentsV2utils.js +87 -0
- package/lib/sync/PushManager/pushRequirements/browser.js +30 -0
- package/lib/sync/PushManager/pushRequirements/node.js +25 -0
- package/lib/sync/PushManager/pushRequirements/package.json +4 -0
- package/lib/sync/SSEClient/index.js +101 -0
- package/lib/sync/SSEHandler/NotificationKeeper.js +104 -0
- package/lib/sync/SSEHandler/NotificationParser.js +39 -0
- package/lib/sync/SSEHandler/index.js +121 -0
- package/lib/sync/SegmentUpdateWorker/browser.js +81 -0
- package/lib/sync/SegmentUpdateWorker/node.js +86 -0
- package/lib/sync/SegmentUpdateWorker/package.json +4 -0
- package/lib/sync/SplitUpdateWorker/index.js +93 -0
- package/lib/sync/browser.js +139 -0
- package/lib/sync/constants.js +59 -0
- package/lib/sync/node.js +71 -0
- package/lib/sync/package.json +4 -0
- package/lib/trackers/event.js +64 -0
- package/lib/trackers/impressions.js +146 -0
- package/lib/umd.js +0 -1
- package/lib/utils/backoff/index.js +57 -0
- package/lib/utils/base64/browser.js +26 -0
- package/lib/utils/base64/node.js +26 -0
- package/lib/utils/base64/package.json +4 -0
- package/lib/utils/binarySearch/index.js +56 -0
- package/lib/utils/constants/index.js +60 -0
- package/lib/utils/context/constants.js +49 -0
- package/lib/utils/context/index.js +111 -0
- package/lib/utils/decompress/index.js +483 -0
- package/lib/utils/fn/repeat.js +64 -0
- package/lib/utils/inputValidation/apiKey.js +51 -0
- package/lib/utils/inputValidation/attribute.js +32 -0
- package/lib/utils/inputValidation/attributes.js +32 -0
- package/lib/utils/inputValidation/event.js +33 -0
- package/lib/utils/inputValidation/eventProperties.js +78 -0
- package/lib/utils/inputValidation/eventValue.js +19 -0
- package/lib/utils/inputValidation/index.js +48 -0
- package/lib/utils/inputValidation/isOperational.js +25 -0
- package/lib/utils/inputValidation/key.js +59 -0
- package/lib/utils/inputValidation/split.js +60 -0
- package/lib/utils/inputValidation/splitFilters.js +134 -0
- package/lib/utils/inputValidation/splits.js +38 -0
- package/lib/utils/inputValidation/trafficType.js +68 -0
- package/lib/utils/jwt/hashUserKey.js +19 -0
- package/lib/utils/jwt/index.js +19 -0
- package/lib/utils/key/factory.js +46 -0
- package/lib/utils/key/parser.js +42 -0
- package/lib/utils/labels/index.js +18 -0
- package/lib/utils/lang/Errors.js +58 -0
- package/lib/utils/lang/Sets.js +127 -0
- package/lib/utils/lang/index.js +350 -0
- package/lib/utils/localstorage/isAvailable.js +31 -0
- package/lib/utils/logger/LoggerFactory.js +98 -0
- package/lib/utils/logger/index.js +109 -0
- package/lib/utils/lrucache/linkedlist.js +132 -0
- package/lib/utils/lrucache/lru.spec.js +30 -0
- package/lib/utils/lrucache/lrucache.js +88 -0
- package/lib/utils/now/browser.js +33 -0
- package/lib/utils/now/node.js +24 -0
- package/lib/utils/now/package.json +4 -0
- package/lib/utils/promise/thenable.js +10 -0
- package/lib/utils/promise/timeout.js +40 -0
- package/lib/utils/promise/wrapper.js +63 -0
- package/{src → lib/utils}/settings/defaults/browser.js +6 -6
- package/{src → lib/utils}/settings/defaults/node.js +6 -6
- package/lib/utils/settings/defaults/package.json +4 -0
- package/lib/utils/settings/impressionsMode.js +26 -0
- package/lib/utils/settings/index.js +214 -0
- package/lib/utils/settings/integrations/browser.js +17 -0
- package/lib/utils/settings/integrations/common.js +40 -0
- package/lib/utils/settings/integrations/node.js +13 -0
- package/lib/utils/settings/integrations/package.json +4 -0
- package/lib/utils/settings/language/browser.js +22 -0
- package/lib/utils/settings/language/node.js +22 -0
- package/lib/utils/settings/language/package.json +4 -0
- package/lib/utils/settings/mode.js +16 -0
- package/lib/utils/settings/runtime/browser.js +26 -0
- package/lib/{settings → utils/settings}/runtime/node.js +5 -7
- package/lib/utils/settings/runtime/package.json +4 -0
- package/lib/{settings → utils/settings}/storage/browser.js +24 -20
- package/lib/{settings → utils/settings}/storage/node.js +17 -26
- package/lib/utils/settings/storage/package.json +4 -0
- package/lib/utils/splits/usesSegments.js +27 -0
- package/lib/utils/time/index.js +12 -0
- package/lib/utils/timeTracker/index.js +213 -0
- package/lib/utils/timeTracker/timer.js +33 -0
- package/package.json +15 -19
- package/src/client/attributesDecoration.js +112 -0
- package/src/client/browser.js +41 -0
- package/src/client/client.js +131 -0
- package/src/client/inputValidation.js +130 -0
- package/src/client/node.js +8 -0
- package/src/client/package.json +4 -0
- package/src/engine/combiners/and.js +55 -0
- package/src/engine/combiners/ifelseif.js +74 -0
- package/src/engine/condition/index.js +65 -0
- package/src/engine/convertions/index.js +22 -0
- package/src/engine/engine/index.js +63 -0
- package/src/engine/engine/legacy.js +66 -0
- package/src/engine/engine/murmur3/common.js +54 -0
- package/src/engine/engine/murmur3/murmur3.js +79 -0
- package/src/engine/engine/murmur3/murmur3_128.js +273 -0
- package/src/engine/engine/murmur3/murmur3_128_x86.js +188 -0
- package/src/engine/engine/murmur3/murmur3_64.js +34 -0
- package/src/engine/engine/murmur3/utfx.js +111 -0
- package/src/engine/evaluator/index.js +148 -0
- package/src/engine/index.js +123 -0
- package/src/engine/matchers/all.js +29 -0
- package/src/engine/matchers/between.js +30 -0
- package/src/engine/matchers/boolean.js +29 -0
- package/src/engine/matchers/cont_all.js +40 -0
- package/src/engine/matchers/cont_any.js +35 -0
- package/src/engine/matchers/cont_str.js +31 -0
- package/src/engine/matchers/dependency.js +52 -0
- package/src/engine/matchers/eq.js +30 -0
- package/src/engine/matchers/eq_set.js +37 -0
- package/src/engine/matchers/ew.js +31 -0
- package/src/engine/matchers/gte.js +30 -0
- package/src/engine/matchers/index.js +71 -0
- package/src/engine/matchers/lte.js +30 -0
- package/src/engine/matchers/part_of.js +37 -0
- package/src/engine/matchers/segment.js +41 -0
- package/src/engine/matchers/string.js +39 -0
- package/src/engine/matchers/sw.js +31 -0
- package/src/engine/matchers/types.js +52 -0
- package/src/engine/matchers/whitelist.js +30 -0
- package/src/engine/parser/index.js +79 -0
- package/src/engine/parser/segments.js +31 -0
- package/src/engine/transforms/matcherGroup.js +45 -0
- package/src/engine/transforms/matchers.js +118 -0
- package/src/engine/transforms/segment.js +23 -0
- package/src/engine/transforms/set.js +20 -0
- package/src/engine/transforms/unaryNumeric.js +20 -0
- package/src/engine/transforms/whitelist.js +22 -0
- package/src/engine/treatments/index.js +67 -0
- package/src/engine/value/index.js +53 -0
- package/src/engine/value/sanitize.js +117 -0
- package/src/events/index.js +62 -0
- package/src/factory/offline.js +60 -0
- package/src/factory/online.js +127 -0
- package/src/impressions/counter.js +43 -0
- package/src/impressions/hasher/buildKey.js +3 -0
- package/src/impressions/hasher/hashImpression128.js +6 -0
- package/src/impressions/hasher/hashImpression32.js +6 -0
- package/src/impressions/observer/browser.js +8 -0
- package/src/impressions/observer/node.js +8 -0
- package/src/impressions/observer/observer.js +17 -0
- package/src/impressions/observer/package.json +4 -0
- package/src/index.js +140 -1
- package/src/integrations/browser.js +57 -0
- package/src/integrations/ga/GaToSplit.js +278 -0
- package/src/integrations/ga/SplitToGa.js +125 -0
- package/src/integrations/node.js +4 -0
- package/src/integrations/package.json +4 -0
- package/src/listeners/browser.js +137 -0
- package/src/listeners/node.js +59 -0
- package/src/listeners/package.json +4 -0
- package/src/manager/index.js +103 -0
- package/src/metrics/Collectors.js +77 -0
- package/src/metrics/index.js +174 -0
- package/src/producer/browser/Partial.js +104 -0
- package/src/producer/browser.js +82 -0
- package/src/producer/fetcher/MySegments.js +40 -0
- package/src/producer/fetcher/SegmentChanges.js +52 -0
- package/src/producer/fetcher/SplitChanges.js +39 -0
- package/src/producer/node.js +142 -0
- package/src/producer/offline/browser.js +28 -0
- package/src/producer/offline/node.js +28 -0
- package/src/producer/offline/package.json +4 -0
- package/src/producer/package.json +4 -0
- package/src/producer/task.js +57 -0
- package/src/producer/updater/MySegments.js +104 -0
- package/src/producer/updater/SegmentChanges.js +126 -0
- package/src/producer/updater/SplitChanges.js +138 -0
- package/src/producer/updater/SplitChangesFromFeatures.js +23 -0
- package/src/producer/updater/SplitChangesFromFileSystem.js +23 -0
- package/src/producer/updater/SplitChangesFromObject.js +81 -0
- package/src/readiness/index.js +125 -0
- package/src/readiness/statusManager.js +121 -0
- package/src/services/auth/auth.js +21 -0
- package/src/services/auth/index.js +3 -0
- package/src/services/events/bulk.js +23 -0
- package/src/services/events/index.js +18 -0
- package/{es/platform → src/services}/getEventSource/browser.js +1 -1
- package/src/{platform → services}/getEventSource/node.js +2 -2
- package/src/services/getEventSource/package.json +4 -0
- package/src/{platform → services}/getFetch/browser.js +2 -2
- package/src/{platform → services}/getFetch/node.js +1 -1
- package/src/services/getFetch/package.json +4 -0
- package/src/services/impressions/bulk.js +26 -0
- package/src/services/impressions/count.js +8 -0
- package/src/services/impressions/dto.js +71 -0
- package/src/services/impressions/index.js +18 -0
- package/src/services/impressions/post.js +23 -0
- package/src/services/metrics/counters.js +25 -0
- package/src/services/metrics/dto.js +44 -0
- package/src/services/metrics/index.js +18 -0
- package/src/services/metrics/times.js +25 -0
- package/src/services/mySegments/get.js +27 -0
- package/src/services/mySegments/index.js +18 -0
- package/src/services/request/index.js +43 -0
- package/src/services/request/options/browser.js +18 -0
- package/src/{platform → services}/request/options/node.js +2 -2
- package/src/services/request/options/package.json +4 -0
- package/src/services/segmentChanges/get.js +20 -0
- package/src/services/segmentChanges/index.js +18 -0
- package/src/services/splitChanges/get.js +20 -0
- package/src/services/splitChanges/index.js +18 -0
- package/src/services/splitChanges/offline/browser.js +66 -0
- package/src/services/splitChanges/offline/node.js +190 -0
- package/src/services/splitChanges/offline/package.json +4 -0
- package/src/services/splitChanges/offline/parseCondition.js +52 -0
- package/src/services/transport/index.js +44 -0
- package/src/storage/AttributesCache/InMemory.js +76 -0
- package/src/storage/BaseMetricsAsyncCache.js +14 -0
- package/src/storage/CountCache/InMemory.js +48 -0
- package/src/storage/CountCache/InRedis.js +32 -0
- package/src/storage/EventsCache/InMemory.js +99 -0
- package/src/storage/EventsCache/InRedis.js +62 -0
- package/src/storage/ImpressionsCache/InMemory.js +62 -0
- package/src/storage/ImpressionsCache/InRedis.js +65 -0
- package/src/storage/Keys.js +122 -0
- package/src/storage/KeysLocalStorage.js +52 -0
- package/src/storage/LatencyCache/InMemory.js +56 -0
- package/src/storage/LatencyCache/InRedis.js +35 -0
- package/src/storage/LatencyCache/findIndex.js +7 -0
- package/src/storage/Meta.js +7 -0
- package/src/storage/RedisAdapter.js +170 -0
- package/src/storage/SegmentCache/InLocalStorage/index.js +140 -0
- package/src/storage/SegmentCache/InMemory/browser.js +99 -0
- package/src/storage/SegmentCache/InMemory/node.js +84 -0
- package/src/storage/SegmentCache/InMemory/package.json +4 -0
- package/src/storage/SegmentCache/InRedis/index.js +71 -0
- package/src/storage/SplitCache/InLocalStorage.js +324 -0
- package/src/storage/SplitCache/InMemory.js +145 -0
- package/src/storage/SplitCache/InRedis.js +187 -0
- package/src/storage/SplitCache/killLocally.js +33 -0
- package/src/storage/browser.js +110 -0
- package/src/storage/node.js +83 -0
- package/src/storage/package.json +4 -0
- package/src/sync/AuthClient/index.js +31 -0
- package/src/sync/PushManager/index.js +328 -0
- package/src/sync/PushManager/mySegmentsV2utils.js +76 -0
- package/src/sync/PushManager/pushRequirements/browser.js +20 -0
- package/src/sync/PushManager/pushRequirements/node.js +16 -0
- package/src/sync/PushManager/pushRequirements/package.json +4 -0
- package/src/sync/SSEClient/index.js +92 -0
- package/src/sync/SSEHandler/NotificationKeeper.js +90 -0
- package/src/sync/SSEHandler/NotificationParser.js +35 -0
- package/src/sync/SSEHandler/index.js +110 -0
- package/src/sync/SegmentUpdateWorker/browser.js +67 -0
- package/src/sync/SegmentUpdateWorker/node.js +73 -0
- package/src/sync/SegmentUpdateWorker/package.json +4 -0
- package/src/sync/SplitUpdateWorker/index.js +79 -0
- package/src/sync/browser.js +130 -0
- package/src/sync/constants.js +43 -0
- package/src/sync/node.js +66 -0
- package/src/sync/package.json +4 -0
- package/src/trackers/event.js +47 -0
- package/src/trackers/impressions.js +123 -0
- package/src/umd.js +0 -1
- package/src/utils/backoff/index.js +46 -0
- package/src/utils/base64/browser.js +19 -0
- package/src/utils/base64/node.js +19 -0
- package/src/utils/base64/package.json +4 -0
- package/src/utils/binarySearch/index.js +50 -0
- package/src/utils/constants/index.js +41 -0
- package/src/utils/context/constants.js +18 -0
- package/src/utils/context/index.js +84 -0
- package/src/utils/decompress/index.js +428 -0
- package/src/utils/fn/repeat.js +48 -0
- package/src/utils/inputValidation/apiKey.js +42 -0
- package/src/utils/inputValidation/attribute.js +22 -0
- package/src/utils/inputValidation/attributes.js +26 -0
- package/src/utils/inputValidation/event.js +23 -0
- package/src/utils/inputValidation/eventProperties.js +65 -0
- package/src/utils/inputValidation/eventValue.js +11 -0
- package/src/utils/inputValidation/index.js +11 -0
- package/src/utils/inputValidation/isOperational.js +16 -0
- package/src/utils/inputValidation/key.js +53 -0
- package/src/utils/inputValidation/split.js +42 -0
- package/src/utils/inputValidation/splitFilters.js +108 -0
- package/src/utils/inputValidation/splits.js +21 -0
- package/src/utils/inputValidation/trafficType.js +58 -0
- package/src/utils/jwt/hashUserKey.js +11 -0
- package/src/utils/jwt/index.js +15 -0
- package/src/utils/key/factory.js +34 -0
- package/src/utils/key/parser.js +34 -0
- package/src/utils/labels/index.js +7 -0
- package/src/utils/lang/Errors.js +19 -0
- package/src/utils/lang/Sets.js +94 -0
- package/src/utils/lang/index.js +291 -0
- package/src/utils/localstorage/isAvailable.js +26 -0
- package/src/utils/logger/LoggerFactory.js +90 -0
- package/src/utils/logger/index.js +93 -0
- package/src/utils/lrucache/linkedlist.js +116 -0
- package/src/utils/lrucache/lru.spec.js +26 -0
- package/src/utils/lrucache/lrucache.js +49 -0
- package/src/utils/now/browser.js +29 -0
- package/src/utils/now/node.js +21 -0
- package/src/utils/now/package.json +4 -0
- package/src/utils/promise/thenable.js +1 -0
- package/src/utils/promise/timeout.js +38 -0
- package/src/utils/promise/wrapper.js +60 -0
- package/{lib → src/utils}/settings/defaults/browser.js +3 -13
- package/{lib → src/utils}/settings/defaults/node.js +2 -12
- package/src/utils/settings/defaults/package.json +4 -0
- package/src/utils/settings/impressionsMode.js +15 -0
- package/src/utils/settings/index.js +217 -0
- package/src/utils/settings/integrations/browser.js +8 -0
- package/src/utils/settings/integrations/common.js +32 -0
- package/src/{settings → utils/settings}/integrations/node.js +3 -1
- package/src/utils/settings/integrations/package.json +4 -0
- package/src/utils/settings/language/browser.js +17 -0
- package/src/utils/settings/language/node.js +17 -0
- package/src/utils/settings/language/package.json +4 -0
- package/src/utils/settings/mode.js +12 -0
- package/src/utils/settings/runtime/browser.js +22 -0
- package/src/{settings → utils/settings}/runtime/node.js +6 -9
- package/src/utils/settings/runtime/package.json +4 -0
- package/src/{settings → utils/settings}/storage/browser.js +18 -13
- package/src/{settings → utils/settings}/storage/node.js +14 -19
- package/src/utils/settings/storage/package.json +4 -0
- package/src/utils/splits/usesSegments.js +17 -0
- package/src/utils/time/index.js +8 -0
- package/src/utils/timeTracker/index.js +223 -0
- package/src/utils/timeTracker/timer.js +27 -0
- package/types/splitio.d.ts +5 -22
- package/client/package.json +0 -5
- package/es/factory/browser.js +0 -58
- package/es/factory/node.js +0 -59
- package/es/platform/EventEmitter.js +0 -412
- package/es/platform/browser.js +0 -10
- package/es/platform/node.js +0 -12
- package/es/settings/browser.js +0 -18
- package/es/settings/defaults/version.js +0 -1
- package/es/settings/integrations/browser.js +0 -5
- package/es/settings/integrations/node.js +0 -5
- package/es/settings/node.js +0 -20
- package/lib/factory/browser.js +0 -79
- package/lib/factory/node.js +0 -78
- package/lib/platform/EventEmitter.js +0 -417
- package/lib/platform/browser.js +0 -21
- package/lib/platform/node.js +0 -26
- package/lib/settings/browser.js +0 -30
- package/lib/settings/defaults/version.js +0 -6
- package/lib/settings/integrations/browser.js +0 -14
- package/lib/settings/integrations/node.js +0 -12
- package/lib/settings/node.js +0 -33
- package/server/package.json +0 -5
- package/src/.DS_Store +0 -0
- package/src/factory/browser.js +0 -74
- package/src/factory/node.js +0 -71
- package/src/platform/.DS_Store +0 -0
- package/src/platform/EventEmitter.js +0 -443
- package/src/platform/browser.js +0 -12
- package/src/platform/node.js +0 -14
- package/src/settings/.DS_Store +0 -0
- package/src/settings/browser.js +0 -18
- package/src/settings/defaults/version.js +0 -1
- package/src/settings/integrations/browser.js +0 -6
- package/src/settings/node.js +0 -20
- package/types/client/index.d.ts +0 -14
- package/types/server/index.d.ts +0 -20
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Set implementation based on es6-set polyfill (https://github.com/medikoo/es6-set/blob/master/polyfill.js),
|
|
5
|
+
* with the minimal features used by the SDK.
|
|
6
|
+
|
|
7
|
+
Copyright (C) 2013 Mariusz Nowak (www.medikoo.com)
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in
|
|
17
|
+
all copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
25
|
+
THE SOFTWARE.
|
|
26
|
+
**/
|
|
27
|
+
export var SetPoly = /*#__PURE__*/function () {
|
|
28
|
+
// unlike ES6 `Set`, it only accepts an array as first argument iterable
|
|
29
|
+
function SetPoly()
|
|
30
|
+
/*arrayIterable*/
|
|
31
|
+
{
|
|
32
|
+
var _this = this;
|
|
33
|
+
|
|
34
|
+
this.__setData__ = [];
|
|
35
|
+
var arrayIterable = arguments[0];
|
|
36
|
+
if (Array.isArray(arrayIterable)) arrayIterable.forEach(function (value) {
|
|
37
|
+
_this.add(value);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
var _proto = SetPoly.prototype;
|
|
42
|
+
|
|
43
|
+
_proto.clear = function clear() {
|
|
44
|
+
if (!this.__setData__.length) return;
|
|
45
|
+
this.__setData__.length = 0;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
_proto.add = function add(value) {
|
|
49
|
+
if (this.has(value)) return this;
|
|
50
|
+
|
|
51
|
+
this.__setData__.push(value);
|
|
52
|
+
|
|
53
|
+
return this;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
_proto.delete = function _delete(value) {
|
|
57
|
+
var index = this.__setData__.indexOf(value);
|
|
58
|
+
|
|
59
|
+
if (index === -1) return false;
|
|
60
|
+
|
|
61
|
+
this.__setData__.splice(index, 1);
|
|
62
|
+
|
|
63
|
+
return true;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
_proto.has = function has(value) {
|
|
67
|
+
return this.__setData__.indexOf(value) !== -1;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
_proto.forEach = function forEach(cb
|
|
71
|
+
/*, thisArg*/
|
|
72
|
+
) {
|
|
73
|
+
var thisArg = arguments[1];
|
|
74
|
+
if (typeof cb !== 'function') throw new TypeError(cb + ' is not a function');
|
|
75
|
+
|
|
76
|
+
for (var i = 0; i < this.__setData__.length; i++) {
|
|
77
|
+
var value = this.__setData__[i];
|
|
78
|
+
cb.call(thisArg, value, value, this);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
_createClass(SetPoly, [{
|
|
83
|
+
key: "size",
|
|
84
|
+
get: function get() {
|
|
85
|
+
return this.__setData__.length;
|
|
86
|
+
}
|
|
87
|
+
}]);
|
|
88
|
+
|
|
89
|
+
return SetPoly;
|
|
90
|
+
}();
|
|
91
|
+
export function setToArray(set) {
|
|
92
|
+
if (set instanceof SetPoly) {
|
|
93
|
+
return set.__setData__.slice();
|
|
94
|
+
} // if not using SetPoly as set, it means Array.from is supported
|
|
95
|
+
// eslint-disable-next-line compat/compat
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
return Array.from(set);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* return the Set constructor to use. If `Array.from` built-in or native Set is not available or it doesn't support the required features,
|
|
102
|
+
* a ponyfill with minimal features is returned instead.
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
function getSetConstructor() {
|
|
106
|
+
// eslint-disable-next-line compat/compat
|
|
107
|
+
if (typeof Array.from === 'function' && typeof Set === 'function' && Set.prototype && Set.prototype.values) {
|
|
108
|
+
return Set;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return SetPoly;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export var _Set = getSetConstructor();
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if the target string starts with the sub string.
|
|
3
|
+
*/
|
|
4
|
+
export function startsWith(target, sub) {
|
|
5
|
+
if (!(isString(target) && isString(sub))) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
return target.slice(0, sub.length) === sub;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Checks if the target string ends with the sub string.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
export function endsWith(target, sub, caseInsensitive) {
|
|
16
|
+
if (caseInsensitive === void 0) {
|
|
17
|
+
caseInsensitive = false;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (!(isString(target) && isString(sub))) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (caseInsensitive) {
|
|
25
|
+
target = target.toLowerCase();
|
|
26
|
+
sub = sub.toLowerCase();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return target.slice(target.length - sub.length) === sub;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Safely retrieve the specified prop from obj. If we can't retrieve
|
|
33
|
+
* that property value, we return the default value.
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
export function get(obj, prop, val) {
|
|
37
|
+
var res = val;
|
|
38
|
+
|
|
39
|
+
try {
|
|
40
|
+
// No risks nor lots of checks.
|
|
41
|
+
var pathPieces = prop.split('.');
|
|
42
|
+
var partial = obj;
|
|
43
|
+
pathPieces.forEach(function (pathPiece) {
|
|
44
|
+
return partial = partial[pathPiece];
|
|
45
|
+
});
|
|
46
|
+
if (typeof partial !== 'undefined') res = partial;
|
|
47
|
+
} catch (e) {// noop
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return res;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Evaluates iteratee for each element of the source array. Returns the index of the first element
|
|
54
|
+
* for which iteratee returns truthy. If no element is found or there's an issue with the params it returns -1.
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
export function findIndex(source, iteratee) {
|
|
58
|
+
if (Array.isArray(source) && typeof iteratee === 'function') {
|
|
59
|
+
for (var i = 0; i < source.length; i++) {
|
|
60
|
+
if (iteratee(source[i], i, source) === true) {
|
|
61
|
+
return i;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return -1;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Loops through a source collection (an object or an array) running iteratee
|
|
70
|
+
* against each element. It returns the first element for which iteratee returned
|
|
71
|
+
* a truthy value and stops the loop.
|
|
72
|
+
* Iteratee receives three arguments (element, key/index, collection)
|
|
73
|
+
*/
|
|
74
|
+
|
|
75
|
+
export function find(source, iteratee) {
|
|
76
|
+
var res;
|
|
77
|
+
|
|
78
|
+
if (isObject(source)) {
|
|
79
|
+
var keys = Object.keys(source);
|
|
80
|
+
|
|
81
|
+
for (var i = 0; i < keys.length && !res; i++) {
|
|
82
|
+
var key = keys[i];
|
|
83
|
+
var iterateeResult = iteratee(source[key], key, source);
|
|
84
|
+
if (iterateeResult) res = source[key];
|
|
85
|
+
}
|
|
86
|
+
} else if (Array.isArray(source)) {
|
|
87
|
+
for (var _i = 0; _i < source.length && !res; _i++) {
|
|
88
|
+
var _iterateeResult = iteratee(source[_i], _i, source);
|
|
89
|
+
|
|
90
|
+
if (_iterateeResult) res = source[_i];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return res;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Checks if a given value is a string.
|
|
98
|
+
*/
|
|
99
|
+
|
|
100
|
+
export function isString(val) {
|
|
101
|
+
return typeof val === 'string' || val instanceof String;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Checks if a given value is a finite value of number type or Number object.
|
|
105
|
+
* Unlike `Number.isFinite`, it also tests Number object instances.
|
|
106
|
+
* Unlike global `isFinite`, it returns false if the value is not a number or Number object instance.
|
|
107
|
+
* @TODO remove `isFinite` once `Number.isFinite` is fully supported by targets
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
export function numberIsFinite(val) {
|
|
111
|
+
if (val instanceof Number) val = val.valueOf(); // eslint-disable-next-line compat/compat
|
|
112
|
+
|
|
113
|
+
if (typeof val === 'number') return Number.isFinite ? Number.isFinite(val) : isFinite(val);
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Checks if a given value is a NaN value of number type or Number object.
|
|
118
|
+
* Unlike `Number.isNaN`, it also tests Number object instances.
|
|
119
|
+
* Unlike global `isNan`, it returns false if the value is not a number or Number object instance.
|
|
120
|
+
*/
|
|
121
|
+
|
|
122
|
+
export function numberIsNaN(val) {
|
|
123
|
+
if (val instanceof Number) val = val.valueOf(); // @TODO replace with `Number.isNaN` once it is fully supported by targets
|
|
124
|
+
// eslint-disable-next-line eqeqeq
|
|
125
|
+
|
|
126
|
+
return val !== val;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Checks if a given value is an integer value of number type or Number object.
|
|
130
|
+
* Unlike `Number.isInteger`, it also tests Number object instances.
|
|
131
|
+
* @TODO remove shim once `Number.isInteger` is fully supported by targets
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
export function numberIsInteger(val) {
|
|
135
|
+
if (val instanceof Number) val = val.valueOf(); // eslint-disable-next-line compat/compat
|
|
136
|
+
|
|
137
|
+
if (typeof val === 'number') return Number.isInteger ? Number.isInteger(val) : isFinite(val) && Math.floor(val) === val;
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
var uniqueIdCounter = -1;
|
|
141
|
+
/**
|
|
142
|
+
* Returns a number to be used as ID, which will be unique.
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
export function uniqueId() {
|
|
146
|
+
return uniqueIdCounter++;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Validates if a value is an object.
|
|
150
|
+
*/
|
|
151
|
+
|
|
152
|
+
export function isObject(obj) {
|
|
153
|
+
return obj && typeof obj === 'object' && obj.constructor === Object;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* There are some assumptions here. It's for internal use and we don't need verbose errors
|
|
157
|
+
* or to ensure the data types or whatever. Parameters should always be correct (at least have a target and a source, of type object).
|
|
158
|
+
*/
|
|
159
|
+
|
|
160
|
+
export function merge(target, source) {
|
|
161
|
+
var res = target;
|
|
162
|
+
isObject(source) && Object.keys(source).forEach(function (key) {
|
|
163
|
+
var val = source[key];
|
|
164
|
+
|
|
165
|
+
if (isObject(val)) {
|
|
166
|
+
if (res[key] && isObject(res[key])) {
|
|
167
|
+
// If both are objects, merge into a new one.
|
|
168
|
+
val = merge({}, res[key], val);
|
|
169
|
+
} else {
|
|
170
|
+
// else make a copy.
|
|
171
|
+
val = merge({}, val);
|
|
172
|
+
}
|
|
173
|
+
} // We skip undefined values.
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
if (val !== undefined) res[key] = val;
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
180
|
+
rest[_key - 2] = arguments[_key];
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
if (rest && rest.length) {
|
|
184
|
+
var nextSource = rest.splice(0, 1)[0];
|
|
185
|
+
res = merge.apply(void 0, [res, nextSource].concat(rest));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return res;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Removes duplicate items on an array of strings.
|
|
192
|
+
*/
|
|
193
|
+
|
|
194
|
+
export function uniq(arr) {
|
|
195
|
+
var seen = {};
|
|
196
|
+
return arr.filter(function (item) {
|
|
197
|
+
return Object.prototype.hasOwnProperty.call(seen, item) ? false : seen[item] = true;
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Removes duplicate items on an array of objects using an optional `stringify` function as equality criteria.
|
|
202
|
+
* It uses JSON.stringify as default criteria.
|
|
203
|
+
*/
|
|
204
|
+
|
|
205
|
+
export function unicAsStrings(arr, stringify) {
|
|
206
|
+
if (stringify === void 0) {
|
|
207
|
+
stringify = JSON.stringify;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
var seen = {};
|
|
211
|
+
return arr.filter(function (item) {
|
|
212
|
+
var itemString = stringify(item);
|
|
213
|
+
return Object.prototype.hasOwnProperty.call(seen, itemString) ? false : seen[itemString] = true;
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Transforms a value into it's string representation.
|
|
218
|
+
*/
|
|
219
|
+
|
|
220
|
+
export function toString(val) {
|
|
221
|
+
if (val == null) return '';
|
|
222
|
+
if (typeof val === 'string') return val;
|
|
223
|
+
if (Array.isArray(val)) return val.map(function (val) {
|
|
224
|
+
return isString(val) ? val : '';
|
|
225
|
+
}) + '';
|
|
226
|
+
var result = val + '';
|
|
227
|
+
return result === '0' && 1 / val === Number.NEGATIVE_INFINITY ? '-0' : result;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Transforms a value into a number.
|
|
231
|
+
* Note: We're not expecting anything fancy here. If we are at some point, add more type checks.
|
|
232
|
+
*/
|
|
233
|
+
|
|
234
|
+
export function toNumber(val) {
|
|
235
|
+
if (typeof val === 'number') return val;
|
|
236
|
+
|
|
237
|
+
if (isObject(val) && typeof val.valueOf === 'function') {
|
|
238
|
+
var valOf = val.valueOf();
|
|
239
|
+
val = isObject(valOf) ? valOf + '' : valOf;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
if (typeof val !== 'string') {
|
|
243
|
+
return val === 0 ? val : +val;
|
|
244
|
+
} // Remove trailing whitespaces.
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
val = val.replace(/^\s+|\s+$/g, '');
|
|
248
|
+
return +val;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Executes iteratee for given obj own props.
|
|
252
|
+
*/
|
|
253
|
+
|
|
254
|
+
export function forOwn(obj, iteratee) {
|
|
255
|
+
var keys = Object.keys(obj);
|
|
256
|
+
keys.forEach(function (key) {
|
|
257
|
+
return iteratee(obj[key], key, obj);
|
|
258
|
+
});
|
|
259
|
+
return obj;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Parses an array into a map of different arrays, grouping by the specified prop value.
|
|
263
|
+
*/
|
|
264
|
+
|
|
265
|
+
export function groupBy(source, prop) {
|
|
266
|
+
var map = {};
|
|
267
|
+
|
|
268
|
+
if (Array.isArray(source) && isString(prop)) {
|
|
269
|
+
for (var i = 0; i < source.length; i++) {
|
|
270
|
+
var key = source[i][prop]; // Skip the element if the key is not a string.
|
|
271
|
+
|
|
272
|
+
if (isString(key)) {
|
|
273
|
+
if (!map[key]) map[key] = [];
|
|
274
|
+
map[key].push(source[i]);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
return map;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Returns the name of a given function.
|
|
283
|
+
*/
|
|
284
|
+
|
|
285
|
+
export function getFnName(fn) {
|
|
286
|
+
if (fn.name) return fn.name;
|
|
287
|
+
return (fn.toString().match(/function (.+?)\(/) || ['', ''])[1];
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Shallow clone an object
|
|
291
|
+
*/
|
|
292
|
+
|
|
293
|
+
export function shallowClone(obj) {
|
|
294
|
+
var keys = Object.keys(obj);
|
|
295
|
+
var output = {};
|
|
296
|
+
|
|
297
|
+
for (var i = 0; i < keys.length; i++) {
|
|
298
|
+
output[keys[i]] = obj[keys[i]];
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
return output;
|
|
302
|
+
}
|
|
303
|
+
export function isBoolean(val) {
|
|
304
|
+
return val === true || val === false;
|
|
305
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
Copyright 2016 Split Software
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
**/
|
|
16
|
+
export default function isLocalStorageAvailable() {
|
|
17
|
+
var mod = '__SPLITSOFTWARE__';
|
|
18
|
+
|
|
19
|
+
try {
|
|
20
|
+
localStorage.setItem(mod, mod);
|
|
21
|
+
localStorage.removeItem(mod);
|
|
22
|
+
return true;
|
|
23
|
+
} catch (e) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
import objectAssign from 'object-assign';
|
|
5
|
+
export var LogLevels = {
|
|
6
|
+
'DEBUG': 'DEBUG',
|
|
7
|
+
'INFO': 'INFO',
|
|
8
|
+
'WARN': 'WARN',
|
|
9
|
+
'ERROR': 'ERROR',
|
|
10
|
+
'NONE': 'NONE'
|
|
11
|
+
};
|
|
12
|
+
var LogLevelIndexes = {
|
|
13
|
+
DEBUG: 1,
|
|
14
|
+
INFO: 2,
|
|
15
|
+
WARN: 3,
|
|
16
|
+
ERROR: 4,
|
|
17
|
+
NONE: 5
|
|
18
|
+
}; // DEBUG is the default. The log level is not specific to an SDK instance.
|
|
19
|
+
|
|
20
|
+
var GlobalLogLevel = LogLevelIndexes.DEBUG;
|
|
21
|
+
/**
|
|
22
|
+
* @param {'DEBUG'|'INFO'|'WARN'|'ERROR'|'NONE'} level
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
export var setLogLevel = function setLogLevel(level) {
|
|
26
|
+
GlobalLogLevel = LogLevelIndexes[level];
|
|
27
|
+
};
|
|
28
|
+
var defaultOptions = {
|
|
29
|
+
showLevel: true,
|
|
30
|
+
displayAllErrors: false
|
|
31
|
+
};
|
|
32
|
+
export var Logger = /*#__PURE__*/function () {
|
|
33
|
+
function Logger(category, options) {
|
|
34
|
+
this.category = category;
|
|
35
|
+
this.options = objectAssign({}, defaultOptions, options);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var _proto = Logger.prototype;
|
|
39
|
+
|
|
40
|
+
_proto.debug = function debug(msg) {
|
|
41
|
+
if (this._shouldLog(LogLevelIndexes.DEBUG)) this._log(LogLevels.DEBUG, msg);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
_proto.info = function info(msg) {
|
|
45
|
+
if (this._shouldLog(LogLevelIndexes.INFO)) this._log(LogLevels.INFO, msg);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
_proto.warn = function warn(msg) {
|
|
49
|
+
if (this._shouldLog(LogLevelIndexes.WARN)) this._log(LogLevels.WARN, msg);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
_proto.error = function error(msg) {
|
|
53
|
+
if (this.options.displayAllErrors || this._shouldLog(LogLevelIndexes.ERROR)) this._log(LogLevels.ERROR, msg);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
_proto._log = function _log(level, text) {
|
|
57
|
+
var formattedText = this._generateLogMessage(level, text);
|
|
58
|
+
|
|
59
|
+
console.log(formattedText);
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
_proto._generateLogMessage = function _generateLogMessage(level, text) {
|
|
63
|
+
var textPre = ' => ';
|
|
64
|
+
var result = '';
|
|
65
|
+
|
|
66
|
+
if (this.options.showLevel) {
|
|
67
|
+
result += '[' + level + ']' + (level === LogLevels.INFO || level === LogLevels.WARN ? ' ' : '') + ' ';
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (this.category) {
|
|
71
|
+
result += this.category + textPre;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return result += text;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* @param {number} level
|
|
78
|
+
*/
|
|
79
|
+
;
|
|
80
|
+
|
|
81
|
+
_proto._shouldLog = function _shouldLog(level) {
|
|
82
|
+
return level >= GlobalLogLevel;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
return Logger;
|
|
86
|
+
}();
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
Copyright 2016 Split Software
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
**/
|
|
16
|
+
import { Logger, LogLevels, setLogLevel as _setLogLevel } from './LoggerFactory';
|
|
17
|
+
import isLocalStorageAvailable from '../localstorage/isAvailable';
|
|
18
|
+
import { find, merge } from '../lang';
|
|
19
|
+
|
|
20
|
+
var isLogLevelString = function isLogLevelString(str) {
|
|
21
|
+
return !!find(LogLevels, function (lvl) {
|
|
22
|
+
return str === lvl;
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var defaultOptions = {
|
|
27
|
+
showLevel: true,
|
|
28
|
+
displayAllErrors: false
|
|
29
|
+
};
|
|
30
|
+
var LS_KEY = 'splitio_debug';
|
|
31
|
+
var ENV_VAR_KEY = 'SPLITIO_DEBUG';
|
|
32
|
+
var isNode = false; // We check for version truthiness since most shims will have that as empty string.
|
|
33
|
+
|
|
34
|
+
if (typeof process !== 'undefined' && typeof process.version !== 'undefined' && !!process.version) {
|
|
35
|
+
isNode = true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var initialState = String(isNode ? process.env[ENV_VAR_KEY] : isLocalStorageAvailable() ? localStorage.getItem(LS_KEY) : '');
|
|
39
|
+
|
|
40
|
+
var createLog = function createLog(namespace, options) {
|
|
41
|
+
if (options === void 0) {
|
|
42
|
+
options = {};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return new Logger(namespace, merge(options, defaultOptions));
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
var ownLog = createLog('splitio-utils:logger');
|
|
49
|
+
/**
|
|
50
|
+
* The public Logger utility API.
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
export var API = {
|
|
54
|
+
/**
|
|
55
|
+
* Enables all the logs.
|
|
56
|
+
*/
|
|
57
|
+
enable: function enable() {
|
|
58
|
+
_setLogLevel(LogLevels.DEBUG);
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Sets a custom log Level for the SDK.
|
|
63
|
+
* @param {string} logLevel - Custom LogLevel value.
|
|
64
|
+
*/
|
|
65
|
+
setLogLevel: function setLogLevel(logLevel) {
|
|
66
|
+
if (isLogLevelString(logLevel)) {
|
|
67
|
+
_setLogLevel(logLevel);
|
|
68
|
+
} else {
|
|
69
|
+
ownLog.error('Invalid Log Level - No changes to the logs will be applied.');
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Disables all the log levels.
|
|
75
|
+
*/
|
|
76
|
+
disable: function disable() {
|
|
77
|
+
// Disabling is equal logLevel none
|
|
78
|
+
_setLogLevel(LogLevels.NONE);
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Exposed for usage with setLogLevel
|
|
83
|
+
*/
|
|
84
|
+
LogLevel: LogLevels
|
|
85
|
+
}; // "enable", "enabled" and "on", are synonims with 'DEBUG' loglevel
|
|
86
|
+
|
|
87
|
+
if (/^(enabled?|on)/i.test(initialState)) {
|
|
88
|
+
API.enable(LogLevels.DEBUG);
|
|
89
|
+
} else if (isLogLevelString(initialState)) {
|
|
90
|
+
API.setLogLevel(initialState);
|
|
91
|
+
} else {
|
|
92
|
+
// By default it starts disabled.
|
|
93
|
+
API.disable();
|
|
94
|
+
} // By default we expose logger instance creator wrapper.
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
export default createLog;
|