@featbit/js-client-sdk 3.0.11 → 3.0.13

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.
Files changed (147) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +301 -301
  3. package/dist/esm/FbClientCore.d.ts.map +1 -1
  4. package/dist/esm/FbClientCore.js +1 -1
  5. package/dist/esm/FbClientCore.js.map +1 -1
  6. package/dist/esm/data-sources/DataSourceUpdates.d.ts +2 -2
  7. package/dist/esm/data-sources/DataSourceUpdates.d.ts.map +1 -1
  8. package/dist/esm/data-sources/DataSourceUpdates.js +55 -51
  9. package/dist/esm/data-sources/DataSourceUpdates.js.map +1 -1
  10. package/dist/esm/data-sources/createStreamListeners.d.ts +0 -9
  11. package/dist/esm/data-sources/createStreamListeners.d.ts.map +1 -1
  12. package/dist/esm/data-sources/createStreamListeners.js +10 -10
  13. package/dist/esm/data-sources/createStreamListeners.js.map +1 -1
  14. package/dist/esm/data-sync/IDataSynchronizer.d.ts +1 -1
  15. package/dist/esm/data-sync/IDataSynchronizer.d.ts.map +1 -1
  16. package/dist/esm/data-sync/NullDataSynchronizer.d.ts +1 -1
  17. package/dist/esm/data-sync/NullDataSynchronizer.d.ts.map +1 -1
  18. package/dist/esm/data-sync/NullDataSynchronizer.js +11 -0
  19. package/dist/esm/data-sync/NullDataSynchronizer.js.map +1 -1
  20. package/dist/esm/data-sync/PollingDataSynchronizer.d.ts +1 -1
  21. package/dist/esm/data-sync/PollingDataSynchronizer.d.ts.map +1 -1
  22. package/dist/esm/data-sync/PollingDataSynchronizer.js +42 -17
  23. package/dist/esm/data-sync/PollingDataSynchronizer.js.map +1 -1
  24. package/dist/esm/data-sync/WebSocketDataSynchronizer.d.ts +2 -1
  25. package/dist/esm/data-sync/WebSocketDataSynchronizer.d.ts.map +1 -1
  26. package/dist/esm/data-sync/WebSocketDataSynchronizer.js +20 -6
  27. package/dist/esm/data-sync/WebSocketDataSynchronizer.js.map +1 -1
  28. package/dist/esm/data-sync/types.d.ts +1 -1
  29. package/dist/esm/data-sync/types.d.ts.map +1 -1
  30. package/dist/esm/integrations/test_data/TestDataSynchronizer.d.ts +1 -1
  31. package/dist/esm/integrations/test_data/TestDataSynchronizer.d.ts.map +1 -1
  32. package/dist/esm/integrations/test_data/TestDataSynchronizer.js +3 -1
  33. package/dist/esm/integrations/test_data/TestDataSynchronizer.js.map +1 -1
  34. package/dist/esm/platform/browser/BrowserWebSocket.d.ts.map +1 -1
  35. package/dist/esm/platform/browser/BrowserWebSocket.js +4 -0
  36. package/dist/esm/platform/browser/BrowserWebSocket.js.map +1 -1
  37. package/dist/esm/store/IDataSourceUpdates.d.ts +2 -2
  38. package/dist/esm/store/IDataSourceUpdates.d.ts.map +1 -1
  39. package/dist/esm/version.d.ts +1 -1
  40. package/dist/esm/version.js +1 -1
  41. package/dist/umd/{featbit-js-client-sdk-3.0.11.js → featbit-js-client-sdk-3.0.13.js} +2 -2
  42. package/dist/umd/featbit-js-client-sdk-3.0.13.js.map +1 -0
  43. package/dist/umd/featbit-js-client-sdk.js +1 -1
  44. package/dist/umd/featbit-js-client-sdk.js.map +1 -1
  45. package/package.json +46 -46
  46. package/src/Configuration.ts +232 -232
  47. package/src/Context.ts +61 -61
  48. package/src/FbClientBuilder.ts +167 -167
  49. package/src/FbClientCore.ts +405 -401
  50. package/src/IContextProperty.ts +3 -3
  51. package/src/IDataKind.ts +11 -11
  52. package/src/IFbClient.ts +29 -29
  53. package/src/IFbClientCore.ts +290 -290
  54. package/src/IVersionedData.ts +18 -18
  55. package/src/bootstrap/IBootstrapProvider.ts +4 -4
  56. package/src/bootstrap/JsonBootstrapProvider.ts +34 -34
  57. package/src/bootstrap/NullBootstrapProvider.ts +20 -20
  58. package/src/bootstrap/index.ts +2 -2
  59. package/src/constants.ts +1 -1
  60. package/src/data-sources/DataSourceUpdates.ts +116 -116
  61. package/src/data-sources/createStreamListeners.ts +67 -66
  62. package/src/data-sources/index.ts +1 -1
  63. package/src/data-sync/DataSyncMode.ts +3 -3
  64. package/src/data-sync/IDataSynchronizer.ts +15 -15
  65. package/src/data-sync/IRequestor.ts +10 -10
  66. package/src/data-sync/NullDataSynchronizer.ts +14 -14
  67. package/src/data-sync/PollingDataSynchronizer.ts +125 -111
  68. package/src/data-sync/Requestor.ts +61 -61
  69. package/src/data-sync/WebSocketDataSynchronizer.ts +77 -73
  70. package/src/data-sync/index.ts +8 -8
  71. package/src/data-sync/types.ts +19 -19
  72. package/src/data-sync/utils.ts +31 -31
  73. package/src/errors.ts +47 -47
  74. package/src/evaluation/EvalResult.ts +35 -35
  75. package/src/evaluation/Evaluator.ts +26 -26
  76. package/src/evaluation/IEvalDetail.ts +23 -23
  77. package/src/evaluation/ReasonKinds.ts +9 -9
  78. package/src/evaluation/data/IFlag.ts +29 -29
  79. package/src/evaluation/index.ts +4 -4
  80. package/src/events/DefaultEventProcessor.ts +83 -83
  81. package/src/events/DefaultEventQueue.ts +49 -49
  82. package/src/events/DefaultEventSender.ts +73 -73
  83. package/src/events/DefaultEventSerializer.ts +11 -11
  84. package/src/events/EventDispatcher.ts +127 -127
  85. package/src/events/EventSerializer.ts +4 -4
  86. package/src/events/IEventProcessor.ts +8 -8
  87. package/src/events/IEventQueue.ts +16 -16
  88. package/src/events/IEventSender.ts +13 -13
  89. package/src/events/NullEventProcessor.ts +15 -15
  90. package/src/events/event.ts +129 -129
  91. package/src/events/index.ts +11 -11
  92. package/src/index.ts +21 -21
  93. package/src/integrations/TestLogger.ts +24 -24
  94. package/src/integrations/index.ts +1 -1
  95. package/src/integrations/test_data/FlagBuilder.ts +59 -59
  96. package/src/integrations/test_data/TestData.ts +57 -57
  97. package/src/integrations/test_data/TestDataSynchronizer.ts +49 -49
  98. package/src/integrations/test_data/index.ts +4 -4
  99. package/src/logging/BasicLogger.ts +108 -108
  100. package/src/logging/IBasicLoggerOptions.ts +46 -46
  101. package/src/logging/ILogger.ts +49 -49
  102. package/src/logging/LogLevel.ts +8 -8
  103. package/src/logging/SafeLogger.ts +69 -69
  104. package/src/logging/format.ts +154 -154
  105. package/src/logging/index.ts +5 -5
  106. package/src/options/ClientContext.ts +39 -39
  107. package/src/options/IClientContext.ts +53 -53
  108. package/src/options/IOptions.ts +123 -123
  109. package/src/options/IUser.ts +6 -6
  110. package/src/options/IValidatedOptions.ts +29 -29
  111. package/src/options/OptionMessages.ts +35 -35
  112. package/src/options/UserBuilder.ts +35 -35
  113. package/src/options/Validators.ts +300 -300
  114. package/src/options/index.ts +7 -7
  115. package/src/platform/IInfo.ts +102 -102
  116. package/src/platform/IPlatform.ts +20 -20
  117. package/src/platform/IStore.ts +112 -112
  118. package/src/platform/IWebSocket.ts +22 -22
  119. package/src/platform/browser/BrowserInfo.ts +24 -24
  120. package/src/platform/browser/BrowserPlatform.ts +19 -19
  121. package/src/platform/browser/BrowserRequests.ts +6 -6
  122. package/src/platform/browser/BrowserWebSocket.ts +147 -142
  123. package/src/platform/browser/FbClient.ts +65 -65
  124. package/src/platform/browser/LocalStorageStore.ts +59 -59
  125. package/src/platform/index.ts +11 -11
  126. package/src/platform/requests.ts +76 -76
  127. package/src/store/BaseStore.ts +125 -125
  128. package/src/store/DataKinds.ts +6 -6
  129. package/src/store/IDataSourceUpdates.ts +68 -68
  130. package/src/store/InMemoryStore.ts +36 -36
  131. package/src/store/index.ts +5 -5
  132. package/src/store/serialization.ts +52 -52
  133. package/src/store/store.ts +37 -37
  134. package/src/utils/Emits.ts +75 -75
  135. package/src/utils/EventEmitter.ts +128 -128
  136. package/src/utils/IEventEmitter.ts +14 -14
  137. package/src/utils/Regex.ts +21 -21
  138. package/src/utils/ValueConverters.ts +55 -55
  139. package/src/utils/canonicalizeUri.ts +3 -3
  140. package/src/utils/debounce.ts +33 -33
  141. package/src/utils/http.ts +40 -40
  142. package/src/utils/index.ts +5 -5
  143. package/src/utils/isNullOrUndefined.ts +2 -2
  144. package/src/utils/serializeUser.ts +27 -27
  145. package/src/utils/sleep.ts +5 -5
  146. package/src/version.ts +1 -1
  147. package/dist/umd/featbit-js-client-sdk-3.0.11.js.map +0 -1
