@featbit/js-client-sdk 3.0.13 → 4.0.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.
Files changed (120) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +301 -301
  3. package/dist/esm/FbClientCore.d.ts +6 -5
  4. package/dist/esm/FbClientCore.d.ts.map +1 -1
  5. package/dist/esm/FbClientCore.js +27 -4
  6. package/dist/esm/FbClientCore.js.map +1 -1
  7. package/dist/esm/IFbClientCore.d.ts +8 -7
  8. package/dist/esm/IFbClientCore.d.ts.map +1 -1
  9. package/dist/esm/version.d.ts +1 -1
  10. package/dist/esm/version.d.ts.map +1 -1
  11. package/dist/esm/version.js +1 -1
  12. package/dist/esm/version.js.map +1 -1
  13. package/dist/umd/featbit-js-client-sdk-4.0.0.js +2 -0
  14. package/dist/umd/featbit-js-client-sdk-4.0.0.js.map +1 -0
  15. package/dist/umd/featbit-js-client-sdk.js +1 -1
  16. package/dist/umd/featbit-js-client-sdk.js.map +1 -1
  17. package/package.json +46 -46
  18. package/src/Configuration.ts +232 -232
  19. package/src/Context.ts +61 -61
  20. package/src/FbClientBuilder.ts +167 -167
  21. package/src/FbClientCore.ts +428 -405
  22. package/src/IContextProperty.ts +3 -3
  23. package/src/IDataKind.ts +11 -11
  24. package/src/IFbClient.ts +29 -29
  25. package/src/IFbClientCore.ts +291 -290
  26. package/src/IVersionedData.ts +18 -18
  27. package/src/bootstrap/IBootstrapProvider.ts +4 -4
  28. package/src/bootstrap/JsonBootstrapProvider.ts +34 -34
  29. package/src/bootstrap/NullBootstrapProvider.ts +20 -20
  30. package/src/bootstrap/index.ts +2 -2
  31. package/src/constants.ts +1 -1
  32. package/src/data-sources/DataSourceUpdates.ts +116 -116
  33. package/src/data-sources/createStreamListeners.ts +67 -67
  34. package/src/data-sources/index.ts +1 -1
  35. package/src/data-sync/DataSyncMode.ts +3 -3
  36. package/src/data-sync/IDataSynchronizer.ts +15 -15
  37. package/src/data-sync/IRequestor.ts +10 -10
  38. package/src/data-sync/NullDataSynchronizer.ts +14 -14
  39. package/src/data-sync/PollingDataSynchronizer.ts +125 -125
  40. package/src/data-sync/Requestor.ts +61 -61
  41. package/src/data-sync/WebSocketDataSynchronizer.ts +77 -77
  42. package/src/data-sync/index.ts +8 -8
  43. package/src/data-sync/types.ts +19 -19
  44. package/src/data-sync/utils.ts +31 -31
  45. package/src/errors.ts +47 -47
  46. package/src/evaluation/EvalResult.ts +35 -35
  47. package/src/evaluation/Evaluator.ts +26 -26
  48. package/src/evaluation/IEvalDetail.ts +23 -23
  49. package/src/evaluation/ReasonKinds.ts +9 -9
  50. package/src/evaluation/data/IFlag.ts +29 -29
  51. package/src/evaluation/index.ts +4 -4
  52. package/src/events/DefaultEventProcessor.ts +83 -83
  53. package/src/events/DefaultEventQueue.ts +49 -49
  54. package/src/events/DefaultEventSender.ts +73 -73
  55. package/src/events/DefaultEventSerializer.ts +11 -11
  56. package/src/events/EventDispatcher.ts +127 -127
  57. package/src/events/EventSerializer.ts +4 -4
  58. package/src/events/IEventProcessor.ts +8 -8
  59. package/src/events/IEventQueue.ts +16 -16
  60. package/src/events/IEventSender.ts +13 -13
  61. package/src/events/NullEventProcessor.ts +15 -15
  62. package/src/events/event.ts +129 -129
  63. package/src/events/index.ts +11 -11
  64. package/src/index.ts +21 -21
  65. package/src/integrations/TestLogger.ts +24 -24
  66. package/src/integrations/index.ts +1 -1
  67. package/src/integrations/test_data/FlagBuilder.ts +59 -59
  68. package/src/integrations/test_data/TestData.ts +57 -57
  69. package/src/integrations/test_data/TestDataSynchronizer.ts +49 -49
  70. package/src/integrations/test_data/index.ts +4 -4
  71. package/src/logging/BasicLogger.ts +108 -108
  72. package/src/logging/IBasicLoggerOptions.ts +46 -46
  73. package/src/logging/ILogger.ts +49 -49
  74. package/src/logging/LogLevel.ts +8 -8
  75. package/src/logging/SafeLogger.ts +69 -69
  76. package/src/logging/format.ts +154 -154
  77. package/src/logging/index.ts +5 -5
  78. package/src/options/ClientContext.ts +39 -39
  79. package/src/options/IClientContext.ts +53 -53
  80. package/src/options/IOptions.ts +123 -123
  81. package/src/options/IUser.ts +6 -6
  82. package/src/options/IValidatedOptions.ts +29 -29
  83. package/src/options/OptionMessages.ts +35 -35
  84. package/src/options/UserBuilder.ts +35 -35
  85. package/src/options/Validators.ts +300 -300
  86. package/src/options/index.ts +7 -7
  87. package/src/platform/IInfo.ts +102 -102
  88. package/src/platform/IPlatform.ts +20 -20
  89. package/src/platform/IStore.ts +112 -112
  90. package/src/platform/IWebSocket.ts +22 -22
  91. package/src/platform/browser/BrowserInfo.ts +24 -24
  92. package/src/platform/browser/BrowserPlatform.ts +19 -19
  93. package/src/platform/browser/BrowserRequests.ts +6 -6
  94. package/src/platform/browser/BrowserWebSocket.ts +147 -147
  95. package/src/platform/browser/FbClient.ts +65 -65
  96. package/src/platform/browser/LocalStorageStore.ts +59 -59
  97. package/src/platform/index.ts +11 -11
  98. package/src/platform/requests.ts +76 -76
  99. package/src/store/BaseStore.ts +125 -125
  100. package/src/store/DataKinds.ts +6 -6
  101. package/src/store/IDataSourceUpdates.ts +68 -68
  102. package/src/store/InMemoryStore.ts +36 -36
  103. package/src/store/index.ts +5 -5
  104. package/src/store/serialization.ts +52 -52
  105. package/src/store/store.ts +37 -37
  106. package/src/utils/Emits.ts +75 -75
  107. package/src/utils/EventEmitter.ts +128 -128
  108. package/src/utils/IEventEmitter.ts +14 -14
  109. package/src/utils/Regex.ts +21 -21
  110. package/src/utils/ValueConverters.ts +55 -55
  111. package/src/utils/canonicalizeUri.ts +3 -3
  112. package/src/utils/debounce.ts +33 -33
  113. package/src/utils/http.ts +40 -40
  114. package/src/utils/index.ts +5 -5
  115. package/src/utils/isNullOrUndefined.ts +2 -2
  116. package/src/utils/serializeUser.ts +27 -27
  117. package/src/utils/sleep.ts +5 -5
  118. package/src/version.ts +1 -1
  119. package/dist/umd/featbit-js-client-sdk-3.0.13.js +0 -2
  120. package/dist/umd/featbit-js-client-sdk-3.0.13.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
  }