@featbit/js-client-sdk 4.2.12 → 4.2.14

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.
@@ -55,10 +55,7 @@ class LocalStorageStore extends BaseStore_1.BaseStore {
55
55
  this.store = store;
56
56
  }
57
57
  else {
58
- this.store = {
59
- flags: {},
60
- version: 0
61
- };
58
+ this.store.version = 0;
62
59
  }
63
60
  });
64
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorageStore.js","sourceRoot":"","sources":["../../../../src/platform/browser/LocalStorageStore.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6CAG2B;AAE3B,qDAAkD;AAElD,6DAA6E;AAE7E,MAAqB,iBAAkB,SAAQ,qBAAS;IAGtD,YAAY,OAAiB;QAC3B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC;IAChC,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,8CAA8C;IAChD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED,wDAAwD;IACxC,QAAQ;;YACtB,YAAY,CAAC,OAAO,CAAC,6BAAqB,EAAE,IAAA,6BAAa,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,CAAC;KAAA;IAEwB,kBAAkB;;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,uBAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC;KAAA;IAEwB,oBAAoB;;YAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,uBAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,KAAK,GAA6B,IAAI,CAAC;YAE3C,IAAI;gBACF,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;iBAClC;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;aAC/E;YAED,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACpB;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG;oBACX,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,CAAC;iBACX,CAAC;aACH;QACH,CAAC;KAAA;CACF;AApDD,oCAoDC"}
1
+ {"version":3,"file":"LocalStorageStore.js","sourceRoot":"","sources":["../../../../src/platform/browser/LocalStorageStore.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6CAG2B;AAE3B,qDAAkD;AAElD,6DAA6E;AAE7E,MAAqB,iBAAkB,SAAQ,qBAAS;IAGtD,YAAY,OAAiB;QAC3B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC;IAChC,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,8CAA8C;IAChD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED,wDAAwD;IACxC,QAAQ;;YACtB,YAAY,CAAC,OAAO,CAAC,6BAAqB,EAAE,IAAA,6BAAa,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,CAAC;KAAA;IAEwB,kBAAkB;;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,uBAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC;KAAA;IAEwB,oBAAoB;;YAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,uBAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,KAAK,GAA6B,IAAI,CAAC;YAE3C,IAAI;gBACF,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;iBAClC;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;aAC/E;YAED,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACpB;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;aACxB;QACH,CAAC;KAAA;CACF;AAjDD,oCAiDC"}
@@ -20,6 +20,8 @@ class BaseStore {
20
20
  return __awaiter(this, void 0, void 0, function* () {
21
21
  this._user = Object.assign({}, user);
22
22
  yield this.saveUser();
23
+ // load version
24
+ yield this.loadStoreFromStorage();
23
25
  });
24
26
  }
25
27
  get user() {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseStore.js","sourceRoot":"","sources":["../../../src/store/BaseStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseStore.js","sourceRoot":"","sources":["../../../src/store/BaseStore.ts"],"names":[],"mappings":"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"}
@@ -37,11 +37,16 @@ class InMemoryStore extends BaseStore_1.BaseStore {
37
37
  });
38
38
  }
39
39
  loadStoreFromStorage() {
40
- var _a;
41
40
  return __awaiter(this, void 0, void 0, function* () {
42
41
  const userHash = yield (0, utils_1.hashSerializeUser)(this._user);
43
42
  const storageKey = `${store_1.StoreStorageKey}-${userHash}`;
44
- this.store = (_a = (0, utils_1.deepCopy)(this.allStores[storageKey])) !== null && _a !== void 0 ? _a : { flags: {}, version: 0 };
43
+ const store = this.allStores[storageKey];
44
+ if (!!store) {
45
+ this.store = store;
46
+ }
47
+ else {
48
+ this.store.version = 0;
49
+ }
45
50
  });
46
51
  }
