@launchdarkly/js-client-sdk-common 1.2.0 → 1.4.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 (91) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/LDClientImpl.d.ts +40 -32
  3. package/dist/LDClientImpl.d.ts.map +1 -1
  4. package/dist/LDClientImpl.js +179 -127
  5. package/dist/LDClientImpl.js.map +1 -1
  6. package/dist/api/ConnectionMode.d.ts +3 -1
  7. package/dist/api/ConnectionMode.d.ts.map +1 -1
  8. package/dist/api/LDClient.d.ts +1 -1
  9. package/dist/api/LDClient.d.ts.map +1 -1
  10. package/dist/api/LDEmitter.d.ts +4 -21
  11. package/dist/api/LDEmitter.d.ts.map +1 -1
  12. package/dist/api/LDEmitter.js +16 -40
  13. package/dist/api/LDEmitter.js.map +1 -1
  14. package/dist/api/LDOptions.d.ts +13 -0
  15. package/dist/api/LDOptions.d.ts.map +1 -1
  16. package/dist/configuration/Configuration.d.ts +2 -1
  17. package/dist/configuration/Configuration.d.ts.map +1 -1
  18. package/dist/configuration/Configuration.js +3 -1
  19. package/dist/configuration/Configuration.js.map +1 -1
  20. package/dist/configuration/validators.d.ts.map +1 -1
  21. package/dist/configuration/validators.js +4 -2
  22. package/dist/configuration/validators.js.map +1 -1
  23. package/dist/context/addAutoEnv.d.ts.map +1 -0
  24. package/dist/{utils → context}/addAutoEnv.js +4 -2
  25. package/dist/context/addAutoEnv.js.map +1 -0
  26. package/dist/{utils → context}/ensureKey.d.ts +1 -2
  27. package/dist/context/ensureKey.d.ts.map +1 -0
  28. package/dist/{utils → context}/ensureKey.js +6 -3
  29. package/dist/context/ensureKey.js.map +1 -0
  30. package/dist/flag-manager/ContextIndex.d.ts +39 -0
  31. package/dist/flag-manager/ContextIndex.d.ts.map +1 -0
  32. package/dist/flag-manager/ContextIndex.js +64 -0
  33. package/dist/flag-manager/ContextIndex.js.map +1 -0
  34. package/dist/flag-manager/FlagManager.d.ts +58 -0
  35. package/dist/flag-manager/FlagManager.d.ts.map +1 -0
  36. package/dist/flag-manager/FlagManager.js +74 -0
  37. package/dist/flag-manager/FlagManager.js.map +1 -0
  38. package/dist/flag-manager/FlagPersistence.d.ts +42 -0
  39. package/dist/flag-manager/FlagPersistence.d.ts.map +1 -0
  40. package/dist/flag-manager/FlagPersistence.js +120 -0
  41. package/dist/flag-manager/FlagPersistence.js.map +1 -0
  42. package/dist/flag-manager/FlagStore.d.ts +29 -0
  43. package/dist/flag-manager/FlagStore.d.ts.map +1 -0
  44. package/dist/flag-manager/FlagStore.js +28 -0
  45. package/dist/flag-manager/FlagStore.js.map +1 -0
  46. package/dist/flag-manager/FlagUpdater.d.ts +39 -0
  47. package/dist/flag-manager/FlagUpdater.d.ts.map +1 -0
  48. package/dist/flag-manager/FlagUpdater.js +69 -0
  49. package/dist/flag-manager/FlagUpdater.js.map +1 -0
  50. package/dist/flag-manager/ItemDescriptor.d.ts +10 -0
  51. package/dist/flag-manager/ItemDescriptor.d.ts.map +1 -0
  52. package/dist/flag-manager/ItemDescriptor.js +3 -0
  53. package/dist/flag-manager/ItemDescriptor.js.map +1 -0
  54. package/dist/flag-manager/calculateChangedKeys.d.ts +6 -0
  55. package/dist/flag-manager/calculateChangedKeys.d.ts.map +1 -0
  56. package/dist/flag-manager/calculateChangedKeys.js +22 -0
  57. package/dist/flag-manager/calculateChangedKeys.js.map +1 -0
  58. package/dist/polling/PollingProcessor.d.ts +3 -0
  59. package/dist/polling/PollingProcessor.d.ts.map +1 -0
  60. package/dist/polling/PollingProcessor.js +79 -0
  61. package/dist/polling/PollingProcessor.js.map +1 -0
  62. package/dist/polling/Requestor.d.ts +6 -0
  63. package/dist/polling/Requestor.d.ts.map +1 -0
  64. package/dist/polling/Requestor.js +50 -0
  65. package/dist/polling/Requestor.js.map +1 -0
  66. package/dist/storage/getOrGenerateKey.d.ts +11 -0
  67. package/dist/storage/getOrGenerateKey.d.ts.map +1 -0
  68. package/dist/storage/getOrGenerateKey.js +21 -0
  69. package/dist/storage/getOrGenerateKey.js.map +1 -0
  70. package/dist/storage/namespaceUtils.d.ts +20 -0
  71. package/dist/storage/namespaceUtils.d.ts.map +1 -0
  72. package/dist/storage/namespaceUtils.js +61 -0
  73. package/dist/storage/namespaceUtils.js.map +1 -0
  74. package/package.json +2 -2
  75. package/dist/utils/addAutoEnv.d.ts.map +0 -1
  76. package/dist/utils/addAutoEnv.js.map +0 -1
  77. package/dist/utils/calculateFlagChanges.d.ts +0 -3
  78. package/dist/utils/calculateFlagChanges.d.ts.map +0 -1
  79. package/dist/utils/calculateFlagChanges.js +0 -23
  80. package/dist/utils/calculateFlagChanges.js.map +0 -1
  81. package/dist/utils/ensureKey.d.ts.map +0 -1
  82. package/dist/utils/ensureKey.js.map +0 -1
  83. package/dist/utils/getOrGenerateKey.d.ts +0 -5
  84. package/dist/utils/getOrGenerateKey.d.ts.map +0 -1
  85. package/dist/utils/getOrGenerateKey.js +0 -29
  86. package/dist/utils/getOrGenerateKey.js.map +0 -1
  87. package/dist/utils/index.d.ts +0 -5
  88. package/dist/utils/index.d.ts.map +0 -1
  89. package/dist/utils/index.js +0 -10
  90. package/dist/utils/index.js.map +0 -1
  91. /package/dist/{utils → context}/addAutoEnv.d.ts +0 -0
