@launchdarkly/js-server-sdk-common-edge 2.4.1 → 2.5.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.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/api/EdgeFeatureStore.d.ts +5 -6
- package/dist/cjs/src/api/EdgeFeatureStore.d.ts.map +1 -1
- package/dist/cjs/src/api/EdgeFeatureStore.js +16 -17
- package/dist/cjs/src/api/EdgeFeatureStore.js.map +1 -1
- package/dist/cjs/src/api/createOptions.d.ts +1 -1
- package/dist/cjs/src/platform/crypto/cryptoJSHasher.d.ts +1 -1
- package/dist/cjs/src/platform/crypto/cryptoJSHasher.d.ts.map +1 -1
- package/dist/cjs/src/platform/crypto/cryptoJSHasher.js +3 -3
- package/dist/cjs/src/platform/crypto/cryptoJSHasher.js.map +1 -1
- package/dist/cjs/src/platform/crypto/cryptoJSHmac.d.ts +1 -1
- package/dist/cjs/src/platform/crypto/cryptoJSHmac.d.ts.map +1 -1
- package/dist/cjs/src/platform/crypto/cryptoJSHmac.js +3 -3
- package/dist/cjs/src/platform/crypto/cryptoJSHmac.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/src/api/EdgeFeatureStore.d.ts +5 -6
- package/dist/esm/src/api/EdgeFeatureStore.d.ts.map +1 -1
- package/dist/esm/src/api/EdgeFeatureStore.js +16 -17
- package/dist/esm/src/api/EdgeFeatureStore.js.map +1 -1
- package/dist/esm/src/api/createOptions.d.ts +1 -1
- package/dist/esm/src/platform/crypto/cryptoJSHasher.d.ts +1 -1
- package/dist/esm/src/platform/crypto/cryptoJSHasher.d.ts.map +1 -1
- package/dist/esm/src/platform/crypto/cryptoJSHasher.js +3 -3
- package/dist/esm/src/platform/crypto/cryptoJSHasher.js.map +1 -1
- package/dist/esm/src/platform/crypto/cryptoJSHmac.d.ts +1 -1
- package/dist/esm/src/platform/crypto/cryptoJSHmac.d.ts.map +1 -1
- package/dist/esm/src/platform/crypto/cryptoJSHmac.js +3 -3
- package/dist/esm/src/platform/crypto/cryptoJSHmac.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -96,6 +96,20 @@
|
|
|
96
96
|
* dependencies
|
|
97
97
|
* @launchdarkly/js-server-sdk-common bumped from 2.2.1 to 2.2.2
|
|
98
98
|
|
|
99
|
+
## [2.5.0](https://github.com/launchdarkly/js-core/compare/js-server-sdk-common-edge-v2.4.1...js-server-sdk-common-edge-v2.5.0) (2024-10-17)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
### Features
|
|
103
|
+
|
|
104
|
+
* Apply private property naming standard. Mangle browser private properties. ([#620](https://github.com/launchdarkly/js-core/issues/620)) ([3e6d404](https://github.com/launchdarkly/js-core/commit/3e6d404ae665c5cc7e5a1394a59c8f2c9d5d682a))
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
### Dependencies
|
|
108
|
+
|
|
109
|
+
* The following workspace dependencies were updated
|
|
110
|
+
* dependencies
|
|
111
|
+
* @launchdarkly/js-server-sdk-common bumped from 2.8.0 to 2.9.0
|
|
112
|
+
|
|
99
113
|
## [2.4.1](https://github.com/launchdarkly/js-core/compare/js-server-sdk-common-edge-v2.4.0...js-server-sdk-common-edge-v2.4.1) (2024-10-09)
|
|
100
114
|
|
|
101
115
|
|
package/dist/cjs/package.json
CHANGED
|
@@ -3,12 +3,11 @@ export interface EdgeProvider {
|
|
|
3
3
|
get: (rootKey: string) => Promise<string | null | undefined>;
|
|
4
4
|
}
|
|
5
5
|
export declare class EdgeFeatureStore implements LDFeatureStore {
|
|
6
|
-
private readonly
|
|
7
|
-
private readonly
|
|
8
|
-
private
|
|
9
|
-
private
|
|
10
|
-
|
|
11
|
-
constructor(edgeProvider: EdgeProvider, sdkKey: string, description: string, logger: LDLogger);
|
|
6
|
+
private readonly _edgeProvider;
|
|
7
|
+
private readonly _description;
|
|
8
|
+
private _logger;
|
|
9
|
+
private readonly _rootKey;
|
|
10
|
+
constructor(_edgeProvider: EdgeProvider, sdkKey: string, _description: string, _logger: LDLogger);
|
|
12
11
|
get(kind: DataKind, dataKey: string, callback: (res: LDFeatureStoreItem | null) => void): Promise<void>;
|
|
13
12
|
all(kind: DataKind, callback?: (res: LDFeatureStoreKindData) => void): Promise<void>;
|
|
14
13
|
initialized(callback?: (isInitialized: boolean) => void): Promise<void>;
|
|
@@ -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,
|
|
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"}
|
|
@@ -3,25 +3,24 @@ 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(
|
|
7
|
-
this.
|
|
8
|
-
this.
|
|
9
|
-
this.
|
|
10
|
-
this.logger = logger;
|
|
6
|
+
constructor(_edgeProvider, sdkKey, _description, _logger) {
|
|
7
|
+
this._edgeProvider = _edgeProvider;
|
|
8
|
+
this._description = _description;
|
|
9
|
+
this._logger = _logger;
|
|
11
10
|
// unused
|
|
12
11
|
this.close = js_server_sdk_common_1.noop;
|
|
13
12
|
this.delete = js_server_sdk_common_1.noop;
|
|
14
13
|
this.upsert = js_server_sdk_common_1.noop;
|
|
15
|
-
this.
|
|
14
|
+
this._rootKey = `LD-Env-${sdkKey}`;
|
|
16
15
|
}
|
|
17
16
|
async get(kind, dataKey, callback) {
|
|
18
17
|
const { namespace } = kind;
|
|
19
18
|
const kindKey = namespace === 'features' ? 'flags' : namespace;
|
|
20
|
-
this.
|
|
19
|
+
this._logger.debug(`Requesting ${dataKey} from ${this._rootKey}.${kindKey}`);
|
|
21
20
|
try {
|
|
22
|
-
const i = await this.
|
|
21
|
+
const i = await this._edgeProvider.get(this._rootKey);
|
|
23
22
|
if (!i) {
|
|
24
|
-
throw new Error(`${this.
|
|
23
|
+
throw new Error(`${this._rootKey}.${kindKey} is not found in KV.`);
|
|
25
24
|
}
|
|
26
25
|
const item = (0, js_server_sdk_common_1.deserializePoll)(i);
|
|
27
26
|
if (!item) {
|
|
@@ -39,18 +38,18 @@ class EdgeFeatureStore {
|
|
|
39
38
|
}
|
|
40
39
|
}
|
|
41
40
|
catch (err) {
|
|
42
|
-
this.
|
|
41
|
+
this._logger.error(err);
|
|
43
42
|
callback(null);
|
|
44
43
|
}
|
|
45
44
|
}
|
|
46
45
|
async all(kind, callback = js_server_sdk_common_1.noop) {
|
|
47
46
|
const { namespace } = kind;
|
|
48
47
|
const kindKey = namespace === 'features' ? 'flags' : namespace;
|
|
49
|
-
this.
|
|
48
|
+
this._logger.debug(`Requesting all from ${this._rootKey}.${kindKey}`);
|
|
50
49
|
try {
|
|
51
|
-
const i = await this.
|
|
50
|
+
const i = await this._edgeProvider.get(this._rootKey);
|
|
52
51
|
if (!i) {
|
|
53
|
-
throw new Error(`${this.
|
|
52
|
+
throw new Error(`${this._rootKey}.${kindKey} is not found in KV.`);
|
|
54
53
|
}
|
|
55
54
|
const item = (0, js_server_sdk_common_1.deserializePoll)(i);
|
|
56
55
|
if (!item) {
|
|
@@ -68,21 +67,21 @@ class EdgeFeatureStore {
|
|
|
68
67
|
}
|
|
69
68
|
}
|
|
70
69
|
catch (err) {
|
|
71
|
-
this.
|
|
70
|
+
this._logger.error(err);
|
|
72
71
|
callback({});
|
|
73
72
|
}
|
|
74
73
|
}
|
|
75
74
|
async initialized(callback = js_server_sdk_common_1.noop) {
|
|
76
|
-
const config = await this.
|
|
75
|
+
const config = await this._edgeProvider.get(this._rootKey);
|
|
77
76
|
const result = config !== null;
|
|
78
|
-
this.
|
|
77
|
+
this._logger.debug(`Is ${this._rootKey} initialized? ${result}`);
|
|
79
78
|
callback(result);
|
|
80
79
|
}
|
|
81
80
|
init(allData, callback) {
|
|
82
81
|
callback();
|
|
83
82
|
}
|
|
84
83
|
getDescription() {
|
|
85
|
-
return this.
|
|
84
|
+
return this._description;
|
|
86
85
|
}
|
|
87
86
|
}
|
|
88
87
|
exports.EdgeFeatureStore = EdgeFeatureStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeFeatureStore.js","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":";;;AAQA,6EAA2E;AAM3E,MAAa,gBAAgB;IAG3B,YACmB,
|
|
1
|
+
{"version":3,"file":"EdgeFeatureStore.js","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ declare const createOptions: (options: LDOptions) => {
|
|
|
9
9
|
logger?: import("@launchdarkly/js-server-sdk-common").LDLogger | undefined;
|
|
10
10
|
featureStore?: import("@launchdarkly/js-server-sdk-common").LDFeatureStore | ((clientContext: import("@launchdarkly/js-server-sdk-common").LDClientContext) => import("@launchdarkly/js-server-sdk-common").LDFeatureStore) | undefined;
|
|
11
11
|
bigSegments?: import("@launchdarkly/js-server-sdk-common").LDBigSegmentsOptions | undefined;
|
|
12
|
-
updateProcessor?: object | ((clientContext: import("@launchdarkly/js-server-sdk-common").LDClientContext, dataSourceUpdates: import("@launchdarkly/js-server-sdk-common/dist/api/subsystems").LDDataSourceUpdates, initSuccessHandler: import("@launchdarkly/js-server-sdk-common").VoidFunction, errorHandler?: ((e: Error) => void) | undefined) => import("@launchdarkly/js-sdk-common/dist/api/subsystem").LDStreamProcessor) | undefined;
|
|
12
|
+
updateProcessor?: object | ((clientContext: import("@launchdarkly/js-server-sdk-common").LDClientContext, dataSourceUpdates: import("@launchdarkly/js-server-sdk-common/dist/api/subsystems").LDDataSourceUpdates, initSuccessHandler: import("@launchdarkly/js-server-sdk-common").VoidFunction, errorHandler?: ((e: Error) => void) | undefined) => import("@launchdarkly/js-sdk-common/dist/esm/api/subsystem").LDStreamProcessor) | undefined;
|
|
13
13
|
flushInterval?: number | undefined;
|
|
14
14
|
pollInterval?: number | undefined;
|
|
15
15
|
proxyOptions?: import("@launchdarkly/js-server-sdk-common").LDProxyOptions | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hasher as LDHasher } from '@launchdarkly/js-server-sdk-common';
|
|
2
2
|
import { SupportedHashAlgorithm, SupportedOutputEncoding } from './types';
|
|
3
3
|
export default class CryptoJSHasher implements LDHasher {
|
|
4
|
-
private
|
|
4
|
+
private _cryptoJSHasher;
|
|
5
5
|
constructor(algorithm: SupportedHashAlgorithm);
|
|
6
6
|
digest(encoding: SupportedOutputEncoding): string;
|
|
7
7
|
update(data: string): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoJSHasher.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHasher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,QAAQ;IACrD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"cryptoJSHasher.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHasher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,QAAQ;IACrD,OAAO,CAAC,eAAe,CAAC;gBAEZ,SAAS,EAAE,sBAAsB;IAiB7C,MAAM,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM;IAkBjD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAI3B"}
|
|
@@ -14,10 +14,10 @@ class CryptoJSHasher {
|
|
|
14
14
|
default:
|
|
15
15
|
throw new Error('unsupported hash algorithm. Only sha1 and sha256 are supported.');
|
|
16
16
|
}
|
|
17
|
-
this.
|
|
17
|
+
this._cryptoJSHasher = algo.create();
|
|
18
18
|
}
|
|
19
19
|
digest(encoding) {
|
|
20
|
-
const result = this.
|
|
20
|
+
const result = this._cryptoJSHasher.finalize();
|
|
21
21
|
let enc;
|
|
22
22
|
switch (encoding) {
|
|
23
23
|
case 'base64':
|
|
@@ -32,7 +32,7 @@ class CryptoJSHasher {
|
|
|
32
32
|
return result.toString(enc);
|
|
33
33
|
}
|
|
34
34
|
update(data) {
|
|
35
|
-
this.
|
|
35
|
+
this._cryptoJSHasher.update(data);
|
|
36
36
|
return this;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoJSHasher.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHasher.ts"],"names":[],"mappings":";;AAAA,yCAAiC;AAMjC,MAAqB,cAAc;IAGjC,YAAY,SAAiC;QAC3C,IAAI,IAAI,CAAC;QAET,QAAQ,SAAS,EAAE;YACjB,KAAK,MAAM;gBACT,IAAI,GAAG,mBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,mBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"cryptoJSHasher.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHasher.ts"],"names":[],"mappings":";;AAAA,yCAAiC;AAMjC,MAAqB,cAAc;IAGjC,YAAY,SAAiC;QAC3C,IAAI,IAAI,CAAC;QAET,QAAQ,SAAS,EAAE;YACjB,KAAK,MAAM;gBACT,IAAI,GAAG,mBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,mBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,QAAiC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QAE/C,IAAI,GAAG,CAAC;QACR,QAAQ,QAAQ,EAAE;YAChB,KAAK,QAAQ;gBACX,GAAG,GAAG,mBAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC1B,MAAM;YACR,KAAK,KAAK;gBACR,GAAG,GAAG,mBAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;gBACvB,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA1CD,iCA0CC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hmac as LDHmac } from '@launchdarkly/js-server-sdk-common';
|
|
2
2
|
import { SupportedHashAlgorithm, SupportedOutputEncoding } from './types';
|
|
3
3
|
export default class CryptoJSHmac implements LDHmac {
|
|
4
|
-
private
|
|
4
|
+
private _cryptoJSHmac;
|
|
5
5
|
constructor(algorithm: SupportedHashAlgorithm, key: string);
|
|
6
6
|
digest(encoding: SupportedOutputEncoding): string;
|
|
7
7
|
update(data: string): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoJSHmac.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHmac.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,MAAM;IACjD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"cryptoJSHmac.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHmac.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,MAAM;IACjD,OAAO,CAAC,aAAa,CAAC;gBAEV,SAAS,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM;IAiB1D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM;IAcjD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAI3B"}
|
|
@@ -14,10 +14,10 @@ class CryptoJSHmac {
|
|
|
14
14
|
default:
|
|
15
15
|
throw new Error('unsupported hash algorithm. Only sha1 and sha256 are supported.');
|
|
16
16
|
}
|
|
17
|
-
this.
|
|
17
|
+
this._cryptoJSHmac = crypto_js_1.default.algo.HMAC.create(algo, key);
|
|
18
18
|
}
|
|
19
19
|
digest(encoding) {
|
|
20
|
-
const result = this.
|
|
20
|
+
const result = this._cryptoJSHmac.finalize();
|
|
21
21
|
if (encoding === 'base64') {
|
|
22
22
|
return result.toString(crypto_js_1.default.enc.Base64);
|
|
23
23
|
}
|
|
@@ -27,7 +27,7 @@ class CryptoJSHmac {
|
|
|
27
27
|
throw new Error('unsupported output encoding. Only base64 and hex are supported.');
|
|
28
28
|
}
|
|
29
29
|
update(data) {
|
|
30
|
-
this.
|
|
30
|
+
this._cryptoJSHmac.update(data);
|
|
31
31
|
return this;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoJSHmac.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHmac.ts"],"names":[],"mappings":";;AAAA,yCAAiC;AAMjC,MAAqB,YAAY;IAG/B,YAAY,SAAiC,EAAE,GAAW;QACxD,IAAI,IAAI,CAAC;QAET,QAAQ,SAAS,EAAE;YACjB,KAAK,MAAM;gBACT,IAAI,GAAG,mBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,mBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"cryptoJSHmac.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHmac.ts"],"names":[],"mappings":";;AAAA,yCAAiC;AAMjC,MAAqB,YAAY;IAG/B,YAAY,SAAiC,EAAE,GAAW;QACxD,IAAI,IAAI,CAAC;QAET,QAAQ,SAAS,EAAE;YACjB,KAAK,MAAM;gBACT,IAAI,GAAG,mBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,mBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,IAAI,CAAC,aAAa,GAAG,mBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,QAAiC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAE7C,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,mBAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC7C;QAED,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,mBAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1C;QAED,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAtCD,+BAsCC"}
|
package/dist/esm/package.json
CHANGED
|
@@ -3,12 +3,11 @@ export interface EdgeProvider {
|
|
|
3
3
|
get: (rootKey: string) => Promise<string | null | undefined>;
|
|
4
4
|
}
|
|
5
5
|
export declare class EdgeFeatureStore implements LDFeatureStore {
|
|
6
|
-
private readonly
|
|
7
|
-
private readonly
|
|
8
|
-
private
|
|
9
|
-
private
|
|
10
|
-
|
|
11
|
-
constructor(edgeProvider: EdgeProvider, sdkKey: string, description: string, logger: LDLogger);
|
|
6
|
+
private readonly _edgeProvider;
|
|
7
|
+
private readonly _description;
|
|
8
|
+
private _logger;
|
|
9
|
+
private readonly _rootKey;
|
|
10
|
+
constructor(_edgeProvider: EdgeProvider, sdkKey: string, _description: string, _logger: LDLogger);
|
|
12
11
|
get(kind: DataKind, dataKey: string, callback: (res: LDFeatureStoreItem | null) => void): Promise<void>;
|
|
13
12
|
all(kind: DataKind, callback?: (res: LDFeatureStoreKindData) => void): Promise<void>;
|
|
14
13
|
initialized(callback?: (isInitialized: boolean) => void): Promise<void>;
|
|
@@ -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,
|
|
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,24 +1,23 @@
|
|
|
1
1
|
import { deserializePoll, noop } from '@launchdarkly/js-server-sdk-common';
|
|
2
2
|
export class EdgeFeatureStore {
|
|
3
|
-
constructor(
|
|
4
|
-
this.
|
|
5
|
-
this.
|
|
6
|
-
this.
|
|
7
|
-
this.logger = logger;
|
|
3
|
+
constructor(_edgeProvider, sdkKey, _description, _logger) {
|
|
4
|
+
this._edgeProvider = _edgeProvider;
|
|
5
|
+
this._description = _description;
|
|
6
|
+
this._logger = _logger;
|
|
8
7
|
// unused
|
|
9
8
|
this.close = noop;
|
|
10
9
|
this.delete = noop;
|
|
11
10
|
this.upsert = noop;
|
|
12
|
-
this.
|
|
11
|
+
this._rootKey = `LD-Env-${sdkKey}`;
|
|
13
12
|
}
|
|
14
13
|
async get(kind, dataKey, callback) {
|
|
15
14
|
const { namespace } = kind;
|
|
16
15
|
const kindKey = namespace === 'features' ? 'flags' : namespace;
|
|
17
|
-
this.
|
|
16
|
+
this._logger.debug(`Requesting ${dataKey} from ${this._rootKey}.${kindKey}`);
|
|
18
17
|
try {
|
|
19
|
-
const i = await this.
|
|
18
|
+
const i = await this._edgeProvider.get(this._rootKey);
|
|
20
19
|
if (!i) {
|
|
21
|
-
throw new Error(`${this.
|
|
20
|
+
throw new Error(`${this._rootKey}.${kindKey} is not found in KV.`);
|
|
22
21
|
}
|
|
23
22
|
const item = deserializePoll(i);
|
|
24
23
|
if (!item) {
|
|
@@ -36,18 +35,18 @@ export class EdgeFeatureStore {
|
|
|
36
35
|
}
|
|
37
36
|
}
|
|
38
37
|
catch (err) {
|
|
39
|
-
this.
|
|
38
|
+
this._logger.error(err);
|
|
40
39
|
callback(null);
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
42
|
async all(kind, callback = noop) {
|
|
44
43
|
const { namespace } = kind;
|
|
45
44
|
const kindKey = namespace === 'features' ? 'flags' : namespace;
|
|
46
|
-
this.
|
|
45
|
+
this._logger.debug(`Requesting all from ${this._rootKey}.${kindKey}`);
|
|
47
46
|
try {
|
|
48
|
-
const i = await this.
|
|
47
|
+
const i = await this._edgeProvider.get(this._rootKey);
|
|
49
48
|
if (!i) {
|
|
50
|
-
throw new Error(`${this.
|
|
49
|
+
throw new Error(`${this._rootKey}.${kindKey} is not found in KV.`);
|
|
51
50
|
}
|
|
52
51
|
const item = deserializePoll(i);
|
|
53
52
|
if (!item) {
|
|
@@ -65,21 +64,21 @@ export class EdgeFeatureStore {
|
|
|
65
64
|
}
|
|
66
65
|
}
|
|
67
66
|
catch (err) {
|
|
68
|
-
this.
|
|
67
|
+
this._logger.error(err);
|
|
69
68
|
callback({});
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
async initialized(callback = noop) {
|
|
73
|
-
const config = await this.
|
|
72
|
+
const config = await this._edgeProvider.get(this._rootKey);
|
|
74
73
|
const result = config !== null;
|
|
75
|
-
this.
|
|
74
|
+
this._logger.debug(`Is ${this._rootKey} initialized? ${result}`);
|
|
76
75
|
callback(result);
|
|
77
76
|
}
|
|
78
77
|
init(allData, callback) {
|
|
79
78
|
callback();
|
|
80
79
|
}
|
|
81
80
|
getDescription() {
|
|
82
|
-
return this.
|
|
81
|
+
return this._description;
|
|
83
82
|
}
|
|
84
83
|
}
|
|
85
84
|
//# sourceMappingURL=EdgeFeatureStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeFeatureStore.js","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAM3E,MAAM,OAAO,gBAAgB;IAG3B,YACmB,
|
|
1
|
+
{"version":3,"file":"EdgeFeatureStore.js","sourceRoot":"","sources":["../../../../src/api/EdgeFeatureStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ declare const createOptions: (options: LDOptions) => {
|
|
|
9
9
|
logger?: import("@launchdarkly/js-server-sdk-common").LDLogger | undefined;
|
|
10
10
|
featureStore?: import("@launchdarkly/js-server-sdk-common").LDFeatureStore | ((clientContext: import("@launchdarkly/js-server-sdk-common").LDClientContext) => import("@launchdarkly/js-server-sdk-common").LDFeatureStore) | undefined;
|
|
11
11
|
bigSegments?: import("@launchdarkly/js-server-sdk-common").LDBigSegmentsOptions | undefined;
|
|
12
|
-
updateProcessor?: object | ((clientContext: import("@launchdarkly/js-server-sdk-common").LDClientContext, dataSourceUpdates: import("@launchdarkly/js-server-sdk-common/dist/api/subsystems").LDDataSourceUpdates, initSuccessHandler: import("@launchdarkly/js-server-sdk-common").VoidFunction, errorHandler?: ((e: Error) => void) | undefined) => import("@launchdarkly/js-sdk-common/dist/api/subsystem").LDStreamProcessor) | undefined;
|
|
12
|
+
updateProcessor?: object | ((clientContext: import("@launchdarkly/js-server-sdk-common").LDClientContext, dataSourceUpdates: import("@launchdarkly/js-server-sdk-common/dist/api/subsystems").LDDataSourceUpdates, initSuccessHandler: import("@launchdarkly/js-server-sdk-common").VoidFunction, errorHandler?: ((e: Error) => void) | undefined) => import("@launchdarkly/js-sdk-common/dist/esm/api/subsystem").LDStreamProcessor) | undefined;
|
|
13
13
|
flushInterval?: number | undefined;
|
|
14
14
|
pollInterval?: number | undefined;
|
|
15
15
|
proxyOptions?: import("@launchdarkly/js-server-sdk-common").LDProxyOptions | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hasher as LDHasher } from '@launchdarkly/js-server-sdk-common';
|
|
2
2
|
import { SupportedHashAlgorithm, SupportedOutputEncoding } from './types';
|
|
3
3
|
export default class CryptoJSHasher implements LDHasher {
|
|
4
|
-
private
|
|
4
|
+
private _cryptoJSHasher;
|
|
5
5
|
constructor(algorithm: SupportedHashAlgorithm);
|
|
6
6
|
digest(encoding: SupportedOutputEncoding): string;
|
|
7
7
|
update(data: string): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoJSHasher.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHasher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,QAAQ;IACrD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"cryptoJSHasher.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHasher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,QAAQ;IACrD,OAAO,CAAC,eAAe,CAAC;gBAEZ,SAAS,EAAE,sBAAsB;IAiB7C,MAAM,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM;IAkBjD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAI3B"}
|
|
@@ -12,10 +12,10 @@ export default class CryptoJSHasher {
|
|
|
12
12
|
default:
|
|
13
13
|
throw new Error('unsupported hash algorithm. Only sha1 and sha256 are supported.');
|
|
14
14
|
}
|
|
15
|
-
this.
|
|
15
|
+
this._cryptoJSHasher = algo.create();
|
|
16
16
|
}
|
|
17
17
|
digest(encoding) {
|
|
18
|
-
const result = this.
|
|
18
|
+
const result = this._cryptoJSHasher.finalize();
|
|
19
19
|
let enc;
|
|
20
20
|
switch (encoding) {
|
|
21
21
|
case 'base64':
|
|
@@ -30,7 +30,7 @@ export default class CryptoJSHasher {
|
|
|
30
30
|
return result.toString(enc);
|
|
31
31
|
}
|
|
32
32
|
update(data) {
|
|
33
|
-
this.
|
|
33
|
+
this._cryptoJSHasher.update(data);
|
|
34
34
|
return this;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoJSHasher.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHasher.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAMjC,MAAM,CAAC,OAAO,OAAO,cAAc;IAGjC,YAAY,SAAiC;QAC3C,IAAI,IAAI,CAAC;QAET,QAAQ,SAAS,EAAE;YACjB,KAAK,MAAM;gBACT,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"cryptoJSHasher.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHasher.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAMjC,MAAM,CAAC,OAAO,OAAO,cAAc;IAGjC,YAAY,SAAiC;QAC3C,IAAI,IAAI,CAAC;QAET,QAAQ,SAAS,EAAE;YACjB,KAAK,MAAM;gBACT,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,QAAiC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QAE/C,IAAI,GAAG,CAAC;QACR,QAAQ,QAAQ,EAAE;YAChB,KAAK,QAAQ;gBACX,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC1B,MAAM;YACR,KAAK,KAAK;gBACR,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;gBACvB,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hmac as LDHmac } from '@launchdarkly/js-server-sdk-common';
|
|
2
2
|
import { SupportedHashAlgorithm, SupportedOutputEncoding } from './types';
|
|
3
3
|
export default class CryptoJSHmac implements LDHmac {
|
|
4
|
-
private
|
|
4
|
+
private _cryptoJSHmac;
|
|
5
5
|
constructor(algorithm: SupportedHashAlgorithm, key: string);
|
|
6
6
|
digest(encoding: SupportedOutputEncoding): string;
|
|
7
7
|
update(data: string): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoJSHmac.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHmac.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,MAAM;IACjD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"cryptoJSHmac.d.ts","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHmac.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,MAAM;IACjD,OAAO,CAAC,aAAa,CAAC;gBAEV,SAAS,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM;IAiB1D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM;IAcjD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAI3B"}
|
|
@@ -12,10 +12,10 @@ export default class CryptoJSHmac {
|
|
|
12
12
|
default:
|
|
13
13
|
throw new Error('unsupported hash algorithm. Only sha1 and sha256 are supported.');
|
|
14
14
|
}
|
|
15
|
-
this.
|
|
15
|
+
this._cryptoJSHmac = CryptoJS.algo.HMAC.create(algo, key);
|
|
16
16
|
}
|
|
17
17
|
digest(encoding) {
|
|
18
|
-
const result = this.
|
|
18
|
+
const result = this._cryptoJSHmac.finalize();
|
|
19
19
|
if (encoding === 'base64') {
|
|
20
20
|
return result.toString(CryptoJS.enc.Base64);
|
|
21
21
|
}
|
|
@@ -25,7 +25,7 @@ export default class CryptoJSHmac {
|
|
|
25
25
|
throw new Error('unsupported output encoding. Only base64 and hex are supported.');
|
|
26
26
|
}
|
|
27
27
|
update(data) {
|
|
28
|
-
this.
|
|
28
|
+
this._cryptoJSHmac.update(data);
|
|
29
29
|
return this;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoJSHmac.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHmac.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAMjC,MAAM,CAAC,OAAO,OAAO,YAAY;IAG/B,YAAY,SAAiC,EAAE,GAAW;QACxD,IAAI,IAAI,CAAC;QAET,QAAQ,SAAS,EAAE;YACjB,KAAK,MAAM;gBACT,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"cryptoJSHmac.js","sourceRoot":"","sources":["../../../../../src/platform/crypto/cryptoJSHmac.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAMjC,MAAM,CAAC,OAAO,OAAO,YAAY;IAG/B,YAAY,SAAiC,EAAE,GAAW;QACxD,IAAI,IAAI,CAAC;QAET,QAAQ,SAAS,EAAE;YACjB,KAAK,MAAM;gBACT,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;QAED,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,QAAiC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAE7C,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC7C;QAED,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC1C;QAED,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@launchdarkly/js-server-sdk-common-edge",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.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.
|
|
39
|
+
"@launchdarkly/js-server-sdk-common": "2.9.0",
|
|
40
40
|
"crypto-js": "^4.1.1"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|