@launchdarkly/js-server-sdk-common-edge 2.5.4 → 2.6.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 (38) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/package.json +1 -1
  3. package/dist/cjs/src/api/EdgeFeatureStore.d.ts +9 -2
  4. package/dist/cjs/src/api/EdgeFeatureStore.d.ts.map +1 -1
  5. package/dist/cjs/src/api/EdgeFeatureStore.js +33 -22
  6. package/dist/cjs/src/api/EdgeFeatureStore.js.map +1 -1
  7. package/dist/cjs/src/api/cache.d.ts +23 -0
  8. package/dist/cjs/src/api/cache.d.ts.map +1 -0
  9. package/dist/cjs/src/api/cache.js +3 -0
  10. package/dist/cjs/src/api/cache.js.map +1 -0
  11. package/dist/cjs/src/api/createOptions.d.ts.map +1 -1
  12. package/dist/cjs/src/api/createOptions.js +1 -6
  13. package/dist/cjs/src/api/createOptions.js.map +1 -1
  14. package/dist/cjs/src/api/index.d.ts +2 -1
  15. package/dist/cjs/src/api/index.d.ts.map +1 -1
  16. package/dist/cjs/src/api/index.js.map +1 -1
  17. package/dist/cjs/src/index.d.ts +2 -2
  18. package/dist/cjs/src/index.d.ts.map +1 -1
  19. package/dist/cjs/src/index.js.map +1 -1
  20. package/dist/esm/package.json +1 -1
  21. package/dist/esm/src/api/EdgeFeatureStore.d.ts +9 -2
  22. package/dist/esm/src/api/EdgeFeatureStore.d.ts.map +1 -1
  23. package/dist/esm/src/api/EdgeFeatureStore.js +33 -22
  24. package/dist/esm/src/api/EdgeFeatureStore.js.map +1 -1
  25. package/dist/esm/src/api/cache.d.ts +23 -0
  26. package/dist/esm/src/api/cache.d.ts.map +1 -0
  27. package/dist/esm/src/api/cache.js +2 -0
  28. package/dist/esm/src/api/cache.js.map +1 -0
  29. package/dist/esm/src/api/createOptions.d.ts.map +1 -1
  30. package/dist/esm/src/api/createOptions.js +1 -6
  31. package/dist/esm/src/api/createOptions.js.map +1 -1
  32. package/dist/esm/src/api/index.d.ts +2 -1
  33. package/dist/esm/src/api/index.d.ts.map +1 -1
  34. package/dist/esm/src/api/index.js.map +1 -1
  35. package/dist/esm/src/index.d.ts +2 -2
  36. package/dist/esm/src/index.d.ts.map +1 -1
  37. package/dist/esm/src/index.js.map +1 -1
  38. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -96,6 +96,25 @@
96
96
  * dependencies
97
97
  * @launchdarkly/js-server-sdk-common bumped from 2.2.1 to 2.2.2
98
98
 