@@ -0,0 +1,20 @@
1
+ import { Context, Crypto } from '@launchdarkly/js-sdk-common';
2
+ export type Namespace = 'LaunchDarkly' | 'AnonymousKeys' | 'ContextKeys' | 'ContextIndex';
3
+ export declare function concatNamespacesAndValues(parts: {
4
+ value: Namespace | string;
5
+ transform: (value: string) => string;
6
+ }[]): string;
7
+ export declare function namespaceForEnvironment(crypto: Crypto, sdkKey: string): string;
8
+ /**
9
+ * @deprecated prefer {@link namespaceForGeneratedContextKey}. At one time we only generated keys for
10
+ * anonymous contexts and they were namespaced in LaunchDarkly_AnonymousKeys. Eventually we started
11
+ * generating context keys for non-anonymous contexts such as for the Auto Environment Attributes
12
+ * feature and those were namespaced in LaunchDarkly_ContextKeys. This function can be removed
13
+ * when the data under the LaunchDarkly_AnonymousKeys namespace is merged with data under the
14
+ * LaunchDarkly_ContextKeys namespace.
15
+ */
16
+ export declare function namespaceForAnonymousGeneratedContextKey(kind: string): string;
17
+ export declare function namespaceForGeneratedContextKey(kind: string): string;
18
+ export declare function namespaceForContextIndex(environmentNamespace: string): string;
19
+ export declare function namespaceForContextData(crypto: Crypto, environmentNamespace: string, context: Context): string;
20
+ //# sourceMappingURL=namespaceUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaceUtils.d.ts","sourceRoot":"","sources":["../../src/storage/namespaceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,CAAC;AAW1F,wBAAgB,yBAAyB,CACvC,KAAK,EAAE;IAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE,EAAE,GAC3E,MAAM,CAGR;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK9E;AAED;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM7E;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED,wBAAgB,wBAAwB,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAK7E;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,OAAO,GACf,MAAM,CAKR"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.namespaceForContextData = exports.namespaceForContextIndex = exports.namespaceForGeneratedContextKey = exports.namespaceForAnonymousGeneratedContextKey = exports.namespaceForEnvironment = exports.concatNamespacesAndValues = void 0;
4
+ /**
5
+ * Hashes the input and encodes it as base64
6
+ */
7
+ function hashAndBase64Encode(crypto) {
8
+ return (input) => crypto.createHash('sha256').update(input).digest('base64');
9
+ }
10
+ const noop = (input) => input; // no-op transform
11
+ function concatNamespacesAndValues(parts) {
12
+ const processedParts = parts.map((part) => part.transform(part.value)); // use the transform from each part to transform the value
13
+ return processedParts.join('_');
14
+ }
15
+ exports.concatNamespacesAndValues = concatNamespacesAndValues;
16
+ function namespaceForEnvironment(crypto, sdkKey) {
17
+ return concatNamespacesAndValues([
18
+ { value: 'LaunchDarkly', transform: noop },
19
+ { value: sdkKey, transform: hashAndBase64Encode(crypto) }, // hash sdk key and encode it
20
+ ]);
21
+ }
22
+ exports.namespaceForEnvironment = namespaceForEnvironment;
23
+ /**
24
+ * @deprecated prefer {@link namespaceForGeneratedContextKey}. At one time we only generated keys for
25
+ * anonymous contexts and they were namespaced in LaunchDarkly_AnonymousKeys. Eventually we started
26
+ * generating context keys for non-anonymous contexts such as for the Auto Environment Attributes
27
+ * feature and those were namespaced in LaunchDarkly_ContextKeys. This function can be removed
28
+ * when the data under the LaunchDarkly_AnonymousKeys namespace is merged with data under the
29
+ * LaunchDarkly_ContextKeys namespace.
30
+ */
31
+ function namespaceForAnonymousGeneratedContextKey(kind) {
32
+ return concatNamespacesAndValues([
33
+ { value: 'LaunchDarkly', transform: noop },
34
+ { value: 'AnonymousKeys', transform: noop },
35
+ { value: kind, transform: noop }, // existing SDKs are not hashing or encoding this kind, though they should have
36
+ ]);
37
+ }
38
+ exports.namespaceForAnonymousGeneratedContextKey = namespaceForAnonymousGeneratedContextKey;
39
+ function namespaceForGeneratedContextKey(kind) {
40
+ return concatNamespacesAndValues([
41
+ { value: 'LaunchDarkly', transform: noop },
42
+ { value: 'ContextKeys', transform: noop },
43
+ { value: kind, transform: noop }, // existing SDKs are not hashing or encoding this kind, though they should have
44
+ ]);
45
+ }
46
+ exports.namespaceForGeneratedContextKey = namespaceForGeneratedContextKey;
47
+ function namespaceForContextIndex(environmentNamespace) {
48
+ return concatNamespacesAndValues([
49
+ { value: environmentNamespace, transform: noop },
50
+ { value: 'ContextIndex', transform: noop },
51
+ ]);
52
+ }
53
+ exports.namespaceForContextIndex = namespaceForContextIndex;
54
+ function namespaceForContextData(crypto, environmentNamespace, context) {
55
+ return concatNamespacesAndValues([
56
+ { value: environmentNamespace, transform: noop },
57
+ { value: context.canonicalKey, transform: hashAndBase64Encode(crypto) }, // hash and encode canonical key
58
+ ]);
59
+ }
60
+ exports.namespaceForContextData = namespaceForContextData;
61
+ //# sourceMappingURL=namespaceUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaceUtils.js","sourceRoot":"","sources":["../../src/storage/namespaceUtils.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAc;IACzC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,kBAAkB;AAEzD,SAAgB,yBAAyB,CACvC,KAA4E;IAE5E,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,0DAA0D;IAClI,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AALD,8DAKC;AAED,SAAgB,uBAAuB,CAAC,MAAc,EAAE,MAAc;IACpE,OAAO,yBAAyB,CAAC;QAC/B,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE;QAC1C,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,6BAA6B;KACzF,CAAC,CAAC;AACL,CAAC;AALD,0DAKC;AAED;;;;;;;GAOG;AACH,SAAgB,wCAAwC,CAAC,IAAY;IACnE,OAAO,yBAAyB,CAAC;QAC/B,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE;QAC1C,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE;QAC3C,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,+EAA+E;KAClH,CAAC,CAAC;AACL,CAAC;AAND,4FAMC;AAED,SAAgB,+BAA+B,CAAC,IAAY;IAC1D,OAAO,yBAAyB,CAAC;QAC/B,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE;QAC1C,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE;QACzC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,+EAA+E;KAClH,CAAC,CAAC;AACL,CAAC;AAND,0EAMC;AAED,SAAgB,wBAAwB,CAAC,oBAA4B;IACnE,OAAO,yBAAyB,CAAC;QAC/B,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,IAAI,EAAE;QAChD,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE;KAC3C,CAAC,CAAC;AACL,CAAC;AALD,4DAKC;AAED,SAAgB,uBAAuB,CACrC,MAAc,EACd,oBAA4B,EAC5B,OAAgB;IAEhB,OAAO,yBAAyB,CAAC;QAC/B,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,IAAI,EAAE;QAChD,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,gCAAgC;KAC1G,CAAC,CAAC;AACL,CAAC;AATD,0DASC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@launchdarkly/js-client-sdk-common",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "type": "commonjs",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "license": "Apache-2.0",
32
32
  "dependencies": {
33
- "@launchdarkly/js-sdk-common": "2.5.0"
33
+ "@launchdarkly/js-sdk-common": "2.6.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@launchdarkly/private-js-mocks": "0.0.1",
@@ -1 +0,0 @@
1
- {"version":3,"file":"addAutoEnv.d.ts","sourceRoot":"","sources":["../../src/utils/addAutoEnv.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,aAAa,EACb,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACT,MAAM,6BAA6B,CAAC;AAErC,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAM7C,eAAO,MAAM,OAAO,MAAO,mBAAmB;;;;;;;;;CAO7C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,qBACX,QAAQ,uBACL,aAAa,KACjC,aAAa,GAAG,SA4BlB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,aAAoB,QAAQ,kCA0BrD,CAAC;AAEF,eAAO,MAAM,UAAU,YAAmB,SAAS,YAAY,QAAQ,UAAU,aAAa,+DA2C7F,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"addAutoEnv.js","sourceRoot":"","sources":["../../src/utils/addAutoEnv.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Flags } from '../types';
2
- export default function calculateFlagChanges(flags: Flags, incomingFlags: Flags): string[];
3
- //# sourceMappingURL=calculateFlagChanges.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calculateFlagChanges.d.ts","sourceRoot":"","sources":["../../src/utils/calculateFlagChanges.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,YAmB9E"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const js_sdk_common_1 = require("@launchdarkly/js-sdk-common");
4
- // eslint-disable-next-line import/prefer-default-export
5
- function calculateFlagChanges(flags, incomingFlags) {
6
- const changedKeys = [];
7
- // flag deleted or updated
8
- Object.entries(flags).forEach(([k, f]) => {
9
- const incoming = incomingFlags[k];
10
- if (!incoming || !(0, js_sdk_common_1.fastDeepEqual)(f, incoming)) {
11
- changedKeys.push(k);
12
- }
13
- });
14
- // flag added
15
- Object.keys(incomingFlags).forEach((k) => {
16
- if (!flags[k]) {
17
- changedKeys.push(k);
18
- }
19
- });
20
- return changedKeys;
21
- }
22
- exports.default = calculateFlagChanges;
23
- //# sourceMappingURL=calculateFlagChanges.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calculateFlagChanges.js","sourceRoot":"","sources":["../../src/utils/calculateFlagChanges.ts"],"names":[],"mappings":";;AAAA,+DAA4D;AAI5D,wDAAwD;AACxD,SAAwB,oBAAoB,CAAC,KAAY,EAAE,aAAoB;IAC7E,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,0BAA0B;IAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACvC,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAA,6BAAa,EAAC,CAAC,EAAE,QAAQ,CAAC,EAAE;YAC5C,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACvC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACb,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAnBD,uCAmBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensureKey.d.ts","sourceRoot":"","sources":["../../src/utils/ensureKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAKT,QAAQ,EACT,MAAM,6BAA6B,CAAC;AA+CrC;;;;;;GAMG;AACH,QAAA,MAAM,SAAS,YAAmB,SAAS,YAAY,QAAQ,iBAgB9D,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensureKey.js","sourceRoot":"","sources":["../../src/utils/ensureKey.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+DASqC;AAErC,yDAAsD;AAEtD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,wBAAQ,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAAE,CAAkB,EAAE,QAAkB,EAAE,EAAE;IACrF,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE7B,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE;QACrB,sFAAsF;QACtF,6CAA6C;QAC7C,CAAC,CAAC,GAAG,GAAG,MAAM,IAAA,mCAAgB,EAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;KAC7D;AACH,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,CAAsB,EAAE,QAAkB,EAAE,EAAE;IAC3E,MAAM,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,KAAK,EAAE,YAAgC,EAAE,QAAkB,EAAE,EAAE;IACpF,MAAM,EAAE,IAAI,KAAwB,YAAY,EAA/B,cAAc,UAAK,YAAY,EAA1C,QAA2B,CAAe,CAAC;IAEjD,OAAO,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5C,eAAe,CAAC,CAAC,EAAE,CAAoB,EAAE,QAAQ,CAAC,CACnD,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,CAAS,EAAE,QAAkB,EAAE,EAAE;IAC9D,MAAM,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,SAAS,GAAG,KAAK,EAAE,OAAkB,EAAE,QAAkB,EAAE,EAAE;IACjE,MAAM,MAAM,GAAG,IAAA,qBAAK,EAAY,OAAO,CAAC,CAAC;IAEzC,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,eAAe,CAAC,MAA6B,EAAE,QAAQ,CAAC,CAAC;KAChE;IAED,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;QACvB,MAAM,cAAc,CAAC,MAA4B,EAAE,QAAQ,CAAC,CAAC;KAC9D;IAED,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,eAAe,CAAC,MAAgB,EAAE,QAAQ,CAAC,CAAC;KACnD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
@@ -1,5 +0,0 @@
1
- import { Platform } from '@launchdarkly/js-sdk-common';
2
- export type Namespace = 'anonymous' | 'context';
3
- export declare const prefixNamespace: (namespace: Namespace, s: string) => string;
4
- export declare const getOrGenerateKey: (namespace: Namespace, contextKind: string, { crypto, storage }: Platform) => Promise<string>;
5
- //# sourceMappingURL=getOrGenerateKey.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getOrGenerateKey.d.ts","sourceRoot":"","sources":["../../src/utils/getOrGenerateKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAEhD,eAAO,MAAM,eAAe,cAAe,SAAS,KAAK,MAAM,WAiB9D,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAChB,SAAS,eACP,MAAM,uBACE,QAAQ,oBAW9B,CAAC"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOrGenerateKey = exports.prefixNamespace = void 0;
4
- const prefixNamespace = (namespace, s) => {
5
- let n;
6
- switch (namespace) {
7
- case 'anonymous':
8
- n = 'LaunchDarkly_AnonymousKeys_';
9
- break;
10
- case 'context':
11
- n = 'LaunchDarkly_ContextKeys_';
12
- break;
13
- default:
14
- throw new Error(`Unsupported namespace ${namespace}. Only 'anonymous' or 'context' are supported.`);
15
- }
16
- return `${n}${s}`;
17
- };
18
- exports.prefixNamespace = prefixNamespace;
19
- const getOrGenerateKey = async (namespace, contextKind, { crypto, storage }) => {
20
- const storageKey = (0, exports.prefixNamespace)(namespace, contextKind);
21
- let contextKey = await (storage === null || storage === void 0 ? void 0 : storage.get(storageKey));
22
- if (!contextKey) {
23
- contextKey = crypto.randomUUID();
24
- await (storage === null || storage === void 0 ? void 0 : storage.set(storageKey, contextKey));
25
- }
26
- return contextKey;
27
- };
28
- exports.getOrGenerateKey = getOrGenerateKey;
29
- //# sourceMappingURL=getOrGenerateKey.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getOrGenerateKey.js","sourceRoot":"","sources":["../../src/utils/getOrGenerateKey.ts"],"names":[],"mappings":";;;AAIO,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAE,CAAS,EAAE,EAAE;IACjE,IAAI,CAAS,CAAC;IAEd,QAAQ,SAAS,EAAE;QACjB,KAAK,WAAW;YACd,CAAC,GAAG,6BAA6B,CAAC;YAClC,MAAM;QACR,KAAK,SAAS;YACZ,CAAC,GAAG,2BAA2B,CAAC;YAChC,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CACb,yBAAyB,SAAS,gDAAgD,CACnF,CAAC;KACL;IAED,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACpB,CAAC,CAAC;AAjBW,QAAA,eAAe,mBAiB1B;AAEK,MAAM,gBAAgB,GAAG,KAAK,EACnC,SAAoB,EACpB,WAAmB,EACnB,EAAE,MAAM,EAAE,OAAO,EAAY,EAC7B,EAAE;IACF,MAAM,UAAU,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3D,IAAI,UAAU,GAAG,MAAM,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,UAAU,CAAC,CAAA,CAAC;IAEhD,IAAI,CAAC,UAAU,EAAE;QACf,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA,CAAC;KAC5C;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAdW,QAAA,gBAAgB,oBAc3B"}
@@ -1,5 +0,0 @@
1
- import { addAutoEnv } from './addAutoEnv';
2
- import calculateFlagChanges from './calculateFlagChanges';
3
- import ensureKey from './ensureKey';
4
- export { calculateFlagChanges, ensureKey, addAutoEnv };
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addAutoEnv = exports.ensureKey = exports.calculateFlagChanges = void 0;
4
- const addAutoEnv_1 = require("./addAutoEnv");
5
- Object.defineProperty(exports, "addAutoEnv", { enumerable: true, get: function () { return addAutoEnv_1.addAutoEnv; } });
6
- const calculateFlagChanges_1 = require("./calculateFlagChanges");
7
- exports.calculateFlagChanges = calculateFlagChanges_1.default;
8
- const ensureKey_1 = require("./ensureKey");
9
- exports.ensureKey = ensureKey_1.default;
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAIA,2FAJjC,uBAAU,OAIiC;AAHpD,iEAA0D;AAGjD,+BAHF,8BAAoB,CAGE;AAF7B,2CAAoC;AAEL,oBAFxB,mBAAS,CAEwB"}
File without changes