47
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryStore.js","sourceRoot":"","sources":["../../../src/store/InMemoryStore.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAGiB;AACjB,2CAAwC;AACxC,oCAAuD;AAEvD,MAAqB,aAAc,SAAQ,qBAAS;IAGlD;QACE,KAAK,EAAE,CAAC;QAHF,cAAS,GAAyD,EAAE,CAAC;IAI7E,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,8CAA8C;IAChD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAEe,QAAQ;;YACtB,wCAAwC;QAC1C,CAAC;KAAA;IAEwB,kBAAkB;;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,uBAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;KAAA;IAEwB,oBAAoB;;;YAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,uBAAe,IAAI,QAAQ,EAAE,CAAC;YAEpD,IAAI,CAAC,KAAK,GAAG,MAAA,IAAA,gBAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,mCAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;KAChF;CACF;AAhCD,gCAgCC"}
1
+ {"version":3,"file":"InMemoryStore.js","sourceRoot":"","sources":["../../../src/store/InMemoryStore.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAGiB;AACjB,2CAAwC;AACxC,oCAAuD;AAEvD,MAAqB,aAAc,SAAQ,qBAAS;IAGlD;QACE,KAAK,EAAE,CAAC;QAHF,cAAS,GAAyD,EAAE,CAAC;IAI7E,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,8CAA8C;IAChD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAEe,QAAQ;;YACtB,wCAAwC;QAC1C,CAAC;KAAA;IAEwB,kBAAkB;;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,uBAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;KAAA;IAEwB,oBAAoB;;YAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,uBAAe,IAAI,QAAQ,EAAE,CAAC;YAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAEzC,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACpB;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;aACxB;QACH,CAAC;KAAA;CACF;AAtCD,gCAsCC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.name = exports.version = void 0;
4
- exports.version = "4.2.12";
4
+ exports.version = "4.2.14";
5
5
  exports.name = "@featbit/js-client-sdk";
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorageStore.d.ts","sourceRoot":"","sources":["../../../../src/platform/browser/LocalStorageStore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,SAAS;IACtD,OAAO,CAAC,MAAM,CAAU;gBAEZ,OAAO,EAAE,QAAQ;IAO7B,KAAK,IAAI,IAAI;IAIb,IAAI,WAAW,IAAI,MAAM,CAExB;cAGe,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAIhB,kBAAkB;cAMlB,oBAAoB;CAuB9C"}
1
+ {"version":3,"file":"LocalStorageStore.d.ts","sourceRoot":"","sources":["../../../../src/platform/browser/LocalStorageStore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,SAAS;IACtD,OAAO,CAAC,MAAM,CAAU;gBAEZ,OAAO,EAAE,QAAQ;IAO7B,KAAK,IAAI,IAAI;IAIb,IAAI,WAAW,IAAI,MAAM,CAExB;cAGe,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAIhB,kBAAkB;cAMlB,oBAAoB;CAoB9C"}
@@ -53,10 +53,7 @@ export default class LocalStorageStore extends BaseStore {
53
53
  this.store = store;
54
54
  }
55
55
  else {
56
- this.store = {
57
- flags: {},
58
- version: 0
59
- };
56
+ this.store.version = 0;
60
57
  }
61
58
  });
62
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorageStore.js","sourceRoot":"","sources":["../../../../src/platform/browser/LocalStorageStore.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,eAAe,EACI,qBAAqB,EACzC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,SAAS;IAGtD,YAAY,OAAiB;QAC3B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC;IAChC,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,8CAA8C;IAChD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED,wDAAwD;IACxC,QAAQ;;YACtB,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,CAAC;KAAA;IAEwB,kBAAkB;;YACzC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,eAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC;KAAA;IAEwB,oBAAoB;;YAC3C,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,eAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,KAAK,GAA6B,IAAI,CAAC;YAE3C,IAAI;gBACF,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;iBAClC;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;aAC/E;YAED,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACpB;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG;oBACX,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,CAAC;iBACX,CAAC;aACH;QACH,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"LocalStorageStore.js","sourceRoot":"","sources":["../../../../src/platform/browser/LocalStorageStore.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,eAAe,EACI,qBAAqB,EACzC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,SAAS;IAGtD,YAAY,OAAiB;QAC3B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC;IAChC,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,8CAA8C;IAChD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED,wDAAwD;IACxC,QAAQ;;YACtB,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,CAAC;KAAA;IAEwB,kBAAkB;;YACzC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,eAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC;KAAA;IAEwB,oBAAoB;;YAC3C,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,eAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,KAAK,GAA6B,IAAI,CAAC;YAE3C,IAAI;gBACF,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;iBAClC;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;aAC/E;YAED,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACpB;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;aACxB;QACH,CAAC;KAAA;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseStore.d.ts","sourceRoot":"","sources":["../../../src/store/BaseStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,qBAAa,SAAU,YAAW,MAAM;IACtC,SAAS,CAAC,KAAK,EAAE,iBAAiB,CAA4B;IAE9D,SAAS,CAAC,UAAU,UAAS;IAE7B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAe;;IAK/B,QAAQ,CAAC,IAAI,EAAE,KAAK;IAM1B,IAAI,IAAI,IAAI,KAAK,CAEhB;cAEe,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAyBtE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAapD,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC;IAYxC,IAAI,CAAC,OAAO,EAAE,iBAAiB;IAgB/B,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe;IAInD,WAAW,IAAI,OAAO;IAKtB,KAAK,IAAI,IAAI;IAIb,IAAI,OAAO,IAAI,MAAM,CAEpB;IAGD,IAAI,WAAW,IAAI,MAAM,CAExB;cAGe,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAIzB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;cAIrC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAEpD"}
1
+ {"version":3,"file":"BaseStore.d.ts","sourceRoot":"","sources":["../../../src/store/BaseStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,qBAAa,SAAU,YAAW,MAAM;IACtC,SAAS,CAAC,KAAK,EAAE,iBAAiB,CAA4B;IAE9D,SAAS,CAAC,UAAU,UAAS;IAE7B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAe;;IAK/B,QAAQ,CAAC,IAAI,EAAE,KAAK;IAS1B,IAAI,IAAI,IAAI,KAAK,CAEhB;cAEe,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAyBtE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAapD,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC;IAYxC,IAAI,CAAC,OAAO,EAAE,iBAAiB;IAgB/B,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe;IAInD,WAAW,IAAI,OAAO;IAKtB,KAAK,IAAI,IAAI;IAIb,IAAI,OAAO,IAAI,MAAM,CAEpB;IAGD,IAAI,WAAW,IAAI,MAAM,CAExB;cAGe,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAIzB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;cAIrC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAEpD"}
@@ -17,6 +17,8 @@ export class BaseStore {
17
17
  return __awaiter(this, void 0, void 0, function* () {
18
18
  this._user = Object.assign({}, user);
19
19
  yield this.saveUser();
20
+ // load version
21
+ yield this.loadStoreFromStorage();
20
22
  });
21
23
  }
22
24
  get user() {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseStore.js","sourceRoot":"","sources":["../../../src/store/BaseStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseStore.js","sourceRoot":"","sources":["../../../src/store/BaseStore.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryStore.d.ts","sourceRoot":"","sources":["../../../src/store/InMemoryStore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAClD,OAAO,CAAC,SAAS,CAA4D;;IAO7E,KAAK,IAAI,IAAI;IAIb,IAAI,WAAW,IAAI,MAAM,CAExB;cAEe,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAIhB,kBAAkB;cAMlB,oBAAoB;CAM9C"}
1
+ {"version":3,"file":"InMemoryStore.d.ts","sourceRoot":"","sources":["../../../src/store/InMemoryStore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAClD,OAAO,CAAC,SAAS,CAA4D;;IAO7E,KAAK,IAAI,IAAI;IAIb,IAAI,WAAW,IAAI,MAAM,CAExB;cAEe,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAIhB,kBAAkB;cAMlB,oBAAoB;CAY9C"}
@@ -35,11 +35,16 @@ export default class InMemoryStore extends BaseStore {
35
35
  });
36
36
  }
37
37
  loadStoreFromStorage() {
38
- var _a;
39
38
  return __awaiter(this, void 0, void 0, function* () {
40
39
  const userHash = yield hashSerializeUser(this._user);
41
40
  const storageKey = `${StoreStorageKey}-${userHash}`;
42
- this.store = (_a = deepCopy(this.allStores[storageKey])) !== null && _a !== void 0 ? _a : { flags: {}, version: 0 };
41
+ const store = this.allStores[storageKey];
42
+ if (!!store) {
43
+ this.store = store;
44
+ }
45
+ else {
46
+ this.store.version = 0;
47
+ }
43
48
  });
44
49
  }
45
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryStore.js","sourceRoot":"","sources":["../../../src/store/InMemoryStore.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAGlD;QACE,KAAK,EAAE,CAAC;QAHF,cAAS,GAAyD,EAAE,CAAC;IAI7E,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,8CAA8C;IAChD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAEe,QAAQ;;YACtB,wCAAwC;QAC1C,CAAC;KAAA;IAEwB,kBAAkB;;YACzC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,eAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;KAAA;IAEwB,oBAAoB;;;YAC3C,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,eAAe,IAAI,QAAQ,EAAE,CAAC;YAEpD,IAAI,CAAC,KAAK,GAAG,MAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,mCAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;KAChF;CACF"}
1
+ {"version":3,"file":"InMemoryStore.js","sourceRoot":"","sources":["../../../src/store/InMemoryStore.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAGlD;QACE,KAAK,EAAE,CAAC;QAHF,cAAS,GAAyD,EAAE,CAAC;IAI7E,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,8CAA8C;IAChD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAEe,QAAQ;;YACtB,wCAAwC;QAC1C,CAAC;KAAA;IAEwB,kBAAkB;;YACzC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,eAAe,IAAI,QAAQ,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;KAAA;IAEwB,oBAAoB;;YAC3C,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,eAAe,IAAI,QAAQ,EAAE,CAAC;YAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAEzC,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACpB;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;aACxB;QACH,CAAC;KAAA;CACF"}
@@ -1,3 +1,3 @@
1
- export declare const version = "4.2.12";
1
+ export declare const version = "4.2.14";
2
2
  export declare const name = "@featbit/js-client-sdk";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
- export const version = "4.2.12";
1
+ export const version = "4.2.14";
2
2
  export const name = "@featbit/js-client-sdk";
3
3
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,2 @@
1
+ !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i=e();for(var n in i)("object"==typeof exports?exports:t)[n]=i[n]}}(this,()=>(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{AsyncEvent:()=>b,BaseStore:()=>kt,BasicLogger:()=>ut,BootstrapValidator:()=>X,BrowserRequests:()=>vt,BrowserWebSocket:()=>St,ClientError:()=>N,CurrentUserStorageKey:()=>a,DataSyncModeEnum:()=>jt,DateValidator:()=>et,DefaultEventProcessor:()=>A,DefaultEventQueue:()=>I,DefaultEventSender:()=>L,DefaultEventSerializer:()=>D,DeliveryStatus:()=>p,EmptyString:()=>Kt,EvalEvent:()=>O,EventDispatcher:()=>R,FactoryOrInstance:()=>W,FbClientBuilder:()=>ne,FbClientCore:()=>Gt,FlushEvent:()=>w,Function:()=>G,JsonBootstrapProvider:()=>c,KindValidator:()=>it,MetricEvent:()=>k,MinInt:()=>At,NullBootstrapProvider:()=>h,NullDataSynchronizer:()=>Nt,NullEventProcessor:()=>B,NullableBoolean:()=>Y,NumberWithMinimum:()=>H,PayloadEvent:()=>E,PollingError:()=>j,ReasonKinds:()=>f,SafeLogger:()=>ht,ShutdownEvent:()=>S,StoreItemOriginEnum:()=>l,StoreStorageKey:()=>o,StreamResponseEventType:()=>bt,StreamingError:()=>U,StringMatchingRegex:()=>Q,TimeoutError:()=>z,Type:()=>q,TypeArray:()=>J,TypeValidators:()=>nt,UnexpectedResponseError:()=>$,UserBuilder:()=>dt,UserValidator:()=>Z,ValueConverters:()=>Ot,VariationDataType:()=>g,createStreamListeners:()=>v,debounce:()=>Ft,deepCopy:()=>xt,defaultValues:()=>Vt,deserializeAll:()=>s,deserializePatch:()=>r,generateConnectionToken:()=>yt,hashSerializeUser:()=>It,isHttpRecoverable:()=>_,isNullOrUndefined:()=>u,serializeUser:()=>Tt});class i{}i.Flags={namespace:"flags"};const n=i;function s(t){const e={[n.Flags.namespace]:{}};return(null==t?void 0:t.length)&&(e[n.Flags.namespace]=t.reduce((t,e)=>(t[e.id]=Object.assign(Object.assign({},e),{version:e.timestamp||0,key:e.id,variations:e.variationOptions}),t),{})),e}function r(t){return[...(null==t?void 0:t.map(t=>({data:Object.assign(Object.assign({},t),{version:t.timestamp,key:t.id,variations:t.variationOptions}),kind:n.Flags})))||[]]}const o="fb-datastore",a="fb-user";var l;function u(t){return null==t}!function(t){t.Local="Local",t.Remote="Remote"}(l||(l={}));class c{constructor(t){const e=s((t||[]).map(t=>Object.assign(Object.assign({},t),{origin:l.Local,variationOptions:t.variationOptions||[{id:null,variation:t.variation}]})));this.dataSet={flags:e.flags,version:0}}populate(t,e,i){return new Promise((n,s)=>{if(u(this.dataSet))return n();e.init(t,this.dataSet,()=>{n(),null==i||i()})})}}class h{constructor(){this.dataSet={flags:{},version:0}}populate(t,e,i){return new Promise((t,e)=>{t(),null==i||i()})}}var d=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};const v=(t,e,i)=>{const n=new Map;return n.set("put",((t,e,i=()=>{})=>({deserializeData:s,processJson:(n,{flags:s})=>d(void 0,void 0,void 0,function*(){const r={flags:s,version:0};null==e||e.debug("Initializing all data"),yield t.init(n,r,i)})}))(t,e,null==i?void 0:i.put)),n.set("patch",((t,e,i=()=>{})=>({deserializeData:r,processJson:(n,s)=>d(void 0,void 0,void 0,function*(){if(0!==(null==s?void 0:s.length)){if((null==s?void 0:s.length)>0)for(const r of s)null==e||e.debug(`Updating ${r.data.key} in ${r.kind.namespace}`),yield t.upsert(n,r.kind,r.data,i)}else null==i||i()})}))(t,e,null==i?void 0:i.patch)),n};var g,f,p,m=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};class y{constructor(t,e,i){this.store=t,this.hasEventListeners=e,this.onChange=i}init(t,e,i){return m(this,void 0,void 0,function*(){if(t!==this.store.user.keyId)return void(null==i||i());const s=this.hasEventListeners(),[r,o]=this.store.all(n.Flags),a={flags:r,version:o};yield(t=>m(this,void 0,void 0,function*(){if(!Object.keys(e.flags).some(t=>e.flags[t].origin===l.Local)&&t){const i=Object.keys(t.flags).filter(i=>t.flags[i]&&!e.flags[i]&&t.flags[i].origin===l.Local).reduce((e,i)=>(e[i]=t.flags[i],e),{});e={version:e.version,flags:Object.assign(Object.assign({},e.flags),i)}}yield this.store.init(e),Promise.resolve().then(()=>{if(s){const i=Object.keys(e).filter(t=>"version"!==t).flatMap(i=>{const n=(null==t?void 0:t[i])||{},s=e[i],r=Object.assign(Object.assign({},n),s);return Object.keys(r).filter(t=>this.isUpdated(n&&n[t],s&&s[t]))});i.length>0&&this.onChange(i)}}),null==i||i()}))(a)})}checkUpdates(t,e,i){if(!this.hasEventListeners())return;const n=Object.keys(e).filter(t=>"version"!==t).flatMap(i=>{const n=(null==t?void 0:t[i])||{},s=e[i],r=Object.assign(Object.assign({},n),s);return Object.keys(r).filter(t=>this.isUpdated(n&&n[t],s&&s[t]))});n.length>0&&this.onChange(n),null==i||i()}upsert(t,e,i,n){return m(this,void 0,void 0,function*(){if(t!==this.store.user.keyId)return void(null==n||n());const{key:s}=i,r=this.hasEventListeners(),o=t=>m(this,void 0,void 0,function*(){yield this.store.upsert(e,i),Promise.resolve().then(()=>{r&&this.isUpdated(t,i)&&this.onChange([s])}),null==n||n()});if(r){const t=this.store.get(e,s);yield o(t||void 0)}else yield o()})}isUpdated(t,e){return!(!t&&!e||t&&e&&!(e.version>=t.version&&e.variation!==t.variation))}}!function(t){t.string="string",t.boolean="boolean",t.number="number",t.json="json",t.empty=""}(g||(g={})),function(t){t.ClientNotReady="ClientNotReady",t.Match="Match",t.WrongType="WrongType",t.FlagNotFound="FlagNotFound",t.Error="Error"}(f||(f={}));class b{get hash(){return this.timestamp.toString()}constructor(){this.timestamp=(new Date).getTime(),this.isCompletedPromise=new Promise(t=>{this.resolveFn=t})}waitForCompletion(){return this.isCompletedPromise}complete(){var t;null===(t=this.resolveFn)||void 0===t||t.call(this,this)}}class w extends b{}class S extends b{}class E{constructor(){this.timestamp=(new Date).getTime()}get hash(){return this.timestamp.toString()}toPayload(){}}class k extends E{constructor(t,e,i,n){super(),this.user=t,this.eventName=e,this.appType=i,this.metricValue=n}userPayload(){return{keyId:this.user.keyId,name:this.user.name,customizedProperties:this.user.customizedProperties}}toPayload(){return{user:this.userPayload(),metrics:[{route:"index/metric",timestamp:this.timestamp,numericValue:this.metricValue,appType:this.appType,eventName:this.eventName,type:"CustomEvent"}]}}get hash(){const t=this.toPayload(),e={user:t.user,metrics:t.metrics.map(t=>Object.assign(Object.assign({},t),{timestamp:void 0}))};return JSON.stringify(e)}}class O extends E{constructor(t,e,i,n){super(),this.user=t,this.flagKey=e,this.variation=i,this.sendToExperiment=n}userPayload(){return{keyId:this.user.keyId,name:this.user.name,customizedProperties:this.user.customizedProperties}}toPayload(){return{user:this.userPayload(),variations:[{featureFlagKey:this.flagKey,sendToExperiment:this.sendToExperiment,timestamp:this.timestamp,variation:this.variation}]}}get hash(){const t=this.toPayload(),e={user:t.user,variations:t.variations.map(t=>Object.assign(Object.assign({},t),{timestamp:void 0}))};return JSON.stringify(e)}}class P{constructor(t,e,i){this.kind=t,this.value=e,this.reason=i}static flagNotFound(t){return new P(f.FlagNotFound,null,`flag not found: ${t}`)}static matched(t){return new P(f.Match,t,t.matchReason)}toEvalEvent(t){var e,i,n;if(this.kind!==f.Match)return null;const s=null===(e=this.value)||void 0===e?void 0:e.variations.find(t=>{var e;return t.value===(null===(e=this.value)||void 0===e?void 0:e.variation)});return new O(t,null===(i=this.value)||void 0===i?void 0:i.id,s,null===(n=this.value)||void 0===n?void 0:n.sendToExperiment)}}class T{constructor(t){this.store=t}evaluate(t){const e=this.store.get(n.Flags,t);return e?P.matched(e):P.flagNotFound(t)}}!function(t){t[t.Succeeded=0]="Succeeded",t[t.Failed=1]="Failed",t[t.FailedAndMustShutDown=2]="FailedAndMustShutDown"}(p||(p={}));class I{constructor(t,e){this.capacity=t,this.logger=e,this.closed=!1,this.events=[]}addEvent(t){return!this.closed&&(this.events.length>=this.capacity?(this.logger.warn("Events are being produced faster than they can be processed. We shouldn't see this."),!1):(this.events.push(t),!0))}clear(){this.events=[]}shift(){return this.events.shift()}close(){this.closed=!0}get eventsSnapshot(){return[...this.events]}get length(){return this.events.length}get isEmpty(){return 0===this.length}}function F(t,e){const{userAgent:i,version:n}=e.sdkData();return{"Content-Type":"application/json","X-User-Agent":null!=i?i:`${e.appType}/${n}`,"User-Agent":null!=i?i:`${e.appType}/${n}`,Authorization:t}}function x(t,e,i){let n;return n=t.status?`error ${t.status}${401===t.status?" (invalid SDK key)":""}`:`I/O error (${t.message||t})`,`Received ${n} for ${e} - ${null!=i?i:"giving up permanently"}`}class j extends Error{constructor(t,e){super(t),this.status=e,this.name="FbPollingError"}}class U extends Error{constructor(t,e){super(t),this.code=e,this.name="FbStreamingError"}}class $ extends Error{constructor(t){super(t),this.name="FbUnexpectedResponseError"}}class N extends Error{constructor(t){super(t),this.name="FbClientError"}}class z extends Error{constructor(t){super(t),this.name="FeatBitTimeoutError"}}function _(t){return!(void 0===t||t>=400&&t<500&&400!==t&&408!==t&&429!==t)}const C=(t=1e3)=>{return e=void 0,i=void 0,s=function*(){return new Promise(e=>{setTimeout(e,t)})},new((n=void 0)||(n=Promise))(function(t,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(e){var i;e.done?t(e.value):(i=e.value,i instanceof n?i:new n(function(t){t(i)})).then(o,a)}l((s=s.apply(e,i||[])).next())});var e,i,n,s};class L{constructor(t){const{sdkKey:e,eventsUri:i,platform:n}=t,{info:s,requests:r}=n;this.defaultHeaders=F(e,s),this.eventsUri=i,this.requests=r}send(t,e){return i=this,n=void 0,r=function*(){const i={status:p.Succeeded},n=Object.assign({},this.defaultHeaders);let s;try{const{status:e}=yield this.requests.fetch(this.eventsUri,{headers:n,body:t,method:"POST"});if(e>=200&&e<=299)return i;if(s=new $(x({status:e,message:"some events were dropped"},"event posting")),!_(e))return i.status=p.FailedAndMustShutDown,i.error=s,i}catch(t){s=t}return s&&!e?(i.status=p.Failed,i.error=s,i):(yield C(),this.send(t,!1))},new((s=void 0)||(s=Promise))(function(t,e){function o(t){try{l(r.next(t))}catch(t){e(t)}}function a(t){try{l(r.throw(t))}catch(t){e(t)}}function l(e){var i;e.done?t(e.value):(i=e.value,i instanceof s?i:new s(function(t){t(i)})).then(o,a)}l((r=r.apply(i,n||[])).next())});var i,n,s,r}}class D{serialize(t){const e=t.map(t=>t instanceof O||t instanceof k?t.toPayload():null).filter(t=>null!==t);return JSON.stringify(e)}}var M=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};class R{constructor(t,e){this.maxEventPerRequest=50,this.stopped=!1;const{logger:i,maxEventsInQueue:n}=t;this.logger=i,this.buffer=new I(n,this.logger),this.sender=new L(t),this.serializer=new D,this.dispatchLoop(e).then()}dispatchLoop(t){return M(this,void 0,void 0,function*(){this.logger.debug("Start dispatch loop.");let e=!0;for(;e;)try{const i=t.shift();if(void 0===i){yield C(1e3);continue}i instanceof E?this.addEventToBuffer(i):i instanceof w?yield this.triggerFlush(i):i instanceof S&&(yield this.triggerFlush(i),this.stopped=!0,e=!1)}catch(t){this.logger.error("Unexpected error in event dispatcher.",t)}this.logger.debug("Finish dispatch loop.")})}addEventToBuffer(t){this.stopped||(this.buffer.addEvent(t)?this.logger.debug("Added event to buffer."):this.logger.warn("Exceeded event queue capacity, event will be dropped. Increase capacity to avoid dropping events."))}triggerFlush(t){return M(this,void 0,void 0,function*(){if(this.stopped)return void t.complete();if(this.buffer.isEmpty)return t.complete(),void this.logger.debug("Flush empty buffer.");const e=this.buffer.eventsSnapshot;this.buffer.clear();try{yield this.flushEvents(e),this.logger.debug(`${e.length} events has been flushed.`)}catch(t){this.logger.warn("Exception happened when flushing events",t)}t.complete()})}flushEvents(t){return M(this,void 0,void 0,function*(){const e=(t=this.getUniqueEvents(t)).length;for(let i=0;i<e;i+=this.maxEventPerRequest){const n=Math.min(this.maxEventPerRequest,e-i),s=t.slice(i,i+n),r=this.serializer.serialize(s),{status:o}=yield this.sender.send(r,!0);o===p.FailedAndMustShutDown&&(this.stopped=!0)}})}getUniqueEvents(t){const e=[],i=[];for(const n of t)i.includes(n.hash)||(e.push(n),i.push(n.hash));return e}}var K=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};class A{constructor(t){this.closed=!1;const{logger:e,flushInterval:i,maxEventsInQueue:n}=t;this.logger=e,this.flushInterval=i,this.eventQueue=new I(n,this.logger),this.eventDispatcher=new R(t,this.eventQueue),this.flushLoop()}flushLoop(){this.closed||setTimeout(()=>K(this,void 0,void 0,function*(){try{yield this.flush()}catch(t){this.logger.error("Unexpected error while flushing events in event processor.",t)}this.flushLoop()}),this.flushInterval)}flush(){const t=new w;return this.record(t),t.waitForCompletion()}close(){return K(this,void 0,void 0,function*(){if(this.closed)return;const t=new S;this.record(t);try{yield t.waitForCompletion()}catch(t){this.logger.error("Event processor shutdown but not complete.")}this.eventQueue.close(),this.closed=!0})}record(t){return!(u(t)||!this.eventQueue.addEvent(t)&&(t instanceof w&&t.complete(),1))}}class B{flush(){return Promise.resolve()}close(){return Promise.resolve()}record(t){return!1}}class V{static optionBelowMinimum(t,e,i){return`Config option "${t}" had invalid value of ${e}, using minimum of ${i} instead`}static unknownOption(t){return`Ignoring unknown config option "${t}"`}static wrongOptionType(t,e,i){return`Config option "${t}" should be of type ${e}, got ${i}, using default value`}static wrongOptionTypeBoolean(t,e){return`Config option "${t}" should be a boolean, got ${e}, converting to boolean`}static partialEndpoint(t){return`You have set custom uris without specifying the ${t} URI; connections may not work properly`}static mandatory(t){return`${t} is mandatory`}static invalidOptionValue(t){return`Invalid option value: ${t}`}static missingKeyInBootstrapValue(t){return`Missing key "${t}" in bootstrap value`}}class W{is(t){if(Array.isArray(t))return!1;const e=typeof t;return"function"===e||"object"===e}getType(){return"factory method or object"}}class q{constructor(t,e){this.typeName=t,this.typeOf=typeof e}is(t){return!Array.isArray(t)&&typeof t===this.typeOf}getType(){return this.typeName}}class J{constructor(t,e){this.typeName=t,this.typeOf=typeof e}is(t){return!!Array.isArray(t)&&(!(t.length>0)||t.every(t=>typeof t===this.typeOf))}getType(){return this.typeName}}class H extends q{constructor(t){super(`number with minimum value of ${t}`,0),this.min=t}is(t){return typeof t===this.typeOf&&t>=this.min}}class Q extends q{constructor(t){super(`string matching ${t}`,""),this.expression=t}is(t){return!!t.match(this.expression)}}class G{is(t){return"function"==typeof t}getType(){return"function"}}class Y{is(t){return"boolean"==typeof t||null==t}getType(){return"boolean | undefined | null"}}class X{constructor(){this.messages=[]}is(t){if("object"!=typeof t||null===t)return this.messages.push(V.invalidOptionValue("bootstrap")),!1;try{const e=t;for(let t of e){const e=Object.keys(t);if(e.includes("id")||this.messages.push(V.missingKeyInBootstrapValue("id")),e.includes("variation")||this.messages.push(V.missingKeyInBootstrapValue("variation")),e.includes("variationType")||this.messages.push(V.missingKeyInBootstrapValue("variationType")),this.messages.length>0)return!1}}catch(e){return this.messages.push(V.wrongOptionType("bootstrap",this.getType(),typeof t)),!1}return!0}getType(){return"IFlagBase[]"}}class Z{constructor(){this.messages=[]}is(t){if("object"!=typeof t||null===t)return this.messages.push(V.mandatory("user")),!1;const e=t;return"string"!=typeof e.keyId||""===e.keyId.trim()?(this.messages.push(V.mandatory("user.keyId")),!1):"string"==typeof e.name&&""!==e.name.trim()||(this.messages.push(V.mandatory("user.name")),!1)}getType(){return"user"}}const tt=/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d\d*)?(Z|[-+]\d\d(:\d\d)?)/;class et{is(t){return"number"==typeof t||"string"==typeof t&&tt.test(t)}getType(){return"date"}}class it extends Q{constructor(){super(/^(\w|\.|-)+$/)}is(t){return super.is(t)&&"kind"!==t}}class nt{static createTypeArray(t,e){return new J(t,e)}static numberWithMin(t){return new H(t)}static stringMatchingRegex(t){return new Q(t)}}function st(t){if("string"==typeof t)return t;if(void 0===t)return"undefined";if(null===t)return"null";if(Object.prototype.hasOwnProperty.call(t,"toString"))try{return t.toString()}catch(t){}if("bigint"==typeof t)return`${t}n`;try{return JSON.stringify(t)}catch(t){return t instanceof TypeError&&t.message.indexOf("circular")>=0?"[Circular]":"[Not Stringifiable]"}}nt.String=new q("string",""),nt.Number=new q("number",0),nt.ObjectOrFactory=new W,nt.Object=new q("object",{}),nt.StringArray=new J("string[]",""),nt.Boolean=new q("boolean",!0),nt.User=new Z,nt.Bootstrap=new X,nt.Function=new G,nt.Date=new et,nt.Kind=new it,nt.NullableBoolean=new Y;const rt={s:t=>st(t),d:t=>function(t){return"symbol"==typeof t?"NaN":"bigint"==typeof t?`${t}n`:String(Number(t))}(t),i:t=>function(t){return"symbol"==typeof t?"NaN":"bigint"==typeof t?`${t}n`:String(parseInt(t,10))}(t),f:t=>function(t){return"symbol"==typeof t?"NaN":String(parseFloat(t))}(t),j:t=>st(t),o:t=>st(t),O:t=>st(t),c:()=>""};function ot(...t){var e;const i=t.shift();if(nt.String.is(i)){let n="",s=0;for(;s<i.length;){const r=i.charAt(s);if("%"===r){if(s+1<i.length){const r=i.charAt(s+1);if(r in rt&&t.length){const i=t.shift();n+=null===(e=rt[r])||void 0===e?void 0:e.call(rt,i)}else n+="%"===r?"%":`%${r}`;s+=2}}else n+=r,s+=1}return t.length&&(n.length&&(n+=" "),n+=t.map(st).join(" ")),n}return t.map(st).join(" ")}const at={debug:0,info:1,warn:2,error:3,none:4},lt=["debug","info","warn","error","none"];class ut{static get(){return new ut({})}constructor(t){var e,i,n,s;this.logLevel=null!==(i=at[null!==(e=t.level)&&void 0!==e?e:"info"])&&void 0!==i?i:at.info,this.name=null!==(n=t.name)&&void 0!==n?n:"FeatBit",this.destination=null!==(s=t.destination)&&void 0!==s?s:console.log,this.formatter=t.formatter}tryFormat(...t){var e;try{return this.formatter?null===(e=this.formatter)||void 0===e?void 0:e.call(this,...t):ot(...t)}catch(e){return ot(...t)}}tryWrite(t){try{this.destination(t)}catch(e){console.error(t)}}log(t,e){if(t>=this.logLevel){const i=`${lt[t]}: [${this.name}]`;try{this.destination?this.tryWrite(`${i} ${this.tryFormat(...e)}`):console.error(...e)}catch(t){console.error(...e)}}}error(...t){this.log(at.error,t)}warn(...t){this.log(at.warn,t)}info(...t){this.log(at.info,t)}debug(...t){this.log(at.debug,t)}}const ct={error:nt.Function,warn:nt.Function,info:nt.Function,debug:nt.Function};class ht{constructor(t,e){Object.entries(ct).forEach(([e,i])=>{if(!i.is(t[e]))throw new Error(`Provided logger instance must support logger.${e}(...) method`)}),this.logger=t,this.fallback=e}log(t,e){try{this.logger[t](...e)}catch(i){this.fallback[t](...e)}}error(...t){this.log("error",t)}warn(...t){this.log("warn",t)}info(...t){this.log("info",t)}debug(...t){this.log("debug",t)}}class dt{constructor(t){this._keyId="",this._name="",this._custom=[],this._keyId=t}name(t){return this._name=t,this}custom(t,e){var i;return null===(i=this._custom)||void 0===i||i.push({name:t,value:`${e}`}),this}build(){return{name:this._name,keyId:this._keyId,customizedProperties:this._custom}}}class vt{fetch(t,e={}){return fetch(t,e)}}function gt(t){return class extends t{on(t,e,i){return this.emitter.on(t,e,i),this}addListener(t,e,i){return this.emitter.addListener(t,e,i),this}once(t,e,i){return this.emitter.once(t,e,i),this}removeListener(t,e,i){return this.emitter.removeListener(t,e,i),this}off(t,e,i){return this.emitter.off(t,e,i),this}removeAllListeners(t){return this.emitter.removeAllListeners(t),this}listeners(t){return this.emitter.listeners(t)}emit(t,...e){return this.emitter.emit(t,e),this}listenerCount(t){return this.emitter.listenerCount(t)}prependListener(t,e,i){return this.emitter.prependListener(t,e,i),this}prependOnceListener(t,e,i){return this.emitter.prependOnceListener(t,e,i),this}eventNames(){return this.emitter.eventNames()}maybeReportError(t){return this.emitter.maybeReportError(t),this}}}class ft{constructor(t){this.logger=t,this.events={}}listeningTo(t){return!!this.events[t]}on(t,e,i){return this.events[t]=this.events[t]||[],this.events[t]=this.events[t].concat({handler:e,context:i}),this}addListener(t,e,i){return this.on(t,e,i)}once(t,e,i){const n=(...s)=>{this.off(t,n,i),e.apply(i,s)};return this.on(t,n,i)}off(t,e,i){if(!this.events[t])return this;for(let n=0;n<this.events[t].length;n++)this.events[t][n].handler===e&&this.events[t][n].context===i&&(this.events[t]=this.events[t].slice(0,n).concat(this.events[t].slice(n+1)));return this}removeListener(t,e,i){return this.off(t,e,i)}removeAllListeners(t){return t?delete this.events[t]:this.events={},this}listeners(t){return this.events[t]?this.events[t].map(t=>t.handler):[]}emit(t,...e){if(!this.events[t])return this;const i=[...this.events[t]];for(let t=0;t<i.length;t++)i[t].handler.apply(i[t].context,Array.prototype.slice.call(arguments,1));return this}listenerCount(t){return this.events[t]?this.events[t].length:0}prependListener(t,e,i){return this.events[t]=this.events[t]||[],this.events[t]=[{handler:e,context:i},...this.events[t]],this}prependOnceListener(t,e,i){const n=(...s)=>{this.off(t,n,i),e.apply(i,s)};return this.prependListener(t,n,i)}eventNames(){return Object.keys(this.events)}maybeReportError(t){var e;return t?(this.listeningTo("error")?this.emit("error",t):null===(e=this.logger)||void 0===e||e.error(t),this):this}}const pt={0:"Q",1:"B",2:"W",3:"S",4:"P",5:"H",6:"D",7:"X",8:"Z",9:"U"};function mt(t,e){var i="000000000000"+t;return i.slice(i.length-e).split("").map(t=>pt[t]).join("")}function yt(t){t=t.replace(/=*$/,"");const e=Date.now(),i=mt(e,e.toString().length),n=Math.max(Math.floor(Math.random()*t.length),2);return`${mt(n,3)}${mt(i.length,2)}${t.slice(0,n)}${i}${t.slice(n)}`}var bt;!function(t){t.full="full",t.patch="patch"}(bt||(bt={}));const wt=[1e3,3e3,5e3,7e3,11e3,13e3,3e4,6e4],St=gt(class{constructor(){this.retryCounter=0,this.closed=!1,this._config={},this.emitter=new ft}identify(t){return this._config.user=t,this.doDataSync()}connect(){var t,e,i,n;let s=this;const r=Date.now(),o=this._config.streamingUri.replace(/^http/,"ws")+`?type=client&token=${yt(this._config.sdkKey)}`;this.ws=new WebSocket(o),null===(t=s.ws)||void 0===t||t.addEventListener("open",function(t){s._config.logger.info(`WebSocket connection succeeded, connection time: ${Date.now()-r} ms`),s.doDataSync(),s.sendPingMessage()}),null===(e=s.ws)||void 0===e||e.addEventListener("close",function(t){s._config.logger.warn("WebSocket closed"),4003!==t.code&&s.reconnect()}),null===(i=s.ws)||void 0===i||i.addEventListener("error",function(t){s._config.logger.debug("error")}),null===(n=s.ws)||void 0===n||n.addEventListener("message",function(t){const e=JSON.parse(t.data);if("data-sync"===e.messageType){if(e.data.userKeyId!==s._config.user.keyId)return;switch(e.data.eventType){case bt.patch:s.emitter.emit("patch",e);break;case bt.full:s.emitter.emit("put",e)}}})}close(){var t;this.closed=!0,null===(t=this.ws)||void 0===t||t.close(4003,"The client is closed by user"),this.ws=void 0}config(t){t.emitter&&(this.emitter=t.emitter),this._config=Object.assign({},t)}sendPingMessage(){const t={messageType:"ping",data:null};setTimeout(()=>{var e;try{(null===(e=this.ws)||void 0===e?void 0:e.readyState)===WebSocket.OPEN?(this._config.logger.debug("sending ping"),this.ws.send(JSON.stringify(t)),this.sendPingMessage()):this._config.logger.debug(`socket closed at ${new Date}`)}catch(t){this._config.logger.debug(t)}},this._config.pingInterval)}doDataSync(){var t,e;const i={messageType:"data-sync",data:{timestamp:this._config.getStoreTimestamp(),user:this._config.user}};try{return(null===(t=this.ws)||void 0===t?void 0:t.readyState)===WebSocket.OPEN?(this._config.logger.debug("requesting data"),null===(e=this.ws)||void 0===e||e.send(JSON.stringify(i)),!0):(this._config.logger.error("not requesting data because socket not open"),!1)}catch(t){return this._config.logger.debug(t),!1}}reconnect(){if(!this.closed){this.ws=void 0;const t=wt[Math.min(this.retryCounter++,wt.length-1)];this._config.logger.info(`The client will try to reconnect in ${t} milliseconds.`),setTimeout(()=>{this._config.logger.info(`The client is trying to reconnect, flag evaluation results may be stale until reconnected, waited for: ${t} milliseconds`),this.connect()},t)}}});var Et=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};class kt{constructor(){this.store={},this.initCalled=!1,this._user={}}identify(t){return Et(this,void 0,void 0,function*(){this._user=Object.assign({},t),yield this.saveUser(),yield this.loadStoreFromStorage()})}get user(){return this._user}addItem(t,e,i){return Et(this,void 0,void 0,function*(){let n=this.store[t.namespace];if(n||(n={},this.store[t.namespace]=n),Object.hasOwnProperty.call(n,e)){const t=n[e];(!t||t.version<=i.version)&&(n[e]=i)}else n[e]=i;i.version>this.store.version&&(this.store.version=i.version),yield this.dumpStoreToStorage()})}get(t,e){const i=this.store[t.namespace];if(i&&Object.prototype.hasOwnProperty.call(i,e)){const t=i[e];if(t)return t}return null}all(t){var e;const i={},n=null!==(e=this.store[t.namespace])&&void 0!==e?e:{};return Object.entries(n).forEach(([t,e])=>{e&&(i[t]=e)}),[i,this.store.version]}init(t){return Et(this,void 0,void 0,function*(){this.store=t,Object.keys(t).map(e=>{Object.entries(t[e]).forEach(([t,e])=>{const i=e;i.version>this.store.version&&(this.store.version=i.version)})}),yield this.dumpStoreToStorage(),this.initCalled=!0})}upsert(t,e){return Et(this,void 0,void 0,function*(){yield this.addItem(t,e.key,e)})}initialized(){return this.initCalled}close(){}get version(){return this.store.version}get description(){return""}saveUser(){return Et(this,void 0,void 0,function*(){})}loadStoreFromStorage(){return Et(this,void 0,void 0,function*(){})}dumpStoreToStorage(){return Et(this,void 0,void 0,function*(){})}}class Ot{static bool(t){return"TRUE"===(null==t?void 0:t.toUpperCase())?Ot.success(!0):"FALSE"===(null==t?void 0:t.toUpperCase())?Ot.success(!1):Ot.error()}static number(t){const e=Number(t);return Number.isNaN(e)?Ot.error():Ot.success(e)}static string(t){return Ot.success(t)}static json(t){try{const e=JSON.parse(t);return Ot.success(e)}catch(t){return Ot.error()}}static success(t){return{isSucceeded:!0,value:t}}static error(){return{isSucceeded:!1}}}var Pt=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};function Tt(t){var e,i;return t?`${t.keyId},${null!==(e=t.name)&&void 0!==e?e:""},${null===(i=t.customizedProperties)||void 0===i?void 0:i.sort((t,e)=>{const i=t.name.toLowerCase(),n=e.name.toLowerCase();return i<n?-1:i>n?1:0}).map(t=>`${t.name}:${t.value}`).join(",")}`:""}function It(t){return Pt(this,void 0,void 0,function*(){const e=Tt(t);if(!e)return"";const i=(new TextEncoder).encode(e),n=yield crypto.subtle.digest("SHA-256",i);return Array.from(new Uint8Array(n)).map(t=>t.toString(16).padStart(2,"0")).join("")})}const Ft=(t,e=5e3)=>{let i;return(...n)=>{clearTimeout(i),i=setTimeout(()=>{t(...n)},e)}};function xt(t){return JSON.parse(JSON.stringify(t))}var jt,Ut=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};class $t extends kt{constructor(){super(),this.allStores={}}close(){}get description(){return"in-memory-store"}saveUser(){return Ut(this,void 0,void 0,function*(){})}dumpStoreToStorage(){return Ut(this,void 0,void 0,function*(){const t=yield It(this._user),e=`${o}-${t}`;this.allStores[e]=xt(this.store)})}loadStoreFromStorage(){return Ut(this,void 0,void 0,function*(){const t=yield It(this._user),e=`${o}-${t}`,i=this.allStores[e];i?this.store=i:this.store.version=0})}}!function(t){t.POLLING="polling",t.STREAMING="streaming"}(jt||(jt={}));class Nt{close(){}start(){}stop(){}identify(){return t=this,e=void 0,n=function*(){},new((i=void 0)||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())});var t,e,i,n}}var zt=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};class _t{constructor(t,e,i,n,s){this.requestor=e,this.getStoreTimestamp=i,this.listeners=n,this.errorHandler=s,this.stopped=!1,this.logger=t.logger,this.pollingInterval=t.pollingInterval,this.user=t.user}poll(t,e){var i;if(this.stopped)return;const n=Date.now();null===(i=this.logger)||void 0===i||i.debug("Polling for feature flag and segments updates"),this.requestor.requestData(this.getStoreTimestamp(),this.user,(i,s)=>zt(this,void 0,void 0,function*(){var r,o,a,u,c,h,d;const v=Date.now()-n,g=Math.max(this.pollingInterval-v,0);if(null===(r=this.logger)||void 0===r||r.debug("Elapsed: %d ms, sleeping for %d ms",v,g),i){const{status:n}=i;if(!_(n)){const t=x(i,"polling request");return null===(o=this.logger)||void 0===o||o.error(t),null===(a=this.errorHandler)||void 0===a||a.call(this,new j(t,n)),void(null==e||e())}null===(u=this.logger)||void 0===u||u.warn(x(i,"polling request","will retry")),this.timeoutHandle=setTimeout(()=>{this.poll(t,e)},g)}else{let e=[],i=null===(c=this.user)||void 0===c?void 0:c.keyId,n=this.listeners.get("patch");if(s){const t=JSON.parse(s);if("data-sync"===t.messageType){switch(t.data.eventType){case bt.patch:n=this.listeners.get("patch");break;case bt.full:n=this.listeners.get("put")}({featureFlags:e,userKeyId:i}=t.data),e=e.map(t=>Object.assign(Object.assign({},t),{origin:l.Remote}))}}const r=null===(h=null==n?void 0:n.deserializeData)||void 0===h?void 0:h.call(n,e);yield null===(d=null==n?void 0:n.processJson)||void 0===d?void 0:d.call(n,i,r),null==t||t(),this.timeoutHandle=setTimeout(()=>{this.poll()},g)}}))}identify(t){return zt(this,void 0,void 0,function*(){return this.user=Object.assign({},t),this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0),new Promise((t,e)=>{this.poll(t,e)})})}close(){this.stop()}start(){this.poll()}stop(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0),this.stopped=!0}}var Ct=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};class Lt{constructor(t,e,i,n){this.requests=n,this.headers=F(t,i),this.uri=e.pollingUri}request(t,e){return Ct(this,void 0,void 0,function*(){const i=yield this.requests.fetch(t,e),n=yield i.text();return{res:i,body:n}})}requestData(t,e,i){return Ct(this,void 0,void 0,function*(){const n={method:"POST",headers:this.headers,body:JSON.stringify(e)};try{const{res:e,body:s}=yield this.request(`${this.uri}?timestamp=${null!=t?t:0}`,n);if(200!==e.status&&304!==e.status){const t=new U(`Unexpected status code: ${e.status}`,e.status);return i(t,void 0)}return i(void 0,304===e.status?null:s)}catch(t){return i(t,void 0)}})}}var Dt=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};const Mt=class{constructor(t,e,i,n,s,r,o){this.getStoreTimestamp=s,this.listeners=r;const{logger:a,streamingUri:u}=i;this.logger=a,this.socket=n,this.socket.config({sdkKey:t,streamingUri:u,pingInterval:o,user:e,logger:a,getStoreTimestamp:s}),this.listeners.forEach(({deserializeData:t,processJson:e},i)=>{var n;null===(n=this.socket)||void 0===n||n.addListener(i,n=>Dt(this,void 0,void 0,function*(){var s,r;if(null===(s=this.logger)||void 0===s||s.debug(`Received ${i} event`),null==n?void 0:n.data){const{userKeyId:i}=n.data,s=n.data.featureFlags.map(t=>Object.assign(Object.assign({},t),{origin:l.Remote})),o=t(s);yield e(i,o),null===(r=this.identifyResolve)||void 0===r||r.call(this),this.identifyResolve=void 0}}))})}identify(t){var e;return Dt(this,void 0,void 0,function*(){const i=null===(e=this.socket)||void 0===e?void 0:e.identify(t);return new Promise((t,e)=>{this.identifyResolve=t,i||e(new Error("Websocket identify failed"))})})}start(){var t;this.logConnectionStarted(),null===(t=this.socket)||void 0===t||t.connect()}logConnectionStarted(){var t;this.connectionAttemptStartTime=Date.now(),null===(t=this.logger)||void 0===t||t.info(`Stream connection attempt StartTime ${this.connectionAttemptStartTime}`)}close(){this.stop()}stop(){var t;null===(t=this.socket)||void 0===t||t.close(),this.socket=void 0}};function Rt(t){return t.replace(/\/+$/,"")}const Kt="",At=2147483648,Bt={startWaitTime:nt.Number,sdkKey:nt.String,pollingUri:nt.String,streamingUri:nt.String,eventsUri:nt.String,webSocketPingInterval:nt.Number,logger:nt.Object,logLevel:nt.String,store:nt.ObjectOrFactory,dataSynchronizer:nt.ObjectOrFactory,flushInterval:nt.Number,maxEventsInQueue:nt.Number,disableEvents:nt.Boolean,pollingInterval:nt.Number,offline:nt.Boolean,dataSyncMode:nt.String,bootstrap:nt.Bootstrap,user:nt.User},Vt={startWaitTime:5e3,sdkKey:"",pollingUri:"",streamingUri:"",eventsUri:"",dataSyncMode:jt.STREAMING,sendEvents:!0,webSocketPingInterval:18e3,flushInterval:2e3,maxEventsInQueue:1e4,disableEvents:!1,pollingInterval:3e4,offline:!1,store:t=>new $t,bootstrap:void 0,user:void 0};class Wt{constructor(t={}){var e,i;this.bootstrapProvider=new h,t=t||{},this.logger=t.logger;const{errors:n,validatedOptions:s}=function(t){let e=[];const i=Object.assign({},Vt);return Object.keys(t).forEach(n=>{var s;const r=t[n],o=Bt[n];if(o)if(o.is(r))i[n]=r;else if("boolean"===o.getType())e.push(V.wrongOptionTypeBoolean(n,typeof r)),i[n]=!!r;else if(o instanceof H&&nt.Number.is(r)){const{min:t}=o;e.push(V.optionBelowMinimum(n,r,t)),i[n]=t}else o instanceof Z?(e=[...e,...o.messages],i[n]=Vt[n]):(e.push(V.wrongOptionType(n,o.getType(),typeof r)),i[n]=Vt[n]);else null===(s=t.logger)||void 0===s||s.warn(V.unknownOption(n))}),{errors:e,validatedOptions:i}}(t);if(n.forEach(t=>{var e;null===(e=this.logger)||void 0===e||e.error(t)}),this.user=s.user,function(t,e){var i,n,s;const{streamingUri:r,pollingUri:o,eventsUri:a}=t,l=u(r)||r===Kt,c=u(o)||o===Kt,h=u(a)||a===Kt;!e.offline&&(h||l&&c)&&(h&&(null===(i=e.logger)||void 0===i||i.error(V.partialEndpoint("eventsUri"))),e.dataSyncMode===jt.STREAMING&&l&&(null===(n=e.logger)||void 0===n||n.error(V.partialEndpoint("streamingUri"))),e.dataSyncMode===jt.POLLING&&c&&(null===(s=e.logger)||void 0===s||s.error(V.partialEndpoint("pollingUri"))))}(t,s),this.streamingUri=`${Rt(s.streamingUri)}/streaming`,this.pollingUri=`${Rt(s.pollingUri)}/api/public/sdk/client/latest-all`,this.eventsUri=`${Rt(s.eventsUri)}/api/public/insight/track`,this.startWaitTime=s.startWaitTime,this.sdkKey=s.sdkKey,this.webSocketPingInterval=s.webSocketPingInterval,this.flushInterval=s.flushInterval,this.maxEventsInQueue=s.maxEventsInQueue,this.disableEvents=s.disableEvents,this.pollingInterval=s.pollingInterval,this.offline=s.offline,s.bootstrap&&s.bootstrap.length>0)try{this.bootstrapProvider=new c(s.bootstrap)}catch(t){null===(e=this.logger)||void 0===e||e.error("Failed to parse bootstrap JSON, use NullBootstrapProvider.")}this.offline&&(null===(i=this.logger)||void 0===i||i.info("Offline mode enabled. No data synchronization with the FeatBit server will occur.")),this.dataSyncMode=s.dataSyncMode,nt.Function.is(s.dataSynchronizer)?this.dataSynchronizerFactory=s.dataSynchronizer:this.dataSynchronizerFactory=()=>s.dataSynchronizer,nt.Function.is(s.store)?this.storeFactory=s.store:this.storeFactory=()=>s.store}}class qt{constructor(t,e,i){this.sdkKey=t,this.platform=i,this.logger=e.logger,this.offline=e.offline,this.flushInterval=e.flushInterval,this.maxEventsInQueue=e.maxEventsInQueue,this.streamingUri=e.streamingUri,this.pollingUri=e.pollingUri,this.eventsUri=e.eventsUri}}class Jt{constructor(t,e){this.valid=t,this.message=e}static fromUser(t){if(!t)return Jt.contextForError("No user specified");const{keyId:e,name:i}=t;if(null==e||""===e.trim())return Jt.contextForError("key is mandatory");const n=new Jt(!0);return n._user=t,n}get user(){return this._user}get keyId(){return this._user.keyId}value(t){var e,i,n,s,r;return"keyId"===t?null===(e=this._user)||void 0===e?void 0:e.keyId:"name"===t?null===(i=this._user)||void 0===i?void 0:i.name:null===(r=null===(s=null===(n=this._user)||void 0===n?void 0:n.customizedProperties)||void 0===s?void 0:s.find(e=>e.name===t))||void 0===r?void 0:r.value}static contextForError(t){return new Jt(!1,t)}}var Ht,Qt=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};!function(t){t[t.Initializing=0]="Initializing",t[t.Initialized=1]="Initialized",t[t.Failed=2]="Failed"}(Ht||(Ht={}));class Gt{constructor(t,e,i){this.options=t,this.platform=e,this.state=Ht.Initializing,this.onError=i.onError,this.onFailed=i.onFailed,this.onReady=i.onReady;const{onUpdate:n,hasEventListeners:s}=i,r=new Wt(t);if(!r.sdkKey&&!r.offline)throw new Error("You must configure the client with an SDK key");if(!r.user)throw new Error("You must configure the client with a user");this.config=r,this.logger=r.logger,this.init(n,s)}init(t,e){var i,n,s;return Qt(this,void 0,void 0,function*(){const r=new qt(this.config.sdkKey,this.config,this.platform);if(this.store=this.config.storeFactory(r),yield this.store.identify(this.config.user),this.dataSourceUpdates=new y(this.store,e,t),this.evaluator=new T(this.store),yield this.config.bootstrapProvider.populate(this.config.user.keyId,this.dataSourceUpdates),this.config.offline)this.eventProcessor=new B,this.dataSynchronizer=new Nt,this.initSuccess();else{this.config.disableEvents?this.eventProcessor=new B:this.eventProcessor=new A(r);const t=v(this.dataSourceUpdates,this.logger,{put:()=>this.initSuccess(),patch:()=>this.initSuccess()}),e=this.config.dataSyncMode===jt.STREAMING?new Mt(this.config.sdkKey,this.config.user,r,this.platform.webSocket,()=>this.store.version,t,this.config.webSocketPingInterval):new _t(this.config,new Lt(this.config.sdkKey,this.config,this.platform.info,this.platform.requests),()=>this.store.version,t,t=>this.dataSourceErrorHandler(t));this.dataSynchronizer=null!==(s=null===(n=(i=this.config).dataSynchronizerFactory)||void 0===n?void 0:n.call(i,r,this.store,this.dataSourceUpdates,()=>this.initSuccess(),t=>this.dataSourceErrorHandler(t)))&&void 0!==s?s:e}this.start()})}identify(t){var e,i;return Qt(this,void 0,void 0,function*(){const s=new Z;if(!s.is(t))return void s.messages.forEach(t=>{var e;null===(e=this.logger)||void 0===e||e.warn(t)});const[r,o]=this.store.all(n.Flags),a={flags:Object.assign({},r),version:o};this.config.user=t,yield this.store.identify(t);try{yield this.dataSynchronizer.identify(t)}catch(t){null===(e=this.logger)||void 0===e||e.error("dataSynchronizer unable to identify user.")}const[l,u]=this.store.all(n.Flags),c={flags:Object.assign({},l),version:u};0===Object.keys(l).length?yield this.config.bootstrapProvider.populate(t.keyId,this.dataSourceUpdates):null===(i=this.dataSourceUpdates)||void 0===i||i.checkUpdates(a,c)})}start(){this.config.offline||(this.dataSynchronizer.start(),setTimeout(()=>{var t,e;if(!this.initialized()){const i=`FbClient failed to start successfully within ${this.config.startWaitTime} milliseconds. This error usually indicates a connection issue with FeatBit or an invalid sdkKey.Please double-check your sdkKey and streamingUri/pollingUri configuration. We will continue to initialize the FbClient, it still have a chance to get to work if it's a temporary network issue`,n=new z(i);return this.state=Ht.Failed,this.rejectionReason=n,null===(t=this.initReject)||void 0===t||t.call(this,n),null===(e=this.logger)||void 0===e?void 0:e.warn(i)}},this.config.startWaitTime))}initialized(){return this.state===Ht.Initialized}waitForInitialization(){return this.initializedPromise?this.initializedPromise:this.state===Ht.Initialized?(this.initializedPromise=Promise.resolve(this),this.initializedPromise):this.state===Ht.Failed?(this.initializedPromise=Promise.reject(this.rejectionReason),this.initializedPromise):(this.initializedPromise||(this.initializedPromise=new Promise((t,e)=>{this.initResolve=t,this.initReject=e})),this.initializedPromise)}boolVariation(t,e){return this.evaluateCore(t,e,Ot.bool).value}boolVariationDetail(t,e){return this.evaluateCore(t,e,Ot.bool)}jsonVariation(t,e){return this.evaluateCore(t,e,Ot.json).value}jsonVariationDetail(t,e){return this.evaluateCore(t,e,Ot.json)}numberVariation(t,e){return this.evaluateCore(t,e,Ot.number).value}numberVariationDetail(t,e){return this.evaluateCore(t,e,Ot.number)}stringVariation(t,e){return this.evaluateCore(t,e,Ot.string).value}stringVariationDetail(t,e){return this.evaluateCore(t,e,Ot.string)}variation(t,e){return this.evaluateCore(t,e).value}variationDetail(t,e){return this.evaluateCore(t,e)}getAllVariations(){var t;const e=Jt.fromUser(this.config.user);if(!e.valid){const i=new N(`${null!==(t=e.message)&&void 0!==t?t:"User not valid;"} returning default value.`);return this.onError(i),Promise.resolve([])}const[i,s]=this.store.all(n.Flags),r=Object.keys(i).map(t=>{var e;const i=this.evaluator.evaluate(t);return{flagKey:t,kind:i.kind,reason:i.reason,value:null===(e=i.value)||void 0===e?void 0:e.variation}});return Promise.resolve(r)}close(){var t;return Qt(this,void 0,void 0,function*(){yield this.eventProcessor.close(),null===(t=this.dataSynchronizer)||void 0===t||t.close(),this.store.close()})}track(t,e){const i=new k(this.config.user,t,this.platform.info.appType,null!=e?e:1);this.eventProcessor.record(i)}flush(t){return Qt(this,void 0,void 0,function*(){try{return yield this.eventProcessor.flush(),null==t||t(!0),!0}catch(e){return null==t||t(!1),!1}})}evaluateCore(t,e,i){var s,r,o;const a=Jt.fromUser(this.config.user);if(!a.valid){const i=new N(`${null!==(s=a.message)&&void 0!==s?s:"User not valid;"} returning default value.`);return this.onError(i),{flagKey:t,kind:f.Error,reason:i.message,value:e}}const u=this.evaluator.evaluate(t);if(u.kind===f.FlagNotFound){const i=new N(u.reason);return this.onError(i),{flagKey:t,kind:u.kind,reason:u.reason,value:e}}if(this.initialized()){const e=null===(o=this.store)||void 0===o?void 0:o.get(n.Flags,t);(null==e?void 0:e.origin)===l.Remote&&this.eventProcessor.record(u.toEvalEvent(this.config.user))}else null===(r=this.logger)||void 0===r||r.warn("Variation called before FeatBit client initialization completed (did you wait for the'ready' event?)");let c;if(i)c=i;else switch(u.value.variationType){case g.boolean:c=Ot.bool;break;case g.number:c=Ot.number;break;case g.json:c=Ot.json;break;case g.string:default:c=Ot.string}const{isSucceeded:h,value:d}=c(u.value.variation);return h?{flagKey:t,kind:u.kind,reason:u.reason,value:d}:{flagKey:t,kind:f.WrongType,reason:"type mismatch",value:e}}dataSourceErrorHandler(t){var e;const i=401===t.code?new Error("Authentication failed. Double check your SDK key."):t;this.onError(i),this.onFailed(i),this.initialized()||(this.state=Ht.Failed,this.rejectionReason=i,null===(e=this.initReject)||void 0===e||e.call(this,i))}initSuccess(){var t,e;this.initialized()||(this.state=Ht.Initialized,null===(t=this.logger)||void 0===t||t.info("FbClient started successfully."),null===(e=this.initResolve)||void 0===e||e.call(this,this),this.onReady())}}const Yt="4.2.14";class Xt{get appType(){return"Browser-Client-SDK"}platformData(){return{os:{},name:"Browser",additional:{}}}sdkData(){return{name:"@featbit/js-client-sdk",version:Yt,userAgent:`${this.appType}/${Yt}`}}}class Zt{constructor(t){this.info=new Xt,this.requests=new vt,this.webSocket=new St}}var te=function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{l(n.next(t))}catch(t){r(t)}}function a(t){try{l(n.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})};class ee extends kt{constructor(t){super(),this.logger=t.logger}close(){}get description(){return"local-storage-store"}saveUser(){return te(this,void 0,void 0,function*(){localStorage.setItem(a,Tt(this._user))})}dumpStoreToStorage(){return te(this,void 0,void 0,function*(){const t=yield It(this._user),e=`${o}-${t}`;localStorage.setItem(e,JSON.stringify(this.store))})}loadStoreFromStorage(){return te(this,void 0,void 0,function*(){const t=yield It(this._user),e=`${o}-${t}`,i=localStorage.getItem(e);let n=null;try{i&&i.trim().length>0&&(n=JSON.parse(i))}catch(t){this.logger.error(`error while loading local data store: ${e}`,t)}n?this.store=n:this.store.version=0})}}const ie=gt(class extends Gt{constructor(t,e=void 0){var i;const n=new ut({level:"warn",destination:console.log});let s;s=t.logger?new ht(t.logger,n):new ut({level:null!==(i=t.logLevel)&&void 0!==i?i:"warn",destination:console.log});const r=new ft(s);let{store:o}=t;o||(o=new ee(t)),super(Object.assign(Object.assign({},t),{logger:s,store:o}),null!=e?e:new Zt(Object.assign(Object.assign({},t),{logger:s})),{onError:t=>{r.listenerCount("error")&&r.emit("error",t)},onFailed:t=>{r.emit("failed",t)},onReady:()=>{r.emit("ready")},onUpdate:t=>{r.emit("update",[t]),t.forEach(t=>r.emit(`update:${t}`,t))},hasEventListeners:()=>r.eventNames().some(t=>"update"===t||"string"==typeof t&&t.startsWith("update:"))}),this.emitter=r}});class ne{constructor(t){this._options=null!=t?t:{}}build(){return new ie(this._options,this._platform)}platform(t){return this._platform=t,this}startWaitTime(t){return this._options.startWaitTime=t,this}sdkKey(t){return this._options.sdkKey=t,this}user(t){return this._options.user=t,this}streamingUri(t){return this._options.streamingUri=t,this}pollingUri(t){return this._options.pollingUri=t,this}eventsUri(t){return this._options.eventsUri=t,this}dataSyncMode(t){return this._options.dataSyncMode=t,this}pollingInterval(t){return this._options.pollingInterval=t,this}flushInterval(t){return this._options.flushInterval=t,this}maxEventsInQueue(t){return this._options.maxEventsInQueue=t,this}disableEvents(t){return this._options.disableEvents=t,this}logger(t){return this._options.logger=t,this}logLevel(t){return this._options.logLevel=t,this}offline(t){return this._options.offline=t,this}bootstrap(t){return this._options.bootstrap=t,this}dataSynchronizer(t){return this._options.dataSynchronizer=t,this}}return e})());
2
+ //# sourceMappingURL=featbit-js-client-sdk-4.2.14.js.map