99
+ ## [2.6.0](https://github.com/launchdarkly/js-core/compare/js-server-sdk-common-edge-v2.5.4...js-server-sdk-common-edge-v2.6.0) (2025-03-17)
100
+
101
+
102
+ ### Features
103
+
104
+ * Add TTL caching for data store ([#801](https://github.com/launchdarkly/js-core/issues/801)) ([c1de485](https://github.com/launchdarkly/js-core/commit/c1de4850c81dff8ad52276c2bfc2a2aeb87bd2d9))
105
+
106
+
107
+ ### Bug Fixes
108
+
109
+ * Remove logging of SDK option configurations ([#806](https://github.com/launchdarkly/js-core/issues/806)) ([a76d196](https://github.com/launchdarkly/js-core/commit/a76d19690a7ef5932c36bfc974affc0a192c2d4f))
110
+
111
+
112
+ ### Dependencies
113
+
114
+ * The following workspace dependencies were updated
115
+ * dependencies
116
+ * @launchdarkly/js-server-sdk-common bumped from 2.11.1 to 2.12.0
117
+
99
118
  ## [2.5.4](https://github.com/launchdarkly/js-core/compare/js-server-sdk-common-edge-v2.5.3...js-server-sdk-common-edge-v2.5.4) (2025-02-18)
100
119
 
101
120
 
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@launchdarkly/js-server-sdk-common-edge",
3
- "version": "2.5.4",
3
+ "version": "2.6.0",
4
4
  "type": "commonjs"
5
5
  }
@@ -1,4 +1,5 @@
1
1
  import type { DataKind, LDFeatureStore, LDFeatureStoreDataStorage, LDFeatureStoreItem, LDFeatureStoreKindData, LDLogger } from '@launchdarkly/js-server-sdk-common';
2
+ import Cache from './cache';
2
3
  export interface EdgeProvider {
3
4
  get: (rootKey: string) => Promise<string | null | undefined>;
4
5
  }
@@ -6,14 +7,20 @@ export declare class EdgeFeatureStore implements LDFeatureStore {
6
7
  private readonly _edgeProvider;
7
8
  private readonly _description;
8
9
  private _logger;
10
+ private _cache?;
9
11
  private readonly _rootKey;
10
- constructor(_edgeProvider: EdgeProvider, sdkKey: string, _description: string, _logger: LDLogger);
12
+ constructor(_edgeProvider: EdgeProvider, sdkKey: string, _description: string, _logger: LDLogger, _cache?: Cache | undefined);
11
13
  get(kind: DataKind, dataKey: string, callback: (res: LDFeatureStoreItem | null) => void): Promise<void>;
12
14
  all(kind: DataKind, callback?: (res: LDFeatureStoreKindData) => void): Promise<void>;
15
+ /**
16
+ * This method is used to retrieve the environment payload from the edge
17
+ * provider. If a cache is provided, it will serve from that.
18
+ */
19
+ private _getStorePayload;
13
20
  initialized(callback?: (isInitialized: boolean) => void): Promise<void>;
14
21
  init(allData: LDFeatureStoreDataStorage, callback: () => void): void;
15
22
  getDescription(): string;
16
- close: () => void;
23
+ close(): void;
17
24
  delete: () => void;
18
25
  upsert: () => void;
19
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EdgeFeatureStore.d.ts","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAG5C,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,qBAAa,gBAAiB,YAAW,cAAc;IAInD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGf,aAAa,EAAE,YAAY,EAC5C,MAAM,EAAE,MAAM,EACG,YAAY,EAAE,MAAM,EAC7B,OAAO,EAAE,QAAQ;IAKrB,GAAG,CACP,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,GACjD,OAAO,CAAC,IAAI,CAAC;IAiCV,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B1F,WAAW,CAAC,QAAQ,GAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnF,IAAI,CAAC,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIpE,cAAc,IAAI,MAAM;IAKxB,KAAK,aAAQ;IAEb,MAAM,aAAQ;IAEd,MAAM,aAAQ;CACf"}
1
+ {"version":3,"file":"EdgeFeatureStore.d.ts","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAG5C,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,qBAAa,gBAAiB,YAAW,cAAc;IAInD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM,CAAC;IAPjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGf,aAAa,EAAE,YAAY,EAC5C,MAAM,EAAE,MAAM,EACG,YAAY,EAAE,MAAM,EAC7B,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,mBAAO;IAKlB,GAAG,CACP,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,GACjD,OAAO,CAAC,IAAI,CAAC;IAwBV,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBhG;;;OAGG;YACW,gBAAgB;IAwBxB,WAAW,CAAC,QAAQ,GAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnF,IAAI,CAAC,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIpE,cAAc,IAAI,MAAM;IAIxB,KAAK,IAAI,IAAI;IAMb,MAAM,aAAQ;IAEd,MAAM,aAAQ;CACf"}
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EdgeFeatureStore = void 0;
4
4
  const js_server_sdk_common_1 = require("@launchdarkly/js-server-sdk-common");
5
5
  class EdgeFeatureStore {
6
- constructor(_edgeProvider, sdkKey, _description, _logger) {
6
+ constructor(_edgeProvider, sdkKey, _description, _logger, _cache) {
7
7
  this._edgeProvider = _edgeProvider;
8
8
  this._description = _description;
9
9
  this._logger = _logger;
10
+ this._cache = _cache;
10
11
  // unused
11
- this.close = js_server_sdk_common_1.noop;
12
12
  this.delete = js_server_sdk_common_1.noop;
13
13
  this.upsert = js_server_sdk_common_1.noop;
14
14
  this._rootKey = `LD-Env-${sdkKey}`;
@@ -18,20 +18,13 @@ class EdgeFeatureStore {
18
18
  const kindKey = namespace === 'features' ? 'flags' : namespace;
19
19
  this._logger.debug(`Requesting ${dataKey} from ${this._rootKey}.${kindKey}`);
20
20
  try {
21
- const i = await this._edgeProvider.get(this._rootKey);
22
- if (!i) {
23
- throw new Error(`${this._rootKey}.${kindKey} is not found in KV.`);
24
- }
25
- const item = (0, js_server_sdk_common_1.deserializePoll)(i);
26
- if (!item) {
27
- throw new Error(`Error deserializing ${kindKey}`);
28
- }
21
+ const storePayload = await this._getStorePayload();
29
22
  switch (namespace) {
30
23
  case 'features':
31
- callback(item.flags[dataKey]);
24
+ callback(storePayload.flags[dataKey]);
32
25
  break;
33
26
  case 'segments':
34
- callback(item.segments[dataKey]);
27
+ callback(storePayload.segments[dataKey]);
35
28
  break;
36
29
  default:
37
30
  callback(null);
@@ -47,20 +40,13 @@ class EdgeFeatureStore {
47
40
  const kindKey = namespace === 'features' ? 'flags' : namespace;
48
41
  this._logger.debug(`Requesting all from ${this._rootKey}.${kindKey}`);
49
42
  try {
50
- const i = await this._edgeProvider.get(this._rootKey);
51
- if (!i) {
52
- throw new Error(`${this._rootKey}.${kindKey} is not found in KV.`);
53
- }
54
- const item = (0, js_server_sdk_common_1.deserializePoll)(i);
55
- if (!item) {
56
- throw new Error(`Error deserializing ${kindKey}`);
57
- }
43
+ const storePayload = await this._getStorePayload();
58
44
  switch (namespace) {
59
45
  case 'features':
60
- callback(item.flags);
46
+ callback(storePayload.flags);
61
47
  break;
62
48
  case 'segments':
63
- callback(item.segments);
49
+ callback(storePayload.segments);
64
50
  break;
65
51
  default:
66
52
  callback({});
@@ -71,6 +57,27 @@ class EdgeFeatureStore {
71
57
  callback({});
72
58
  }
73
59
  }
60
+ /**
61
+ * This method is used to retrieve the environment payload from the edge
62
+ * provider. If a cache is provided, it will serve from that.
63
+ */
64
+ async _getStorePayload() {
65
+ var _a, _b;
66
+ let payload = (_a = this._cache) === null || _a === void 0 ? void 0 : _a.get(this._rootKey);
67
+ if (payload !== undefined) {
68
+ return payload;
69
+ }
70
+ const providerData = await this._edgeProvider.get(this._rootKey);
71
+ if (!providerData) {
72
+ throw new Error(`${this._rootKey} is not found in KV.`);
73
+ }
74
+ payload = (0, js_server_sdk_common_1.deserializePoll)(providerData);
75
+ if (!payload) {
76
+ throw new Error(`Error deserializing ${this._rootKey}`);
77
+ }
78
+ (_b = this._cache) === null || _b === void 0 ? void 0 : _b.set(this._rootKey, payload);
79
+ return payload;
80
+ }
74
81
  async initialized(callback = js_server_sdk_common_1.noop) {
75
82
  const config = await this._edgeProvider.get(this._rootKey);
76
83
  const result = config !== null;
@@ -83,6 +90,10 @@ class EdgeFeatureStore {
83
90
  getDescription() {
84
91
  return this._description;
85
92
  }
93
+ close() {
94
+ var _a;
95
+ return (_a = this._cache) === null || _a === void 0 ? void 0 : _a.close();
96
+ }
86
97
  }
87
98
  exports.EdgeFeatureStore = EdgeFeatureStore;
88
99
  //# sourceMappingURL=EdgeFeatureStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EdgeFeatureStore.js","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EdgeFeatureStore.js","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * General-purpose cache interface.
3
+ *
4
+ * This is used by the SDK to cache feature flags and other data. The SDK does
5
+ * not assume any particular implementation of the cache, so you can provide
6
+ * your own.
7
+ */
8
+ export default interface Cache {
9
+ /**
10
+ * Get a value from the cache. Returning `undefined` means the key was not found.
11
+ */
12
+ get(key: string): any;
13
+ /**
14
+ * Set a value in the cache.
15
+ */
16
+ set(key: string, value: any): void;
17
+ /**
18
+ * The close method offers a way to clean up any resources used by the cache
19
+ * on shutdown.
20
+ */
21
+ close(): void;
22
+ }
23
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../src/api/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,WAAW,KAAK;IAC5B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAEtB;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAEnC;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../src/api/cache.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"createOptions.d.ts","sourceRoot":"","sources":["../../../../src/api/createOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE5E,eAAO,MAAM,cAAc,EAAE,SAM5B,CAAC;AAEF,QAAA,MAAM,aAAa,YAAa,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIxC,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"createOptions.d.ts","sourceRoot":"","sources":["../../../../src/api/createOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE5E,eAAO,MAAM,cAAc,EAAE,SAM5B,CAAC;AAEF,QAAA,MAAM,aAAa,YAAa,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAwC,CAAC;AAElF,eAAe,aAAa,CAAC"}
@@ -9,11 +9,6 @@ exports.defaultOptions = {
9
9
  diagnosticOptOut: true,
10
10
  logger: js_server_sdk_common_1.BasicLogger.get(),
11
11
  };
12
- const createOptions = (options) => {
13
- var _a;
14
- const finalOptions = Object.assign(Object.assign({}, exports.defaultOptions), options);
15
- (_a = finalOptions.logger) === null || _a === void 0 ? void 0 : _a.debug(`Using LD options: ${JSON.stringify(finalOptions)}`);
16
- return finalOptions;
17
- };
12
+ const createOptions = (options) => (Object.assign(Object.assign({}, exports.defaultOptions), options));
18
13
  exports.default = createOptions;
19
14
  //# sourceMappingURL=createOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createOptions.js","sourceRoot":"","sources":["../../../../src/api/createOptions.ts"],"names":[],"mappings":";;;AAAA,6EAA4E;AAE/D,QAAA,cAAc,GAAc;IACvC,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,IAAI;IACtB,MAAM,EAAE,kCAAW,CAAC,GAAG,EAAE;CAC1B,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,OAAkB,EAAE,EAAE;;IAC3C,MAAM,YAAY,mCAAQ,sBAAc,GAAK,OAAO,CAAE,CAAC;IACvD,MAAA,YAAY,CAAC,MAAM,0CAAE,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"createOptions.js","sourceRoot":"","sources":["../../../../src/api/createOptions.ts"],"names":[],"mappings":";;;AAAA,6EAA4E;AAE/D,QAAA,cAAc,GAAc;IACvC,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,IAAI;IACtB,MAAM,EAAE,kCAAW,CAAC,GAAG,EAAE;CAC1B,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,OAAkB,EAAE,EAAE,CAAC,iCAAM,sBAAc,GAAK,OAAO,EAAG,CAAC;AAElF,kBAAe,aAAa,CAAC"}
@@ -1,4 +1,5 @@
1
+ import Cache from './cache';
1
2
  import LDClient from './LDClient';
2
3
  export * from './EdgeFeatureStore';
3
- export { LDClient };
4
+ export { LDClient, Cache };
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAkC;AAGzB,mBAHF,kBAAQ,CAGE;AADjB,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,yCAAkC;AAGzB,mBAHF,kBAAQ,CAGE;AADjB,qDAAmC"}
@@ -6,11 +6,11 @@
6
6
  *
7
7
  */
8
8
  import type { Info } from '@launchdarkly/js-server-sdk-common';
9
- import { EdgeFeatureStore, EdgeProvider, LDClient } from './api';
9
+ import { Cache, EdgeFeatureStore, EdgeProvider, LDClient } from './api';
10
10
  import { LDOptions, LDOptionsInternal } from './utils/validateOptions';
11
11
  export * from '@launchdarkly/js-server-sdk-common';
12
12
  export { EdgeFeatureStore };
13
- export type { LDClient, LDOptions, EdgeProvider };
13
+ export type { LDClient, LDOptions, EdgeProvider, Cache };
14
14
  /**
15
15
  * Do not use this function directly.
16
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAwB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAExF,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,IAAI,iBAAkB,MAAM,gBAAgB,IAAI,WAAW,iBAAiB,aAKxF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxE,OAAwB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAExF,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,IAAI,iBAAkB,MAAM,gBAAgB,IAAI,WAAW,iBAAiB,aAKxF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AASA,+BAAiE;AAIxD,iGAJA,sBAAgB,OAIA;AAHzB,6DAAwF;AAExF,qEAAmD;AAInD;;;;GAIG;AACI,MAAM,IAAI,GAAG,CAAC,YAAoB,EAAE,YAAkB,EAAE,OAA0B,EAAE,EAAE;IAC3F,qCAAqC;IACrC,IAAA,yBAAe,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEvC,OAAO,IAAI,cAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC,CAAC;AALW,QAAA,IAAI,QAKf"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AASA,+BAAwE;AAI/D,iGAJO,sBAAgB,OAIP;AAHzB,6DAAwF;AAExF,qEAAmD;AAInD;;;;GAIG;AACI,MAAM,IAAI,GAAG,CAAC,YAAoB,EAAE,YAAkB,EAAE,OAA0B,EAAE,EAAE;IAC3F,qCAAqC;IACrC,IAAA,yBAAe,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEvC,OAAO,IAAI,cAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC,CAAC;AALW,QAAA,IAAI,QAKf"}
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@launchdarkly/js-server-sdk-common-edge",
3
- "version": "2.5.4",
3
+ "version": "2.6.0",
4
4
  "type": "module"
5
5
  }
@@ -1,4 +1,5 @@
1
1
  import type { DataKind, LDFeatureStore, LDFeatureStoreDataStorage, LDFeatureStoreItem, LDFeatureStoreKindData, LDLogger } from '@launchdarkly/js-server-sdk-common';
2
+ import Cache from './cache';
2
3
  export interface EdgeProvider {
3
4
  get: (rootKey: string) => Promise<string | null | undefined>;
4
5
  }
@@ -6,14 +7,20 @@ export declare class EdgeFeatureStore implements LDFeatureStore {
6
7
  private readonly _edgeProvider;
7
8
  private readonly _description;
8
9
  private _logger;
10
+ private _cache?;
9
11
  private readonly _rootKey;
10
- constructor(_edgeProvider: EdgeProvider, sdkKey: string, _description: string, _logger: LDLogger);
12
+ constructor(_edgeProvider: EdgeProvider, sdkKey: string, _description: string, _logger: LDLogger, _cache?: Cache | undefined);
11
13
  get(kind: DataKind, dataKey: string, callback: (res: LDFeatureStoreItem | null) => void): Promise<void>;
12
14
  all(kind: DataKind, callback?: (res: LDFeatureStoreKindData) => void): Promise<void>;
15
+ /**
16
+ * This method is used to retrieve the environment payload from the edge
17
+ * provider. If a cache is provided, it will serve from that.
18
+ */
19
+ private _getStorePayload;
13
20
  initialized(callback?: (isInitialized: boolean) => void): Promise<void>;
14
21
  init(allData: LDFeatureStoreDataStorage, callback: () => void): void;
15
22
  getDescription(): string;
16
- close: () => void;
23
+ close(): void;
17
24
  delete: () => void;
18
25
  upsert: () => void;
19
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EdgeFeatureStore.d.ts","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAG5C,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,qBAAa,gBAAiB,YAAW,cAAc;IAInD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGf,aAAa,EAAE,YAAY,EAC5C,MAAM,EAAE,MAAM,EACG,YAAY,EAAE,MAAM,EAC7B,OAAO,EAAE,QAAQ;IAKrB,GAAG,CACP,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,GACjD,OAAO,CAAC,IAAI,CAAC;IAiCV,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B1F,WAAW,CAAC,QAAQ,GAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnF,IAAI,CAAC,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIpE,cAAc,IAAI,MAAM;IAKxB,KAAK,aAAQ;IAEb,MAAM,aAAQ;IAEd,MAAM,aAAQ;CACf"}
1
+ {"version":3,"file":"EdgeFeatureStore.d.ts","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAG5C,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,qBAAa,gBAAiB,YAAW,cAAc;IAInD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM,CAAC;IAPjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGf,aAAa,EAAE,YAAY,EAC5C,MAAM,EAAE,MAAM,EACG,YAAY,EAAE,MAAM,EAC7B,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,mBAAO;IAKlB,GAAG,CACP,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,GACjD,OAAO,CAAC,IAAI,CAAC;IAwBV,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBhG;;;OAGG;YACW,gBAAgB;IAwBxB,WAAW,CAAC,QAAQ,GAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnF,IAAI,CAAC,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIpE,cAAc,IAAI,MAAM;IAIxB,KAAK,IAAI,IAAI;IAMb,MAAM,aAAQ;IAEd,MAAM,aAAQ;CACf"}
@@ -1,11 +1,11 @@
1
1
  import { deserializePoll, noop } from '@launchdarkly/js-server-sdk-common';
2
2
  export class EdgeFeatureStore {
3
- constructor(_edgeProvider, sdkKey, _description, _logger) {
3
+ constructor(_edgeProvider, sdkKey, _description, _logger, _cache) {
4
4
  this._edgeProvider = _edgeProvider;
5
5
  this._description = _description;
6
6
  this._logger = _logger;
7
+ this._cache = _cache;
7
8
  // unused
8
- this.close = noop;
9
9
  this.delete = noop;
10
10
  this.upsert = noop;
11
11
  this._rootKey = `LD-Env-${sdkKey}`;
@@ -15,20 +15,13 @@ export class EdgeFeatureStore {
15
15
  const kindKey = namespace === 'features' ? 'flags' : namespace;
16
16
  this._logger.debug(`Requesting ${dataKey} from ${this._rootKey}.${kindKey}`);
17
17
  try {
18
- const i = await this._edgeProvider.get(this._rootKey);
19
- if (!i) {
20
- throw new Error(`${this._rootKey}.${kindKey} is not found in KV.`);
21
- }
22
- const item = deserializePoll(i);
23
- if (!item) {
24
- throw new Error(`Error deserializing ${kindKey}`);
25
- }
18
+ const storePayload = await this._getStorePayload();
26
19
  switch (namespace) {
27
20
  case 'features':
28
- callback(item.flags[dataKey]);
21
+ callback(storePayload.flags[dataKey]);
29
22
  break;
30
23
  case 'segments':
31
- callback(item.segments[dataKey]);
24
+ callback(storePayload.segments[dataKey]);
32
25
  break;
33
26
  default:
34
27
  callback(null);
@@ -44,20 +37,13 @@ export class EdgeFeatureStore {
44
37
  const kindKey = namespace === 'features' ? 'flags' : namespace;
45
38
  this._logger.debug(`Requesting all from ${this._rootKey}.${kindKey}`);
46
39
  try {
47
- const i = await this._edgeProvider.get(this._rootKey);
48
- if (!i) {
49
- throw new Error(`${this._rootKey}.${kindKey} is not found in KV.`);
50
- }
51
- const item = deserializePoll(i);
52
- if (!item) {
53
- throw new Error(`Error deserializing ${kindKey}`);
54
- }
40
+ const storePayload = await this._getStorePayload();
55
41
  switch (namespace) {
56
42
  case 'features':
57
- callback(item.flags);
43
+ callback(storePayload.flags);
58
44
  break;
59
45
  case 'segments':
60
- callback(item.segments);
46
+ callback(storePayload.segments);
61
47
  break;
62
48
  default:
63
49
  callback({});
@@ -68,6 +54,27 @@ export class EdgeFeatureStore {
68
54
  callback({});
69
55
  }
70
56
  }
57
+ /**
58
+ * This method is used to retrieve the environment payload from the edge
59
+ * provider. If a cache is provided, it will serve from that.
60
+ */
61
+ async _getStorePayload() {
62
+ var _a, _b;
63
+ let payload = (_a = this._cache) === null || _a === void 0 ? void 0 : _a.get(this._rootKey);
64
+ if (payload !== undefined) {
65
+ return payload;
66
+ }
67
+ const providerData = await this._edgeProvider.get(this._rootKey);
68
+ if (!providerData) {
69
+ throw new Error(`${this._rootKey} is not found in KV.`);
70
+ }
71
+ payload = deserializePoll(providerData);
72
+ if (!payload) {
73
+ throw new Error(`Error deserializing ${this._rootKey}`);
74
+ }
75
+ (_b = this._cache) === null || _b === void 0 ? void 0 : _b.set(this._rootKey, payload);
76
+ return payload;
77
+ }
71
78
  async initialized(callback = noop) {
72
79
  const config = await this._edgeProvider.get(this._rootKey);
73
80
  const result = config !== null;
@@ -80,5 +87,9 @@ export class EdgeFeatureStore {
80
87
  getDescription() {
81
88
  return this._description;
82
89
  }
90
+ close() {
91
+ var _a;
92
+ return (_a = this._cache) === null || _a === void 0 ? void 0 : _a.close();
93
+ }
83
94
  }
84
95
  //# sourceMappingURL=EdgeFeatureStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EdgeFeatureStore.js","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EdgeFeatureStore.js","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * General-purpose cache interface.
3
+ *
4
+ * This is used by the SDK to cache feature flags and other data. The SDK does
5
+ * not assume any particular implementation of the cache, so you can provide
6
+ * your own.
7
+ */
8
+ export default interface Cache {
9
+ /**
10
+ * Get a value from the cache. Returning `undefined` means the key was not found.
11
+ */
12
+ get(key: string): any;
13
+ /**
14
+ * Set a value in the cache.
15
+ */
16
+ set(key: string, value: any): void;
17
+ /**
18
+ * The close method offers a way to clean up any resources used by the cache
19
+ * on shutdown.
20
+ */
21
+ close(): void;
22
+ }
23
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../src/api/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,WAAW,KAAK;IAC5B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAEtB;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAEnC;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../src/api/cache.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"createOptions.d.ts","sourceRoot":"","sources":["../../../../src/api/createOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE5E,eAAO,MAAM,cAAc,EAAE,SAM5B,CAAC;AAEF,QAAA,MAAM,aAAa,YAAa,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIxC,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"createOptions.d.ts","sourceRoot":"","sources":["../../../../src/api/createOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE5E,eAAO,MAAM,cAAc,EAAE,SAM5B,CAAC;AAEF,QAAA,MAAM,aAAa,YAAa,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAwC,CAAC;AAElF,eAAe,aAAa,CAAC"}
@@ -6,11 +6,6 @@ export const defaultOptions = {
6
6
  diagnosticOptOut: true,
7
7
  logger: BasicLogger.get(),
8
8
  };
9
- const createOptions = (options) => {
10
- var _a;
11
- const finalOptions = Object.assign(Object.assign({}, defaultOptions), options);
12
- (_a = finalOptions.logger) === null || _a === void 0 ? void 0 : _a.debug(`Using LD options: ${JSON.stringify(finalOptions)}`);
13
- return finalOptions;
14
- };
9
+ const createOptions = (options) => (Object.assign(Object.assign({}, defaultOptions), options));
15
10
  export default createOptions;
16
11
  //# sourceMappingURL=createOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createOptions.js","sourceRoot":"","sources":["../../../../src/api/createOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAa,MAAM,oCAAoC,CAAC;AAE5E,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,IAAI;IACtB,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE;CAC1B,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,OAAkB,EAAE,EAAE;;IAC3C,MAAM,YAAY,mCAAQ,cAAc,GAAK,OAAO,CAAE,CAAC;IACvD,MAAA,YAAY,CAAC,MAAM,0CAAE,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"createOptions.js","sourceRoot":"","sources":["../../../../src/api/createOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAa,MAAM,oCAAoC,CAAC;AAE5E,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,IAAI;IACtB,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE;CAC1B,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,OAAkB,EAAE,EAAE,CAAC,iCAAM,cAAc,GAAK,OAAO,EAAG,CAAC;AAElF,eAAe,aAAa,CAAC"}
@@ -1,4 +1,5 @@
1
+ import Cache from './cache';
1
2
  import LDClient from './LDClient';
2
3
  export * from './EdgeFeatureStore';
3
- export { LDClient };
4
+ export { LDClient, Cache };
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAS,CAAC"}
@@ -6,11 +6,11 @@
6
6
  *
7
7
  */
8
8
  import type { Info } from '@launchdarkly/js-server-sdk-common';
9
- import { EdgeFeatureStore, EdgeProvider, LDClient } from './api';
9
+ import { Cache, EdgeFeatureStore, EdgeProvider, LDClient } from './api';
10
10
  import { LDOptions, LDOptionsInternal } from './utils/validateOptions';
11
11
  export * from '@launchdarkly/js-server-sdk-common';
12
12
  export { EdgeFeatureStore };
13
- export type { LDClient, LDOptions, EdgeProvider };
13
+ export type { LDClient, LDOptions, EdgeProvider, Cache };
14
14
  /**
15
15
  * Do not use this function directly.
16
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAwB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAExF,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,IAAI,iBAAkB,MAAM,gBAAgB,IAAI,WAAW,iBAAiB,aAKxF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxE,OAAwB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAExF,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,IAAI,iBAAkB,MAAM,gBAAgB,IAAI,WAAW,iBAAiB,aAKxF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAgB,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,eAAiD,MAAM,yBAAyB,CAAC;AAExF,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAG5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,YAAoB,EAAE,YAAkB,EAAE,OAA0B,EAAE,EAAE;IAC3F,qCAAqC;IACrC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEvC,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAS,gBAAgB,EAAgB,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,eAAiD,MAAM,yBAAyB,CAAC;AAExF,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAG5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,YAAoB,EAAE,YAAkB,EAAE,OAA0B,EAAE,EAAE;IAC3F,qCAAqC;IACrC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEvC,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@launchdarkly/js-server-sdk-common-edge",
3
- "version": "2.5.4",
3
+ "version": "2.6.0",
4
4
  "homepage": "https://github.com/launchdarkly/js-core/tree/main/packages/shared/sdk-server-edge",
5
5
  "repository": {
6
6
  "type": "git",
@@ -36,7 +36,7 @@
36
36
  "check": "yarn prettier && yarn lint && yarn build && yarn test && yarn doc"
37
37
  },
38
38
  "dependencies": {
39
- "@launchdarkly/js-server-sdk-common": "2.11.1",
39
+ "@launchdarkly/js-server-sdk-common": "2.12.0",
40
40
  "crypto-js": "^4.1.1"
41
41
  },
42
42
  "devDependencies": {