@@ -1,4 +1,4 @@
1
- export interface IContextProperty {
2
- name: string;
3
- value: string;
1
+ export interface IContextProperty {
2
+ name: string;
3
+ value: string;
4
4
  }
package/src/IDataKind.ts CHANGED
@@ -1,11 +1,11 @@
1
- /**
2
- * Used internally to describe the type of data being queried or updated, such as feature flags or
3
- * user segments.
4
- */
5
- export interface IDataKind {
6
- /**
7
- * A string such as `"flags"` or `"segments"` which can be used in keys to distinguish this
8
- * kind of data from other kinds.
9
- */
10
- namespace: string;
11
- }
1
+ /**
2
+ * Used internally to describe the type of data being queried or updated, such as feature flags or
3
+ * user segments.
4
+ */
5
+ export interface IDataKind {
6
+ /**
7
+ * A string such as `"flags"` or `"segments"` which can be used in keys to distinguish this
8
+ * kind of data from other kinds.
9
+ */
10
+ namespace: string;
11
+ }
package/src/IFbClient.ts CHANGED
@@ -1,30 +1,30 @@
1
- import { IFbClientCore } from "./IFbClientCore";
2
- import { IEventEmitter } from "./utils/IEventEmitter";
3
-
4
- export interface IFbClient extends IFbClientCore, IEventEmitter {
5
- /**
6
- *
7
- * Registers an event listener that will be called when the client triggers some type of event.
8
- *
9
- * This is the standard `on` method inherited from Node's `EventEmitter`; see the
10
- * {@link https://nodejs.org/api/events.html#events_class_eventemitter|Node API docs} for more
11
- * details on how to manage event listeners. Here is a description of the event types defined
12
- * by `FbClient`.
13
- *
14
- * - `"ready"`: Sent only once, when the client has successfully connected to FeatBit.
15
- * Alternately, you can detect this with [[waitForInitialization]].
16
- * - `"failed"`: Sent only once, if the client has permanently failed to connect to FeatBit.
17
- * Alternately, you can detect this with [[waitForInitialization]].
18
- * - `"error"`: Contains an error object describing some abnormal condition that the client has detected
19
- * (such as a network error).
20
- * - `"update"`: The client has received a change to a feature flag. The event parameter is an object
21
- * containing a single property, `key`, the flag key. Note that this does not necessarily mean the flag's
22
- * value has changed for any particular context, only that some part of the flag configuration was changed.
23
- * - `"update:KEY"`: The client has received a change to the feature flag whose key is KEY. This is the
24
- * same as `"update"` but allows you to listen for a specific flag.
25
- *
26
- * @param event the name of the event to listen for
27
- * @param listener the function to call when the event happens
28
- */
29
- on(event: string | symbol, listener: (...args: any[]) => void): this;
1
+ import { IFbClientCore } from "./IFbClientCore";
2
+ import { IEventEmitter } from "./utils/IEventEmitter";
3
+
4
+ export interface IFbClient extends IFbClientCore, IEventEmitter {
5
+ /**
6
+ *
7
+ * Registers an event listener that will be called when the client triggers some type of event.
8
+ *
9
+ * This is the standard `on` method inherited from Node's `EventEmitter`; see the
10
+ * {@link https://nodejs.org/api/events.html#events_class_eventemitter|Node API docs} for more
11
+ * details on how to manage event listeners. Here is a description of the event types defined
12
+ * by `FbClient`.
13
+ *
14
+ * - `"ready"`: Sent only once, when the client has successfully connected to FeatBit.
15
+ * Alternately, you can detect this with [[waitForInitialization]].
16
+ * - `"failed"`: Sent only once, if the client has permanently failed to connect to FeatBit.
17
+ * Alternately, you can detect this with [[waitForInitialization]].
18
+ * - `"error"`: Contains an error object describing some abnormal condition that the client has detected
19
+ * (such as a network error).
20
+ * - `"update"`: The client has received a change to a feature flag. The event parameter is an object
21
+ * containing a single property, `key`, the flag key. Note that this does not necessarily mean the flag's
22
+ * value has changed for any particular context, only that some part of the flag configuration was changed.
23
+ * - `"update:KEY"`: The client has received a change to the feature flag whose key is KEY. This is the
24
+ * same as `"update"` but allows you to listen for a specific flag.
25
+ *
26
+ * @param event the name of the event to listen for
27
+ * @param listener the function to call when the event happens
28
+ */
29
+ on(event: string | symbol, listener: (...args: any[]) => void): this;
30
30
  }