@launchdarkly/node-server-sdk-dynamodb 6.1.23 → 6.2.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 +16 -0
- package/dist/src/DynamoDBBigSegmentStore.d.ts +3 -4
- package/dist/src/DynamoDBBigSegmentStore.d.ts.map +1 -1
- package/dist/src/DynamoDBBigSegmentStore.js +8 -9
- package/dist/src/DynamoDBBigSegmentStore.js.map +1 -1
- package/dist/src/DynamoDBClientState.js +14 -14
- package/dist/src/DynamoDBClientState.js.map +1 -1
- package/dist/src/DynamoDBCore.js +39 -39
- package/dist/src/DynamoDBCore.js.map +1 -1
- package/dist/src/DynamoDBFeatureStore.d.ts +1 -1
- package/dist/src/DynamoDBFeatureStore.d.ts.map +1 -1
- package/dist/src/DynamoDBFeatureStore.js +9 -9
- package/dist/src/DynamoDBFeatureStore.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -90,6 +90,22 @@
|
|
|
90
90
|
* devDependencies
|
|
91
91
|
* @launchdarkly/node-server-sdk bumped from 9.2.1 to 9.2.2
|
|
92
92
|
|
|
93
|
+
## [6.2.0](https://github.com/launchdarkly/js-core/compare/node-server-sdk-dynamodb-v6.1.23...node-server-sdk-dynamodb-v6.2.0) (2024-10-17)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
### Features
|
|
97
|
+
|
|
98
|
+
* 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))
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
### Dependencies
|
|
102
|
+
|
|
103
|
+
* The following workspace dependencies were updated
|
|
104
|
+
* devDependencies
|
|
105
|
+
* @launchdarkly/node-server-sdk bumped from 9.6.1 to 9.7.0
|
|
106
|
+
* peerDependencies
|
|
107
|
+
* @launchdarkly/node-server-sdk bumped from >=9.4.3 to >=9.7.0
|
|
108
|
+
|
|
93
109
|
## [6.1.23](https://github.com/launchdarkly/js-core/compare/node-server-sdk-dynamodb-v6.1.22...node-server-sdk-dynamodb-v6.1.23) (2024-10-09)
|
|
94
110
|
|
|
95
111
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { interfaces, LDLogger } from '@launchdarkly/node-server-sdk';
|
|
2
2
|
import LDDynamoDBOptions from './LDDynamoDBOptions';
|
|
3
3
|
export default class DynamoDBBigSegmentStore implements interfaces.BigSegmentStore {
|
|
4
|
-
private readonly
|
|
5
|
-
private
|
|
6
|
-
|
|
7
|
-
constructor(tableName: string, options?: LDDynamoDBOptions, logger?: LDLogger | undefined);
|
|
4
|
+
private readonly _tableName;
|
|
5
|
+
private _state;
|
|
6
|
+
constructor(_tableName: string, options?: LDDynamoDBOptions, _logger?: LDLogger);
|
|
8
7
|
getMetadata(): Promise<interfaces.BigSegmentStoreMetadata | undefined>;
|
|
9
8
|
getUserMembership(userHash: string): Promise<interfaces.BigSegmentStoreMembership | undefined>;
|
|
10
9
|
close(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoDBBigSegmentStore.d.ts","sourceRoot":"","sources":["../../src/DynamoDBBigSegmentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAGrE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAiCpD,MAAM,CAAC,OAAO,OAAO,uBAAwB,YAAW,UAAU,CAAC,eAAe;IAM9E,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"DynamoDBBigSegmentStore.d.ts","sourceRoot":"","sources":["../../src/DynamoDBBigSegmentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAGrE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAiCpD,MAAM,CAAC,OAAO,OAAO,uBAAwB,YAAW,UAAU,CAAC,eAAe;IAM9E,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,MAAM,CAAsB;gBAKjB,UAAU,EAAE,MAAM,EACnC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,QAAQ;IAKd,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAetE,iBAAiB,CACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAsB5D,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -31,14 +31,13 @@ exports.ATTR_EXCLUDED = 'excluded';
|
|
|
31
31
|
class DynamoDBBigSegmentStore {
|
|
32
32
|
// Logger is not currently used, but is included to reduce the chance of a
|
|
33
33
|
// compatibility break to add a log.
|
|
34
|
-
constructor(
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
this.state = new DynamoDBClientState_1.default(options);
|
|
34
|
+
constructor(_tableName, options, _logger) {
|
|
35
|
+
this._tableName = _tableName;
|
|
36
|
+
this._state = new DynamoDBClientState_1.default(options);
|
|
38
37
|
}
|
|
39
38
|
async getMetadata() {
|
|
40
|
-
const key = this.
|
|
41
|
-
const data = await this.
|
|
39
|
+
const key = this._state.prefixedKey(exports.KEY_METADATA);
|
|
40
|
+
const data = await this._state.get(this._tableName, {
|
|
42
41
|
namespace: (0, Value_1.stringValue)(key),
|
|
43
42
|
key: (0, Value_1.stringValue)(key),
|
|
44
43
|
});
|
|
@@ -52,8 +51,8 @@ class DynamoDBBigSegmentStore {
|
|
|
52
51
|
}
|
|
53
52
|
async getUserMembership(userHash) {
|
|
54
53
|
var _a, _b;
|
|
55
|
-
const data = await this.
|
|
56
|
-
namespace: (0, Value_1.stringValue)(this.
|
|
54
|
+
const data = await this._state.get(this._tableName, {
|
|
55
|
+
namespace: (0, Value_1.stringValue)(this._state.prefixedKey(exports.KEY_USER_DATA)),
|
|
57
56
|
key: (0, Value_1.stringValue)(userHash),
|
|
58
57
|
});
|
|
59
58
|
if (data) {
|
|
@@ -71,7 +70,7 @@ class DynamoDBBigSegmentStore {
|
|
|
71
70
|
return undefined;
|
|
72
71
|
}
|
|
73
72
|
close() {
|
|
74
|
-
this.
|
|
73
|
+
this._state.close();
|
|
75
74
|
}
|
|
76
75
|
}
|
|
77
76
|
exports.default = DynamoDBBigSegmentStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoDBBigSegmentStore.js","sourceRoot":"","sources":["../../src/DynamoDBBigSegmentStore.ts"],"names":[],"mappings":";;;AAEA,+DAAwD;AAExD,mCAAsC;AAEtC;;;GAGG;AACU,QAAA,YAAY,GAAG,uBAAuB,CAAC;AAEpD;;;GAGG;AACU,QAAA,aAAa,GAAG,mBAAmB,CAAC;AAEjD;;;GAGG;AACU,QAAA,YAAY,GAAG,gBAAgB,CAAC;AAE7C;;;GAGG;AACU,QAAA,aAAa,GAAG,UAAU,CAAC;AAExC;;;GAGG;AACU,QAAA,aAAa,GAAG,UAAU,CAAC;AAExC,MAAqB,uBAAuB;IAG1C,0EAA0E;IAC1E,oCAAoC;IACpC,YACmB,
|
|
1
|
+
{"version":3,"file":"DynamoDBBigSegmentStore.js","sourceRoot":"","sources":["../../src/DynamoDBBigSegmentStore.ts"],"names":[],"mappings":";;;AAEA,+DAAwD;AAExD,mCAAsC;AAEtC;;;GAGG;AACU,QAAA,YAAY,GAAG,uBAAuB,CAAC;AAEpD;;;GAGG;AACU,QAAA,aAAa,GAAG,mBAAmB,CAAC;AAEjD;;;GAGG;AACU,QAAA,YAAY,GAAG,gBAAgB,CAAC;AAE7C;;;GAGG;AACU,QAAA,aAAa,GAAG,UAAU,CAAC;AAExC;;;GAGG;AACU,QAAA,aAAa,GAAG,UAAU,CAAC;AAExC,MAAqB,uBAAuB;IAG1C,0EAA0E;IAC1E,oCAAoC;IACpC,YACmB,UAAkB,EACnC,OAA2B,EAC3B,OAAkB;QAFD,eAAU,GAAV,UAAU,CAAQ;QAInC,IAAI,CAAC,MAAM,GAAG,IAAI,6BAAmB,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAY,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE;YAClD,SAAS,EAAE,IAAA,mBAAW,EAAC,GAAG,CAAC;YAC3B,GAAG,EAAE,IAAA,mBAAW,EAAC,GAAG,CAAC;SACtB,CAAC,CAAC;QACH,IAAI,IAAI,EAAE;YACR,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAY,CAAC,CAAC;YAChC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE;gBAClB,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAE,EAAE,EAAE,CAAC,EAAE,CAAC;aAChD;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,QAAgB;;QAEhB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE;YAClD,SAAS,EAAE,IAAA,mBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,qBAAa,CAAC,CAAC;YAC9D,GAAG,EAAE,IAAA,mBAAW,EAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QACH,IAAI,IAAI,EAAE;YACR,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAa,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAa,CAAC,CAAC;YAEzC,MAAM,UAAU,GAAyC,EAAE,CAAC;YAE5D,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,EAAE,0CAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,EAAE,0CAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,OAAO,UAAU,CAAC;SACnB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAvDD,0CAuDC"}
|
|
@@ -23,19 +23,19 @@ const WRITE_BATCH_SIZE = 25;
|
|
|
23
23
|
*/
|
|
24
24
|
class DynamoDBClientState {
|
|
25
25
|
constructor(options) {
|
|
26
|
-
this.
|
|
26
|
+
this._prefix = (options === null || options === void 0 ? void 0 : options.prefix) ? `${options.prefix}:` : DEFAULT_PREFIX;
|
|
27
27
|
// We track if we own the client so that we can destroy clients that we own.
|
|
28
28
|
if (options === null || options === void 0 ? void 0 : options.dynamoDBClient) {
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
29
|
+
this._client = options.dynamoDBClient;
|
|
30
|
+
this._owned = false;
|
|
31
31
|
}
|
|
32
32
|
else if (options === null || options === void 0 ? void 0 : options.clientOptions) {
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
33
|
+
this._client = new client_dynamodb_1.DynamoDBClient(options.clientOptions);
|
|
34
|
+
this._owned = true;
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
this.
|
|
38
|
-
this.
|
|
37
|
+
this._client = new client_dynamodb_1.DynamoDBClient({});
|
|
38
|
+
this._owned = true;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
@@ -44,7 +44,7 @@ class DynamoDBClientState {
|
|
|
44
44
|
* @returns The prefixed key.
|
|
45
45
|
*/
|
|
46
46
|
prefixedKey(key) {
|
|
47
|
-
return `${this.
|
|
47
|
+
return `${this._prefix}${key}`;
|
|
48
48
|
}
|
|
49
49
|
async query(params) {
|
|
50
50
|
var _a, e_1, _b, _c;
|
|
@@ -52,7 +52,7 @@ class DynamoDBClientState {
|
|
|
52
52
|
try {
|
|
53
53
|
// Using a generator here is a substantial ergonomic improvement.
|
|
54
54
|
// eslint-disable-next-line no-restricted-syntax
|
|
55
|
-
for (var _d = true, _e = __asyncValues((0, client_dynamodb_1.paginateQuery)({ client: this.
|
|
55
|
+
for (var _d = true, _e = __asyncValues((0, client_dynamodb_1.paginateQuery)({ client: this._client }, params)), _f; _f = await _e.next(), _a = _f.done, !_a; _d = true) {
|
|
56
56
|
_c = _f.value;
|
|
57
57
|
_d = false;
|
|
58
58
|
const page = _c;
|
|
@@ -77,12 +77,12 @@ class DynamoDBClientState {
|
|
|
77
77
|
batches.push(params.splice(0, WRITE_BATCH_SIZE));
|
|
78
78
|
}
|
|
79
79
|
// Execute all the batches and wait for them to complete.
|
|
80
|
-
await Promise.all(batches.map((batch) => this.
|
|
80
|
+
await Promise.all(batches.map((batch) => this._client.send(new client_dynamodb_1.BatchWriteItemCommand({
|
|
81
81
|
RequestItems: { [table]: batch },
|
|
82
82
|
}))));
|
|
83
83
|
}
|
|
84
84
|
async get(table, key) {
|
|
85
|
-
const res = await this.
|
|
85
|
+
const res = await this._client.send(new client_dynamodb_1.GetItemCommand({
|
|
86
86
|
TableName: table,
|
|
87
87
|
Key: key,
|
|
88
88
|
}));
|
|
@@ -90,7 +90,7 @@ class DynamoDBClientState {
|
|
|
90
90
|
}
|
|
91
91
|
async put(params) {
|
|
92
92
|
try {
|
|
93
|
-
await this.
|
|
93
|
+
await this._client.send(new client_dynamodb_1.PutItemCommand(params));
|
|
94
94
|
}
|
|
95
95
|
catch (err) {
|
|
96
96
|
// If we couldn't upsert because of the version, then that is fine.
|
|
@@ -101,8 +101,8 @@ class DynamoDBClientState {
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
close() {
|
|
104
|
-
if (this.
|
|
105
|
-
this.
|
|
104
|
+
if (this._owned) {
|
|
105
|
+
this._client.destroy();
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoDBClientState.js","sourceRoot":"","sources":["../../src/DynamoDBClientState.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8DAWkC;AAIlC,oFAAoF;AACpF,oFAAoF;AACpF,2CAA2C;AAC3C,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,4FAA4F;AAC5F,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B;;;;;;GAMG;AACH,MAAqB,mBAAmB;IAQtC,YAAY,OAA2B;QACrC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"DynamoDBClientState.js","sourceRoot":"","sources":["../../src/DynamoDBClientState.ts"],"names":[],"mappings":"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"}
|
package/dist/src/DynamoDBCore.js
CHANGED
|
@@ -57,13 +57,13 @@ exports.calculateSize = calculateSize;
|
|
|
57
57
|
* @internal
|
|
58
58
|
*/
|
|
59
59
|
class DynamoDBCore {
|
|
60
|
-
constructor(
|
|
61
|
-
this.
|
|
62
|
-
this.
|
|
63
|
-
this.
|
|
60
|
+
constructor(_tableName, _state, _logger) {
|
|
61
|
+
this._tableName = _tableName;
|
|
62
|
+
this._state = _state;
|
|
63
|
+
this._logger = _logger;
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
const prefixed = (0, Value_1.stringValue)(this.
|
|
65
|
+
_initializedToken() {
|
|
66
|
+
const prefixed = (0, Value_1.stringValue)(this._state.prefixedKey('$inited'));
|
|
67
67
|
return { namespace: prefixed, key: prefixed };
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
@@ -71,10 +71,10 @@ class DynamoDBCore {
|
|
|
71
71
|
* @param allData A set of init data.
|
|
72
72
|
* @returns A list of all data with matching namespaces.
|
|
73
73
|
*/
|
|
74
|
-
async
|
|
74
|
+
async _readExistingItems(allData) {
|
|
75
75
|
const promises = allData.map((kind) => {
|
|
76
76
|
const { namespace } = kind.key;
|
|
77
|
-
return this.
|
|
77
|
+
return this._state.query(this._queryParamsForNamespace(namespace));
|
|
78
78
|
});
|
|
79
79
|
const records = (await Promise.all(promises)).flat();
|
|
80
80
|
return records;
|
|
@@ -85,9 +85,9 @@ class DynamoDBCore {
|
|
|
85
85
|
* @param item The item to marshal.
|
|
86
86
|
* @returns The marshalled data.
|
|
87
87
|
*/
|
|
88
|
-
|
|
88
|
+
_marshalItem(kind, item) {
|
|
89
89
|
const dbItem = {
|
|
90
|
-
namespace: (0, Value_1.stringValue)(this.
|
|
90
|
+
namespace: (0, Value_1.stringValue)(this._state.prefixedKey(kind.namespace)),
|
|
91
91
|
key: (0, Value_1.stringValue)(item.key),
|
|
92
92
|
version: (0, Value_1.numberValue)(item.item.version),
|
|
93
93
|
};
|
|
@@ -96,7 +96,7 @@ class DynamoDBCore {
|
|
|
96
96
|
}
|
|
97
97
|
return dbItem;
|
|
98
98
|
}
|
|
99
|
-
|
|
99
|
+
_unmarshalItem(dbItem) {
|
|
100
100
|
var _a, _b, _c;
|
|
101
101
|
return {
|
|
102
102
|
// Version should exist.
|
|
@@ -107,7 +107,7 @@ class DynamoDBCore {
|
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
109
|
async init(allData, callback) {
|
|
110
|
-
const items = await this.
|
|
110
|
+
const items = await this._readExistingItems(allData);
|
|
111
111
|
// Make a key from an existing DB item.
|
|
112
112
|
function makeNamespaceKey(item) {
|
|
113
113
|
return `${item.namespace.S}$${item.key.S}`;
|
|
@@ -116,14 +116,14 @@ class DynamoDBCore {
|
|
|
116
116
|
items.forEach((item) => {
|
|
117
117
|
existingNamespaceKeys[makeNamespaceKey(item)] = true;
|
|
118
118
|
});
|
|
119
|
-
delete existingNamespaceKeys[makeNamespaceKey(this.
|
|
119
|
+
delete existingNamespaceKeys[makeNamespaceKey(this._initializedToken())];
|
|
120
120
|
// Generate a list of write operations, and then execute them in a batch.
|
|
121
121
|
const ops = [];
|
|
122
122
|
allData.forEach((collection) => {
|
|
123
123
|
collection.item.forEach((item) => {
|
|
124
|
-
const dbItem = this.
|
|
125
|
-
if (this.
|
|
126
|
-
delete existingNamespaceKeys[`${this.
|
|
124
|
+
const dbItem = this._marshalItem(collection.key, item);
|
|
125
|
+
if (this._checkSizeLimit(dbItem)) {
|
|
126
|
+
delete existingNamespaceKeys[`${this._state.prefixedKey(collection.key.namespace)}$${item.key}`];
|
|
127
127
|
ops.push({ PutRequest: { Item: dbItem } });
|
|
128
128
|
}
|
|
129
129
|
});
|
|
@@ -138,37 +138,37 @@ class DynamoDBCore {
|
|
|
138
138
|
});
|
|
139
139
|
});
|
|
140
140
|
// Always write the initialized token when we initialize.
|
|
141
|
-
ops.push({ PutRequest: { Item: this.
|
|
142
|
-
await this.
|
|
141
|
+
ops.push({ PutRequest: { Item: this._initializedToken() } });
|
|
142
|
+
await this._state.batchWrite(this._tableName, ops);
|
|
143
143
|
callback();
|
|
144
144
|
}
|
|
145
145
|
async get(kind, key, callback) {
|
|
146
|
-
const read = await this.
|
|
147
|
-
namespace: (0, Value_1.stringValue)(this.
|
|
146
|
+
const read = await this._state.get(this._tableName, {
|
|
147
|
+
namespace: (0, Value_1.stringValue)(this._state.prefixedKey(kind.namespace)),
|
|
148
148
|
key: (0, Value_1.stringValue)(key),
|
|
149
149
|
});
|
|
150
150
|
if (read) {
|
|
151
|
-
callback(this.
|
|
151
|
+
callback(this._unmarshalItem(read));
|
|
152
152
|
}
|
|
153
153
|
else {
|
|
154
154
|
callback(undefined);
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
async getAll(kind, callback) {
|
|
158
|
-
const params = this.
|
|
159
|
-
const results = await this.
|
|
160
|
-
callback(results.map((record) => ({ key: record.key.S, item: this.
|
|
158
|
+
const params = this._queryParamsForNamespace(kind.namespace);
|
|
159
|
+
const results = await this._state.query(params);
|
|
160
|
+
callback(results.map((record) => ({ key: record.key.S, item: this._unmarshalItem(record) })));
|
|
161
161
|
}
|
|
162
162
|
async upsert(kind, key, descriptor, callback) {
|
|
163
|
-
const params = this.
|
|
164
|
-
if (!this.
|
|
163
|
+
const params = this._makeVersionedPutRequest(kind, { key, item: descriptor });
|
|
164
|
+
if (!this._checkSizeLimit(params.Item)) {
|
|
165
165
|
// We deliberately don't report this back to the SDK as an error, because we don't want to trigger any
|
|
166
166
|
// useless retry behavior. We just won't do the update.
|
|
167
167
|
callback();
|
|
168
168
|
return;
|
|
169
169
|
}
|
|
170
170
|
try {
|
|
171
|
-
await this.
|
|
171
|
+
await this._state.put(params);
|
|
172
172
|
this.get(kind, key, (readDescriptor) => {
|
|
173
173
|
callback(undefined, readDescriptor);
|
|
174
174
|
});
|
|
@@ -181,49 +181,49 @@ class DynamoDBCore {
|
|
|
181
181
|
var _a, _b;
|
|
182
182
|
let initialized = false;
|
|
183
183
|
try {
|
|
184
|
-
const token = this.
|
|
185
|
-
const data = await this.
|
|
184
|
+
const token = this._initializedToken();
|
|
185
|
+
const data = await this._state.get(this._tableName, token);
|
|
186
186
|
initialized = !!(((_a = data === null || data === void 0 ? void 0 : data.key) === null || _a === void 0 ? void 0 : _a.S) === token.key.S);
|
|
187
187
|
}
|
|
188
188
|
catch (err) {
|
|
189
|
-
(_b = this.
|
|
189
|
+
(_b = this._logger) === null || _b === void 0 ? void 0 : _b.error(`Error reading inited: ${err}`);
|
|
190
190
|
initialized = false;
|
|
191
191
|
}
|
|
192
192
|
// Callback outside the try. In case it raised an exception.
|
|
193
193
|
callback(initialized);
|
|
194
194
|
}
|
|
195
195
|
close() {
|
|
196
|
-
this.
|
|
196
|
+
this._state.close();
|
|
197
197
|
}
|
|
198
198
|
getDescription() {
|
|
199
199
|
return 'DynamoDB';
|
|
200
200
|
}
|
|
201
|
-
|
|
201
|
+
_queryParamsForNamespace(namespace) {
|
|
202
202
|
return {
|
|
203
|
-
TableName: this.
|
|
203
|
+
TableName: this._tableName,
|
|
204
204
|
KeyConditionExpression: 'namespace = :namespace',
|
|
205
205
|
FilterExpression: 'attribute_not_exists(deleted) OR deleted = :deleted',
|
|
206
206
|
ExpressionAttributeValues: {
|
|
207
|
-
':namespace': (0, Value_1.stringValue)(this.
|
|
207
|
+
':namespace': (0, Value_1.stringValue)(this._state.prefixedKey(namespace)),
|
|
208
208
|
':deleted': (0, Value_1.boolValue)(false),
|
|
209
209
|
},
|
|
210
210
|
};
|
|
211
211
|
}
|
|
212
|
-
|
|
212
|
+
_makeVersionedPutRequest(kind, item) {
|
|
213
213
|
return {
|
|
214
|
-
TableName: this.
|
|
215
|
-
Item: this.
|
|
214
|
+
TableName: this._tableName,
|
|
215
|
+
Item: this._marshalItem(kind, item),
|
|
216
216
|
ConditionExpression: 'attribute_not_exists(version) OR version < :new_version',
|
|
217
217
|
ExpressionAttributeValues: { ':new_version': (0, Value_1.numberValue)(item.item.version) },
|
|
218
218
|
};
|
|
219
219
|
}
|
|
220
|
-
|
|
220
|
+
_checkSizeLimit(item) {
|
|
221
221
|
var _a;
|
|
222
222
|
const size = calculateSize(item);
|
|
223
223
|
if (size <= DYNAMODB_MAX_SIZE) {
|
|
224
224
|
return true;
|
|
225
225
|
}
|
|
226
|
-
(_a = this.
|
|
226
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.error(`The item "${item.key.S}" in "${item.namespace.S}" was too large to store in DynamoDB and was dropped`);
|
|
227
227
|
return false;
|
|
228
228
|
}
|
|
229
229
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoDBCore.js","sourceRoot":"","sources":["../../src/DynamoDBCore.ts"],"names":[],"mappings":";;;AAKA,mCAA8D;AAE9D,6FAA6F;AAC7F,4FAA4F;AAC5F,0CAA0C;AAC1C,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEjC;;;GAGG;AACH,SAAgB,aAAa,CAAC,IAAoC,EAAE,MAAiB;IACnF,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACxD,sGAAsG;QACtG,IAAI,KAAK,CAAC,CAAC,EAAE;YACX,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACvD;QACD,IAAI,KAAK,CAAC,CAAC,EAAE;YACX,mFAAmF;YACnF,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACvD;QACD,IAAI,KAAK,CAAC,IAAI,EAAE;YACd,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;SAC9B;QACD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,GAAG,CAAC,CAAC;AACV,CAAC;AAhBD,sCAgBC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAqB,YAAY;IAC/B,YACmB,
|
|
1
|
+
{"version":3,"file":"DynamoDBCore.js","sourceRoot":"","sources":["../../src/DynamoDBCore.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import LDDynamoDBOptions from './LDDynamoDBOptions';
|
|
|
4
4
|
* Integration between the LaunchDarkly SDK and DynamoDB.
|
|
5
5
|
*/
|
|
6
6
|
export default class DynamoDBFeatureStore implements LDFeatureStore {
|
|
7
|
-
private
|
|
7
|
+
private _wrapper;
|
|
8
8
|
constructor(tableName: string, options?: LDDynamoDBOptions, logger?: LDLogger);
|
|
9
9
|
get(kind: interfaces.DataKind, key: string, callback: (res: LDFeatureStoreItem | null) => void): void;
|
|
10
10
|
all(kind: interfaces.DataKind, callback: (res: LDFeatureStoreKindData) => void): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoDBFeatureStore.d.ts","sourceRoot":"","sources":["../../src/DynamoDBFeatureStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,QAAQ,EAET,MAAM,+BAA+B,CAAC;AAIvC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,cAAc;IACjE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"DynamoDBFeatureStore.d.ts","sourceRoot":"","sources":["../../src/DynamoDBFeatureStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,QAAQ,EAET,MAAM,+BAA+B,CAAC;AAIvC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,cAAc;IACjE,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,QAAQ;IAO7E,GAAG,CACD,IAAI,EAAE,UAAU,CAAC,QAAQ,EACzB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,GACjD,IAAI;IAIP,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI;IAIrF,IAAI,CAAC,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIpE,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAI3F,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAI5F,WAAW,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAI7D,KAAK,IAAI,IAAI;IAIb,cAAc,CAAC,IAAI,MAAM;CAG1B"}
|
|
@@ -9,31 +9,31 @@ const TtlFromOptions_1 = require("./TtlFromOptions");
|
|
|
9
9
|
*/
|
|
10
10
|
class DynamoDBFeatureStore {
|
|
11
11
|
constructor(tableName, options, logger) {
|
|
12
|
-
this.
|
|
12
|
+
this._wrapper = new node_server_sdk_1.PersistentDataStoreWrapper(new DynamoDBCore_1.default(tableName, new DynamoDBClientState_1.default(options), logger), (0, TtlFromOptions_1.default)(options));
|
|
13
13
|
}
|
|
14
14
|
get(kind, key, callback) {
|
|
15
|
-
this.
|
|
15
|
+
this._wrapper.get(kind, key, callback);
|
|
16
16
|
}
|
|
17
17
|
all(kind, callback) {
|
|
18
|
-
this.
|
|
18
|
+
this._wrapper.all(kind, callback);
|
|
19
19
|
}
|
|
20
20
|
init(allData, callback) {
|
|
21
|
-
this.
|
|
21
|
+
this._wrapper.init(allData, callback);
|
|
22
22
|
}
|
|
23
23
|
delete(kind, key, version, callback) {
|
|
24
|
-
this.
|
|
24
|
+
this._wrapper.delete(kind, key, version, callback);
|
|
25
25
|
}
|
|
26
26
|
upsert(kind, data, callback) {
|
|
27
|
-
this.
|
|
27
|
+
this._wrapper.upsert(kind, data, callback);
|
|
28
28
|
}
|
|
29
29
|
initialized(callback) {
|
|
30
|
-
this.
|
|
30
|
+
this._wrapper.initialized(callback);
|
|
31
31
|
}
|
|
32
32
|
close() {
|
|
33
|
-
this.
|
|
33
|
+
this._wrapper.close();
|
|
34
34
|
}
|
|
35
35
|
getDescription() {
|
|
36
|
-
return this.
|
|
36
|
+
return this._wrapper.getDescription();
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
exports.default = DynamoDBFeatureStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoDBFeatureStore.js","sourceRoot":"","sources":["../../src/DynamoDBFeatureStore.ts"],"names":[],"mappings":";;AAAA,mEASuC;AAEvC,+DAAwD;AACxD,iDAA0C;AAE1C,qDAA8C;AAE9C;;GAEG;AACH,MAAqB,oBAAoB;IAGvC,YAAY,SAAiB,EAAE,OAA2B,EAAE,MAAiB;QAC3E,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"DynamoDBFeatureStore.js","sourceRoot":"","sources":["../../src/DynamoDBFeatureStore.ts"],"names":[],"mappings":";;AAAA,mEASuC;AAEvC,+DAAwD;AACxD,iDAA0C;AAE1C,qDAA8C;AAE9C;;GAEG;AACH,MAAqB,oBAAoB;IAGvC,YAAY,SAAiB,EAAE,OAA2B,EAAE,MAAiB;QAC3E,IAAI,CAAC,QAAQ,GAAG,IAAI,4CAA0B,CAC5C,IAAI,sBAAY,CAAC,SAAS,EAAE,IAAI,6BAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EACrE,IAAA,wBAAc,EAAC,OAAO,CAAC,CACxB,CAAC;IACJ,CAAC;IAED,GAAG,CACD,IAAyB,EACzB,GAAW,EACX,QAAkD;QAElD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,IAAyB,EAAE,QAA+C;QAC5E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,OAAkC,EAAE,QAAoB;QAC3D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,IAAyB,EAAE,GAAW,EAAE,OAAe,EAAE,QAAoB;QAClF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,IAAyB,EAAE,IAA6B,EAAE,QAAoB;QACnF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,QAA0C;QACpD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;CACF;AA7CD,uCA6CC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@launchdarkly/node-server-sdk-dynamodb",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.2.0",
|
|
4
4
|
"description": "DynamoDB-backed feature store for the LaunchDarkly Server-Side SDK for Node.js",
|
|
5
5
|
"homepage": "https://github.com/launchdarkly/js-core/tree/main/packages/store/node-server-sdk-dynamodb",
|
|
6
6
|
"repository": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@aws-sdk/client-dynamodb": "3.348.0",
|
|
38
|
-
"@launchdarkly/node-server-sdk": "9.
|
|
38
|
+
"@launchdarkly/node-server-sdk": "9.7.0",
|
|
39
39
|
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
|
|
40
40
|
"@types/jest": "^29.4.0",
|
|
41
41
|
"@typescript-eslint/eslint-plugin": "^6.20.0",
|