@splitsoftware/splitio-commons 2.10.2-rc.0 → 2.10.2-rc.2

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.
@@ -6,6 +6,7 @@ var syncTask_1 = require("../../syncTask");
6
6
  var constants_1 = require("../../../utils/constants");
7
7
  var constants_2 = require("../../../readiness/constants");
8
8
  var constants_3 = require("../../../logger/constants");
9
+ var types_1 = require("../../polling/types");
9
10
  /**
10
11
  * Offline equivalent of `splitChangesUpdaterFactory`
11
12
  */
@@ -42,7 +43,7 @@ function fromObjectUpdaterFactory(splitsParser, storage, readiness, settings) {
42
43
  splitsCache.clear(),
43
44
  splitsCache.update(splits, [], Date.now())
44
45
  ]).then(function () {
45
- readiness.splits.emit(constants_2.SDK_SPLITS_ARRIVED, { type: "FLAGS_UPDATE" /* FLAGS_UPDATE */, names: [] });
46
+ readiness.splits.emit(constants_2.SDK_SPLITS_ARRIVED, { type: types_1.SdkUpdateMetadataKeys.FLAGS_UPDATE, names: [] });
46
47
  if (startingUp) {
47
48
  startingUp = false;
48
49
  Promise.resolve(storage.validateCache ? storage.validateCache() : false).then(function (isCacheLoaded) {
@@ -50,7 +51,7 @@ function fromObjectUpdaterFactory(splitsParser, storage, readiness, settings) {
50
51
  if (isCacheLoaded)
51
52
  readiness.splits.emit(constants_2.SDK_SPLITS_CACHE_LOADED);
52
53
  // Emits SDK_READY
53
- readiness.segments.emit(constants_2.SDK_SEGMENTS_ARRIVED, { type: "SEGMENTS_UPDATE" /* SEGMENTS_UPDATE */, names: [] });
54
+ readiness.segments.emit(constants_2.SDK_SEGMENTS_ARRIVED, { type: types_1.SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
54
55
  });
55
56
  }
56
57
  return true;
@@ -1,2 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SdkUpdateMetadataKeys = void 0;
4
+ /**
5
+ * Metadata keys for SDK update events.
6
+ */
7
+ var SdkUpdateMetadataKeys;
8
+ (function (SdkUpdateMetadataKeys) {
9
+ /**
10
+ * The update event emitted when the SDK cache is updated with new data for flags.
11
+ */
12
+ SdkUpdateMetadataKeys["FLAGS_UPDATE"] = "FLAGS_UPDATE";
13
+ /**
14
+ * The update event emitted when the SDK cache is updated with new data for segments.
15
+ */
16
+ SdkUpdateMetadataKeys["SEGMENTS_UPDATE"] = "SEGMENTS_UPDATE";
17
+ })(SdkUpdateMetadataKeys = exports.SdkUpdateMetadataKeys || (exports.SdkUpdateMetadataKeys = {}));
@@ -6,6 +6,7 @@ var constants_1 = require("../../../readiness/constants");
6
6
  var constants_2 = require("../../../logger/constants");
7
7
  var constants_3 = require("../../streaming/constants");
8
8
  var AbstractSplitsCacheSync_1 = require("../../../storages/AbstractSplitsCacheSync");
9
+ var types_1 = require("../types");
9
10
  /**
10
11
  * factory of MySegments updater, a task that:
11
12
  * - fetches mySegments using `mySegmentsFetcher`
@@ -39,7 +40,7 @@ function mySegmentsUpdaterFactory(log, mySegmentsFetcher, storage, segmentsEvent
39
40
  // Notify update if required
40
41
  if ((0, AbstractSplitsCacheSync_1.usesSegmentsSync)(storage) && (shouldNotifyUpdate || readyOnAlreadyExistentState)) {
41
42
  readyOnAlreadyExistentState = false;
42
- segmentsEventEmitter.emit(constants_1.SDK_SEGMENTS_ARRIVED, { type: "SEGMENTS_UPDATE" /* SEGMENTS_UPDATE */, names: [] });
43
+ segmentsEventEmitter.emit(constants_1.SDK_SEGMENTS_ARRIVED, { type: types_1.SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
43
44
  }
44
45
  }
45
46
  function _mySegmentsUpdater(retry, segmentsData, noCache, till) {
@@ -4,6 +4,7 @@ exports.segmentChangesUpdaterFactory = void 0;
4
4
  var constants_1 = require("../../../readiness/constants");
5
5
  var constants_2 = require("../../../logger/constants");
6
6
  var timeout_1 = require("../../../utils/promise/timeout");
7
+ var types_1 = require("../types");
7
8
  /**
8
9
  * Factory of SegmentChanges updater, a task that:
9
10
  * - fetches segment changes using `segmentChangesFetcher`
@@ -67,7 +68,7 @@ function segmentChangesUpdaterFactory(log, segmentChangesFetcher, segments, read
67
68
  if (shouldUpdateFlags.some(function (update) { return update; }) || readyOnAlreadyExistentState) {
68
69
  readyOnAlreadyExistentState = false;
69
70
  var metadata = {
70
- type: "SEGMENTS_UPDATE" /* SEGMENTS_UPDATE */,
71
+ type: types_1.SdkUpdateMetadataKeys.SEGMENTS_UPDATE,
71
72
  names: []
72
73
  };
73
74
  if (readiness)
@@ -8,6 +8,7 @@ var lang_1 = require("../../../utils/lang");
8
8
  var constants_3 = require("../../../utils/constants");
9
9
  var sets_1 = require("../../../utils/lang/sets");
10
10
  var constants_4 = require("../../streaming/constants");
11
+ var types_1 = require("../types");
11
12
  // Checks that all registered segments have been fetched (changeNumber !== -1 for every segment).
12
13
  // Returns a promise that could be rejected.
13
14
  // @TODO review together with Segments and MySegments storage APIs
@@ -165,7 +166,7 @@ function splitChangesUpdaterFactory(log, splitChangesFetcher, storage, splitFilt
165
166
  .catch(function () { return false; } /** noop. just to handle a possible `checkAllSegmentsExist` rejection, before emitting SDK event */)
166
167
  .then(function (emitSplitsArrivedEvent) {
167
168
  var metadata = {
168
- type: updatedFlags.length > 0 ? "FLAGS_UPDATE" /* FLAGS_UPDATE */ : "SEGMENTS_UPDATE" /* SEGMENTS_UPDATE */,
169
+ type: updatedFlags.length > 0 ? types_1.SdkUpdateMetadataKeys.FLAGS_UPDATE : types_1.SdkUpdateMetadataKeys.SEGMENTS_UPDATE,
169
170
  names: updatedFlags.length > 0 ? updatedFlags : []
170
171
  };
171
172
  // emit SDK events
@@ -3,6 +3,7 @@ import { syncTaskFactory } from '../../syncTask';
3
3
  import { CONTROL } from '../../../utils/constants';
4
4
  import { SDK_SPLITS_ARRIVED, SDK_SEGMENTS_ARRIVED, SDK_SPLITS_CACHE_LOADED } from '../../../readiness/constants';
5
5
  import { SYNC_OFFLINE_DATA, ERROR_SYNC_OFFLINE_LOADING } from '../../../logger/constants';
6
+ import { SdkUpdateMetadataKeys } from '../../polling/types';
6
7
  /**
7
8
  * Offline equivalent of `splitChangesUpdaterFactory`
8
9
  */
@@ -39,7 +40,7 @@ export function fromObjectUpdaterFactory(splitsParser, storage, readiness, setti
39
40
  splitsCache.clear(),
40
41
  splitsCache.update(splits, [], Date.now())
41
42
  ]).then(function () {
42
- readiness.splits.emit(SDK_SPLITS_ARRIVED, { type: "FLAGS_UPDATE" /* FLAGS_UPDATE */, names: [] });
43
+ readiness.splits.emit(SDK_SPLITS_ARRIVED, { type: SdkUpdateMetadataKeys.FLAGS_UPDATE, names: [] });
43
44
  if (startingUp) {
44
45
  startingUp = false;
45
46
  Promise.resolve(storage.validateCache ? storage.validateCache() : false).then(function (isCacheLoaded) {
@@ -47,7 +48,7 @@ export function fromObjectUpdaterFactory(splitsParser, storage, readiness, setti
47
48
  if (isCacheLoaded)
48
49
  readiness.splits.emit(SDK_SPLITS_CACHE_LOADED);
49
50
  // Emits SDK_READY
50
- readiness.segments.emit(SDK_SEGMENTS_ARRIVED, { type: "SEGMENTS_UPDATE" /* SEGMENTS_UPDATE */, names: [] });
51
+ readiness.segments.emit(SDK_SEGMENTS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
51
52
  });
52
53
  }
53
54
  return true;
@@ -1 +1,14 @@
1
- export {};
1
+ /**
2
+ * Metadata keys for SDK update events.
3
+ */
4
+ export var SdkUpdateMetadataKeys;
5
+ (function (SdkUpdateMetadataKeys) {
6
+ /**
7
+ * The update event emitted when the SDK cache is updated with new data for flags.
8
+ */
9
+ SdkUpdateMetadataKeys["FLAGS_UPDATE"] = "FLAGS_UPDATE";
10
+ /**
11
+ * The update event emitted when the SDK cache is updated with new data for segments.
12
+ */
13
+ SdkUpdateMetadataKeys["SEGMENTS_UPDATE"] = "SEGMENTS_UPDATE";
14
+ })(SdkUpdateMetadataKeys || (SdkUpdateMetadataKeys = {}));
@@ -3,6 +3,7 @@ import { SDK_SEGMENTS_ARRIVED } from '../../../readiness/constants';
3
3
  import { SYNC_MYSEGMENTS_FETCH_RETRY } from '../../../logger/constants';
4
4
  import { MEMBERSHIPS_LS_UPDATE } from '../../streaming/constants';
5
5
  import { usesSegmentsSync } from '../../../storages/AbstractSplitsCacheSync';
6
+ import { SdkUpdateMetadataKeys } from '../types';
6
7
  /**
7
8
  * factory of MySegments updater, a task that:
8
9
  * - fetches mySegments using `mySegmentsFetcher`
@@ -36,7 +37,7 @@ export function mySegmentsUpdaterFactory(log, mySegmentsFetcher, storage, segmen
36
37
  // Notify update if required
37
38
  if (usesSegmentsSync(storage) && (shouldNotifyUpdate || readyOnAlreadyExistentState)) {
38
39
  readyOnAlreadyExistentState = false;
39
- segmentsEventEmitter.emit(SDK_SEGMENTS_ARRIVED, { type: "SEGMENTS_UPDATE" /* SEGMENTS_UPDATE */, names: [] });
40
+ segmentsEventEmitter.emit(SDK_SEGMENTS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
40
41
  }
41
42
  }
42
43
  function _mySegmentsUpdater(retry, segmentsData, noCache, till) {
@@ -1,6 +1,7 @@
1
1
  import { SDK_SEGMENTS_ARRIVED } from '../../../readiness/constants';
2
2
  import { LOG_PREFIX_INSTANTIATION, LOG_PREFIX_SYNC_SEGMENTS } from '../../../logger/constants';
3
3
  import { timeout } from '../../../utils/promise/timeout';
4
+ import { SdkUpdateMetadataKeys } from '../types';
4
5
  /**
5
6
  * Factory of SegmentChanges updater, a task that:
6
7
  * - fetches segment changes using `segmentChangesFetcher`
@@ -64,7 +65,7 @@ export function segmentChangesUpdaterFactory(log, segmentChangesFetcher, segment
64
65
  if (shouldUpdateFlags.some(function (update) { return update; }) || readyOnAlreadyExistentState) {
65
66
  readyOnAlreadyExistentState = false;
66
67
  var metadata = {
67
- type: "SEGMENTS_UPDATE" /* SEGMENTS_UPDATE */,
68
+ type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE,
68
69
  names: []
69
70
  };
70
71
  if (readiness)
@@ -5,6 +5,7 @@ import { startsWith } from '../../../utils/lang';
5
5
  import { IN_RULE_BASED_SEGMENT, IN_SEGMENT, RULE_BASED_SEGMENT, STANDARD_SEGMENT } from '../../../utils/constants';
6
6
  import { setToArray } from '../../../utils/lang/sets';
7
7
  import { SPLIT_UPDATE } from '../../streaming/constants';
8
+ import { SdkUpdateMetadataKeys } from '../types';
8
9
  // Checks that all registered segments have been fetched (changeNumber !== -1 for every segment).
9
10
  // Returns a promise that could be rejected.
10
11
  // @TODO review together with Segments and MySegments storage APIs
@@ -160,7 +161,7 @@ export function splitChangesUpdaterFactory(log, splitChangesFetcher, storage, sp
160
161
  .catch(function () { return false; } /** noop. just to handle a possible `checkAllSegmentsExist` rejection, before emitting SDK event */)
161
162
  .then(function (emitSplitsArrivedEvent) {
162
163
  var metadata = {
163
- type: updatedFlags.length > 0 ? "FLAGS_UPDATE" /* FLAGS_UPDATE */ : "SEGMENTS_UPDATE" /* SEGMENTS_UPDATE */,
164
+ type: updatedFlags.length > 0 ? SdkUpdateMetadataKeys.FLAGS_UPDATE : SdkUpdateMetadataKeys.SEGMENTS_UPDATE,
164
165
  names: updatedFlags.length > 0 ? updatedFlags : []
165
166
  };
166
167
  // emit SDK events
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@splitsoftware/splitio-commons",
3
- "version": "2.10.2-rc.0",
3
+ "version": "2.10.2-rc.2",
4
4
  "description": "Split JavaScript SDK common components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -9,7 +9,7 @@ import { ISettings } from '../../../types';
9
9
  import { CONTROL } from '../../../utils/constants';
10
10
  import { SDK_SPLITS_ARRIVED, SDK_SEGMENTS_ARRIVED, SDK_SPLITS_CACHE_LOADED } from '../../../readiness/constants';
11
11
  import { SYNC_OFFLINE_DATA, ERROR_SYNC_OFFLINE_LOADING } from '../../../logger/constants';
12
- import { SdkUpdateMetadataKeys } from '../../../../types/splitio';
12
+ import { SdkUpdateMetadataKeys } from '../../polling/types';
13
13
 
14
14
  /**
15
15
  * Offline equivalent of `splitChangesUpdaterFactory`
@@ -4,6 +4,20 @@ import { IStorageSync } from '../../storages/types';
4
4
  import { MEMBERSHIPS_LS_UPDATE, MEMBERSHIPS_MS_UPDATE } from '../streaming/types';
5
5
  import { ITask, ISyncTask } from '../types';
6
6
 
7
+ /**
8
+ * Metadata keys for SDK update events.
9
+ */
10
+ export enum SdkUpdateMetadataKeys {
11
+ /**
12
+ * The update event emitted when the SDK cache is updated with new data for flags.
13
+ */
14
+ FLAGS_UPDATE = 'FLAGS_UPDATE',
15
+ /**
16
+ * The update event emitted when the SDK cache is updated with new data for segments.
17
+ */
18
+ SEGMENTS_UPDATE = 'SEGMENTS_UPDATE'
19
+ }
20
+
7
21
  export interface ISplitsSyncTask extends ISyncTask<[noCache?: boolean, till?: number, splitUpdateNotification?: { payload: ISplit | IRBSegment, changeNumber: number }], boolean> { }
8
22
 
9
23
  export interface ISegmentsSyncTask extends ISyncTask<[fetchOnlyNew?: boolean, segmentName?: string, noCache?: boolean, till?: number], boolean> { }
@@ -9,7 +9,7 @@ import { MySegmentsData } from '../types';
9
9
  import { IMembershipsResponse } from '../../../dtos/types';
10
10
  import { MEMBERSHIPS_LS_UPDATE } from '../../streaming/constants';
11
11
  import { usesSegmentsSync } from '../../../storages/AbstractSplitsCacheSync';
12
- import { SdkUpdateMetadataKeys } from '../../../../types/splitio';
12
+ import { SdkUpdateMetadataKeys } from '../types';
13
13
 
14
14
  type IMySegmentsUpdater = (segmentsData?: MySegmentsData, noCache?: boolean, till?: number) => Promise<boolean>
15
15
 
@@ -5,7 +5,8 @@ import { SDK_SEGMENTS_ARRIVED } from '../../../readiness/constants';
5
5
  import { ILogger } from '../../../logger/types';
6
6
  import { LOG_PREFIX_INSTANTIATION, LOG_PREFIX_SYNC_SEGMENTS } from '../../../logger/constants';
7
7
  import { timeout } from '../../../utils/promise/timeout';
8
- import { SdkUpdateMetadata, SdkUpdateMetadataKeys } from '../../../../types/splitio';
8
+ import { SdkUpdateMetadata } from '../../../../types/splitio';
9
+ import { SdkUpdateMetadataKeys } from '../types';
9
10
 
10
11
 
11
12
  type ISegmentChangesUpdater = (fetchOnlyNew?: boolean, segmentName?: string, noCache?: boolean, till?: number) => Promise<boolean>
@@ -10,7 +10,8 @@ import { startsWith } from '../../../utils/lang';
10
10
  import { IN_RULE_BASED_SEGMENT, IN_SEGMENT, RULE_BASED_SEGMENT, STANDARD_SEGMENT } from '../../../utils/constants';
11
11
  import { setToArray } from '../../../utils/lang/sets';
12
12
  import { SPLIT_UPDATE } from '../../streaming/constants';
13
- import { SdkUpdateMetadata, SdkUpdateMetadataKeys } from '../../../../types/splitio';
13
+ import { SdkUpdateMetadata } from '../../../../types/splitio';
14
+ import { SdkUpdateMetadataKeys } from '../types';
14
15
 
15
16
  export type InstantUpdate = { payload: ISplit | IRBSegment, changeNumber: number, type: string };
16
17
  type SplitChangesUpdater = (noCache?: boolean, till?: number, instantUpdate?: InstantUpdate) => Promise<boolean>
@@ -1,8 +1,8 @@
1
1
  // Type definitions for Split Software SDKs
2
2
  // Project: https://www.split.io/
3
3
 
4
- import { RedisOptions } from 'ioredis';
5
- import { RequestOptions } from 'http';
4
+ import type { RedisOptions } from 'ioredis';
5
+ import type { RequestOptions } from 'http';
6
6
 
7
7
  export as namespace SplitIO;
8
8
  export = SplitIO;
@@ -492,20 +492,6 @@ declare namespace SplitIO {
492
492
  removeItem(key: string): void | Promise<void>;
493
493
  }
494
494
 
495
- /**
496
- * Metadata keys for SDK update events.
497
- */
498
- const enum SdkUpdateMetadataKeys {
499
- /**
500
- * The update event emitted when the SDK cache is updated with new data for flags.
501
- */
502
- FLAGS_UPDATE = 'FLAGS_UPDATE',
503
- /**
504
- * The update event emitted when the SDK cache is updated with new data for segments.
505
- */
506
- SEGMENTS_UPDATE = 'SEGMENTS_UPDATE'
507
- }
508
-
509
495
  /**
510
496
  * Metadata for the update event emitted when the SDK cache is updated with new data for flags or segments.
511
497
  */
@@ -513,7 +499,7 @@ declare namespace SplitIO {
513
499
  /**
514
500
  * The type of update event.
515
501
  */
516
- type: SdkUpdateMetadataKeys.FLAGS_UPDATE | SdkUpdateMetadataKeys.SEGMENTS_UPDATE
502
+ type: 'FLAGS_UPDATE' | 'SEGMENTS_UPDATE'
517
503
  /**
518
504
  * The names of the flags or segments that were updated.
519
505
  */